aboutsummaryrefslogtreecommitdiff
path: root/modules/cpp
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2011-03-14 23:46:51 -0400
committermitchell <70453897+667e-11@users.noreply.github.com>2011-03-14 23:46:51 -0400
commitfa27028c626c29fe77d58fd898bd8efb43dfa653 (patch)
treec6687b35b43b71318e4ce9f576b8eb32ca6a0ff8 /modules/cpp
parent6a588b467d856a6d75b6274c2ee4c0795526bffc (diff)
downloadtextadept-fa27028c626c29fe77d58fd898bd8efb43dfa653.tar.gz
textadept-fa27028c626c29fe77d58fd898bd8efb43dfa653.zip
Added C standard library to cpp module Adeptsense.
Diffstat (limited to 'modules/cpp')
-rw-r--r--modules/cpp/api290
-rw-r--r--modules/cpp/init.lua4
-rw-r--r--modules/cpp/tags268
3 files changed, 561 insertions, 1 deletions
diff --git a/modules/cpp/api b/modules/cpp/api
new file mode 100644
index 00000000..dbd36560
--- /dev/null
+++ b/modules/cpp/api
@@ -0,0 +1,290 @@
+assert assert(int expression) [void]\nMacro used for internal error detection. (Ignored if NDEBUG is defined where \n<assert.h> is included.) If `expression` equals zero, message printed on stderr\nand abort called to terminate execution. Source filename and line number in\nmessage are from preprocessor macros __FILE__ and __LINE__.
+
+isalnum isalnum(int c) [int]\nisalpha(c) or isdigit(c)
+isalpha isalpha(int c) [int]\nisupper(c) or islower(c)
+iscntrl iscntrl(int c) [int]\nis control character. In ASCII, control characters are 0x00 (NUL) to 0x1F (US),\nand 0x7F (DEL)
+isdigit isdigit(int c) [int]\nis decimal digit
+isgraph isgraph(int c) [int]\nis printing character other than space
+islower islower(int c) [int]\nis lower-case letter
+isprint isprint(int c) [int]\nis printing character (including space). In ASCII, printing characters are 0x20\n(' ') to 0x7E ('~')
+ispunct ispunct(int c) [int]\nis printing character other than space, letter, digit
+isspace isspace(int c) [int]\nis space, formfeed, newline, carriage return, tab, vertical tab
+isupper isupper(int c) [int]\nis upper-case letter
+isxdigit isxdigit(int c) [int]\nis hexadecimal digit
+tolower tolower(int c) [int]\nreturn lower-case equivalent
+toupper toupper(int c) [int]\nreturn upper-case equivalent
+
+errno errno\nobject to which certain library functions assign specific positive values on\nerror
+EDOM EDOM\ncode used for domain errors
+ERANGE ERANGE\ncode used for range errors
+
+FLT_RADIX FLT_RADIX\nradix of floating-point representations
+FLT_ROUNDS FLT_ROUNDS\nfloating-point rounding mode
+
+FLT_DIG FLT_DIG\nprecision of float (in decimal digits)
+DBL_DIG DBL_DIG\nprecision of double (in decimal digits)
+LDBL_DIG LDBL_DIG\nprecision of long double (in decimal digits)
+
+FLT_EPSILON FLT_EPSILON\nsmallest float number x such that 1.0 + x != 1.0
+DBL_EPSILON DBL_EPSILON\nsmallest double number x such that 1.0 + x != 1.0
+LDBL_EPSILON LDBL_EPSILON\nsmallest long double number x such that 1.0 + x != 1.0
+
+FLT_MANT_DIG FLT_MANT_DIG\nnumber of float digits, base FLT_RADIX, in mantissa
+DBL_MANT_DIG DBL_MANT_DIG\nnumber of double digits, base FLT_RADIX, in mantissa
+LDBL_MANT_DIG LDBL_MANT_DIG\nnumber of long double digits, base FLT_RADIX, in mantissa
+
+FLT_MAX FLT_MAX\nmaximum float number
+DBL_MAX DBL_MAX\nmaximum double number
+LDBL_MAX LDBL_MAX\nmaximum long double number
+
+FLT_MAX_EXP FLT_MAX_EXP\nlargest positive integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+DBL_MAX_EXP DBL_MAX_EXP\nlargest positive integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+LDBL_MAX_EXP LDBL_MAX_EXP\nlargest positive integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+
+FLT_MIN FLT_MIN\nminimum normalised float number
+DBL_MIN DBL_MIN\nminimum normalised double number
+LDBL_MIN LDBL_MIN\nminimum normalised long double number
+
+FLT_MIN_EXP FLT_MIN_EXP\nsmallest negative integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+DBL_MIN_EXP DBL_MIN_EXP\nsmallest negative integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+LDBL_MIN_EXP LDBL_MIN_EXP\nsmallest negative integer exponent to which FLT_RADIX can be raised and remain\nrepresentable
+
+CHAR_BIT CHAR_BIT\nnumber of bits in a char
+CHAR_MAX CHAR_MAX\nmaximum value of type char
+CHAR_MIN CHAR_MIN\nminimum value of type char
+SCHAR_MAX SCHAR_MAX\nmaximum value of type signed char
+SCHAR_MIN SCHAR_MIN\nminimum value of type signed char
+UCHAR_MAX UCHAR_MAX\nmaximum value of type unsigned char
+SHRT_MAX SHRT_MAX\nmaximum value of type short
+SHRT_MIN SHRT_MIN\nminimum value of type short
+USHRT_MAX USHRT_MAX\nmaximum value of type unsigned short
+INT_MAX INT_MAX\nmaximum value of type int
+INT_MIN INT_MIN\nminimum value of type int
+UINT_MAX UINT_MAX\nmaximum value of type unsigned int
+LONG_MAX LONG_MAX\nmaximum value of type long
+LONG_MIN LONG_MIN\nminimum value of type long
+ULONG_MAX ULONG_MAX\nmaximum value of type unsigned long
+
+lconv lconv [struct]\nDescribes formatting of monetary and other numeric values\nImplementations may change field order and include additional fields. Standard C\nLibrary functions use only `decimal_point`.
+decimal_point lconv.decimal_point [char*]\ndecimal point for non-monetary values
+grouping lconv.grouping [char*]\nsizes of digit groups for non-monetary values
+thousands_sep lconv.thousands_sep [char*]\nseparator for digit groups for non-monetary values (left of "decimal point")
+currency_symbol lconv.currency_symbol [char*]\ncurrency symbol
+int_curr_symbol lconv.int_curr_symbol [char*]\ninternational currency symbol
+mon_decimal_point lconv.mon_decimal_point [char*]\ndecimal point for monetary values
+mon_grouping lconv.mon_grouping [char*]\nsizes of digit groups for monetary values
+mon_thousands_sep lconv.mon_thousands_sep [char*]\nseparator for digit groups for monetary values (left of "decimal point")
+negative_sign lconv.negative_sign [char*]\nnegative sign for monetary values
+positive_sign lconv.positive_sign [char*]\npositive sign for monetary values
+frac_digits lconv.frac_digits [char]\nnumber of digits to be displayed to right of "decimal point" for monetary values
+int_frac_digits lconv.int_frac_digits [char]\nnumber of digits to be displayed to right of "decimal point" for international\nmonetary values
+n_cs_precedes lconv.n_cs_precedes [char]\nwhether currency symbol precedes (1) or follows (0) negative monetary values
+n_sep_by_space lconv.n_sep_by_space [char]\nwhether currency symbol is (1) or is not (0) separated by space from negative\nmonetary values
+n_sign_posn lconv.n_sign_posn [char]\nformat for negative monetary values:\n0: parentheses surround quantity and currency symbol\n 1: sign precedes quantity and currency symbol\n 2: sign follows quantity and currency symbol\n 3: sign immediately precedes currency symbol\n 4: sign immediately follows currency symbol
+p_cs_precedes lconv.p_cs_precedes [char]\nwhether currency symbol precedes (1) or follows (0) positive monetary values
+p_sep_by_space lconv.p_sep_by_space [char]\nwhether currency symbol is (1) or is not (0) separated by space from\nnon-negative monetary values
+p_sign_posn lconv.p_sign_posn [char]\nformat for non-negative monetary values, with values as for n_sign_posn
+
+localeconv localeconv(void) [lconv*]\nreturns pointer to formatting information for current locale
+setlocale setlocale(int category, const char* locale) [char*]\nSets components of locale according to specified `category` and `locale`.\nReturns string describing new locale or null on error. (Implementations are\npermitted to define values of `category` additional to those describe here.)
+LC_ALL LC_ALL\ncategory argument for all categories
+LC_NUMERIC LC_NUMERIC\ncategory for numeric formatting information
+LC_MONETARY LC_MONETARY\ncategory for monetary formatting information
+LC_COLLATE LC_COLLATE\ncategory for information affecting collating functions
+LC_CTYPE LC_CTYPE\ncategory for information affecting character class tests functions
+LC_TIME LC_TIME\ncategory for information affecting time conversions functions
+NULL NULL\nnull pointer constant
+
+HUGE_VAL HUGE_VAL\nmagnitude returned (with correct sign) on overflow error
+exp exp(double x) [double]\nexponential of `x`
+log log(double x) [double]\nnatural logarithm of `x`
+log10 log10(double x) [double]\nbase-10 logarithm of `x`
+pow pow(double x, double y) [double]\n`x` raised to power `y`
+sqrt sqrt(double x) [double]\nsquare root of `x`
+ceil ceil(double x) [double]\nsmallest integer not less than `x`
+floor floor(double x) [double]\nlargest integer not greater than `x`
+fabs fabs(double x) [double]\nabsolute value of `x`
+ldexp ldexp(double x, int n) [double]\n`x` times 2 to the power `n`
+frexp frexp(double x, int* exp) [double]\nif `x` non-zero, returns value, with absolute value in interval [1/2, 1), and\nassigns to `*exp` integer such that product of return value and 2 raised to the\npower `*exp` equals `x`; if `x` zero, both return value and `*exp` are zero
+modf modf(double x, double* ip) [double]\nreturns fractional part and assigns to `*ip` integral part of `x`, both with\nsame sign as `x`
+fmod fmod(double x, double y) [double]\nif `y` non-zero, floating-point remainder of `x`/`y`, with same sign as `x`; if\n`y` zero, result is implementation-defined
+sin sin(double x) [double]\nsine of `x`
+cos cos(double x) [double]\ncosine of `x`
+tan tan(double x) [double]\ntangent of `x`
+asin asin(double x) [double]\narc-sine of `x`
+acos acos(double x) [double]\narc-cosine of `x`
+atan atan(double x) [double]\narc-tangent of `x`
+atan2 atan2(double y, double x) [double]\narc-tangent of `y`/`x`
+sinh sinh(double x) [double]\nhyperbolic sine of `x`
+cosh cosh(double x) [double]\nhyperbolic cosine of `x`
+tanh tanh(double x) [double]\nhyperbolic tangent of `x`
+
+jmp_buf jmp_buf\ntype of object holding context information
+setjmp setjmp(jmp_buf env) [int]\nSaves context information in `env` and returns zero. Subsequent call to longjmp\nwith same `env` returns non-zero.
+longjmp longjmp(jmp_buf env, int val) [void]\nRestores context saved by most recent call to setjmp with specified `env`.\nExecution resumes as a second return from setjmp, with returned value `val` if\nspecified value non-zero, or 1 otherwise.
+
+SIGABRT SIGABRT\nabnormal termination
+SIGFPE SIGFPE\narithmetic error
+SIGILL SIGILL\ninvalid execution
+SIGINT SIGINT\n(asynchronous) interactive attention
+SIGSEGV SIGSEGV\nillegal storage access
+SIGTERM SIGTERM\n(asynchronous) termination request
+SIG_DFL SIG_DFL\nspecifies default signal handling
+SIG_ERR SIG_ERR\nsignal return value indicating error
+SIG_IGN SIG_IGN\nspecifies that signal should be ignored
+raise raise(int sig) [int]\nSends signal sig. Returns zero on success.
+
+va_list va_list\ntype of object holding context information
+va_start va_start(va_list ap, lastarg) [void]\nInitialisation macro which must be called once before any unnamed argument is\naccessed. Stores context information in `ap`. `lastarg` is the last named\nparameter of the function.
+va_arg va_arg(va_list ap, type) [type]\nYields value of the type (`type`) and value of the next unnamed argument.
+va_end va_end(va_list ap) [void]\nTermination macro which must be called once after argument processing and before\nexit from function.
+
+NULL NULL\nNull pointer constant.
+offsetof offsetof(stype, m)\nOffset (in bytes) of member m from start of structure type `stype`.
+ptrdiff_t ptrdiff_t\nType for objects declared to store result of subtracting pointers.
+size_t size_t\nType for objects declared to store result of sizeof operator.
+
+BUFSIZ BUFSIZ\nSize of buffer used by setbuf.
+EOF EOF\nValue used to indicate end-of-stream or to report an error.
+FILENAME_MAX FILENAME_MAX\nMaximum length required for array of characters to hold a filename.
+FOPEN_MAX FOPEN_MAX\nMaximum number of files which may be open simultaneously.
+L_tmpnam L_tmpnam\nNumber of characters required for temporary filename generated by tmpnam.
+NULL NULL\nNull pointer constant.
+SEEK_CUR SEEK_CUR\nValue for origin argument to fseek specifying current file position.
+SEEK_END SEEK_END\nValue for origin argument to fseek specifying end of file.
+SEEK_SET SEEK_SET\nValue for origin argument to fseek specifying beginning of file.
+TMP_MAX TMP_MAX\nMinimum number of unique filenames generated by calls to tmpnam.
+_IOFBF _IOFBF\nValue for mode argument to setvbuf specifying full buffering.
+_IOLBF _IOLBF\nValue for mode argument to setvbuf specifying line buffering.
+_IONBF _IONBF\nValue for mode argument to setvbuf specifying no buffering.
+stdin stdin\nFile pointer for standard input stream. Automatically opened when program\nexecution begins.
+stdout stdout\nFile pointer for standard output stream. Automatically opened when program\nexecution begins.
+stderr stderr\nFile pointer for standard error stream. Automatically opened when program\nexecution begins.
+FILE FILE\nType of object holding information necessary to control a stream.
+fpos_t fpos_t\nType for objects declared to store file position information.
+size_t size_t\nType for objects declared to store result of sizeof operator.
+fopen fopen(const char* filename, const char* mode) [FILE*]\nOpens file named `filename` and returns a stream, or NULL on failure. `mode` may\nbe one of the following for text files:\n "r": text reading\n "w": text writing\n "a": text append\n "r+": text update (reading and writing)\n "w+": text update, discarding previous content (if any)\n "a+": text append, reading, and writing at end\nor one of those strings with b included (after the first character), for\nbinary files.
+freopen freopen(const char* filename, const char* mode, FILE* stream) [FILE*]\nCloses file associated with `stream`, then opens file `filename` with specified\nmode and associates it with `stream`. Returns `stream` or NULL on error.
+fflush fflush(FILE* stream) [int]\nFlushes stream `stream` and returns zero on success or EOF on error. Effect\nundefined for input stream. fflush(NULL) flushes all output streams.
+fclose fclose(FILE* stream) [int]\nCloses stream `stream` (after flushing, if output stream). Returns EOF on error,\nzero otherwise.
+remove remove(const char* filename) [int]\nRemoves specified file. Returns non-zero on failure.
+rename rename(const char* oldname, const char* newname) [int]\nChanges name of file `oldname` to `newname`. Returns non-zero on failure.
+tmpfile tmpfile() [FILE*]\nCreates temporary file (mode "wb+") which will be removed when closed or on\nnormal program termination. Returns stream or NULL on failure.
+tmpnam tmpnam(char s[L_tmpnam]) [char*]\nAssigns to `s` (if `s` non-null) and returns unique name for a temporary file.\nUnique name is returned for each of the first TMP_MAX invocations.
+setvbuf setvbuf(FILE* stream, char* buf, int mode, size_t size) [int]\nControls buffering for stream `stream`. mode is _IOFBF for full buffering,\n_IOLBF for line buffering, _IONBF for no buffering. Non-null `buf` specifies\nbuffer of size `size` to be used; otherwise, a buffer is allocated. Returns\nnon-zero on error. Call must be before any other operation on stream.
+setbuf setbuf(FILE* stream, char* buf) [void]\nControls buffering for stream `stream`. For null `buf`, turns off buffering,\notherwise equivalent to `(void)setvbuf(stream, buf, _IOFBF, BUFSIZ)`.
+fprintf fprintf(FILE* stream, const char* format, ...) [int]\nConverts (according to format `format`) and writes output to stream `stream`.\nNumber of characters written, or negative value on error, is returned.\nConversion specifications consist of:\n * %\n * (optional) flag:\n -: left adjust\n +: always sign\n space: space if no sign\n 0: zero pad\n #: Alternate form: for conversion character o, first digit will be zero, for\n [xX], prefix 0x or 0X to non-zero value, for [eEfgG], always decimal\n point, for [gG] trailing zeros not removed.\n * (optional) minimum width: if specified as *, value taken from next argument\n (which must be int).\n * (optional) . (separating width from precision):\n * (optional) precision: for conversion character s, maximum characters to be\n printed from the string, for [eEf], digits after decimal point, for [gG],\n significant digits, for an integer, minimum number of digits to be printed.\n If specified as *, value taken from next argument (which must be int).\n * (optional) length modifier:\n h: short or unsigned short\n l: long or unsigned long\n L: long double\n * conversion character:\n d,i: int argument, printed in signed decimal notation\n o: int argument, printed in unsigned octal notation\n x,X: int argument, printed in unsigned hexadecimal notation\n u: int argument, printed in unsigned decimal notation\n c: int argument, printed as single character\n s: char* argument\n f: double argument, printed with format [-]mmm.ddd\n e,E: double argument, printed with format [-]m.dddddd(e|E)(+|-)xx\n g,G: double argument\n p: void* argument, printed as pointer\n n: int* argument : the number of characters written to this point is written\n into argument\n %: no argument; prints %
+printf printf(const char* format, ...) [int]\nprintf(f, ...) is equivalent to fprintf(stdout, f, ...)
+sprintf sprintf(char* s, const char* format, ...) [int]\nLike fprintf, but output written into string `s`, which *must be large enough to\nhold the output*, rather than to a stream. Output is NUL-terminated. Returns\nlength (excluding the terminating NUL).
+vfprintf vfprintf(FILE* stream, const char* format, va_list arg) [int]\nEquivalent to fprintf with variable argument list replaced by `arg`, which must\nhave been initialised by the va_start macro (and may have been used in calls to\nva_arg).
+vprintf vprintf(const char* format, va_list arg) [int]\nEquivalent to printf with variable argument list replaced by `arg`, which must\nhave been initialised by the va_start macro (and may have been used in calls to\nva_arg).
+vsprintf vsprintf(char* s, const char* format, va_list arg) [int]\nEquivalent to sprintf with variable argument list replaced by `arg`, which must\nhave been initialised by the va_start macro (and may have been used in calls to\nva_arg).
+fscanf fscanf(FILE* stream, const char* format, ...) [int]\nPerforms formatted input conversion, reading from stream `stream` according to\nformat `format`. The function returns when `format` is fully processed. Returns\nnumber of items converted and assigned, or EOF if end-of-file or error occurs\nbefore any conversion. Each of the arguments following format *must be a\npointer*. Format string may contain:\n * blanks and tabs, which are ignored\n * ordinary characters, which are expected to match next non-white-space of\n input\n * conversion specifications, consisting of:\n * %\n * (optional) assignment suppression character "*"\n * (optional) maximum field width\n * (optional) target width indicator:\n h: argument is pointer to short rather than int\n l: argument is pointer to long rather than int, or double rather than\n float\n L: argument is pointer to long double rather than float\n * conversion character:\n d: decimal integer; int* parameter required\n i: integer; int* parameter required; decimal, octal or hex\n o: octal integer; int* parameter required\n u: unsigned decimal integer; unsigned int* parameter required\n x: hexadecimal integer; int* parameter required\n c: characters; char* parameter required; white-space is not skipped, and\n NUL-termination is not performed\n s: string of non-white-space; char* parameter required; string is\n NUL-terminated\n e,f,g: floating-point number; float* parameter required\n p: pointer value; void* parameter required\n n: chars read so far; int* parameter required\n [...]: longest non-empty string from specified set; char* parameter\n required; string is NUL-terminated\n [^...]: longest non-empty string not from specified set; char* parameter\n required; string is NUL-terminated\n %: literal %; no assignment
+scanf scanf(const char* format, ...) [int]\nscanf(f, ...) is equivalent to fscanf(stdin, f, ...)
+sscanf sscanf(char* s, const char* format, ...) [int]\nLike fscanf, but input read from string `s`.
+fgetc fgetc(FILE* stream) [int]\nReturns next character from (input) stream `stream`, or EOF on end-of-file or\nerror.
+fgets fgets(char* s, int n, FILE* stream) [char*]\nCopies characters from (input) stream `stream` to `s`, stopping when `n`-1\ncharacters copied, newline copied, end-of-file reached or error occurs. If no\nerror, `s` is NUL-terminated. Returns NULL on end-of-file or error, `s`\notherwise.
+fputc fputc(int c, FILE* stream) [int]\nWrites `c`, to stream `stream`. Returns `c`, or EOF on error.
+fputs fputs(const char* s, FILE* stream) [char*]\nWrites `s`, to (output) stream `stream`. Returns non-negative on success or EOF\non error.
+getc getc(FILE* stream) [int]\nEquivalent to fgetc except that it may be a macro.
+getchar getchar(void) [int]\nEquivalent to getc(stdin).
+gets gets(char* s) [char*]\nCopies characters from stdin into `s` until newline encountered, end-of-file\nreached, or error occurs. Does not copy newline. NUL-terminates `s`. Returns\n`s`, or NULL on end-of-file or error. *Should not be used because of the\npotential for buffer overflow.*
+putc putc(int c, FILE* stream) [int]\nEquivalent to fputc except that it may be a macro.
+putchar putchar(int c) [int]\nputchar(c) is equivalent to putc(c, stdout).
+puts puts(const char* s) [int]\nWrites `s` (excluding terminating NUL) and a newline to stdout. Returns\nnon-negative on success, EOF on error.
+ungetc ungetc(int c, FILE* stream) [int]\nPushes `c` (which must not be EOF), onto (input) stream `stream` such that it\nwill be returned by the next read. Only one character of pushback is guaranteed\n(for each stream). Returns `c`, or EOF on error.
+fread fread(void* ptr, size_t size, size_t nobj, FILE* stream) [size_t]\nReads (at most) `nobj` objects of size `size` from stream `stream` into `ptr`\nand returns number of objects read. (feof and ferror can be used to check\nstatus.)
+fwrite fwrite(const void* ptr, size_t size, size_t nobj, FILE* stream) [size_t]\nWrites to stream `stream`, `nobj` objects of size `size` from array `ptr`.\nReturns number of objects written.
+fseek fseek(FILE* stream, long offset, int origin) [int]\nSets file position for stream `stream` and clears end-of-file indicator. For a\nbinary stream, file position is set to `offset` bytes from the position\nindicated by `origin`: beginning of file for SEEK_SET, current position for\nSEEK_CUR, or end of file for SEEK_END. Behaviour is similar for a text stream,\nbut `offset` must be zero or, for SEEK_SET only, a value returned by ftell.\nReturns non-zero on error.
+ftell ftell(FILE* stream) [long]\nReturns current file position for stream `stream`, or -1 on error.
+rewind rewind(FILE* stream) [void]\nEquivalent to fseek(stream, 0L, SEEK_SET); clearerr(stream).
+fgetpos fgetpos(FILE* stream, fpos_t* ptr) [int]\nStores current file position for stream `stream` in `*ptr`. Returns non-zero on\nerror.
+fsetpos fsetpos(FILE* stream, const fpos_t* ptr) [int]\nSets current position of stream `stream` to `*ptr`. Returns non-zero on error.
+clearerr clearerr(FILE* stream) [void]\nClears end-of-file and error indicators for stream `stream`.
+feof feof(FILE* stream) [int]\nReturns non-zero if end-of-file indicator is set for stream `stream`.
+ferror ferror(FILE* stream) [int]\nReturns non-zero if error indicator is set for stream `stream`.
+perror perror(const char* s) [void]\nPrints `s` (if non-null) and strerror(errno) to standard error as would:\n fprintf(stderr, "%s: %s\n", (s != NULL ? s : ""), strerror(errno))
+
+EXIT_FAILURE EXIT_FAILURE\nValue for status argument to exit indicating failure.
+EXIT_SUCCESS EXIT_SUCCESS\nValue for status argument to exit indicating success.
+RAND_MAX RAND_MAX\nMaximum value returned by rand().
+NULL NULL\nNull pointer constant.
+div_t div_t\nReturn type of div().
+quot div_t.quot [int]\nquotient
+rem div_t.rem [int]\nremainder
+ldiv_t ldiv_t\nReturn type of ldiv().
+qout ldiv_t.quot [long]\nquotient
+rem ldiv_t.rem [long]\nremainder
+size_t size_t\nType for objects declared to store result of sizeof operator.
+abs abs(int n) [int]
+labs labs(long n) [long]\nReturns absolute value of `n`.
+div div(int num, int denom) [div_t]
+ldiv ldiv(long num, long denom) [ldiv_t]\nReturns quotient and remainder of `num`/`denom`.
+atof atof(const char* s) [double]\nEquivalent to strtod(s, (char**)NULL) except that errno is not necessarily set\non conversion error.
+atoi atoi(const char* s) [int]\nEquivalent to (int)strtol(s, (char**)NULL, 10) except that errno is not\nnecessarily set on conversion error.
+atol atol(const char* s) [long]\nEquivalent to strtol(s, (char**)NULL, 10) except that errno is not necessarily\nset on conversion error.
+strtod strtod(const char* s, char** endp) [double]\nConverts initial characters (ignoring leading white space) of `s` to type\ndouble. If `endp` non-null, stores pointer to unconverted suffix in `*endp`. On\noverflow, sets errno to ERANGE and returns HUGE_VAL with the appropriate sign;\non underflow, sets errno to ERANGE and returns zero; otherwise returns converted\nvalue.
+strtol strtol(const char* s, char** endp, int base) [long]\nConverts initial characters (ignoring leading white space) of `s` to type long.\nIf `endp` non-null, stores pointer to unconverted suffix in `*endp`. If base\nbetween 2 and 36, that base used for conversion; if zero, leading (after any\nsign) 0X or 0x implies hexadecimal, leading 0 (after any sign) implies octal,\notherwise decimal assumed. Leading 0X or 0x permitted for base hexadecimal. On\noverflow, sets errno to ERANGE and returns LONG_MAX or LONG_MIN (as appropriate\nfor sign); otherwise returns converted value.
+strtoul strtoul(const char* s, char** endp, int base) [unsigned long]\nAs for strtol except result is unsigned long and value on overflow is ULONG_MAX.
+calloc calloc(size_t nobj, size_t size) [void*]\nReturns pointer to _zero-initialised_ newly-allocated space for an array of\n`nobj` objects each of size `size`, or NULL on error.
+malloc malloc(size_t size) [void*]\nReturns pointer to _uninitialised_ newly-allocated space for an object of size\n`size`, or NULL on error.
+realloc realloc(void* p, size_t size) [void*]\nReturns pointer to newly-allocated space for an object of size `size`,\ninitialised, to minimum of old and new sizes, to existing contents of `p` (if\nnon-null), or NULL on error. On success, old object deallocated, otherwise\nunchanged.
+free free(void* p) [void]\nIf `p` non-null, deallocates space to which it points.
+abort abort() [void]\nTerminates program abnormally, by calling raise(SIGABRT).
+exit exit(int status) [void]\nTerminates program normally. Functions installed using atexit are called (in\nreverse order to that in which installed), open files are flushed, open streams\nare closed and control is returned to environment. `status` is returned to\nenvironment in implementation-dependent manner. Zero or EXIT_SUCCESS indicates\nsuccessful termination and EXIT_FAILURE indicates unsuccessful termination.\nImplementations may define other values.
+atexit atexit(void (*fcm)(void)) [int]\nRegisters `fcn` to be called when program terminates normally (or when main\nreturns). Returns non-zero on failure.
+system system(const char* s) [int]\nIf `s` is not NULL, passes `s` to environment for execution, and returns \nreported by command processor; if `s` is NULL, non-zero returned if environment\nhas a command processor.
+getenv getenv(const char* name) [char*]\nReturns string associated with name `name` from implementation's environment, or\nNULL if no such string exists.
+bsearch bsearch(const void* key, const void* base, size_t n, size_t size, int (*cmp)(const void* keyval, const void* datum)) [void*]\nSearches ordered array `base` (of `n` objects each of size `size`) for item\nmatching key according to comparison function `cmp`. `cmp` must return negative\nvalue if first argument is less than second, zero if equal and positive if\ngreater. Items of `base` are assumed to be in ascending order (according to\n`cmp`). Returns a pointer to an item matching `key`, or NULL if none found.
+qsort qsort(void* base, size_t n, size_t size, int (*cmp)(const void*, const void*)) [void]\nArranges into ascending order array `base` (of `n` objects each of size `size`)\naccording to comparison function `cmp`. `cmp` must return negative value if\nfirst argument is less than second, zero if equal and positive if greater.
+rand rand(void) [int]\nReturns pseudo-random number in range 0 to RAND_MAX.
+srand srand(unsigned int seed) [void]\nUses seed as seed for new sequence of pseudo-random numbers. Initial seed is 1.
+
+NULL NULL\nNull pointer constant.
+size_t size_t\nType for objects declared to store result of sizeof operator.
+strcpy strcpy(char* s, const char* ct) [char*]\nCopies `ct` to `s` including terminating NUL and returns `s`.
+strncpy strncpy(char* s, const char* ct, size_t n) [char*]\nCopies at most `n` characters of `ct` to `s`. Pads with NUL characters if `ct`\nis of length less than `n`. *Note that this may leave `s` without\nNUL-termination.* Return `s`.
+strcat strcat(char* s, const char* ct) [char*]\nConcatenate `ct` to `s` and return `s`.
+strncat strncat(char* s, const char* ct, size_t n) [char*]\nConcatenate at most `n` characters of `ct` to `s`. NUL-terminates `s` and return it.
+strcmp strcmp(const char* cs, const char* ct) [int]\nCompares `cs` with `ct`, returning negative value if `cs`<`ct`, zero if\n`cs`==`ct`, positive value if `cs`>`ct`.
+strncmp strncmp(const char* cs, const char* ct, size_t n) [int]\nCompares at most (the first) `n` characters of `cs` and `ct`, returning negative\nvalue if `cs`<`ct`, zero if `cs`==`ct`, positive value if `cs`>`ct`.
+strcoll strcoll(const char* cs, const char* ct) [int]\nCompares `cs` with `ct` according to locale, returning negative value if\n`cs`<`ct`, zero if `cs`==`ct`, positive value if `cs`>`ct`.
+strchr strchr(const char* cs, int c) [char*]\nReturns pointer to first occurrence of `c` in `cs`, or NULL if not found.
+strrchr strrchr(const char* cs, int c) [char*]\nReturns pointer to last occurrence of `c` in `cs`, or NULL if not found.
+strspn strspn(const char* cs, const char* ct) [size_t]\nReturns length of prefix of `cs` which consists of characters which are in `ct`.
+strcspn strcspn(const char* cs, const char* ct) [size_t]\nReturns length of prefix of `cs` which consists of characters which are not in\n`ct`.
+strpbrk strpbrk(const char* cs, const char* ct) [char*]\nReturns pointer to first occurrence in `cs` of any character of `ct`, or NULL if\nnone is found.
+strstr strstr(const char* cs, const char* ct) [char*]\nReturns pointer to first occurrence of `ct` within `cs`, or NULL if none is\nfound.
+strlen strlen(const char* cs) [size_t]\nReturns length of `cs`.
+strerror strerror(int n) [char*]\nReturns pointer to implementation-defined message string corresponding with\nerror `n`.
+strtok strtok(char* s, const char* t) [char*]\nSearches `s` for next token delimited by any character from `ct`. Non-NULL `s`\nindicates the first call of a sequence. If a token is found, it is\nNUL-terminated and returned, otherwise NULL is returned. `ct` need not be\nidentical for each call in a sequence.
+strxfrm strxfrm(char* s, const char* ct, size_t n) [size_t]\nStores in `s` no more than `n` characters (including terminating NUL) of a\nstring produced from `ct` according to a locale-specific transformation. Returns\nlength of entire transformed string.
+memcpy memcpy(void* s, const void* ct, size_t n) [void*]\nCopies `n` characters from `ct` to `s` and returns `s`. *`s` may be corrupted if\nobjects overlap.*
+memmove memmove(void* s, const void* ct, size_t n) [void*]\nCopies `n` characters from `ct` to `s` and returns `s`. *`s` will not be\ncorrupted if objects overlap.*
+memcmp memcmp(const void* cs, const void* ct, size_t n) [int]\nCompares at most (the first) `n` characters of `cs` and `ct`, returning negative\nvalue if `cs`<`ct`, zero if `cs`==`ct`, positive value if `cs`>`ct`.
+memchr memchr(const void* cs, int c, size_t n) [void*]\nReturns pointer to first occurrence of `c` in first `n` characters of `cs`, or\nNULL if not found.
+memset memset(void* s, int c, size_t n) [void*]\nReplaces each of the first `n` characters of `s` by `c` and returns `s`.
+
+CLOCKS_PER_SEC CLOCKS_PER_SEC\nThe number of clock_t units per second.
+NULL NULL\nNull pointer constant.
+clock_t clock_t\nAn arithmetic type elapsed processor representing time.
+time_t time_t\nAn arithmetic type representing calendar time.
+tm tm [struct]\nRepresents the components of calendar time\nImplementations may change field order and include additional fields.
+tm_set tm.tm_sec [int]\nseconds after the minute
+tm_min tm.tm_min [int]\nminutes after the hour
+tm_hour tm.tm_hour [int]\nhours since midnight
+tm_mday tm.tm_mday [int]\nday of the month
+tm_mon tm.tm_mon [int]\nmonths *since* January
+tm_year tm.tm_year [int]\nyears since 1900
+tm_wday tm.tm_wday [int]\ndays since Sunday
+tm_yday tm.tm_yday [int]\ndays since January 1
+tm_isdst tm.tm_isdst [int]\nDaylight Saving Time flag : is positive if DST is in effect, zero if not in\neffect, negative if information not known.
+clock clock(void) [clock_t]\nReturns elapsed processor time used by program or -1 if not available.
+time time(time_t* tp) [time_t]\nReturns current calendar time or -1 if not available. If `tp` is non-NULL,\nreturn value is also assigned to `*tp`.
+difftime difftime(time_t time2, time_t time1) [double]\nReturns the difference in seconds between `time2` and `time1`.
+mktime mktime(struct tm* tp) [time_t]\nIf necessary, adjusts fields of `*tp` to fall withing normal ranges. Returns the\ncorresponding calendar time, or -1 if it cannot be represented.
+asctime asctime(const struct tm* tp) [char*]\nReturns the given time as a string of the form:\n Sun Jan 3 13:08:42 1988\n\0
+ctime ctime(const time_t* tp) [char*]\nReturns string equivalent to calendar time `tp` converted to local time.\nEquivalent to: asctime(localtime(tp))
+gmtime gmtime(const time_t* tp) [struct tm*]\nReturns calendar time `*tp` converted to Coordinated Universal Time, or NULL if\nnot available.
+localtime localtime(const time_t* tp) [struct tm*]\nReturns calendar time `*tp` converted into local time.
+strftime strftime(char* s, size_t smax, const char* fmt, const struct tm* tp) [size_t]\nFormats `*tp` into `s` according to `fmt`. Places no more than `smax` characters\ninto `s`, and returns number of characters produced (excluding terminating NUL),\nor 0 if greater than `smax`. Formatting conversions (`%c`) are:\n A: name of weekday\n a: abbreviated name of weekday\n B: name of month\n b: abbreviated name of month\n c: local date and time representation\n d: day of month [01-31]\n H: hour (24-hour clock) [00-23]\n I: hour (12-hour clock) [01-12]\n j: day of year [001-366]\n M: minute [00-59]\n m: month [01-12]\n p: local equivalent of "AM" or "PM"\n S: second [00-61]\n U: week number of year (Sunday as 1st day of week) [00-53]\n W: week number of year (Monday as 1st day of week) [00-53]\n w: weekday (Sunday as 0) [0-6]\n X: local time representation\n x: local date representation\n Y: year with century\n y: year without century [00-99]\n Z: name (if any) of time zone\n %: %\nLocal time may differ from calendar time because of time zone.
diff --git a/modules/cpp/init.lua b/modules/cpp/init.lua
index 55555a65..8f661fe0 100644
--- a/modules/cpp/init.lua
+++ b/modules/cpp/init.lua
@@ -59,8 +59,10 @@ sense.ctags_kinds = {
s = 'classes',
t = 'classes'
}
+sense:load_ctags(_HOME..'/modules/cpp/tags', true)
+sense.api_files = { _HOME..'/modules/cpp/api' }
sense.syntax.type_declarations = {
- '(%u[%w_%.]+)[%s%*&]+%_[^%w_]', -- Foo bar, Foo *bar, Foo* bar, Foo &bar, etc.
+ '([%w_%.]+)[%s%*&]+%_[^%w_]', -- Foo bar, Foo *bar, Foo* bar, Foo &bar, etc.
}
sense:add_trigger('.')
sense:add_trigger('->')
diff --git a/modules/cpp/tags b/modules/cpp/tags
new file mode 100644
index 00000000..d7ab2dda
--- /dev/null
+++ b/modules/cpp/tags
@@ -0,0 +1,268 @@
+assert _ 0;" f
+isalnum _ 0;" f
+isalpha _ 0;" f
+iscontrl _ 0;" f
+isdigit _ 0;" f
+isgraph _ 0;" f
+islower _ 0;" f
+isprint _ 0;" f
+ispunct _ 0;" f
+isspace _ 0;" f
+isupper _ 0;" f
+isxdigit _ 0;" f
+tolower _ 0;" f
+toupper _ 0;" f
+errno _ 0;" m
+EDOM _ 0;" m
+ERANGE _ 0;" m
+FLT_RADIX _ 0;" m
+FLT_ROUNDS _ 0;" m
+FLT_DIG _ 0;" m
+DBL_DIG _ 0;" m
+LDBL_DIG _ 0;" m
+FLT_EPSILON _ 0;" m
+DBL_EPSILON _ 0;" m
+LDBL_EPSILON _ 0;" m
+FLT_MANT_DIG _ 0;" m
+DBL_MANT_DIG _ 0;" m
+LDBL_MANT_DIG _ 0;" m
+FLT_MAX _ 0;" m
+DBL_MAX _ 0;" m
+LDBL_MAX _ 0;" m
+FLT_MAX_EXP _ 0;" m
+DBL_MAX_EXP _ 0;" m
+LDBL_MAX_EXP _ 0;" m
+FLT_MIN _ 0;" m
+DBL_MIN _ 0;" m
+LDBL_MIN _ 0;" m
+FLT_MIN_EXP _ 0;" m
+DBL_MIN_EXP _ 0;" m
+LDBL_MIN_EXP _ 0;" m
+CHAR_BIT _ 0;" m
+CHAR_MAX _ 0;" m
+CHAR_MIN _ 0;" m
+SCHAR_MAX _ 0;" m
+SCHAR_MIN _ 0;" m
+UCHAR_MAX _ 0;" m
+SHRT_MAX _ 0;" m
+SHRT_MIN _ 0;" m
+USHRT_MAX _ 0;" m
+INT_MAX _ 0;" m
+INT_MIN _ 0;" m
+UINT_MAX _ 0;" m
+LONG_MAX _ 0;" m
+LONG_MIN _ 0;" m
+ULONG_MAX _ 0;" m
+lconv _ 0;" s
+decimal_point _ 0;" m class:lconv
+grouping _ 0;" m class:lconv
+thousands_sep _ 0;" m class:lconv
+currency_symbol _ 0;" m class:lconv
+int_curr_symbol _ 0;" m class:lconv
+mon_decimal_point _ 0;" m class:lconv
+mon_grouping _ 0;" m class:lconv
+mon_thousands_sep _ 0;" m class:lconv
+negative_sign _ 0;" m class:lconv
+positive_sign _ 0;" m class:lconv
+frac_digits _ 0;" m class:lconv
+int_frac_digits _ 0;" m class:lconv
+n_cs_precedes _ 0;" m class:lconv
+n_sep_by_space _ 0;" m class:lconv
+n_sign_posn _ 0;" m class:lconv
+p_cs_precedes _ 0;" m class:lconv
+p_sep_by_space _ 0;" m class:lconv
+p_sign_posn _ 0;" m class:lconv
+localeconv _ 0;" f
+setlocale _ 0;" f
+LC_ALL _ 0;" m
+LC_NUMERIC _ 0;" m
+LC_MONETARY _ 0;" m
+LC_COLLATE _ 0;" m
+LC_CTYPE _ 0;" m
+LC_TIME _ 0;" m
+NULL _ 0;" m
+HUGE_VAL _ 0;" m
+exp _ 0;" f
+log _ 0;" f
+log10 _ 0;" f
+pow _ 0;" f
+sqrt _ 0;" f
+ceil _ 0;" f
+floor _ 0;" f
+fabs _ 0;" f
+ldexp _ 0;" f
+frexp _ 0;" f
+modf _ 0;" f
+fmod _ 0;" f
+sin _ 0;" f
+cos _ 0;" f
+tan _ 0;" f
+asin _ 0;" f
+acos _ 0;" f
+atan _ 0;" f
+atan2 _ 0;" f
+sinh _ 0;" f
+cosh _ 0;" f
+tanh _ 0;" f
+jmp_buf _ 0;" f
+setjmp _ 0;" f
+longjmp _ 0;" f
+SIGABRT _ 0;" m
+SIGFPE _ 0;" m
+SIGILL _ 0;" m
+SIGINT _ 0;" m
+SIGSEGV _ 0;" m
+SIGTERM _ 0;" m
+SIG_DFL _ 0;" m
+SIG_ERR _ 0;" m
+SIG_IGN _ 0;" m
+raise _ 0;" f
+va_list _ 0;" m
+va_start _ 0;" f
+va_arg _ 0;" f
+va_end _ 0;" f
+NULL _ 0;" m
+offsetof _ 0;" f
+ptrdiff_t _ 0;" t
+size_t _ 0;" t
+BUFSIZ _ 0;" m
+EOF _ 0;" m
+FILENAME_MA _ 0;" mX
+FOPEN_MAX _ 0;" m
+L_tmpnam _ 0;" m
+NULL _ 0;" m
+SEEK_CUR _ 0;" m
+SEEK_END _ 0;" m
+SEEK_SET _ 0;" m
+TMP_MAX _ 0;" m
+_IOFBF _ 0;" m
+_IOLBF _ 0;" m
+_IONBF _ 0;" m
+stdin _ 0;" m
+stdout _ 0;" m
+stderr _ 0;" m
+FILE _ 0;" t
+fpos_t _ 0;" t
+size_t _ 0;" t
+fopen _ 0;" f
+freopen _ 0;" f
+fflush _ 0;" f
+fclose _ 0;" f
+remove _ 0;" f
+rename _ 0;" f
+tmpfile _ 0;" f
+tmpnam _ 0;" f
+setvbuf _ 0;" f
+setbuf _ 0;" f
+fprintf _ 0;" f
+printf _ 0;" f
+sprintf _ 0;" f
+vfprintf _ 0;" f
+vprintf _ 0;" f
+vsprintf _ 0;" f
+fscanf _ 0;" f
+scanf _ 0;" f
+sscanf _ 0;" f
+fgetc _ 0;" f
+fgets _ 0;" f
+fputc _ 0;" f
+fputs _ 0;" f
+getc _ 0;" f
+getchar _ 0;" f
+gets _ 0;" f
+putc _ 0;" f
+putchar _ 0;" f
+puts _ 0;" f
+ungetc _ 0;" f
+fread _ 0;" f
+fwrite _ 0;" f
+fseek _ 0;" f
+ftell _ 0;" f
+rewind _ 0;" f
+fgetpos _ 0;" f
+fsetpos _ 0;" f
+clearerr _ 0;" f
+feof _ 0;" f
+ferror _ 0;" f
+perror _ 0;" f
+EXIT_FAILURE _ 0;" m
+EXIT_SUCCESS _ 0;" m
+RAND_MAX _ 0;" m
+NULL _ 0;" m
+div_t _ 0;" s
+quot _ 0;" m class:div_t
+rem _ 0;" m class:div_t
+ldiv_t _ 0;" s
+qout _ 0;" m class:ldiv_t
+rem _ 0;" m class:ldiv_t
+size_t _ 0;" t
+abs _ 0;" f
+labs _ 0;" f
+div _ 0;" f
+ldiv _ 0;" f
+atof _ 0;" f
+atoi _ 0;" f
+atol _ 0;" f
+strtod _ 0;" f
+strtol _ 0;" f
+strtoul _ 0;" f
+calloc _ 0;" f
+malloc _ 0;" f
+realloc _ 0;" f
+free _ 0;" f
+abort _ 0;" f
+exit _ 0;" f
+atexit _ 0;" f
+system _ 0;" f
+getenv _ 0;" f
+bsearch _ 0;" f
+qsort _ 0;" f
+rand _ 0;" f
+srand _ 0;" f
+NULL _ 0;" m
+size_t _ 0;" t
+strcpy _ 0;" f
+strncpy _ 0;" f
+strcat _ 0;" f
+strncat _ 0;" f
+strcmp _ 0;" f
+strncmp _ 0;" f
+strcoll _ 0;" f
+strchr _ 0;" f
+strrchr _ 0;" f
+strspn _ 0;" f
+strcspn _ 0;" f
+strpbrk _ 0;" f
+strstr _ 0;" f
+strlen _ 0;" f
+strerror _ 0;" f
+strtok _ 0;" f
+strxfrm _ 0;" f
+memcpy _ 0;" f
+memmove _ 0;" f
+memcmp _ 0;" f
+memchr _ 0;" f
+memset _ 0;" f
+CLOCKS_PER_SEC _ 0;" m
+NULL _ 0;" m
+clock_t _ 0;" t
+time_t _ 0;" t
+tm _ 0;" s
+tm_set _ 0;" m class:tm
+tm_min _ 0;" m class:tm
+tm_hour _ 0;" m class:tm
+tm_mday _ 0;" m class:tm
+tm_mon _ 0;" m class:tm
+tm_year _ 0;" m class:tm
+tm_wday _ 0;" m class:tm
+tm_yday _ 0;" m class:tm
+tm_isdst _ 0;" m class:tm
+clock _ 0;" f
+time _ 0;" f
+difftime _ 0;" f
+mktime _ 0;" f
+asctime _ 0;" f
+ctime _ 0;" f
+gmtime _ 0;" f
+localtime _ 0;" f
+strftime _ 0;" f