diff options
-rw-r--r-- | doc/ChangeLog | 8 | ||||
-rw-r--r-- | doc/Makefile.am | 2 | ||||
-rw-r--r-- | doc/Makefile.in | 2 | ||||
-rw-r--r-- | doc/gawk.info | 201 | ||||
-rw-r--r-- | doc/gawk.texi | 104 | ||||
-rwxr-xr-x | doc/general-program.eps | 153 | ||||
-rwxr-xr-x | doc/general-program.fig | 25 | ||||
-rwxr-xr-x | doc/general-program.pdf | bin | 0 -> 5588 bytes | |||
-rwxr-xr-x | doc/process-flow.eps | 191 | ||||
-rwxr-xr-x | doc/process-flow.fig | 37 | ||||
-rwxr-xr-x | doc/process-flow.pdf | bin | 0 -> 6558 bytes |
11 files changed, 586 insertions, 137 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index edc1df03..00a37b2e 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,11 @@ +Thu Jan 6 22:13:11 2011 Arnold D. Robbins <arnold@skeeve.com> + + * gawk.texi: Replace TeX figures in Appendix D with figures + from xfig. + * general-program.eps, general-program.fig, general-program.pdf, + process-flow.eps, process-flow.fig, process-flow.pdf: New files. + * Makefile.am (EXTRA_DIST): Add the new files. + Wed Jan 5 14:33:51 2011 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am: Sanitize making of different PDF files. diff --git a/doc/Makefile.am b/doc/Makefile.am index 73c5745e..45720322 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -30,6 +30,8 @@ man_MANS = gawk.1 igawk.1 EXTRA_DIST = ChangeLog README.card ad.block setter.outline \ awkcard.in awkforai.txt texinfo.tex cardfonts \ + general-program.eps general-program.fig general-program.pdf \ + process-flow.eps process-flow.fig process-flow.pdf \ macros colors no.colors $(man_MANS) \ lflashlight.eps rflashlight.eps \ lflashlight.pdf rflashlight.pdf \ diff --git a/doc/Makefile.in b/doc/Makefile.in index d37394e7..3eb2e53b 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -244,6 +244,8 @@ info_TEXINFOS = gawk.texi gawkinet.texi man_MANS = gawk.1 igawk.1 EXTRA_DIST = ChangeLog README.card ad.block setter.outline \ awkcard.in awkforai.txt texinfo.tex cardfonts \ + general-program.eps general-program.fig general-program.pdf \ + process-flow.eps process-flow.fig process-flow.pdf \ macros colors no.colors $(man_MANS) \ lflashlight.eps rflashlight.eps \ lflashlight.pdf rflashlight.pdf \ diff --git a/doc/gawk.info b/doc/gawk.info index 7e7f1ff5..68f6fa04 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -21447,8 +21447,8 @@ turns a numeric mode into a printable representation (e.g., 644 becomes ... } - Next comes the actual `do_stat' function itself. First come the -variable declarations and argument checking: + Next comes the `do_stat' function. It starts with variable +declarations and argument checking: /* do_stat --- provide a stat() function for gawk */ @@ -21465,10 +21465,10 @@ variable declarations and argument checking: if (do_lint && get_curfunc_arg_count() > 2) lintwarn("stat: called with too many arguments"); - Then comes the actual work. First, we get the arguments. Then, we -always clear the array. To get the file information, we use `lstat', -in case the file is a symbolic link. If there's an error, we set -`ERRNO' and return: + Then comes the actual work. First, the function gets the arguments. +Then, it always clears the array. The code use `lstat()' (instead of +`stat()') to get the file information, in case the file is a symbolic +link. If there's an error, it sets `ERRNO' and returns: /* directory is first arg, array to hold results is second */ file = get_scalar_argument(0, FALSE); @@ -21502,7 +21502,7 @@ calls are shown here, since they all follow the same pattern: *aptr = make_string(pmode, strlen(pmode)); unref(tmp); - When done, return the `lstat' return value: + When done, return the `lstat()' return value: return make_number((AWKNUM) ret); @@ -21523,7 +21523,7 @@ named `dlload' that does the job: } And that's it! As an exercise, consider adding functions to -implement system calls such as `chown', `chmod', and `umask'. +implement system calls such as `chown()', `chmod()', and `umask()'. ---------- Footnotes ---------- @@ -21664,7 +21664,6 @@ Better array subscript management so that using the same value to index multiple arrays only stores one copy of the index value. - Finally, the programs in the test suite could use documenting in this Info file. @@ -21699,7 +21698,6 @@ D.1 What a Program Does At the most basic level, the job of a program is to process some input data and produce results. - *FIXME: NEXT ED:* Use real images here _______ +------+ / \ +---------+ | Data | -----> < Program > -----> | Results | @@ -21713,7 +21711,6 @@ uses the instructions in your program to process the data. When you write a program, it usually consists of the following, very basic set of steps: - *FIXME: NEXT ED:* Use real images here ______ +----------------+ / More \ No +----------+ | Initialization | -------> < Data > -------> | Clean Up | @@ -21785,8 +21782,8 @@ both easier to write and easier to read. ---------- Footnotes ---------- (1) Compiled programs are typically written in lower-level languages -such as C, C++, Fortran, or Ada, and then translated, or "compiled", -into a form that the computer can execute directly. +such as C, C++, or Ada, and then translated, or "compiled", into a form +that the computer can execute directly. File: gawk.info, Node: Basic Data Typing, Next: Floating Point Issues, Prev: Basic High Level, Up: Basic Concepts @@ -21814,12 +21811,15 @@ and "floating-point". In school, integer values were referred to as "whole" numbers--that is, numbers without any fractional part, such as 1, 42, or -17. The advantage to integer numbers is that they represent values exactly. The disadvantage is that their range is limited. On -most modern systems, this range is -2,147,483,648 to 2,147,483,647. +most systems, this range is -2,147,483,648 to 2,147,483,647. However, +many systems now support a range from -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807. Integer values come in two flavors: "signed" and "unsigned". Signed values may be negative or positive, with the range of values just -described. Unsigned values are always positive. On most modern -systems, the range is from 0 to 4,294,967,295. +described. Unsigned values are always positive. On most systems, the +range is from 0 to 4,294,967,295. However, many systems now support a +range from 0 to 18,446,744,073,709,551,615. Floating-point numbers represent what are called "real" numbers; i.e., those that do have a fractional part, such as 3.1415927. The @@ -21867,10 +21867,8 @@ language, and Brian Kernighan was one of the creators of `awk'.) In the mid-1980s, an effort began to produce an international standard for C. This work culminated in 1989, with the production of the ANSI standard for C. This standard became an ISO standard in 1990. -Where it makes sense, POSIX `awk' is compatible with 1990 ISO C. - - In 1999, a revised ISO C standard was approved and released. Future -versions of `gawk' will be as compatible as possible with this standard. +In 1999, a revised ISO C standard was approved and released. Where it +makes sense, POSIX `awk' is compatible with 1999 ISO C. File: gawk.info, Node: Floating Point Issues, Prev: Basic Data Typing, Up: Basic Concepts @@ -22028,8 +22026,8 @@ These features are: The first problem is that both of these are clear changes to historical practice: - * The `gawk' maintainer feels that hexadecimal floating point - values, in particular, is ugly, and was never intended by the + * The `gawk' maintainer feels that supporting hexadecimal floating + point values, in particular, is ugly, and was never intended by the original designers to be part of the language. * Allowing completely alphabetic strings to have valid numeric @@ -22037,8 +22035,8 @@ historical practice: The second problem is that the `gawk' maintainer feels that this interpretation of the standard, which requires a certain amount of -"language lawyering" to arrive at in the first place, was not intended -by the standard developers, either. In other words, "we see how you +"language lawyering" to arrive at in the first place, was not even +intended by the standard developers. In other words, "we see how you got where you are, but we don't think that that's where you want to be." The 2008 POSIX standard added explicit wording to allow, but not @@ -22051,7 +22049,7 @@ IEEE floating point, it seems reasonable to provide _some_ way to support NaN and Infinity values. The solution implemented in `gawk' is as follows: - 1. With the `--posix' command-line option, `gawk' becomes "hands + * With the `--posix' command-line option, `gawk' becomes "hands off." String values are passed directly to the system library's `strtod()' function, and if it successfuly returns a numeric value, that is what's used. By definition, the results are not portable @@ -22062,7 +22060,7 @@ as follows: $ echo 0xDeadBeef | gawk --posix '{ print $1 + 0 }' -| 3735928559 - 2. Without `--posix', `gawk' interprets the four strings `+inf', + * Without `--posix', `gawk' interprets the four strings `+inf', `-inf', `+nan', and `-nan' specially, producing the corresponding special numeric values. The leading sign acts a signal to `gawk' (and the user) that the value is really numeric. Hexadecimal @@ -22076,8 +22074,8 @@ as follows: $ echo 0xDeadBeef | gawk '{ print $1 + 0 }' -| 0 - `gawk' does ignore case distinction in the four special values. - Thus `+nan' and `+NaN' are the same. + `gawk' does ignore case in the four special values. Thus `+nan' + and `+NaN' are the same. ---------- Footnotes ---------- @@ -22168,8 +22166,8 @@ Bit Computers are often defined by how many bits they use to represent integer values. Typical systems are 32-bit systems, but 64-bit - systems are becoming increasingly popular, and 16-bit systems are - waning in popularity. + systems are becoming increasingly popular, and 16-bit systems have + essentially disappeared. Boolean Expression Named after the English mathematician Boole. See also "Logical @@ -22226,13 +22224,15 @@ Character Set country or place. The most common character set in use today is ASCII (American Standard Code for Information Interchange). Many European countries use an extension of ASCII known as ISO-8859-1 - (ISO Latin-1). + (ISO Latin-1). The Unicode character set (http://www.unicode.org) + is becoming increasinlgy popular and standard, and is particularly + widely used on GNU/Linux systems. CHEM A preprocessor for `pic' that reads descriptions of molecules and produces `pic' input for drawing them. It was written in `awk' by Brian Kernighan and Jon Bentley, and is available from - `http://cm.bell-labs.com/netlib/typesetting/chem.gz'. + `http://netlib.sandia.gov/netlib/typesetting/chem.gz'. Coprocess A subordinate program with which two-way communications is @@ -22290,6 +22290,10 @@ Deadlock The situation in which two communicating processes are each waiting for the other to perform an action. +Debugger + A program used to help developers remove "bugs" (de-bug) from + their programs. + Double-Precision An internal representation of numbers that can have fractional parts. Double-precision numbers keep track of more digits than do @@ -22314,7 +22318,7 @@ Empty String Epoch The date used as the "beginning of time" for timestamps. Time - values in Unix systems are represented as seconds since the epoch, + values in most systems are represented as seconds since the epoch, with library functions available for converting these values into standard date and time formats. @@ -22326,6 +22330,11 @@ Escape Sequences characters, such as `\n' for newline or `\033' for the ASCII ESC (Escape) character. (*Note Escape Sequences::.) +Extension + An additional feature or change to a programming language or + utility not defined by that language's or utility's standard. + `gawk' has (too) many extensions over POSIX `awk'. + FDL See "Free Documentation License." @@ -22384,8 +22393,8 @@ General Public License GMT "Greenwich Mean Time." This is the old term for UTC. It is the - time of day used as the epoch for Unix and POSIX systems. See - also "Epoch" and "UTC." + time of day used internally for Unix and POSIX systems. See also + "Epoch" and "UTC." GNU "GNU's not Unix". An on-going project of the Free Software @@ -24367,7 +24376,7 @@ Index * Aho, Alfred: History. (line 17) * alarm clock example program: Alarm Program. (line 9) * alarm.awk program: Alarm Program. (line 29) -* algorithms: Basic High Level. (line 68) +* algorithms: Basic High Level. (line 66) * Alpha (DEC): Manual History. (line 28) * amazing awk assembler (aaa): Glossary. (line 12) * amazingly workable formatter (awf): Glossary. (line 20) @@ -24630,7 +24639,7 @@ Index * Brian Kernighan's awk, extensions: BTL. (line 6) * Broder, Alan J.: Contributors. (line 85) * Brown, Martin: Contributors. (line 79) -* BSD-based operating systems: Glossary. (line 580) +* BSD-based operating systems: Glossary. (line 591) * bt debugger command (alias for backtrace): Dgawk Stack. (line 13) * Buening, Andreas <1>: Bugs. (line 71) * Buening, Andreas <2>: Contributors. (line 89) @@ -24687,7 +24696,7 @@ Index * characters, values of as numbers: Ordinal Functions. (line 6) * Chassell, Robert J.: Acknowledgments. (line 32) * chdir() function, implementing in gawk: Sample Library. (line 6) -* chem utility: Glossary. (line 145) +* chem utility: Glossary. (line 147) * chr() user-defined function: Ordinal Functions. (line 16) * clear debugger command: Breakpoint Control. (line 33) * Cliff random numbers: Cliff Random Function. @@ -24762,8 +24771,8 @@ Index * compatibility mode (gawk), octal numbers: Nondecimal-numbers. (line 60) * compatibility mode (gawk), specifying: Options. (line 78) -* compiled programs <1>: Glossary. (line 155) -* compiled programs: Basic High Level. (line 15) +* compiled programs <1>: Glossary. (line 157) +* compiled programs: Basic High Level. (line 14) * compiling gawk for MS-DOS and MS-Windows: PC Compiling. (line 13) * compiling gawk with EMX for OS/2 and MS-Windows: PC Compiling. (line 28) @@ -24815,7 +24824,7 @@ Index * Cygwin build of gawk: Cygwin. (line 6) * d debugger command (alias for break): Breakpoint Control. (line 60) * d.c., See dark corner: Conventions. (line 37) -* dark corner <1>: Glossary. (line 187) +* dark corner <1>: Glossary. (line 189) * dark corner <2>: Truth Values. (line 24) * dark corner <3>: Assignment Ops. (line 148) * dark corner: Conventions. (line 37) @@ -24857,7 +24866,7 @@ Index * dark corner, strings, storing: Records. (line 191) * dark corner, value of ARGV[0]: Auto-set. (line 35) * data, fixed-width: Constant Size. (line 9) -* data-driven languages: Basic High Level. (line 85) +* data-driven languages: Basic High Level. (line 83) * database, group, reading: Group Functions. (line 6) * database, users, reading: Passwd Functions. (line 6) * date utility, GNU: Time Functions. (line 17) @@ -25071,7 +25080,7 @@ Index * double quote (") <1>: Quoting. (line 37) * double quote ("): Read Terminal. (line 25) * double quote ("), regexp constants: Computed Regexps. (line 28) -* double-precision floating-point: Basic Data Typing. (line 33) +* double-precision floating-point: Basic Data Typing. (line 36) * down debugger command: Dgawk Stack. (line 21) * Drepper, Ulrich: Acknowledgments. (line 51) * DuBois, John: Acknowledgments. (line 59) @@ -25121,7 +25130,7 @@ Index * ENVIRON variable <1>: Internals. (line 150) * ENVIRON variable: Auto-set. (line 60) * environment variables: Auto-set. (line 60) -* epoch, definition of: Glossary. (line 229) +* epoch, definition of: Glossary. (line 235) * equals sign (=), = operator: Assignment Ops. (line 6) * equals sign (=), == operator <1>: Precedence. (line 65) * equals sign (=), == operator: Comparison Operators. @@ -25226,7 +25235,7 @@ Index * field separators, regular expressions as: Field Separators. (line 50) * field separators, See Also OFS: Changing Fields. (line 64) * field separators, spaces as: Cut Program. (line 109) -* fields <1>: Basic High Level. (line 73) +* fields <1>: Basic High Level. (line 71) * fields <2>: Fields. (line 6) * fields: Reading Files. (line 14) * fields, adding: Changing Fields. (line 53) @@ -25337,10 +25346,10 @@ Index * frame debugger command: Dgawk Stack. (line 25) * Free Documentation License (FDL): GNU Free Documentation License. (line 6) -* Free Software Foundation (FSF) <1>: Glossary. (line 286) +* Free Software Foundation (FSF) <1>: Glossary. (line 297) * Free Software Foundation (FSF) <2>: Getting. (line 10) * Free Software Foundation (FSF): Manual History. (line 6) -* FreeBSD: Glossary. (line 580) +* FreeBSD: Glossary. (line 591) * FS variable <1>: User-modified. (line 56) * FS variable: Field Separators. (line 14) * FS variable, --field-separator option and: Options. (line 21) @@ -25353,7 +25362,7 @@ Index (line 6) * FS, containing ^: Regexp Field Splitting. (line 59) -* FSF (Free Software Foundation) <1>: Glossary. (line 286) +* FSF (Free Software Foundation) <1>: Glossary. (line 297) * FSF (Free Software Foundation) <2>: Getting. (line 10) * FSF (Free Software Foundation): Manual History. (line 6) * function calls: Function Calls. (line 6) @@ -25475,7 +25484,7 @@ Index * gawk, versions of, information about, printing: Options. (line 248) * gawk, word-boundary operator: GNU Regexp Operators. (line 63) -* General Public License (GPL): Glossary. (line 295) +* General Public License (GPL): Glossary. (line 306) * General Public License, See GPL: Manual History. (line 11) * gensub() function (gawk) <1>: String Functions. (line 57) * gensub() function (gawk): Using Constant Regexps. @@ -25526,17 +25535,17 @@ Index * GNU awk, See gawk: Preface. (line 48) * GNU Free Documentation License: GNU Free Documentation License. (line 6) -* GNU General Public License: Glossary. (line 295) -* GNU Lesser General Public License: Glossary. (line 374) +* GNU General Public License: Glossary. (line 306) +* GNU Lesser General Public License: Glossary. (line 385) * GNU long options <1>: Options. (line 6) * GNU long options: Command Line. (line 13) * GNU long options, printing list of: Options. (line 141) -* GNU Project <1>: Glossary. (line 304) +* GNU Project <1>: Glossary. (line 315) * GNU Project: Manual History. (line 11) -* GNU/Linux <1>: Glossary. (line 580) +* GNU/Linux <1>: Glossary. (line 591) * GNU/Linux <2>: I18N Example. (line 55) * GNU/Linux: Manual History. (line 28) -* GPL (General Public License) <1>: Glossary. (line 295) +* GPL (General Public License) <1>: Glossary. (line 306) * GPL (General Public License): Manual History. (line 11) * GPL (General Public License), printing: Options. (line 85) * grcat program: Group Functions. (line 16) @@ -25631,7 +25640,7 @@ Index * INT signal (MS-Windows): Profiling. (line 207) * int() function: Numeric Functions. (line 22) * integers: Basic Data Typing. (line 21) -* integers, unsigned: Basic Data Typing. (line 28) +* integers, unsigned: Basic Data Typing. (line 30) * interacting with other programs: I/O Functions. (line 63) * internationalization <1>: I18N and L10N. (line 6) * internationalization: I18N Functions. (line 6) @@ -25649,13 +25658,13 @@ Index * internationalization, localization, portability and: I18N Portability. (line 6) * internationalizing a program: Explaining gettext. (line 6) -* interpreted programs <1>: Glossary. (line 345) -* interpreted programs: Basic High Level. (line 15) +* interpreted programs <1>: Glossary. (line 356) +* interpreted programs: Basic High Level. (line 14) * interval expressions: Regexp Operators. (line 115) * inventory-shipped file: Sample Data Files. (line 32) * IOBUF internal structure: Internals. (line 161) * iop_alloc() internal function: Internals. (line 161) -* ISO: Glossary. (line 356) +* ISO: Glossary. (line 367) * ISO 8859-1: Glossary. (line 137) * ISO Latin-1: Glossary. (line 137) * Jacobs, Andrew: Passwd Functions. (line 90) @@ -25669,7 +25678,7 @@ Index * Kahrs, Ju"rgen: Acknowledgments. (line 59) * Kasal, Stepan: Acknowledgments. (line 59) * Kenobi, Obi-Wan: Undocumented. (line 6) -* Kernighan, Brian <1>: Basic Data Typing. (line 71) +* Kernighan, Brian <1>: Basic Data Typing. (line 74) * Kernighan, Brian <2>: Other Versions. (line 13) * Kernighan, Brian <3>: Contributors. (line 12) * Kernighan, Brian <4>: BTL. (line 6) @@ -25683,7 +25692,7 @@ Index * l debugger command (alias for list): Miscellaneous Dgawk Commands. (line 74) * labels.awk program: Labels Program. (line 51) -* languages, data-driven: Basic High Level. (line 85) +* languages, data-driven: Basic High Level. (line 83) * LC_ALL locale category: Explaining gettext. (line 120) * LC_COLLATE locale category: Explaining gettext. (line 93) * LC_CTYPE locale category: Explaining gettext. (line 97) @@ -25704,8 +25713,8 @@ Index * left shift, bitwise: Bitwise Functions. (line 32) * leftmost longest match: Multiple Line. (line 26) * length() function: String Functions. (line 137) -* Lesser General Public License (LGPL): Glossary. (line 374) -* LGPL (Lesser General Public License): Glossary. (line 374) +* Lesser General Public License (LGPL): Glossary. (line 385) +* LGPL (Lesser General Public License): Glossary. (line 385) * Libmawk: Other Versions. (line 106) * libraries of awk functions: Library Functions. (line 6) * libraries of awk functions, assertions: Assert Function. (line 6) @@ -25752,7 +25761,7 @@ Index * lint checking, undefined functions: Pass By Value/Reference. (line 88) * LINT variable: User-modified. (line 98) -* Linux <1>: Glossary. (line 580) +* Linux <1>: Glossary. (line 591) * Linux <2>: I18N Example. (line 55) * Linux: Manual History. (line 28) * list debugger command: Miscellaneous Dgawk Commands. @@ -25823,7 +25832,7 @@ Index * nargs internal variable: Internals. (line 49) * nawk utility: Names. (line 17) * negative zero: Unexpected Results. (line 28) -* NetBSD: Glossary. (line 580) +* NetBSD: Glossary. (line 591) * networks, programming: TCP/IP Networking. (line 6) * networks, support for: Special Network. (line 6) * newlines <1>: Boolean Ops. (line 67) @@ -25865,7 +25874,7 @@ Index * NR variable <1>: Auto-set. (line 118) * NR variable: Records. (line 6) * NR variable, changing: Auto-set. (line 200) -* null strings <1>: Basic Data Typing. (line 47) +* null strings <1>: Basic Data Typing. (line 50) * null strings <2>: Truth Values. (line 6) * null strings <3>: Regexp Field Splitting. (line 43) @@ -25913,7 +25922,7 @@ Index * OFS variable <1>: User-modified. (line 124) * OFS variable <2>: Output Separators. (line 6) * OFS variable: Changing Fields. (line 64) -* OpenBSD: Glossary. (line 580) +* OpenBSD: Glossary. (line 591) * OpenSolaris: Other Versions. (line 77) * operating systems, BSD-based: Manual History. (line 28) * operating systems, PC, gawk on: PC Using. (line 6) @@ -25982,8 +25991,8 @@ Index * output, standard: Special FD. (line 6) * p debugger command (alias for print): Viewing And Changing Data. (line 36) -* P1003.1 POSIX standard: Glossary. (line 427) -* P1003.2 POSIX standard: Glossary. (line 427) +* P1003.1 POSIX standard: Glossary. (line 438) +* P1003.2 POSIX standard: Glossary. (line 438) * parameters, number of: Internals. (line 49) * parentheses (): Regexp Operators. (line 78) * parentheses (), pgawk program: Profiling. (line 141) @@ -26172,7 +26181,7 @@ Index * programming language, recipe for: History. (line 6) * programming languages, data-driven vs. procedural: Getting Started. (line 12) -* programming, basic steps: Basic High Level. (line 20) +* programming, basic steps: Basic High Level. (line 19) * programming, concepts: Basic Concepts. (line 6) * pwcat program: Passwd Functions. (line 23) * q debugger command (alias for quit): Miscellaneous Dgawk Commands. @@ -26214,7 +26223,7 @@ Index * record separators, changing: Records. (line 81) * record separators, regular expressions as: Records. (line 112) * record separators, with multiline records: Multiple Line. (line 10) -* records <1>: Basic High Level. (line 73) +* records <1>: Basic High Level. (line 71) * records: Reading Files. (line 14) * records, multiline: Multiple Line. (line 6) * records, printing: Print. (line 22) @@ -26289,7 +26298,7 @@ Index * right angle bracket (>), >> operator (I/O) <1>: Precedence. (line 65) * right angle bracket (>), >> operator (I/O): Redirection. (line 50) * right shift, bitwise: Bitwise Functions. (line 32) -* Ritchie, Dennis: Basic Data Typing. (line 71) +* Ritchie, Dennis: Basic Data Typing. (line 74) * RLENGTH variable: Auto-set. (line 176) * RLENGTH variable, match() function and: String Functions. (line 194) * Robbins, Arnold <1>: Future Extensions. (line 6) @@ -26400,7 +26409,7 @@ Index * single quote ('), with double quotes: Quoting. (line 53) * single-character fields: Single Character Fields. (line 6) -* single-precision floating-point: Basic Data Typing. (line 33) +* single-precision floating-point: Basic Data Typing. (line 36) * Skywalker, Luke: Undocumented. (line 6) * sleep utility: Alarm Program. (line 109) * Solaris, POSIX compliant awk: Other Versions. (line 77) @@ -26429,7 +26438,7 @@ Index * sqrt() function: Numeric Functions. (line 77) * square brackets ([]): Regexp Operators. (line 55) * srand() function: Numeric Functions. (line 81) -* Stallman, Richard <1>: Glossary. (line 286) +* Stallman, Richard <1>: Glossary. (line 297) * Stallman, Richard <2>: Contributors. (line 24) * Stallman, Richard <3>: Acknowledgments. (line 18) * Stallman, Richard: Manual History. (line 6) @@ -26602,7 +26611,7 @@ Index (line 6) * uniq utility: Uniq Program. (line 6) * uniq.awk program: Uniq Program. (line 65) -* Unix: Glossary. (line 580) +* Unix: Glossary. (line 591) * Unix awk, backslashes in escape sequences: Escape Sequences. (line 125) * Unix awk, close() function and: Close Files And Pipes. @@ -26612,7 +26621,7 @@ Index * Unix, awk scripts and: Executable Scripts. (line 6) * UNIXROOT variable, on OS/2 systems: PC Using. (line 17) * unref() internal function: Internals. (line 101) -* unsigned integers: Basic Data Typing. (line 28) +* unsigned integers: Basic Data Typing. (line 30) * until debugger command: Dgawk Execution Control. (line 83) * unwatch debugger command: Viewing And Changing Data. @@ -27123,26 +27132,26 @@ Node: Plugin License853350 Node: Sample Library853984 Node: Internal File Description854670 Node: Internal File Ops858377 -Ref: Internal File Ops-Footnote-1863110 -Node: Using Internal File Ops863258 -Node: Future Extensions865635 -Node: Basic Concepts868140 -Node: Basic High Level868897 -Ref: Basic High Level-Footnote-1873016 -Node: Basic Data Typing873210 -Node: Floating Point Issues877647 -Node: String Conversion Precision878730 -Ref: String Conversion Precision-Footnote-1880424 -Node: Unexpected Results880533 -Node: POSIX Floating Point Problems882359 -Ref: POSIX Floating Point Problems-Footnote-1886058 -Node: Glossary886096 -Node: Copying909731 -Node: GNU Free Documentation License947288 -Node: next-edition972432 -Node: unresolved972784 -Node: revision973284 -Node: consistency973707 -Node: Index977206 +Ref: Internal File Ops-Footnote-1863145 +Node: Using Internal File Ops863293 +Node: Future Extensions865670 +Node: Basic Concepts868174 +Node: Basic High Level868931 +Ref: Basic High Level-Footnote-1872966 +Node: Basic Data Typing873151 +Node: Floating Point Issues877676 +Node: String Conversion Precision878759 +Ref: String Conversion Precision-Footnote-1880453 +Node: Unexpected Results880562 +Node: POSIX Floating Point Problems882388 +Ref: POSIX Floating Point Problems-Footnote-1886084 +Node: Glossary886122 +Node: Copying910221 +Node: GNU Free Documentation License947778 +Node: next-edition972922 +Node: unresolved973274 +Node: revision973774 +Node: consistency974197 +Node: Index977696 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 44014f6d..0b328ec2 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -28682,7 +28682,7 @@ format_mode(unsigned long fmode) @} @end example -Next comes the actual @code{do_stat} function itself. First come the +Next comes the @code{do_stat} function. It starts with variable declarations and argument checking: @ignore @@ -28706,10 +28706,12 @@ do_stat(int nargs) lintwarn("stat: called with too many arguments"); @end example -Then comes the actual work. First, we get the arguments. -Then, we always clear the array. To get the file information, -we use @code{lstat}, in case the file is a symbolic link. -If there's an error, we set @code{ERRNO} and return: +Then comes the actual work. First, the function gets the arguments. +Then, it always clears the array. +The code use @code{lstat()} (instead of @code{stat()}) +to get the file information, +in case the file is a symbolic link. +If there's an error, it sets @code{ERRNO} and returns: @c comment made multiline for page breaking @example @@ -28748,7 +28750,7 @@ calls are shown here, since they all follow the same pattern: unref(tmp); @end example -When done, return the @code{lstat} return value: +When done, return the @code{lstat()} return value: @example @@ -28774,7 +28776,8 @@ dlload(NODE *tree, void *dl) @end example And that's it! As an exercise, consider adding functions to -implement system calls such as @code{chown}, @code{chmod}, and @code{umask}. +implement system calls such as @code{chown()}, @code{chmod()}, +and @code{umask()}. @node Using Internal File Ops @appendixsubsubsec Integrating the Extensions @@ -28789,8 +28792,8 @@ the following steps create a GNU/Linux shared library: @example -$ gcc -fPIC -shared -DHAVE_CONFIG_H -c -O -g -I@var{idir} filefuncs.c -$ ld -o filefuncs.so -shared filefuncs.o +$ @kbd{gcc -fPIC -shared -DHAVE_CONFIG_H -c -O -g -I@var{idir} filefuncs.c} +$ @kbd{ld -o filefuncs.so -shared filefuncs.o} @end example @cindex @code{extension()} function (@command{gawk}) @@ -28962,10 +28965,6 @@ and implemented to make module writing easier. @command{gawk}'s management of array subscript storage could use revamping, so that using the same value to index multiple arrays only stores one copy of the index value. - -@c @item Integrating the DBUG library -@c Integrating Fred Fish's DBUG library would be helpful during development, -@c but it's a lot of work to do. @end table Finally, @@ -29003,7 +29002,8 @@ other introductory texts that you should refer to instead.) At the most basic level, the job of a program is to process some input data and produce results. -@strong{FIXME: NEXT ED:} Use real images here +@c @strong{FIXME: NEXT ED:} Use real images here +@ignore @iftex @tex \expandafter\ifx\csname graph\endcsname\relax \csname newbox\endcsname\graph\fi @@ -29060,6 +29060,10 @@ some input data and produce results. \centerline{\box\graph} @end tex @end iftex +@end ignore +@iftex +@image{general-program} +@end iftex @ifnottex @example _______ @@ -29073,7 +29077,7 @@ some input data and produce results. @cindex interpreted programs The ``program'' in the figure can be either a compiled program@footnote{Compiled programs are typically written -in lower-level languages such as C, C++, Fortran, or Ada, +in lower-level languages such as C, C++, or Ada, and then translated, or @dfn{compiled}, into a form that the computer can execute directly.} (such as @command{ls}), @@ -29085,7 +29089,8 @@ instructions in your program to process the data. When you write a program, it usually consists of the following, very basic set of steps: -@strong{FIXME: NEXT ED:} Use real images here +@c @strong{FIXME: NEXT ED:} Use real images here +@ignore @iftex @tex \expandafter\ifx\csname graph\endcsname\relax \csname newbox\endcsname\graph\fi @@ -29171,6 +29176,10 @@ of the following, very basic set of steps: \centerline{\box\graph} @end tex @end iftex +@end ignore +@iftex +@image{process-flow} +@end iftex @ifnottex @example ______ @@ -29289,16 +29298,20 @@ and @dfn{floating-point}. In school, integer values were referred to as ``whole'' numbers---that is, numbers without any fractional part, such as 1, 42, or @minus{}17. The advantage to integer numbers is that they represent values exactly. -The disadvantage is that their range is limited. On most modern systems, +The disadvantage is that their range is limited. On most systems, this range is @minus{}2,147,483,648 to 2,147,483,647. +However, many systems now support a range from +@minus{}9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. @cindex unsigned integers @cindex integers, unsigned Integer values come in two flavors: @dfn{signed} and @dfn{unsigned}. Signed values may be negative or positive, with the range of values just described. -Unsigned values are always positive. On most modern systems, +Unsigned values are always positive. On most systems, the range is from 0 to 4,294,967,295. +However, many systems now support a range from +0 to 18,446,744,073,709,551,615. @cindex double-precision floating-point @cindex single-precision floating-point @@ -29357,11 +29370,8 @@ and Brian Kernighan was one of the creators of @command{awk}.) In the mid-1980s, an effort began to produce an international standard for C. This work culminated in 1989, with the production of the ANSI standard for C. This standard became an ISO standard in 1990. -Where it makes sense, POSIX @command{awk} is compatible with 1990 ISO C. - In 1999, a revised ISO C standard was approved and released. -Future versions of @command{gawk} will be as compatible as possible -with this standard. +Where it makes sense, POSIX @command{awk} is compatible with 1999 ISO C. @node Floating Point Issues @appendixsec Floating-Point Number Caveats @@ -29426,7 +29436,7 @@ from printing (via @code{OFMT}). Here is what happens when the program is run: @example -$ echo 2 3.654321 1.2345678 | awk -f values.awk +$ @kbd{echo 2 3.654321 1.2345678 | awk -f values.awk} @print{} $1 = 4.8888888 @print{} a = <4.88889> @print{} $1 = 4.88889 @@ -29456,7 +29466,7 @@ floating-point numbers cannot always represent values exactly. Here is an example: @example -$ awk '@{ printf("%010d\n", $1 * 100) @}' +$ @kbd{awk '@{ printf("%010d\n", $1 * 100) @}'} 515.79 @print{} 0000051579 515.80 @@ -29486,14 +29496,14 @@ This example shows that negative and positive zero are distinct values when stored internally, but that they are in fact equal to each other, as well as to ``regular'' zero: -@smallexample -$ gawk 'BEGIN @{ mz = -0 ; pz = 0 -> printf "-0 = %g, +0 = %g, (-0 == +0) -> %d\n", mz, pz, mz == pz -> printf "mz == 0 -> %d, pz == 0 -> %d\n", mz == 0, pz == 0 -> @}' +@example +$ @kbd{gawk 'BEGIN @{ mz = -0 ; pz = 0} +> @kbd{printf "-0 = %g, +0 = %g, (-0 == +0) -> %d\n", mz, pz, mz == pz} +> @kbd{printf "mz == 0 -> %d, pz == 0 -> %d\n", mz == 0, pz == 0} +> @kbd{@}'} @print{} -0 = -0, +0 = 0, (-0 == +0) -> 1 @print{} mz == 0 -> 1, pz == 0 -> 1 -@end smallexample +@end example It helps to keep this in mind should you process numeric data that contains negative zero values; the fact that the zero is negative @@ -29531,7 +29541,7 @@ practice: @itemize @bullet @item -The @command{gawk} maintainer feels that hexadecimal floating +The @command{gawk} maintainer feels that supporting hexadecimal floating point values, in particular, is ugly, and was never intended by the original designers to be part of the language. @@ -29542,8 +29552,8 @@ values is also a very severe departure from historical practice. The second problem is that the @code{gawk} maintainer feels that this interpretation of the standard, which requires a certain amount of -``language lawyering'' to arrive at in the first place, was not intended -by the standard developers, either. In other words, ``we see how you +``language lawyering'' to arrive at in the first place, was not even +intended by the standard developers. In other words, ``we see how you got where you are, but we don't think that that's where you want to be.'' The 2008 POSIX standard added explicit wording to allow, but not require, @@ -29556,7 +29566,7 @@ nevertheless, on systems that support IEEE floating point, it seems reasonable to provide @emph{some} way to support NaN and Infinity values. The solution implemented in @command{gawk} is as follows: -@enumerate 1 +@itemize @bullet @item With the @option{--posix} command-line option, @command{gawk} becomes ``hands off.'' String values are passed directly to the system library's @@ -29594,9 +29604,9 @@ $ @kbd{echo 0xDeadBeef | gawk '@{ print $1 + 0 @}'} @print{} 0 @end example -@command{gawk} does ignore case distinction in the four special values. +@command{gawk} does ignore case in the four special values. Thus @samp{+nan} and @samp{+NaN} are the same. -@end enumerate +@end itemize @c ENDOFRANGE procon @@ -29700,8 +29710,8 @@ functions described in Computers are often defined by how many bits they use to represent integer values. Typical systems are 32-bit systems, but 64-bit systems are -becoming increasingly popular, and 16-bit systems are waning in -popularity. +becoming increasingly popular, and 16-bit systems have essentially +disappeared. @item Boolean Expression Named after the English mathematician Boole. See also ``Logical Expression.'' @@ -29785,6 +29795,9 @@ characters (letters, numbers, punctuation, etc.) of a particular country or place. The most common character set in use today is ASCII (American Standard Code for Information Interchange). Many European countries use an extension of ASCII known as ISO-8859-1 (ISO Latin-1). +The @uref{http://www.unicode.org, Unicode character set} is +becoming increasinlgy popular and standard, and is particularly +widely used on GNU/Linux systems. @cindex @command{chem} utility @item CHEM @@ -29792,7 +29805,7 @@ A preprocessor for @command{pic} that reads descriptions of molecules and produces @command{pic} input for drawing them. It was written in @command{awk} by Brian Kernighan and Jon Bentley, and is available from -@uref{http://cm.bell-labs.com/netlib/typesetting/chem.gz}. +@uref{http://netlib.sandia.gov/netlib/typesetting/chem.gz}. @item Coprocess A subordinate program with which two-way communications is possible. @@ -29861,6 +29874,10 @@ strings and vice versa, as needed. The situation in which two communicating processes are each waiting for the other to perform an action. +@item Debugger +A program used to help developers remove ``bugs'' (de-bug) from +their programs. + @item Double-Precision An internal representation of numbers that can have fractional parts. Double-precision numbers keep track of more digits than do single-precision @@ -29885,7 +29902,7 @@ See ``Null String.'' @cindex epoch, definition of @item Epoch The date used as the ``beginning of time'' for timestamps. -Time values in Unix systems are represented as seconds since the epoch, +Time values in most systems are represented as seconds since the epoch, with library functions available for converting these values into standard date and time formats. @@ -29897,6 +29914,11 @@ A special sequence of characters used for describing nonprinting characters, such as @samp{\n} for newline or @samp{\033} for the ASCII ESC (Escape) character. (@xref{Escape Sequences}.) +@item Extension +An additional feature or change to a programming language or +utility not defined by that language's or utility's standard. +@command{gawk} has (too) many extensions over POSIX @command{awk}. + @item FDL See ``Free Documentation License.'' @@ -29964,7 +29986,7 @@ code may be distributed. (@xref{Copying}.) @item GMT ``Greenwich Mean Time.'' This is the old term for UTC. -It is the time of day used as the epoch for Unix and POSIX systems. +It is the time of day used internally for Unix and POSIX systems. See also ``Epoch'' and ``UTC.'' @cindex FSF (Free Software Foundation) diff --git a/doc/general-program.eps b/doc/general-program.eps new file mode 100755 index 00000000..12497168 --- /dev/null +++ b/doc/general-program.eps @@ -0,0 +1,153 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: general-program.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5c +%%CreationDate: Thu Jan 6 17:36:07 2011 +%%BoundingBox: 0 0 269 58 +%Magnification: 1.0000 +%%EndComments +%%BeginProlog +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +/pageheader { +save +newpath 0 58 moveto 0 0 lineto 269 0 lineto 269 58 lineto closepath clip newpath +-194.8 247.1 translate +1 -1 scale +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +7.500 slw +n 4961 3021 m 4706 3467 l 4965 3911 l 5478 3908 l 5733 3462 l 5474 3018 l + + cp gs col0 s gr +% Polyline +gs clippath +4544 3495 m 4695 3495 l 4695 3435 l 4544 3435 l 4544 3435 l 4664 3465 l 4544 3495 l cp +eoclip +n 4095 3465 m + 4680 3465 l gs col0 s gr gr + +% arrowhead +n 4544 3495 m 4664 3465 l 4544 3435 l 4544 3495 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6164 3495 m 6315 3495 l 6315 3435 l 6164 3435 l 6164 3435 l 6284 3465 l 6164 3495 l cp +eoclip +n 5805 3465 m + 6300 3465 l gs col0 s gr gr + +% arrowhead +n 6164 3495 m 6284 3465 l 6164 3435 l 6164 3495 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 6405 3150 m 6330 3150 6330 3704 75 arcto 4 {pop} repeat + 6330 3779 7274 3779 75 arcto 4 {pop} repeat + 7349 3779 7349 3225 75 arcto 4 {pop} repeat + 7349 3150 6405 3150 75 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +n 3165 3195 m 3105 3195 3105 3719 60 arcto 4 {pop} repeat + 3105 3779 3992 3779 60 arcto 4 {pop} repeat + 4052 3779 4052 3255 60 arcto 4 {pop} repeat + 4052 3195 3165 3195 60 arcto 4 {pop} repeat + cp gs col0 s gr +/Times-Roman ff 180.00 scf sf +6525 3510 m +gs 1 -1 sc (Results) col0 sh gr +/Times-Roman ff 180.00 scf sf +3375 3510 m +gs 1 -1 sc (Data) col0 sh gr +/Times-Roman ff 180.00 scf sf +4860 3510 m +gs 1 -1 sc (Program) col0 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/doc/general-program.fig b/doc/general-program.fig new file mode 100755 index 00000000..8ab42f3d --- /dev/null +++ b/doc/general-program.fig @@ -0,0 +1,25 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 3 0 1 0 7 50 -1 -1 0.000 0 0 0 0 0 7 + 4961 3021 4706 3467 4965 3911 5478 3908 5733 3462 5474 3018 + 4961 3021 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4095 3465 4680 3465 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 5805 3465 6300 3465 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 + 7349 3779 7349 3150 6330 3150 6330 3779 7349 3779 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 + 4052 3779 4052 3195 3105 3195 3105 3779 4052 3779 +4 0 0 50 -1 0 12 0.0000 4 150 630 6525 3510 Results\001 +4 0 0 50 -1 0 12 0.0000 4 150 420 3375 3510 Data\001 +4 0 0 50 -1 0 12 0.0000 4 195 750 4860 3510 Program\001 diff --git a/doc/general-program.pdf b/doc/general-program.pdf Binary files differnew file mode 100755 index 00000000..c79b9efa --- /dev/null +++ b/doc/general-program.pdf diff --git a/doc/process-flow.eps b/doc/process-flow.eps new file mode 100755 index 00000000..81b937ba --- /dev/null +++ b/doc/process-flow.eps @@ -0,0 +1,191 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: process-flow.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5c +%%CreationDate: Thu Jan 6 17:25:09 2011 +%%BoundingBox: 0 0 367 174 +%Magnification: 1.0000 +%%EndComments +%%BeginProlog +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +/pageheader { +save +newpath 0 174 moveto 0 0 lineto 367 0 lineto 367 174 lineto closepath clip newpath +-161.1 355.1 translate +1 -1 scale +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +7.500 slw +n 4819 3540 m 5460 4181 l 6101 3540 l 5460 2899 l 4819 3540 l + cp gs col0 s gr +% Polyline +gs clippath +4634 3585 m 4785 3585 l 4785 3525 l 4634 3525 l 4634 3525 l 4754 3555 l 4634 3585 l cp +eoclip +n 3960 3555 m + 4770 3555 l gs col0 s gr gr + +% arrowhead +n 4634 3585 m 4754 3555 l 4634 3525 l 4634 3585 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6839 3585 m 6990 3585 l 6990 3525 l 6839 3525 l 6839 3525 l 6959 3555 l 6839 3585 l cp +eoclip +n 6165 3555 m + 6975 3555 l gs col0 s gr gr + +% arrowhead +n 6839 3585 m 6959 3555 l 6839 3525 l 6839 3585 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 2644 3240 m 2569 3240 2569 3802 75 arcto 4 {pop} repeat + 2569 3877 3835 3877 75 arcto 4 {pop} repeat + 3910 3877 3910 3315 75 arcto 4 {pop} repeat + 3910 3240 2644 3240 75 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +n 7095 3240 m 7020 3240 7020 3806 75 arcto 4 {pop} repeat + 7020 3881 8294 3881 75 arcto 4 {pop} repeat + 8369 3881 8369 3315 75 arcto 4 {pop} repeat + 8369 3240 7095 3240 75 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +5460 4904 m 5460 5055 l 5520 5055 l 5520 4904 l 5520 4904 l 5490 5024 l 5460 4904 l cp +eoclip +n 5490 4230 m + 5490 5040 l gs col0 s gr gr + +% arrowhead +n 5460 4904 m 5490 5024 l 5520 4904 l 5460 4904 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 5028 5067 m 4953 5067 4953 5550 75 arcto 4 {pop} repeat + 4953 5625 5905 5625 75 arcto 4 {pop} repeat + 5980 5625 5980 5142 75 arcto 4 {pop} repeat + 5980 5067 5028 5067 75 arcto 4 {pop} repeat + cp gs col0 s gr +% Polyline +gs clippath +4305 3736 m 4305 3585 l 4245 3585 l 4245 3736 l 4245 3736 l 4275 3616 l 4305 3736 l cp +eoclip +n 4905 5355 m 4275 5355 l + 4275 3600 l gs col0 s gr gr + +% arrowhead +n 4305 3736 m 4275 3616 l 4245 3736 l 4305 3736 l cp gs 0.00 setgray ef gr col0 s +/Times-Roman ff 180.00 scf sf +5265 3375 m +gs 1 -1 sc (More) col0 sh gr +/Times-Roman ff 180.00 scf sf +5265 3630 m +gs 1 -1 sc (Data) col0 sh gr +/Times-Roman ff 180.00 scf sf +5265 3885 m +gs 1 -1 sc ( ?) col0 sh gr +/Times-Roman ff 180.00 scf sf +6210 3465 m +gs 1 -1 sc (No) col0 sh gr +/Times-Roman ff 180.00 scf sf +5535 4455 m +gs 1 -1 sc (Yes) col0 sh gr +/Times-Roman ff 180.00 scf sf +2745 3645 m +gs 1 -1 sc (Initialization) col0 sh gr +/Times-Roman ff 180.00 scf sf +7290 3600 m +gs 1 -1 sc (Clean Up) col0 sh gr +/Times-Roman ff 180.00 scf sf +5130 5400 m +gs 1 -1 sc (Process) col0 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/doc/process-flow.fig b/doc/process-flow.fig new file mode 100755 index 00000000..b6613137 --- /dev/null +++ b/doc/process-flow.fig @@ -0,0 +1,37 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 6 + 4819 3540 5460 4181 6101 3540 5460 2899 4819 3540 4819 3540 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3960 3555 4770 3555 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6165 3555 6975 3555 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 + 2569 3240 2569 3877 3910 3877 3910 3240 2569 3240 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 + 7020 3240 7020 3881 8369 3881 8369 3240 7020 3240 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 5490 4230 5490 5040 +2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 + 4953 5067 4953 5625 5980 5625 5980 5067 4953 5067 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 60.00 120.00 + 4905 5355 4275 5355 4275 3600 +4 0 0 50 -1 0 12 0.0000 4 150 480 5265 3375 More\001 +4 0 0 50 -1 0 12 0.0000 4 150 420 5265 3630 Data\001 +4 0 0 50 -1 0 12 0.0000 4 150 270 5265 3885 ?\001 +4 0 0 50 -1 0 12 0.0000 4 150 270 6210 3465 No\001 +4 0 0 50 -1 0 12 0.0000 4 150 330 5535 4455 Yes\001 +4 0 0 50 -1 0 12 0.0000 4 150 1035 2745 3645 Initialization\001 +4 0 0 50 -1 0 12 0.0000 4 195 810 7290 3600 Clean Up\001 +4 0 0 50 -1 0 12 0.0000 4 150 690 5130 5400 Process\001 diff --git a/doc/process-flow.pdf b/doc/process-flow.pdf Binary files differnew file mode 100755 index 00000000..23d567d2 --- /dev/null +++ b/doc/process-flow.pdf |