vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

_info

(1533B)


      1 #include "config.h"
      2 #include <string.h>
      3 #include <stdio.h>
      4 
      5 /**
      6  * compiler - macros for common compiler extensions
      7  *
      8  * Abstracts away some compiler hints.  Currently these include:
      9  * - COLD
     10  *	For functions not called in fast paths (aka. cold functions)
     11  * - PRINTF_FMT
     12  *	For functions which take printf-style parameters.
     13  * - CONST_FUNCTION
     14  *	For functions which return the same value for same parameters.
     15  * - NEEDED
     16  *	For functions and variables which must be emitted even if unused.
     17  * - UNNEEDED
     18  *	For functions and variables which need not be emitted if unused.
     19  * - UNUSED
     20  *	For parameters which are not used.
     21  * - IS_COMPILE_CONSTANT()
     22  *	For using different tradeoffs for compiletime vs runtime evaluation.
     23  *
     24  * License: CC0 (Public domain)
     25  * Author: Rusty Russell <rusty@rustcorp.com.au>
     26  *
     27  * Example:
     28  *	#include <ccan/compiler/compiler.h>
     29  *	#include <stdio.h>
     30  *	#include <stdarg.h>
     31  *
     32  *	// Example of a (slow-path) logging function.
     33  *	static int log_threshold = 2;
     34  *	static void COLD PRINTF_FMT(2,3)
     35  *		logger(int level, const char *fmt, ...)
     36  *	{
     37  *		va_list ap;
     38  *		va_start(ap, fmt);
     39  *		if (level >= log_threshold)
     40  *			vfprintf(stderr, fmt, ap);
     41  *		va_end(ap);
     42  *	}
     43  *
     44  *	int main(int argc, char *argv[])
     45  *	{
     46  *		if (argc != 1) {
     47  *			logger(3, "Don't want %i arguments!\n", argc-1);
     48  *			return 1;
     49  *		}
     50  *		return 0;
     51  *	}
     52  */
     53 int main(int argc, char *argv[])
     54 {
     55 	/* Expect exactly one argument */
     56 	if (argc != 2)
     57 		return 1;
     58 
     59 	if (strcmp(argv[1], "depends") == 0) {
     60 		return 0;
     61 	}
     62 
     63 	return 1;
     64 }