                Short description of the source files
                =====================================

The msg* and xgettext programs.

Bottom-up structure:

str-list.h
str-list.c
                A list-of-immutable-strings type.

dir-list.h
dir-list.c
                Management of the list of directories where PO files are
                searched.

file-list.h
file-list.c
                Reading a file list from a file. Used by those programs which
                accept multiple file arguments and have a --files-from option.

pos.h
                Source file positions.

message.h
message.c
                The message type, with many utility routines.
                A list-of-messages type.
                A list-of-lists-of-messages type.

msgl-ascii.h
msgl-ascii.c
                Message list test for ASCII character set.

write-po.h
write-po.c
                Output of a list-of-messages to a PO file.
write-properties.h
write-properties.c
                Output of a list-of-messages to a Java .properties file.

+-------------- Reading PO files
| open-po.h
| open-po.c
|               Opening PO files for reading.
|
| po-charset.h
| po-charset.c
|               Charset handling while reading PO files.
|
| po-lex.h
| po-lex.c
|               Lexical analysis of PO files.
|
| read-po-abstract.h
| po-hash.h
| po-hash-gen.y
| po-gram.h
| po-gram-gen.y
| read-properties.h
| read-properties.c
| read-po-abstract.c
|               Parsing of PO files and Java .properties files.
|         read-po-abstract.h
|                       General parser structure.
|         po-hash.h
|         po-hash-gen.y
|                       Lexical analysis and parsing of pseudo-comments in
|                       PO files, introduced by "#:" and "#".
|         po-gram.h
|         po-gram-gen.y
|                       Parsing of PO files, based on po-lex.{h,c}.
|         read-properties.h
|         read-properties.c
|                       Parsing of Java .properties files.
|         read-po-abstract.c
|                       Top-level parser functions and callbacks.
|
| read-po.h
| read-po.c
|               Reading of a PO file, returning a list-of-messages.
|
+-------------- Reading PO files

msgl-iconv.h
msgl-iconv.c
                Convert a list-of-messages to another character encoding.

msgl-cat.h
msgl-cat.c
                Concatenate message lists from several files, with handling
                of duplicate msgids.

msgcmp.c        Main source for the 'msgcmp' program.

+-------------- The 'msgmerge' program
| msgl-equal.h
| msgl-equal.c
|               Comparing two lists-of-messages.
| msgmerge.c
|               Main source for the 'msgmerge' program.
|
+-------------- The 'msgmerge' program

msgcomm.c       Main source for the 'msgcomm' program.
msgattrib.c     Main source for the 'msgattrib' program.
msgcat.c        Main source for the 'msgcat' program.
msgconv.c       Main source for the 'msgconv' program.
msguniq.c       Main source for the 'msguniq' program.

msgl-charset.h
msgl-charset.c
                Compare the encoding of a list-of-messages with the locale
                encoding.

msgexec.c       Main source for the 'msgexec' program.
msgfilter.c     Main source for the 'msgfilter' program.
msggrep.c       Main source for the 'msggrep' program.

+-------------- The 'msgen' program
| msgl-english.h
| msgl-english.c
|               English message initialization.
| msgen.c
|               Main source for the 'msgen' program.
|
+-------------- The 'msgen' program

po-time.h
po-time.c
                Create time stamps for use in PO/POT files.

plural-table.h
plural-table.c
                Table of plural form formulas.

+-------------- The 'msginit' program
| hostname.c
|               The 'hostname' program.
| user-email.in
|               Determine the user's email address.
| urlget.c
|               The 'urlget' program.
| project-id
|               Determine the package's name.
| msginit.c
|               Main source for the 'msginit' program.
|
+-------------- The 'msginit' program

+-------------- The 'msgunfmt' program
| msgunfmt.h
|               Declarations.
| read-mo.h
| read-mo.c
|               Reading GNU .mo files.
| read-java.h
| read-java.c
|               Reading Java ResourceBundle files.
| read-tcl.h
| read-tcl.c
|               Reading Tcl .msg files.
| msgunfmt.c
|               Main source for the 'msgunfmt' program.
|
+-------------- The 'msgunfmt' program

format.h        Declarations of the language dependent format string handlers.
format-c.c      Format string handling for C.
format-python.c Format string handling for Python.
format-lisp.c   Format string handling for Common Lisp.
format-elisp.c  Format string handling for Emacs Lisp.
format-librep.c Format string handling for librep.
format-java.c   Format string handling for Java.
format-awk.c    Format string handling for awk.
format-pascal.c Format string handling for Object Pascal.
format-ycp.c    Format string handling for YCP.
format-tcl.c    Format string handling for Tcl.
format-php.c    Format string handling for PHP.
format.c        Table of the language dependent format string handlers.

+-------------- The 'msgfmt' program
| msgfmt.h
|               Declarations.
| plural.c
|               Parsing plural expressions.
| plural-eval.c
|               Evaluating plursl expressions.
| write-mo.h
| write-mo.c
|               Generating GNU .mo files.
| write-java.h
| write-java.c
|               Generating Java ResourceBundle files.
| write-tcl.h
| write-tcl.c
|               Generating Tcl .msg files.
| msgfmt.c
|               Main source for the 'msgfmt' program.
|
+-------------- The 'msgfmt' program

+-------------- The 'xgettext' program
| xgettext.h
|               Declarations used by the backends.
| x-c.h
| x-c.c
|               String extractor for C.
| x-po.h
| x-po.c
|               String extractor from PO files.
| x-python.h
| x-python.c
|               String extractor for Python.
| x-lisp.h
| x-lisp.c
|               String extractor for Common Lisp.
| x-elisp.h
| x-elisp.c
|               String extractor for Emacs Lisp.
| x-librep.h
| x-librep.c
|               String extractor for librep.
| x-smalltalk.h
| x-smalltalk.c
|               String extractor for Smalltalk.
| x-java.h
| x-java.l
|               String extractor for Java.
| x-awk.h
| x-awk.c
|               String extractor for awk.
| x-ycp.h
| x-ycp.c
|               String extractor for YCP.
| x-tcl.h
| x-tcl.c
|               String extractor for Tcl.
| x-php.h
| x-php.c
|               String extractor for PHP.
| x-rst.h
| x-rst.c
|               String extractor from .rst files, for Object Pascal.
| x-glade.h
| x-glade.c
|               String extractor from .glade files, GNOME GUI descriptions.
| xgettext.c
|               Main source for the 'xgettext' program.
|
+-------------- The 'xgettext' program
