diff options
Diffstat (limited to 'trio/doc')
-rw-r--r-- | trio/doc/doc.h | 161 | ||||
-rw-r--r-- | trio/doc/doc_dynamic.h | 31 | ||||
-rw-r--r-- | trio/doc/doc_printf.h | 532 | ||||
-rw-r--r-- | trio/doc/doc_register.h | 357 | ||||
-rw-r--r-- | trio/doc/doc_scanf.h | 120 | ||||
-rw-r--r-- | trio/doc/doc_static.h | 61 | ||||
-rw-r--r-- | trio/doc/footer.html | 4 | ||||
-rw-r--r-- | trio/doc/header.html | 8 | ||||
-rw-r--r-- | trio/doc/trio.cfg | 873 | ||||
-rw-r--r-- | trio/doc/trio.css | 35 |
10 files changed, 2182 insertions, 0 deletions
diff --git a/trio/doc/doc.h b/trio/doc/doc.h new file mode 100644 index 00000000..4b368f46 --- /dev/null +++ b/trio/doc/doc.h @@ -0,0 +1,161 @@ +/************************************************************************* + * + * $Id: doc.h,v 1.12 2002/12/08 10:42:49 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** +@mainpage + +@author Bjørn Reese +@author Daniel Stenberg + +@section intro Introduction + +Trio is a fully matured and stable set of printf and string functions +designed be used by applications with focus on portability or with the +need for additional features that are not supported by standard stdio +implementation. + +There are several cases where you may want to consider using trio: + +@li Portability across heterogeneous platforms. +@li Embedded systems without stdio support. +@li Extendability of unsupported features. +@li Your native version does not do everything you need. + +When you write applications that must be portable to a wide range of +platforms you often have to deal with inadequate implementations of the +stdio library functions. Most notably is the lack of secure formatting +functions, such as snprintf, or the lack of parameter reordering commonly +used for the internationalization of applications, such as the <num>$ +modifier. Sometimes the feature you need is simply not present in stdio. +So you end up spending much effort on determining which platforms supports +what, and to write your own versions of various features. This is where +trio can help you. Trio is a platform-independent implementation of the +stdio printf and scanf functions and the string library functions. + +The functionality described in the stdio standards is a compromise, and +does unfortunately not include a mechanism to extend the functionality for +an individual application. Oftentimes an application has the need for an +extra feature, and the application code can become much more clear and +readable by using an extension mechanism. Trio supports a range of useful +extensions such as user-defined specifiers, passing of arguments in arrays, +localized string scanning, thousand-separators, and arbitrary integer bases. + +Trio fully implements the C99 (ISO/IEC 9899:1999) and UNIX98 (the Single +Unix Specification, Version 2) standards, as well as many features from +other implemenations, e.g. the GNU libc and BSD4. + +@section examples Examples + +@subsection ex1 Binary Numbers +Output an integer as a binary number using a trio extension. +@verbatim + trio_printf("%..2i\n", number); +@endverbatim + +@subsection ex2 Thousand-separator +Output a number with thousand-separator using a trio extension. +@verbatim + trio_printf("%'f\n", 12345.6); +@endverbatim +The thousand-separator described by the locale is used. + +@subsection ex3 Fixed Length Array and Sticky Modifier +Output an fixed length array of floating-point numbers. +@verbatim + double array[] = {1.0, 2.0, 3.0}; + printf("%.2f %.2f %.2f\n", array[0], array[1], array[2]); +@endverbatim +The same with two trio extensions (arguments are passed in an array, and +the first formatting specifier sets the sticky option so we do not have +to type all the formatting modifiers for the remaining formatting specifiers) +@verbatim + trio_printfv("%!.2f %f %f\n", array); +@endverbatim +Another, and more powerful, application of being able to pass arguments in +an array is the creation of the printf/scanf statement at run-time, where +the formatting string, and thus the argument list, is based on an external +configuration file. + +@subsection ex4 Localized scanning +Parse a string consisting of one or more upper-case alphabetic characters +followed by one or more numeric characters. +@verbatim + sscanf(buffer, "%[A-Z]%[0-9]", alphabetic, numeric); +@endverbatim +The same but with locale using a trio extension. +@verbatim + trio_sscanf(buffer, "%[[:upper:]]%[[:digit:]]", alphabetic, numeric); +@endverbatim + +@section legal Legal Issues +Trio is distributed under the following license, which allows practically +anybody to use it in almost any kind of software, including proprietary +software, without difficulty. + +"Copyright (C) 1998-2001 Bjorn Reese and Daniel Stenberg. + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND +CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER." + +@section contribution Contribution + +@subsection contribute Contribute +We appreciate any type of contribution, from ideas over improvements to +error corrections. + +The project space contains references to bug and feature tracking, +mailing-list, and the CVS repository. We prefer communication via the +mailing-list, but do not require you to be subscribed, because trio is a +small project. + +The project space is located at http://sourceforge.net/projects/ctrio/ + +@subsection contributors Contributors +We have received contributions from the following persons (in alphabetic +order sorted by surname) + +@li Craig Berry +@li Stan Boehm +@li Robert Collins +@li Danny Dulai +@li John Fotheringham +@li Markus Henke +@li Ken Gibson +@li Paul Janzen +@li Richard Jinks +@li Tero Jänkä +@li Howard Kapustein +@li Rune Enggaard Lausen +@li Mehdi Lavasani +@li Alexander Lukyanov +@li Emmanuel Mogenet +@li Jacob Navia +@li Jose Ortiz +@li Joe Orton +@li Gisli Ottarsson +@li Marc Werwerft +@li Igor Zlatkovic + +Please let us know, and accept our apology, if we have omitted anybody. + +*/ diff --git a/trio/doc/doc_dynamic.h b/trio/doc/doc_dynamic.h new file mode 100644 index 00000000..92482676 --- /dev/null +++ b/trio/doc/doc_dynamic.h @@ -0,0 +1,31 @@ +/************************************************************************* + * + * $Id: doc_dynamic.h,v 1.1 2001/12/27 17:29:20 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** @addtogroup DynamicStrings Dynamic String Functions. +Dynamic string functions. + +@b SYNOPSIS + +@verbatim +cc ... -ltrio -lm + +#include <triostr.h> +@endverbatim + +@b DESCRIPTION + +*/ diff --git a/trio/doc/doc_printf.h b/trio/doc/doc_printf.h new file mode 100644 index 00000000..4321cd5c --- /dev/null +++ b/trio/doc/doc_printf.h @@ -0,0 +1,532 @@ +/************************************************************************* + * + * $Id: doc_printf.h,v 1.3 2002/05/07 16:26:00 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** @addtogroup Printf Formatted Printing Functions. +Variations of formatted printing functions. + +@b SYNOPSIS + +@verbatim +cc ... -ltrio -lm + +#include <trio.h> +@endverbatim + +@b DESCRIPTION + +This documentation is incomplete. +The documentation of the printf family in [C99] and [UNIX98] also applies +to the trio counterparts. + +All these functions outputs a string which is formatted according to the +@p format string and the consecutive arguments. The @p format string is +described in the Formatting section below. + +@ref trio_printf, @ref trio_vprintf, and @ref trio_printfv writes the +output to the standard output stream (stdout). + +@ref trio_fprintf, @ref trio_vfprintf, and @ref trio_fprintfv writes the +output to a given output stream. + +@ref trio_dprintf, @ref trio_vdprintf, and @ref trio_dprintfv writes the +output to a file descriptor (this includes, for example, sockets). + +@ref trio_sprintf, @ref trio_vsprintf, and @ref trio_sprintfv writes the +output into @p buffer. + +@ref trio_snprintf, @ref trio_vsnprintf, and @ref trio_snprintfv writes @p +max - 1 characters into @p buffer followed by a terminating zero character. +If @p max is 1, then @p buffer will be an empty string. If @p max is 0, +then @p buffer is left untouched, and can consequently be NULL. The number +of characters that would have been written to @p buffer, had there been +sufficient space, is returned. + +@ref trio_snprintfcat appends the formatted text at the end of @p buffer. + +@ref trio_asprintf and @ref trio_vasprintf allocates and returns an +allocated string in @p buffer containing the formatted text. + +@b FORMATTING + +The @p format string can contain normal text and conversion indicators. +The normal text can be any character except the nil character (\000 = +'\0') and the percent character (\045 = '%'). Conversion indicators +consists of an indication character (%), followed by zero or more conversion +modifiers, and exactly one conversion specifier. + +@b Modifiers + +Some modifiers exhibit the same behaviour for all specifiers, other modifiers +indicate different behaviours for different specifiers, and other modifiers +are only applicable to certain specifiers. The relationship is described for +each modifier. The number 9 is used to denotes an arbitrary integer. + +@em Positional ( @c 9$ ) [UNIX98] + +Normally the arguments supplied to these functions are interpreted +incrementially from left to right. Arguments can be referenced specifically in +the format string. The modifier n$ selects the nth argument. The first +argument is referred as 1$. If this modifier is used, it must be the first +modifier after the indication character. n$ can also be used for argument +width, precision, and base. + +The performance penalty of using positionals is almost neglible (contrary to +most other printf implementations). + +@li @em Reference @em Mix. +Mixing normal and positional specifiers is allowed [TRIO]. For example, +@verbatim + trio_printf("%d %3$d %2$d\n", 1, 2, 3); +@endverbatim +results in +@verbatim + 1 3 2 +@endverbatim +Arguments for the printf family are passed on the stack. On most platforms it +is not possible to determine the size of individual stack elements, so it is +essential that the format string corresponds exactly to the passed arguments. +If this is not the case, incorrect values may be put into the result. + +@li @em Reference @em Gap. +For the same reason it is also essential that the format string does not +contain any "gaps" in the positional arguments. For example, +@verbatim + trio_printf("%1$d %3$d\n", 1, 2, 3); +@endverbatim +is NOT allowed. The format string parser has no knowledge about whether the +second argument is, say, an integer or a long double (which have different +sizes). +@verbatim +@endverbatim +[UNIX98] describes this as unspecified behaviour. [TRIO] will detect reference +gaps and return an error. + +@li @em Double @em Reference. +It is also not allowed to reference an argument twice or more. For example, +@verbatim + trio_printf("%1$d %1$lf\n", 1); +@endverbatim +is NOT allowed, because it references the first argument as two differently +sized objects. +@verbatim +@endverbatim +[UNIX98] describes this as unspecified behaviour. [TRIO] will detect double +references and return an error. + +The following two statements are equivalent +@verbatim + trio_printf("|%d %s\n|", 42, "meanings"); + |42 meanings| + + trio_printf("|%1$d %2$s|\n", 42, "meanings"); + |42 meanings| +@endverbatim + +@em Width ( @c 9 ) + +Specifies the minimum width of a field. If the fields has less characters than +specified by the width, the field will be left adjusted and padded by spaces. +The adjustment and padding can be changed by the Alignment ( @c - ) and +Padding ( @c 0 ) modifiers. + +The width is specified as a number. If an asterix ( @c * ) is used instead, the +width will be read from the argument list. + +Prefixes, such as 0x for hexadecimal integers, are part of width. +@verbatim + trio_printf("|%10i|\n", 42); + | 42| +@endverbatim + +@em Precision ( @c .9 ) + +The precision has different semantics for the various data types. +The precision specifies the maximum number of printed characters for strings, +the number of digits after the decimal-point for floating-point numbers, +the number of significant digits for the @c g (and @c G) representation of +floating-point numbers, the minimum number of printed digits for integers. +@verbatim + trio_printf("|%10.8i|%.8i|\n", 42, 42); + | 00000042|00000042| +@endverbatim + +@em Base ( @c ..9 ) [TRIO] + +Sets the base that the associated integer must be converted to. The base can +be between 2 and 36 (both included). +@verbatim + trio_printf("|%10.8.2i|%10..2i|%..2i|\n", 42, 42, 42); + | 00101010| 101010|101010| + + trio_printf("|%*.8.*i|\n", 10, 2, 42); + | 00101010| +@endverbatim + +@em Padding ( @c 0 ) + +Integer and floating point numbers are prepended by zeros. The number of +leading zeros are determined by the precision. If precision is not present, +width is used instead. + +@em Short ( @c h ) + +Integer arguments are read as an ( @c unsigned ) @c short @c int. String +and character arguments are read as @c char @c * and @c char respectively. + +@em Short @em short ( @c hh ) [C99, GNU] + +The argument is read as an ( @c unsigned ) @c char. + +@em Fixed @em Size ( @c I ) [MSVC] + +The argument is read as a fixed sized integer. The modifier is followed by +a number, which specifies the number of bits in the integer, and can be one +of the following + +@li @c I8 +@li @c I16 +@li @c I32 +@li @c I64 (if 64-bits integers are supported) + +Works only for integers (i, u, d, o, x, X) + +@em Largest ( @c j ) [C99] + +The argument is read as an @c intmax_t / @c uintmax_t, which is defined to +be the largest signed/unsigned integer. + +@em Long ( @c l ) + +An integral argument is read as an ( @c unsigned ) @c long @c int. A string +argument is read as a @c wchar_t @c *, and output as a multi-byte character +sequence. + +@em Long @em long ( @c ll ) [C99, UNIX98, GNU] + +The argument is read as an ( @c unsigned ) @c long @c long @c int. + +@em Long @em double ( @c L ) [C99, UNIX98, GNU] + +The argument is read as a @c long @c double. + +@em ptrdiff_t ( @c t ) [C99] + +The argument is read as a @c ptrdiff_t, which is defined to be the signed +integer type of the result of subtracting two pointers. + +@em Quad ( @c q ) [BSD, GNU] + +Corresponds to the long long modifier ( @c ll ). + +@em Wide ( @c w ) [MISC] + +For a string argument this is equivalent to using the long modifier ( @c l ). + +@em size_t ( @c z ) [C99] + +The argument is read as a @c size_t, which is defined to be the type +returned by the @c sizeof operator. + +@em size_t ( @c Z ) [GNU] + +Corresponds to the size_t modifier ( @c z ). + +@em Alternative ( @c # ) + +Prepend radix indicator for hexadecimal, octal, and binary integer numbers +and for pointers. +Always add a decimal-pointer for floating-point numbers. +Escape non-printable characters for strings. + +@em Spacing ( ) + +Prepend leading spaces when necessary. + +@em Sign ( @c + ) + +Always prepend a sign to numbers. Normally only the negative sign is prepended +to a number. With this modifier the positive sign may also be prepended. + +@em Alignment ( @c - ) + +The output will be left-justified in the field specified by the width. + +@em Argument ( @c * ) + +Width, precision, or base is read from the argument list, rather than from +the formatting string. + +@em Quote / @em Grouping ( @c ' ) [MISC] + +Groups integers and the integer-part of floating-point numbers according to +the locale. Quote strings and characters. + +@em Sticky ( @c ! ) [TRIO] + +The modifiers listed for the current specifier will be reused by subsequent +specifiers of the same group. +The following specifier groups exists +@li Integer ( @c i, @c u, @c d, @c o, @c x, @c X ) +@li Floating-point ( @c f, @c F, @c e, @c E, @c g, @c G, @c a, @c A ) +@li Character ( @c c ) +@li String ( @c s ) +@li Pointer ( @c p ) +@li Count ( @c n ) +@li Errno ( @c m ) +@li Group ( @c [] ) + +The sticky modifiers are active until superseeded by other sticky modifiers, +or the end of the format string is reached. +Local modifiers overrides sticky modifiers for the given specifier only. +@verbatim + trio_printf("|%!08#x|%04x|%x|\n", 42, 42, 42); + |0x00002a|0x2a|0x00002a| +@endverbatim + +@b Specifiers + +@em Percent ( @c % ) + +Produce a percent ( @c % ) character. This is used to quote the indication +character. No modifiers are allowed. +The full syntax is @c %%. +@verbatim + trio_printf("Percent is %%\n"); + Percent is % +@endverbatim + +@em Hex @em floats ( @c a, @c A ) [C99] + +Output a hexadecimal (base 16) representation of a floating point number. The +number is automatically preceeded by @c 0x ( or @c 0X ). The exponent is +@c p ( or @c P ). +@verbatim + trio_printf("|%a|%A|\n", 3.1415, 3.1415e20); + |0x3.228bc|0X3.228BCP+14| +@endverbatim + +@em Binary @em numbers ( @c b, @c B ) [MISC - SCO UnixWare 7] + +DEPRECATED: Use Base modifier @c %..2i instead. + +@em Character ( @c c ) + +Output a single character. + +@li Quote ( @c ' ) [TRIO]. +Quote the character. + +@em Decimal ( @c d ) + +Output a decimal (base 10) representation of a number. + +@li Grouping ( @c ' ) [TRIO]. +The number is separated by the locale thousand separator. +@verbatim + trio_printf("|%'ld|\n", 1234567); + |1,234,567| +@endverbatim + +@em Floating-point ( @c e, @c E) + +Output a decimal floating-point number. +The style is @c [-]9.99e[-]9, where +@li @c [-]9.99 is the mantissa (as described for the @c f, @c F specifier), and +@li @c e[-]9 is the exponent indicator (either @c e or @c E, depending on the +floating-point specifier), followed by an optional sign and the exponent + +If the precision is wider than the maximum number of digits that can be +represented by the floating-point unit, then the number will be adequately +rounded. For example, assuming DBL_DIG is 15 +@verbatim + trio_printf("|%.18e|\n", (1.0 / 3.0)); + |3.333333333333333000e-01| +@endverbatim + +@em Floating-point ( @c f, @c F ) + +Output a decimal floating-point number. +The style is @c [-]9.99, where +@li @c [-] is an optional sign (either @c + or @c -), +@li @c 9 is the integer-part (possibly interspersed with thousand-separators), +@li @c . is the decimal-point (depending on the locale), and +@li @c 99 is the fractional-part. + +If more digits are needed to output the number, than can be represented with +the accuracy of the floating-point unit, then the number will be adequately +rounded. For example, assuming that DBL_DIG is 15 +@verbatim + trio_printf("|%f|\n", (2.0 / 3.0) * 1E18); + |666666666666666700.000000| +@endverbatim + +The following modifiers holds a special meaning for this specifier +@li Alternative ( @c # ) [C99]. +Add decimal point. +@li Grouping ( @c ' ) [TRIO]. +Group integer part of number into thousands (according to locale). + +@em Floating-point ( @c g, @c G) + +Output a decimal floating-point representation of a number. The format of +either the @c f, @c F specifier or the @c e, @c E specifier is used, whatever +produces the shortest result. + +@em Integer ( @c i ) + +Output a signed integer. Default base is 10. + +@em Errno ( @c m ) [GNU] + +@em Count ( @c n ) + +Insert into the location pointed to by the argument, the number of octets +written to the output so far. + +@em Octal ( @c o ) + +Output an octal (base 8) representation of a number. + +@em Pointer ( @c p ) + +Ouput the address of the argument. The address is printed as a hexadecimal +number. If the argument is the NULL pointer the text @c (nil) will be used +instead. +@li Alternative ( @c # ) [TRIO]. +Prepend 0x + +@em String ( @c s, @c S ) + +Output a string. The argument must point to a zero terminated string. If the +argument is the NULL pointer the text @c (nil) will be used instead. +@c S is equivalent to @c ls. +@li Alternative ( @c # ) [TRIO]. +Escape non-printable characters. + +Non-printable characters are converted into C escapes, or hexadecimal numbers +where no C escapes exists for the character. The C escapes, the hexadecimal +number, and all backslashes are prepended by a backslash ( @c \ ). +The supported C escapes are +@li @c \a (\007) = alert +@li @c \b (\010) = backspace +@li @c \f (\014) = formfeed +@li @c \n (\012) = newline +@li @c \r (\015) = carriage return +@li @c \t (\011) = horizontal tab +@li @c \v (\013) = vertical tab + +@verbatim + trio_printf("|One %s Three|One %'s Three|\n", "Two", "Two"); + |One Two Three|One "Two" Three| + + trio_printf("|Argument missing %s|\n", NULL); + |Argument missing (nil)| + + trio_printf("|%#s|\n", "\007 \a."); + |\a \a.| +@endverbatim + +@em Unsigned ( @c u ) + +Output an unsigned integer. Default base is 10. + +@em Hex ( @c x, @c X ) + +Output a hexadecimal (base 16) representation of a number. + +@li Alternative ( @c # ). +Preceed the number by @c 0x ( or @c 0X ). The two characters are counted +as part of the width. + +@em User-defined ( @c <> ) + +Invoke user-defined formatting. +See @ref trio_register for further information. + +@b RETURN @b VALUES + +All functions returns the number of outputted characters. If an error occured +then a negative error code is returned [TRIO]. Note that this is a deviation +from the standard, which simply returns -1 (or EOF) and errno set +appropriately. +The error condition can be detected by checking whether the function returns +a negative number or not, and the number can be parsed with the following +macros. The error codes are primarily intended as debugging aide for the +developer. + +@li TRIO_EINVAL: Invalid argument. +@li TRIO_ETOOMANY: Too many arguments. +@li TRIO_EDBLREF: Double argument reference. +@li TRIO_EGAP: Argument reference gap. +@li TRIO_ENOMEM: Out of memory. +@li TRIO_ERANGE: Invalid range. +@li TRIO_ERRNO: The error is specified by the errno variable. + +Example: +@verbatim + int rc; + + rc = trio_printf("%r\n", 42); + if (rc < 0) { + if (TRIO_ERROR_CODE(rc) != TRIO_EOF) { + trio_printf("Error: %s at position %d\n", + TRIO_ERROR_NAME(rc), + TRIO_ERROR_POSITION(rc)); + } + } +@endverbatim + +@b SEE @b ALSO + +@e trio_scanf, @e trio_register. + +@b NOTES + +The printfv family uses an array rather than the stack to pass arguments. +This means that @c short @c int and @c float values will not be handled by +the default argument promotion in C. Instead, these values must be explicitly +converted with the Short (h) modifier in both cases. + +Example: +@verbatim + void *array[2]; + float float_number = 42.0; + short short_number = 42; + + array[0] = &float_number; + array[1] = &short_number; + + trio_printfv("%hf %hd\n", array); /* CORRECT */ + trio_printfv("%f %d\n", array); /* WRONG */ +@endverbatim + +@b CONFORMING @b TO + +Throughout this document the following abbreviations have been used to +indicate what standard a feature conforms to. If nothing else is indicated +ANSI C (C89) is assumed. + +@li [C89] ANSI X3.159-1989 +@li [C99] ISO/IEC 9899:1999 +@li [UNIX98] The Single UNIX Specification, Version 2 +@li [BSD] 4.4BSD +@li [GNU] GNU libc +@li [MSVC] Microsoft Visual C +@li [MISC] Other non-standard sources +@li [TRIO] Extensions specific for this package + +*/ diff --git a/trio/doc/doc_register.h b/trio/doc/doc_register.h new file mode 100644 index 00000000..03610bfa --- /dev/null +++ b/trio/doc/doc_register.h @@ -0,0 +1,357 @@ +/************************************************************************* + * + * $Id: doc_register.h,v 1.2 2002/04/20 13:28:09 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** @addtogroup UserDefined User-defined Formatted Printing Functions. +Functions for using customized formatting specifiers. + +@b SYNOPSIS + +@verbatim +cc ... -ltrio -lm + +#include <trio.h> +#include <triop.h> +@endverbatim + +@b DESCRIPTION + +This documentation is incomplete. + +@b User-defined @b Specifier + +The user-defined specifier consists of a start character (\074 = '<'), an +optional namespace string followed by a namespace separator (\072 = ':'), +a format string, and an end character (\076 = '>'). + +The namespace string can consist of alphanumeric characters, and is used to +define a named reference (see below). The namespace is case-sensitive. If no +namespace is specified, then we use an unnamed reference (see below). + +The format can consist of any character except the end character ('>'), the +namespace separator (':'), and the nil character (\000). + +Any modifier can be used together with the user-defined specifier. + +@b Registering + +A user-defined specifier must be registered before it can be used. +Unregistered user-defined specifiers are ignored. The @ref trio_register +function is used to register a user-defined specifier. It takes two argument, +a callback function and a namespace, and it returns a handle. The handle must +be used to unregister the specifier later. + +The following example registers a user-define specifier with the "my_namespace" +namespace: + +@verbatim + my_handle = trio_register(my_callback, "my_namespace"); +@endverbatim + +There can only be one user-defined specifier with a given namespace. There +can be an unlimited number (subject to maximum length of the namespace) of +different user-defined specifiers. + +Passing NULL as the namespace argument results in an anonymous reference. +There can be an unlimited number of anonymous references. + +@b REFERENCES + +There are two ways that a registered callback can be called. Either the +user-defined specifier must contain the registered namespace in the format +string, or the handle is passed as an argument to the formatted printing +function. + +If the namespace is used, then a user-defined pointer must be passed as an +argument: + +@verbatim + trio_printf("<my_namespace:format>\n", my_data); +@endverbatim + +If the handle is used, then the user-defined specifier must not contain a +namespace. Instead the handle must be passed as an argument, followed by a +user-defined pointer: + +@verbatim + trio_printf("<format>\n", my_handle, my_data); +@endverbatim + +The two examples above are equivalent. + +There must be exactly one user-defined pointer per user-defined specifier. +This pointer can be used within the callback function with the +@ref trio_get_argument getter function (see below). + +The format string is optional. It can be used within the callback function +with the @ref trio_get_format getter function. + +@b Anonymous @b References +Anonymous references are specified by passing NULL as the namespace. + +The handle must be passed as an argument followed by a user-defined pointer. +No namespace can be specified. + +@verbatim + anon_handle = trio_register(callback, NULL); + trio_printf("<format>\n", anon_handle, my_data); +@endverbatim + +@b Restrictions + +@li The length of the namespace string cannot exceed 63 characters. +@li The length of the user-defined format string cannot exceed 255 characters. +@li User-defined formatting cannot re-define existing specifiers. +This restriction was imposed because the existing formatting specifiers have +a well-defined behaviour, and any re-definition would apply globally to an +application (imagine a third-party library changing the behaviour of a +specifier that is crusial to your application). + +@b CALLBACK @b FUNCTION + +The callback function will be called if a matching user-defined specifier +is found within the formatting string. The callback function takes one input +parameter, an opaque reference which is needed by the private functions. It +returns an @c int, which is currently ignored. The prototype is + +@verbatim + int (*trio_callback_t)(void *ref); +@endverbatim + +See the Example section for full examples. + +@b PRINTING @b FUNCTIONS + +The following printing functions must only be used inside a callback function. +These functions will print to the same output medium as the printf function +which invoked the callback function. For example, if the user-defined +specifier is used in an sprintf function, then these print functions will +output their result to the same string. + +@b Elementary @b Printing + +There are a number of function to print elementary data types. + +@li @ref trio_print_int Print a signed integer. For example: +@verbatim + trio_print_int(42); +@endverbatim +@li @ref trio_print_uint Print an unsigned integer. +@li @ref trio_print_double Print a floating-point number. +@li @ref trio_print_string Print a string. For example: +@verbatim + trio_print_string("Hello World"); + trio_print_string(trio_get_format()); +@endverbatim +@li @ref trio_print_pointer Print a pointer. + +@b Formatted @b Printing + +The functions @ref trio_print_ref, @ref trio_vprint_ref, and +@ref trio_printv_ref outputs a formatted string just like its printf +equivalents. + +@verbatim + trio_print_ref(ref, "There are %d towels\n", 42); + trio_print_ref(ref, "%<recursive>\n", recursive_writer, trio_get_argument()); +@endverbatim + +@b GETTER @b AND @b SETTER @b FUNCTIONS + +The following getter and setter functions must only be used inside a callback +function. They can either operate on the modifiers or on special data. + +@b Modifiers + +The value of a modifier, or a boolean indication of its presence or absence, +can be found or set with the getter and setter functions. +The generic prototypes of the these getter and setter functions are + +@verbatim + int trio_get_???(void *ref); + void trio_set_???(void *ref, int); +@endverbatim + +where @c ??? refers to a modifier. For example, to get the width of the +user-defined specifier use + +@verbatim + int width = trio_get_width(ref); +@endverbatim + +@b Special @b Data + +Consider the following user-defined specifier, in its two possible referencing +presentations. + +@verbatim + trio_printf("%<format>\n", namespace_writer, argument); + trio_printf("%<namespace:format>\n", argument); +@endverbatim + +@ref trio_get_format will get the @p format string, and +@ref trio_get_argument} will get the @p argument parameter. +There are no associated setter functions. + +@b EXAMPLES + +The following examples show various types of user-defined specifiers. Although +each specifier is demonstrated in isolation, they can all co-exist within the +same application. + +@b Time @b Example + +Print the time in the format "HOUR:MINUTE:SECOND" if "time" is specified inside +the user-defined specifier. + +@verbatim + static int time_writer(void *ref) + { + const char *format; + time_t *data; + char buffer[256]; + + format = trio_get_format(ref); + if ((format) && (strcmp(format, "time") == 0)) { + data = trio_get_argument(ref); + if (data == NULL) + return -1; + strftime(buffer, sizeof(buffer), "%H:%M:%S", localtime(data)); + trio_print_string(ref, buffer); + } + return 0; + } +@endverbatim + +@verbatim + int main(void) + { + void *handle; + time_t now = time(NULL); + + handle = trio_register(time_print, "my_time"); + + trio_printf("%<time>\n", handle, &now); + trio_printf("%<my_time:time>\n", &now); + + trio_unregister(handle); + return 0; + } +@endverbatim + +@b Complex @b Numbers @b Example + +Consider a complex number consisting of a real part, re, and an imaginary part, +im. + +@verbatim + struct Complex { + double re; + double im; + }; +@endverbatim + +This example can print such a complex number in one of two formats. +The default format is "re + i im". If the alternative modifier is used, then +the format is "r exp(i theta)", where r is the length of the complex vector +(re, im) and theta is its angle. + +@verbatim + static int complex_print(void *ref) + { + struct Complex *data; + const char *format; + + data = (struct Complex *)trio_get_argument(ref); + if (data) { + format = trio_get_format(ref); + + if (trio_get_alternative(ref)) { + double r, theta; + + r = sqrt(pow(data->re, 2) + pow(data->im, 2)); + theta = acos(data->re / r); + trio_print_ref(ref, "%#f exp(i %#f)", r, theta); + + } else { + trio_print_ref(ref, "%#f + i %#f", data->re, data->im); + } + } + return 0; + } +@endverbatim + +@verbatim + int main(void) + { + void *handle; + + handle = trio_register(complex_print, "complex"); + + /* Normal format. With handle and the with namespace */ + trio_printf("%<>\n", handle, &complex); + trio_printf("%<complex:>\n", &complex); + /* In exponential notation */ + trio_printf("%#<>\n", handle, &complex); + trio_printf("%#<complex:unused data>\n", &complex); + + trio_unregister(handle); + return 0; + } +@endverbatim + +@b RETURN @b VALUES + +@ref trio_register returns a handle, or NULL if an error occured. + +@b SEE @b ALSO + +@ref trio_printf + +@b NOTES + +User-defined specifiers, @ref trio_register, and @ref trio_unregister are +not thread-safe. In multi-threaded applications they must be guarded by +mutexes. Trio provides two special callback functions, called ":enter" and +":leave", which are invoked every time a thread-unsafe operation is attempted. +As the thread model is determined by the application, these callback functions +must be implemented by the application. + +The following callback functions are for demonstration-purposes only. +Replace their bodies with locking and unlocking of a mutex to achieve +thread-safety. +@verbatim + static int enter_region(void *ref) + { + fprintf(stderr, "Enter Region\n"); + return 1; + } + + static int leave_region(void *ref) + { + fprintf(stderr, "Leave Region\n"); + return 1; + } +@endverbatim +These two callbacks must be registered before other callbacks are registered. +@verbatim + trio_register(enter_region, ":enter"); + trio_register(leave_region, ":leave"); + + another_handle = trio_register(another_callback, NULL); +@endverbatim + +*/ diff --git a/trio/doc/doc_scanf.h b/trio/doc/doc_scanf.h new file mode 100644 index 00000000..4d997d40 --- /dev/null +++ b/trio/doc/doc_scanf.h @@ -0,0 +1,120 @@ +/************************************************************************* + * + * $Id: doc_scanf.h,v 1.1 2001/12/27 17:29:20 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** @addtogroup Scanf Formatted Scanning Functions. +Variations of formatted scanning functions. + +@b SYNOPSIS + +@verbatim +cc ... -ltrio -lm + +#include <trio.h> +@endverbatim + +@b DESCRIPTION + +This documentation is incomplete. +The documentation of the scanf family in [C99] and [UNIX98] also applies +to the trio counterparts. + +@b SCANNING + +The scanning is controlled by the format string. +The format string can contain normal text and conversion indicators. +The normal text can be any character except the nil character +(\000) and the percent character (\045 = '\%'). +Conversion indicators consists of an indication character (%), followed by +zero or more conversion modifiers, and exactly one conversion specifier. + +@b Modifiers + +@em Positional ( @c 9$ ) [UNIX98] + +See @ref trio_printf. + +@b Specifiers + +@em Percent ( @c % ) + +@em Character ( @c c ) + +@em Decimal ( @c d ) + +@em Floating-point ( @c a, @c A, @c e, @c E, @c f, @c F, @c g, @c G ) + +@em Integer ( @c i ) + +@em Count ( @c n ) + +@em Octal ( @c o ) + +@em Pointer ( @c p ) + +@em String ( @c s ) + +@em Unsigned ( @c u ) + +@em Hex ( @c x, @c X ) + +@em Scanlist ( @c [] ) + +Scanlist Exclusion (@c ^ ) + +Scanlist Range ( @c - ) [TRIO] + +@li Only increasing ranges, i.e. @c [a-b], but not @c [b-a]. +@li Transitive ranges, ie. @c [a-b-c] equals @c [a-c]. +@li Trailing minus, ie. @c [a-] is interpreted as an @c a and a @c -. +@li Duplicates are ignored. + +Scanlist Equivalence Class Expression ( @c [= @c =] ) [TRIO] + +Locale dependent (LC_COLLATE). +Only one expression can appear inside the delimiters. +@li @c [=a=] All letters in the same equivalence class as the letter @c a. +@verbatim + trio_scanf("%[[=a=]b]\n", buffer); + trio_scanf("%[[=a=][=b=]]\n", buffer); +@endverbatim + +Scanlist Character Class Expression ( @c [: @c :]) [TRIO] +Locale dependent (LC_CTYPE). +Only one expression can appear inside the delimiters. +@li @c [:alnum:] Same as @c [:alpha:] and @c [:digit:] +@li @c [:alpha:] Same as @c [:lower:] and @c [:upper:] +@li @c [:cntrl:] Control characters +@li @c [:digit:] Decimal digits +@li @c [:graph:] Printable characters except space +@li @c [:lower:] Lower case alphabetic letters +@li @c [:print:] Printable characters +@li @c [:punct:] Punctuation +@li @c [:space:] Whitespace characters +@li @c [:upper:] Upper case alphabetic letters +@li @c [:xdigit:] Hexadecimal digits +@verbatim + trio_scanf("%[[:alnum:]]\n", buffer); + trio_scanf("%[[:alpha:][:digit:]]\n", buffer); +@endverbatim + +@b RETURN @b VALUES + +@b SEE @b ALSO + +@ref trio_printf + +*/ diff --git a/trio/doc/doc_static.h b/trio/doc/doc_static.h new file mode 100644 index 00000000..6816196d --- /dev/null +++ b/trio/doc/doc_static.h @@ -0,0 +1,61 @@ +/************************************************************************* + * + * $Id: doc_static.h,v 1.1 2001/12/27 17:29:20 breese Exp $ + * + * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + * + ************************************************************************/ + +/** @addtogroup StaticStrings Static String Functions. +Replacements for the standard C string functions. + +@b SYNOPSIS + +@verbatim +cc ... -ltrio -lm + +#include <triostr.h> +@endverbatim + +@b DESCRIPTION + +This package renames, fixes, and extends the standard C string handling +functions. + +@b Naming + +Renaming is done to provide more clear names, to provide a consistant naming +and argument policy, and to hide portability issues. + +@li All functions starts with "trio_". +@li Target is always the first argument, if present, except where the target +is optional, such as @ref trio_to_double. +@li Functions requiring a size for target includes "_max" in its name, and +the size is always the second argument. +@li Functions performing case-sensitive operations includes "_case" in its +name. + +@b Fixing + +Fixing is done to avoid subtle error conditions. +For example, @c strncpy does not terminate the result with a zero if the +source string is bigger than the maximal length, so technically the result +is not a C string anymore. @ref trio_copy_max makes sure that the result +is zero terminated. + +@b Extending + +Extending is done to provide a richer set of fundamental functions. +This includes functionality such as wildcard matching ( @c trio_match ) +and calculation of hash values ( @c trio_hash ). + +*/ diff --git a/trio/doc/footer.html b/trio/doc/footer.html new file mode 100644 index 00000000..0e97ca00 --- /dev/null +++ b/trio/doc/footer.html @@ -0,0 +1,4 @@ +<HR> +<center class="copyright">Copyright (C) 2001 Bjørn Reese and Daniel Stenberg.</center> +</body> +</html> diff --git a/trio/doc/header.html b/trio/doc/header.html new file mode 100644 index 00000000..fd2edd1b --- /dev/null +++ b/trio/doc/header.html @@ -0,0 +1,8 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> + <title>TRIO</title> + <link href="trio.css" rel="stylesheet" type="text/css"> +</head> +<body> diff --git a/trio/doc/trio.cfg b/trio/doc/trio.cfg new file mode 100644 index 00000000..4bc1ee67 --- /dev/null +++ b/trio/doc/trio.cfg @@ -0,0 +1,873 @@ +# Doxyfile 1.2.12 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = TRIO + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, +# German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, +# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. + +OUTPUT_LANGUAGE = English + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these class will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = YES + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower case letters. If set to YES upper case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are adviced to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consist of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = . doc + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank file matching one of the following patterns are included: +# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl + +FILE_PATTERNS = *.h *.c + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = doc + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse. + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = doc/header.html + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = doc/footer.html + +# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = doc/trio.css + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the Html help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, +# or Internet explorer 4.0+). Note that for large projects the tree generation +# can take a very long time. In such cases it is better to disable this feature. +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = __STDC__=1 TRIO_DOCUMENTATION= TRIO_PUBLIC= TRIO_PRIVATE=static TRIO_CONST=const TRIO_VOLATILE=volatile TRIO_SIGNED=signed TRIO_INLINE=inline TRIO_NOARGS=void TRIO_ARGS1(z,a)=(a) TRIO_ARGS2(z,a,b)=(a,b) TRIO_ARGS3(z,a,b,c)=(a,b,c) TRIO_ARGS4(z,a,b,c,d)=(a,b,c,d) TRIO_ARGS5(z,a,b,c,d,e)=(a,b,c,d,e) TRIO_ARGS6(z,a,b,c,d,e,f)=(a,b,c,d,e,f) TRIO_VARGS2(z,a,b)=(a,b) TRIO_VARGS3(z,a,b,c)=(a,b,c) TRIO_VARGS4(z,a,b,c,d)=(a,b,c,d) TRIO_VARGS5(z,a,b,c,d,e)=(a,b,c,d,e) + +# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line and do not end with a semicolon. Such function macros are typically +# used for boiler-plate code, and will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tagfiles. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yield more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermedate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + +# The CGI_NAME tag should be the name of the CGI script that +# starts the search engine (doxysearch) with the correct parameters. +# A script with this name will be generated by doxygen. + +CGI_NAME = + +# The CGI_URL tag should be the absolute URL to the directory where the +# cgi binaries are located. See the documentation of your http daemon for +# details. + +CGI_URL = + +# The DOC_URL tag should be the absolute URL to the directory where the +# documentation is located. If left blank the absolute path to the +# documentation, with file:// prepended to it, will be used. + +DOC_URL = + +# The DOC_ABSPATH tag should be the absolute path to the directory where the +# documentation is located. If left blank the directory on the local machine +# will be used. + +DOC_ABSPATH = + +# The BIN_ABSPATH tag must point to the directory where the doxysearch binary +# is installed. + +BIN_ABSPATH = + +# The EXT_DOC_PATHS tag can be used to specify one or more paths to +# documentation generated for other projects. This allows doxysearch to search +# the documentation for these projects as well. + +EXT_DOC_PATHS = diff --git a/trio/doc/trio.css b/trio/doc/trio.css new file mode 100644 index 00000000..1b3a9926 --- /dev/null +++ b/trio/doc/trio.css @@ -0,0 +1,35 @@ +/* HTML tags */ + +BODY { + background-color: white; + color: darkblue; +} + +TD { color: darkblue; } + +H1 { text-align: center; } + +H3 { font-style: italic; } + +HR { + width: 85%; + align: center; +} + +.copyright { color: darkblue; } + +/* Links */ + +:link { color: blue; } + +:visited { color: purple; } + +:active { color: red; } + +.el:link { font-style: italic; } + +/* Examples */ + +DIV.fragment { + color: maroon; +} |