diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2000-02-09 01:27:25 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2000-02-09 01:27:25 +0000 |
commit | 328f35a635ee7b14c4d6f2dbddacba138e62219b (patch) | |
tree | 5f0effaeb304116c7826d814dfa001d501a3b10a | |
parent | c2daa957909e4243f84a2232ff4a481b6c44a393 (diff) |
TexInfo 4.0. New manpages, can create html.
A bit more grumpy about bad texinfo, though.
142 files changed, 38057 insertions, 2305 deletions
diff --git a/gnu/usr.bin/texinfo/ABOUT-NLS b/gnu/usr.bin/texinfo/ABOUT-NLS index dacb8b18bed..28d38c76fd6 100644 --- a/gnu/usr.bin/texinfo/ABOUT-NLS +++ b/gnu/usr.bin/texinfo/ABOUT-NLS @@ -137,7 +137,8 @@ Each translation team has its own mailing list, courtesy of Linux International. You may reach your translation team at the address `LL@li.org', replacing LL by the two-letter ISO 639 code for your language. Language codes are *not* the same as the country codes given -in ISO 3166. The following translation teams exist, as of August 1997: +in ISO 3166. The following translation teams exist, as of December +1997: Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en', Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian @@ -172,42 +173,42 @@ Available Packages ================== Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of August +matrix shows the current state of internationalization, as of December 1997. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination. - Ready PO files cs da de en es fi fr it ja ko nl no pl pt sl sv - .-------------------------------------------------. - bash | [] [] [] | 3 - bison | [] [] [] | 3 - clisp | [] [] [] [] | 4 - cpio | [] [] [] [] [] | 5 - diffutils | [] [] [] [] [] | 5 - enscript | [] [] [] [] [] [] | 6 - fileutils | [] [] [] [] [] [] [] [] [] [] | 10 - findutils | [] [] [] [] [] [] [] [] | 8 - flex | [] [] [] [] | 4 - gcal | [] [] [] [] [] | 5 - gettext | [] [] [] [] [] [] [] [] [] [] | 11 - grep | [] [] [] [] [] [] [] [] [] | 9 - hello | [] [] [] [] [] [] [] [] [] [] | 10 - id-utils | [] [] [] | 3 - indent | [] [] [] [] | 4 - libc | [] [] [] [] [] [] [] | 7 - m4 | [] [] [] [] [] | 5 - make | [] [] [] [] [] [] | 6 - music | [] [] | 2 - ptx | [] [] [] [] [] [] [] [] | 8 - recode | [] [] [] [] [] [] [] [] [] | 9 - sh-utils | [] [] [] [] [] [] [] | 7 - sharutils | [] [] [] [] [] | 5 - tar | [] [] [] [] [] [] [] [] [] [] | 10 - texinfo | [] | 1 - textutils | [] [] [] [] [] [] [] [] [] | 9 - wdiff | [] [] [] [] [] [] [] [] | 8 - `-------------------------------------------------' - 16 languages cs da de en es fi fr it ja ko nl no pl pt sl sv - 27 packages 3 2 24 1 17 1 26 2 1 11 20 9 19 7 7 17 167 + Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv + .----------------------------------------------------. + bash | [] [] [] | 3 + bison | [] [] [] | 3 + clisp | [] [] [] [] | 4 + cpio | [] [] [] [] [] [] | 6 + diffutils | [] [] [] [] [] | 5 + enscript | [] [] [] [] [] [] | 6 + fileutils | [] [] [] [] [] [] [] [] [] [] | 10 + findutils | [] [] [] [] [] [] [] [] [] | 9 + flex | [] [] [] [] | 4 + gcal | [] [] [] [] [] | 5 + gettext | [] [] [] [] [] [] [] [] [] [] [] | 12 + grep | [] [] [] [] [] [] [] [] [] [] | 10 + hello | [] [] [] [] [] [] [] [] [] [] [] | 11 + id-utils | [] [] [] | 3 + indent | [] [] [] [] [] | 5 + libc | [] [] [] [] [] [] [] | 7 + m4 | [] [] [] [] [] [] | 6 + make | [] [] [] [] [] [] | 6 + music | [] [] | 2 + ptx | [] [] [] [] [] [] [] [] | 8 + recode | [] [] [] [] [] [] [] [] [] | 9 + sh-utils | [] [] [] [] [] [] [] [] | 8 + sharutils | [] [] [] [] [] [] | 6 + tar | [] [] [] [] [] [] [] [] [] [] [] | 11 + texinfo | [] [] [] | 3 + textutils | [] [] [] [] [] [] [] [] [] | 9 + wdiff | [] [] [] [] [] [] [] [] | 8 + `----------------------------------------------------' + 17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv + 27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are @@ -220,6 +221,6 @@ distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. - If August 1997 seems to be old, you may fetch a more recent copy of -this `ABOUT-NLS' file on most GNU archive sites. + If December 1997 seems to be old, you may fetch a more recent copy +of this `ABOUT-NLS' file on most GNU archive sites. diff --git a/gnu/usr.bin/texinfo/AUTHORS b/gnu/usr.bin/texinfo/AUTHORS index 647ea29772d..ead862aba0c 100644 --- a/gnu/usr.bin/texinfo/AUTHORS +++ b/gnu/usr.bin/texinfo/AUTHORS @@ -1,3 +1,3 @@ Richard Stallman, Brian Fox, Bob Chassell, Noah Friedman, Paul Rubin, -Karl Berry, and no doubt many others. +Karl Berry, Eli Zaretskii, and many others. diff --git a/gnu/usr.bin/texinfo/ChangeLog b/gnu/usr.bin/texinfo/ChangeLog index 8e3fb78ebe7..126d1fca463 100644 --- a/gnu/usr.bin/texinfo/ChangeLog +++ b/gnu/usr.bin/texinfo/ChangeLog @@ -1,9 +1,3182 @@ +1999-09-28 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: New isbn. + + * configure.in, + util/texi2dvi: version 4.0. + +1999-09-24 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Fixes from Oleg. + +1999-09-20 Karl Berry <karl@gnu.org> + + * makeinfo/node.c: Don't write region at an anchor. + From: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de> + + * info/terminal.c: Only set dumb terminal if tgetent returns < 0, + not 0. + For HP-UP 11. + From jeff.hull@state.co.us. + + * makeinfo/footnote.c: Don't translate the `Footnotes' string + according to LANG, it should be according to + @documentlanguage, which isn't implemented yet. + From: Jan Nieuwenhuizen <janneke@gnu.org> + + * doc/texinfo.txi: @end direntry from kama. + +1999-09-19 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: \ninett is now \smalltt. + + * doc/texinfo.txi: arnold changes + + 1999-09-03 Akim Demaille <akim@epita.fr> + * texi2dvi (getopt): batch has to be assigned `eval', not `echo'. + (bibtex): Launch BibTeX also when the LOG file complains that + there are no BBL file. + + * doc/texinfo.txi: Document that @anchor ignores spaces. + + * makeinfo/cmds.c (cm_shyph): remove, ­ is not supported in + browsers. + From: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de> + + * makeinfo/makeinfo.c: Don't crash if current_indent = 0. + From: Jan Nieuwenhuizen <janneke@gnu.org> + + * makeinfo/makeinfo.c: Avoid blank lines between @menu entries. + * configure.in: 3.12t + + 1999-08-31 Eli Zaretskii <eliz@is.elta.co.il> + * info/info.c (info_short_help): Document --apropos. + +1999-09-18 Karl Berry <karl@gnu.org> + + * makeinfo/html.c (html_output_head): use text for <title>, not + html markup. From François. + * makeinfo/makeinfo.c (text_expansion): new routine. + * makeinfo/cmds.c (cm_settitle): don't expand the title here, + we'll do it later. + + * makeinfo/makeinfo.h (text_expansion): declare. + + * info/indices.c, + * info/infodoc.c, + * info/session.c, + * info/footnotes.c: translate errors. + * info/info.h: Use `' instead of "" in errors. + +1999-09-06 Karl Berry <karl@gnu.org> + + +1999-08-24 Jan Nieuwenhuizen <janneke@gnu.org> + * makeinfo/node.c:cm_node: don't compare current_node when null. + + 1999-08-23 W. L. Estes <will@fumblers.org> + * makeinfo/node.c (cm_node): write <a name=> tags even + ifusing --no-headers + + * configure.in: ospeedlib -> trylib + From: Andreas Schwab <schwab@suse.de> + + * makeinfo/makeinfo.c (read_command): add explicit 0 to return if + enclosure command. From: Andreas Jaeger <aj@arthur.rhein-neckar.de>. + +1999-08-19 Karl Berry <karl@gnu.org> + + * configure.in: add missing quotes, logic in new termcap library + check. + +1999-08-17 Karl Berry <karl@gnu.org> + + * makeinfo/multi.c, + * makeinfo/sectioning.c, + * makeinfo/node.c, + * makeinfo/macro.c: omit unused vars + * info/session.c (info_goto_invocation_node): omit unused decl. + + * configure.in: Check for extra termlib variable necessary on + HP-UX 9. + From: Olaf Bachmann <obachman@mathematik.uni-kl.de> + + 1999-08-16 Andreas Schwab <schwab@suse.de> + * info/terminal.c (terminal_initialize_terminal): Try tcgetattr + and cfgetospeed in preference to TIOCGETP. + (original_tchars, original_ltchars): Define them only if needed. + +1999-08-16 Karl Berry <karl@gnu.org> + + * info/infodoc.c (create_internal_info_help_node): rename arg. + (info_find_or_create_help_window): avoid deref of null eligible. + + * info/terminal.c (TIOCGETP, TIOCGETC, TIOCGLTC) [alpha && linux]: + #undef. Useless stubs are present. + +1999-08-15 Karl Berry <karl@gnu.org> + + * info/nodes.c: Remove reference to nonexistent RFC for Info + files. + +1999-08-11 Eli Zaretskii <eliz@is.elta.co.il> + + * info/nodes.c (info_find_file_internal): If the file's contents + were gc'ed since last time it was loaded, reload the file. + +Wed Aug 11 06:42:47 1999 Karl Berry <karl@gnu.org> + + * doc/Makefile.am (EXTRA_DIST): add txi-pt.tex from Lalo. + +Mon Aug 9 16:28:18 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Support preloaded texinfo.tex, from Stephen. + + * makeinfo/makeinfo.c (add_char): restore ugly check for first + character being <. + + * makeinfo/cmds.c (cm_kbd): Increment in_fixed_width_font for + html. + + * doc/texinfo.txi: effect not affect + + * makeinfo/makeinfo.c: Rearrange help. + + * makeinfo/toc.c: Cast %* arguments to (int) to placate gcc + -Wformat. + +Fri Aug 6 13:03:14 1999 Karl Berry <karl@gnu.org> + + * util/install-info.c: Hardwire the File: dir, Node: top part of + the skeleton dir file. + Report from: Stanislav Brabec <utx@k332.feld.cvut.cz> + + * info/Makefile.am (BUILT_SOURCES): rm -f $(BUILT_SOURCES), a + kludge. + + 1999-07-28 Karl Eichwalder <ke@gnu.franken.de> + + * makeinfo/makeinfo.c: Fix help string (-o). + + 1999-07-30 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (cm_uref, cm_email): Don't collapse -- and + `` in the URL part of the reference. + + 1999-08-03 Eli Zaretskii <eliz@is.elta.co.il> + + * util/install-info.c (main): For entries given on command line, + set entry_sections and entry_sections_tail members to NULL, and + set text_len member to the entry length. After processing the + Info file, update the entry_sections pointers of all entries that + came from the command line. + + * util/texindex.c (sort_offline, sort_in_core): use off_t rather + than long. + Found on FreedBSD 2.2.8 by "Trond Endrestol" <endrestol@hotmail.com>. + +Mon Jul 19 17:16:46 1999 Karl Berry <karl@gnu.org> + + * configure.in: 3.12n + + * makeinfo/makeinfo.c (add_char): Don't insert <p> if we're in + @html. + + * makeinfo/html.c (add_escaped_anchor_name), + * makeinfo/toc.c (toc_add_entry): use URL_SAFE_CHAR. + * makeinfo/makeinfo.h (HTML_SAFE, URL_SAFE_CHAR): new macros. + +Sun Jul 18 14:47:40 1999 Karl Berry <karl@gnu.org> + + * dir-example: Add bzip2. + + * configure.in: 3.12m. + + * doc/texinfo.txi (@afourlatex,@afourwide): add to command list. + +1999-07-17 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (cm_xref): Don't collapse `` and -- while + expanding node names. Generate a terminating period for + @pxref, when it has more than a single argument. + + * makeinfo/index.c (cm_printindex): Don't collapse `` and -- while + expanding node names. + +Sat Jul 17 16:33:45 1999 Karl Berry <karl@gnu.org> + + * 3.12l. + + * doc/texinfo.txi: @alias, @definfoenclose, etc. + + * util/texindex.c (indexify): error message instead of abort(2) + when no page number. + +Fri Jul 16 18:00:26 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Overfull boxes, help2man, etc. + + * util/Makefile.am (EXTRA_DIST): texi-outline.gawk is really + outline.gawk, add fixref.gawk and prepinfo.awk and + texi-docstring-magic.el. + +Thu Jul 15 18:57:54 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: .fmt, etc. + * doc/texinfo.txi: More macro docs, etc. + +Wed Jul 14 19:58:47 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Give good quote. + + * util/Makefile.am (EXTRA_DIST): add texi-outline.gawk. + + From: kama@hippo.fido.de (Karl Heinz Marbaise) + * makeinfo/toc.c (contents_update_html): go back to start level. + * doc/texinfo.txi: deftypeop + + From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> + * makeinfo/toc.c (toc_add_entry): don't assume sprintf return type + is int. + * makeinfo/sectioning.c (insert_and_underscore): declare more + unsigned char *. + * makeinfo/macro.h (itext_info, itext_size): remove declarations, + they're defined static. + * makeinfo/makeinfo.c: Split up help string even more. + +Tue Jul 13 17:16:18 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Document @rmacro. + * makeinfo/macro.c (cm_rmacro): new command to do @allow-recursion + by default. + (define_macro): split off from cm_macro. + + * makeinfo/macro.h (cm_rmacro): declare. + * makeinfo/macro.h (delete_macro): do not need to export. + * makeinfo/cmds.c (rmacro): new command. + + * makeinfo/html.c, + * makeinfo/toc.c, + * makeinfo/lang.c, + * makeinfo/makeinfo.c: Use strchr instead of member. + +Mon Jul 12 08:01:19 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: document this. + * makeinfo/macro.c (apply): warn if \ in macro body is not + followed by a parameter name or \, instead of silently + accepting it, for compatibility with TeX. + + * makeinfo/macro.c: Doc fix. + +Sun Jul 11 12:49:50 1999 Karl Berry <karl@gnu.org> + + * makeinfo/macro.c (cm_macro): do @quote-arg implicitly if single + argument to macro. + * doc/texinfo.txi: Document this. + + * doc/texinfo.txi (Smallcaps): Document makeinfo warning if arg is + all uppercase. + * makeinfo/cmds.c (cm_sc): warn if arg is all upper (suggested by + Jim Meyering). + + * makeinfo/cmds.c (cm_var): warn if argument contains any of ,[]() + which are unlikely to be allowable in real variable names. + Suggested by rms. + + * makeinfo/makeinfo.h (member): remove weird masking macro. + + * doc/texinfo.txi: Probably ok to indent @example. + + * configure.in: 3.12k. + + * makeinfo/html.c (add_escaped_anchor_name): Cast to unsigned char + for 8-bit chars. From Yoshiki. + + * makeinfo/makeinfo.c: complain -> warn for sake of <80 chars. + +1999-07-09 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/multi.c (multitable_item): Quote the value of align= + property. + + * makeinfo/defun.c (defun_internal): Ditto. + + * makeinfo/cmds.c (cm_center): Ditto. + + * makeinfo/toc.c (toc_add_entry): New argument ANCHOR; all callers + changed. In HTML mode, expand NODE_NAME, or use ANCHOR, if + non-NULL, and save it together with the TOC name in the name + member of the TOC entry. + (toc_add_entry, toc_find_section_of_node): Add a warning in a + comment that the NODE argument must be unexpanded. + (contents_update_html): Terminate the TOC entry with </a>. + + * makeinfo/sectioning.c (sectioning_html): If the sectioning + command is outside any node, generate explicit anchor and pass it + to toc_add_entry. + + * makeinfo/node.c (expand_node_name): Now external instead of + static. + (cm_node): Output expanded node name in the navigation bar. + + * makeinfo/node.h: Declare expand_node_name. + + * makeinfo/index.c (cm_printindex): Produce valid HTML links, even + if index->node is NULL or empty. Fix format of index under + --no-headers. + +Fri Jul 9 18:09:28 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Pair @end html properly. From Olaf B. + + * doc/Makefile.am (EXTRA_DIST): add txi-nl.tex from Marcel van der Boom + <marcel@virtualprojects.org>. + + * doc/txi-en.tex: Doc fix. + +Wed Jul 7 16:07:44 1999 Karl Berry <karl@gnu.org> + + * doc/Makefile.am: Doc fix. + + * configure.in (txi_CHECK_DECLS): call this new macro (in + acinclude.m4). + * acinclude.m4: new file. + +Tue Jul 6 19:12:37 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.h, + * makeinfo/insertion.c, + * makeinfo/cmds.c, + * makeinfo/defun.c: new command @deftypeop. + Suggestion from: booth@us.ibm.com. + +1999-07-05 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (cm_value): Don't convert quotes and dashes + in the argument of @value, since @set doesn't. + +Mon Jul 5 16:43:23 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c (get_item_function): return "@ " rather + than "@". (command_needs_braces): new fn. + (cm_item): handle @itemize markers that don't take braces. + Bug reported by Stephen, prototype fix from Yoshiki. + + * doc/texinfo.txi (Contents): @contents ignored at beginning when + outputting to stdout. + Installed this. +>1999-05-02 Eli Zaretskii <eliz@is.elta.co.il> +> * makeinfo/toc.c (cm_contents, cm_shortcontents): If writing to +> stdout, output the contents and short contents immediately, and +> assign NULL to contents_filename and shortcontents_filename, so +> that toc_update won't try to rewrite stdout. + + + * makeinfo/sectioning.c (sectioning_html): declare starting_pos + and ending_pos as unsigned char * since they're based on + output_paragraph. + + * makeinfo/insertion.c: Cast output_paragraph to char * for sake + of strncmp prototype (on IRIX 4). + From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> + + + * info/man.c (get_manpage_contents): restore previous (default) + SIGCHLD handler so the pclose when gunzipping info files + doesn't fail with `No child processes' (because + reap_children reaped it). + From: Josip Rodin <jrodin@public.srce.hr> + njs@uclink4.berkeley.edu, 38063-forwarded@bugs.debian.org + +Fri Jul 2 14:26:22 1999 Karl Berry <karl@gnu.org> + + From gildea: + * info/terminal.c (TIOCGETC) [M_XENIX && TIOCGETC]: #undef. + * info/session.c (strncasecmp) [M_XENIX]: declare. + +Thu Jul 1 19:25:12 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c (cm_value): erroneous capitalization in + error message. + + * makeinfo/insertion.c (end_insertion): @end html should turn html + escaping back on. From esr. + + * makeinfo/makeinfo.c (cm_pxref): No period needed to terminate + cross-reference. + +Sun Jun 13 16:12:41 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Remove some more node links. + +Sat May 1 16:01:36 1999 Karl Berry <karl@gnu.org> + + * info/info.c: Single space for option indent to match others. + + * makeinfo/makeinfo.c, + * util/texindex.c, + * util/install-info.c: Must indent option list for help2man. + + * info/infodoc.c [HELP_NODE_GETS_REGENERATED]: set to true. + (info_internal_help_text): put moving cmds first so they know how to go + forward in the help window. + (create_internal_info_help_node): can't always quit help with C-x 0. + (info_find_or_create_help_window): pass !one_window_p. + +1999-04-29 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/makeinfo.c (cm_xref): Don't collapse --- to -- etc., + in references. + +Mon Apr 26 16:41:55 1999 Karl Berry <karl@gnu.org> + + * makeinfo/node.c (validate): arrange to translate the reference type. + Report from Sergio. + + * makeinfo/makeinfo.c (validate): should not be declared here. + + * makeinfo/index.c (cm_printindex): <ul compact> is not + translatable. From Yoshiki. + + * doc/Makefile.am (EXTRA_DIST): include new txi-es.tex from Adrian + Perez Jorge <alu1415@csi.ull.es>. And new txi-en.tex. + +Sun Apr 25 16:08:27 1999 Karl Berry <karl@gnu.org> + + * makeinfo/cmds.c (cm_settitle): don't output html head here. + + * makeinfo/makeinfo.c: Move html routines to html.c. + * makeinfo/Makefile.am (makeinfo_SOURCES): add html.[ch]. + * makeinfo/html.[ch]: new files. + + * makeinfo/makeinfo.c: Restore -- in --output line. From Sergio. + +1999-04-23 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/cmds.c (cm_center): Recover the previous state when + called with --html. + +1999-04-24 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/cmds.c (cm_bye): Flush the output, in case some command + produced it immediately before @bye. + + * makeinfo/toc.h (TOC_ENTRY_ELT): New member: containing_node. + + * makeinfo/toc.c (lots_of_stars): New variable. + (toc_add_entry): Add a new parameter node_name; all callers + changed. Record the name of the node containing the section. + (toc_find_section_of_node): New function. + (toc_free): Free the new containing_node member. + (contents_update_info, shortcontents_update_info): Underline the + title with stars. Output two empty lines after the TOC. + (contents_update): Fix off-by-one error in writing the rest of the + file after updating the TOC. + + * makeinfo/index.c (cm_printindex): Save and restore line_number + and input_filename. Don't output the "* Menu" header when + --no-headers is in effect. Make the fake node name for index + entries that are outside any node be more explanatory, and emit an + error for such index entries. Under --no-headers, output a + reference to the section name, as returned by a call to + toc_find_section_of_node, instead of a node name. + +1999-04-24 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/index.c (struct index_elt): Add a new member + entry_text. + (free_index, make_index_entries_unique): Free the entry_text + member. + (index_add_arg): Don't HTML-escape the index entry here. + (index_add_arg): Initialize the entry member to NULL. Put the + entry text into the entry_text member. + (sort_index): Expand the index entries as if in non-HTML mode. + Put the expansion into the entry member of struct index_elt. + (cm_printindex): Allocate the line[] array in Info mode only. + In HTML mode, escape and expand the original index entry text, + don't use the results of expansion inside sort_index. + + * makeinfo/cmds.c (cm_r): Undo the effect of @code while printing + one of the "code"-style indices in HTML mode. + +1999-04-23 Eli Zaretskii <eliz@is.elta.co.il> + + * info/infomap.c (initialize_vi_like_keymaps): Bind DEL in echo + area to ea_rubout, except for __MSDOS__. + + * doc/info-stnd.texi (Node Commands): Document that `I' only + produces its effect for programs documented in the current Info + file. Tell them to invoke `I' from DIR if it doesn't work from + current place. + +Thu Apr 22 09:59:02 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c, + * info/info.c: Rewrite help string a little more. + + * doc/info-stnd.texi: Change chapter name to match node name, + * other changes. + + * makeinfo/cmds.c (cm_bye): call discard_braces. + + * makeinfo/cmds.c (cm_settitle): output more meta and link tags. + + * configure.in (ALL_LINGUAS): add eo. + + * util/install-info.c [STRIP_DOT_EXE]: #if not #ifdef + +Wed Apr 21 19:40:51 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Doc fix. + + * makeinfo/sectioning.c (insert_and_underscore): do not output + html anchor here. + * makeinfo/node.c (cm_node): do anchor at node name not sectioning + title. + + * makeinfo/node.c: Newlines on node lines. + +Tue Apr 20 13:02:46 1999 Karl Berry <karl@gnu.org> + + * info/man.c (get_manpage_contents): freopen stdin and stderr to + /dev/null rather than closing them. http://bugs.debian.org/14787 + +Mon Apr 19 14:12:09 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Document possibility of `titlepage' stuff for + plain text output using @ifinfo. + Report from: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>. + + * makeinfo/cmds.c: Screw that. + * doc/texinfo.txi: Fix up frontmatter a bit. + + * dir-example: Spaces not tabs. + * dir-example (R FAQ): add. + + * makeinfo/makeinfo.c: Lowercase makeinfo in first line. + + * doc/info.texi (The node reached...): is a @subsection not a + @subsub. + + * doc/texinfo.txi: Document option rename. + * makeinfo/makeinfo.c: Rename option to commands-in-node-names. + + * makeinfo/index.h (index_compare_fn): declare. + * makeinfo/index.c (index_element_compare): call through new + variable index_compare_fn, and set it to strcoll if + @documentlanguage was used and LANG != en. + #include lang.h. + +Sat Apr 17 14:46:47 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c (current_item_function, cm_item): rewrite + to skip all conditionals. + (cm_item): use current_item_function rather than current_insertion_type + to check what to use for @item, so @ifset etc. can be used around + @items. + Report from: "W. L. Estes" <wlestes@br20920.uncg.edu>. + + * makeinfo/makeinfo.c (current_insertion_type): no need to + declare. + + * makeinfo/makeinfo.c: Add examples to help message. + + * util/texindex.c (usage): Rearrange --help, avoid extra newline. + + * info/info.c: Sort --help in the usual place. + + * makeinfo/makeinfo.c: Reindent help message, rename + --expensive-validation to --commands-in-nodes. + +Fri Apr 16 17:53:48 1999 Karl Berry <karl@gnu.org> + + * makeinfo/cmds.c (cm_ignore_arg): new routine. + (cm_ignore_line_no_op): remove, can use cm_ignore_line. + +Tue Apr 13 16:45:39 1999 Karl Berry <karl@gnu.org> + + * doc/info-stnd.texi: Frontmatter changes. + + * doc/info.texi: Remove advanced remark in first node. + + * doc/texinfo.txi: Texinfo.tex does macros now. From Eli. + + * doc/texinfo.txi: Document @w{ } to produce an unbreakable space. + + * util/texi2dvi: Update from Akim, avoid Solaris ucb echo weirdness. + + * info/infodoc.c: Parenthesize function calls, don't depend on + gettext being there. Report from: Doug Semler + <doug@seaspace.com>. + +1999-04-12 Eli Zaretskii <eliz@is.elta.co.il> + + * info/infomap.c (initialize_vi_like_keymaps): Initialize the echo + are keymap *before* it is filled up with keys. + +1999-04-10 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/macro.c (execute_macro): Reset the line number to where + the macro argumenst begin, before executing its expansion. + + * makeinfo/makeinfo.c (cm_xref): Expand the name of arguments + before writing them in HTML mode. + (handle_menu_entry): Expand the name of the gleaned node before + writing it in HTML mode. + + * makeinfo/sectioning.c (sectioning_html): Expand the name of the + current node when producing the <a name=... anchor. + + * makeinfo/node.c (cm_node): Expand the name of node and its links + before outputting them in HTML mode. + + * makeinfo/index.c (cm_printindex): Expand node names to which the + index points. + + * makeinfo/footnote.c (cm_footnote): Call execute_string instead + of add_word_args, since current_node needs to be expanded. Expand + the name of the Footnotes node before calling + remember_node_reference. + + * makeinfo/tests/node-expand.txi: New test, for testing how node + names are expanded in @node, @menu, cross-references, and + indices. + + * makeinfo/makeinfo.c (add_char): If we output <p>, adjust the + affected brace positions by 3, so cm_xxx functions get what they + expect in START and END. + (insert_html_tag): Likewise. + + * makeinfo/cmds.c (cm_sc): Remove the kludge that looks for the + beginning of <small>, it is no longer needed. + + * makeinfo/macro.c (cm_definfoenclose): Don't stop at the first + blank after the second comma: the blank may belong to the second + delimiter. + + * makeinfo/tests/htmlpara.txi: New test, for the commands affected + by the <p> output at paragraph beginning. + + * makeinfo/makeinfo.h (expensive_validation): New option. + + * makeinfo/makeinfo.c (long_options): Add expensive_validation. + (usage): Likewise. + + * makeinfo/node.c (find_node): If NAME isn't found verbatim, try + expanding it and every node name in tag table, before comparing + them, but only if expensive_validation is non-zero. + (find_node_reference): Likewise. + (cm_node): Don't expand node name and its links here. + (validate_file): If direct comparisons fail, try expanding the + comparees before giving up, unless expensive_validation is zero. + Switch the order of NODE and UP in error message about a lacking + menu item. + +1999-04-07 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/index.c (cm_printindex): Don't output "Menu" header. + + * makeinfo/node.c (get_node_token): Collapse whitespace in node + names. + (glean_node_from_menu, expand_node_name): Likewise. + + * info/infomap.c (initialize_vi_like_keymaps): Bind all the 256 + keys to ea_insert, like the Emacs-like case does. + + * doc/info-stnd.texi (Invoking Info): Document support for files + compessed with bzip2, and the --vi-keys option. + (Many places): Document key bindings under --vi-keys. + +1999-04-06 Eli Zaretskii <eliz@is.elta.co.il> + + * info/session.c (info_last_node, info_first_node): With a numeric + argument, go to ARGth node counting from the beginning. Skip + anchor tags when looking for the target node--the last tag can be + an anchor, for example. + (last_search_direction, last_search_case_sensitive): New + variables. + (last_search_for_string): Remove variable. + (info_search_internal): Always move point by one notch before + beginning the search, to avoid complications in repeated search + commands. When looking for the next node tag, skip any anchor + tags. + (info_search_1): Accept a 5th argument ASK_FOR_STRING, and only + prompt for search string if it's non-zero. All callers changed. + Look for the COUNTth occurence of the string. + (info_search, info_search_backward, info_search_case_sensitively): + Set last_search_direction and last_search_case_sensitive. + (info_search_next, info_search_previous): New commands, repeat + last search in the same or reverse direction without prompting the + user for the string. + + * info/infomap.c (initialize_emacs_like_keymaps): Bind `C-x n' to + info_search_next and `C-x N' to info_search_previous. + (initialize_vi_like_keymaps): Bind `n' to info_search_next and `N' + to info_search_previous. + +1999-04-04 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (get_rest_of_line): Don't expand non-macros, + so that macro-expanded output will still have them. + +1999-04-03 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/node.c (cm_node): Expand the node name and its links + completely before using them, so that they could use e.g. @value{} + etc. + + * makeinfo/makeinfo.c (replace_with_expansion): Don't + remember_itext if we are executing_string. + + * makeinfo/sectioning.c (sectioning_html): Remove #ifdef + HAVE_MACROS. Don't call me_execute_string if already + executing_string. + + * makeinfo/toc.c (toc_add_entry): Expand macros in TOCNAME right + here, since the macro can be later redefined. + (contents_update_html, contents_update_info, + shortcontents_update_html, shortcontents_update_info): Use stdio + functions for output instead of add_word etc. + (rewrite_top, contents_update, shortcontents_update, toc_update): + New functions, replace the TOC placebo with the actual TOC. + (cm_contents): Output a placebo instead of writing the TOC. + (cm_shortcontents): Output a placebo instead of writing the short + TOC. + + * makeinfo/makeinfo.c (convert_from_loaded_file): Call toc_update + if appropriate. + + * makeinfo/sectioning.c (cm_top): Don't output the HTML header + here, since the Top node might be preceeded by other commands, + like @contents. + + * makeinfo/cmds.c (cm_settitle): Output the HTML header here. + + * makeinfo/node.c (set_current_output_filename): New function, + saves the name of the actual file we are now writing, including in + the case of split-HTML output. + (cm_node): Call it to record the name of output file. + + * makeinfo/footnote.c (free_pending_notes): Re-initialize + current_footnote_number to 1. + + * makeinfo/index.c (index_add_arg): Remove redundant xstrdup. + (cm_printindex): Don't free index->entry: it is freed in + free_index, if, e.g., there's more than one file to convert. + + * makeinfo/makeinfo.c (init_internals): Call toc_free. + +Mon Apr 5 16:53:33 1999 Karl Berry <karl@gnu.org> + + * doc/Makefile.am: Texmf_{texinfo,dvips}: dirs not files. From + Kurt Hornik. + +Wed Mar 31 13:50:09 1999 Karl Berry <karl@gnu.org> + + * Pretest 3.12h. + + * makeinfo/node.c (last_node_p): new fn. + (split_file): call it, instead of assuming no more entries means + no more nodes. (Loses with anchors.) + Report from: "Oleg S. Tihonov" <ost@benetnash.ffke-campus.mipt.ru>. + + * makeinfo/index.c (sort_index): whether an entry is @code or not + depends on the element, not the index, because of synindex. + + * doc/Makefile.am (install-tex): Must use $(TEXMF), do + $(mkinstalldirs) on tex dirs. + From: Nathan Sidwell <nathan@acm.org>. + + * doc/texinfo.txi: Document need for blank line before @image if + you want space. + + * Install changes from Eli: + + 1999-03-09 Eli Zaretskii <eliz@is.elta.co.il> + + * info/infodoc.c (info_internal_help_text): Remove hard-wired key + names, use %-10s instead. + (info_help_keys_text): New variable, holds two variants of keys + that invoke basic commands, indexed by vi_keys_p. + (create_internal_info_help_node): Use info_help_keys_text[]. + + * info/window.c (build_message_buffer): Support more general + format strings, like %-10.15s, %+4d etc. + + * info/infomap.c (initialize_vi_like_keymaps): Bind ESC-h, ESC-t, + C-x LFD and C-x RET. + + 1999-03-08 Eli Zaretskii <eliz@is.elta.co.il> + + * util/install-info.c (output_dirfile): Sort the entries and + output them in alphabetic order. Output each entry only in those + sections where it belongs. + (parse_input): New function, code moved from main. Process + sections and entries in a single loop, and record with each entry + the list of sections where that entry belongs. Record each entry + separately, not all of them together as a single block. + (parse_dir_file): New function, code moved from main. + (main): Move code to parse_input and parse_dir_file. Put the new + entries only into sections where they belong. + (compare_entries_text): New function, called when sorting new + entries. + + * info/infomap.c (initialize_vi_like_keymaps): New function. Bind + keys a-la Less, including new functions from session.c below. + (initialize_emacs_like_keymaps): New function, with the guts of + initialize_info_keymaps. + + * info/session.c (info_scroll_forward, info_scroll_backward): If + default_window_size is non-negative, use it as the default number + of lines to scroll. + (info_scroll_forward_set_window, info_scroll_backward_set_window, + info_down_line, info_up_line, info_scroll_half_screen_down, + info_scroll_half_screen_up, info_search_backward): New functions, + for Less-like look and feel. + +Tue Mar 30 16:44:53 UTC 1999 Karl Heinz Marbaise <kama@hippo.fido.de> + + * doc/txi-de.tex: + - added additional putwordin + * doc/texinfo.txi: + - changed defivar into deftypeivar + * makeinfo/sectioning.c: + - changed output of anchors based on problems with ie. + * makeinfo/defun.c: + - output in HTML mode changed to be on previous state. + * makeinfo/insertion.c: + - fixed up HTML output for deftypeivar. + +1999-03-30 Akim Demaille <demaille@inf.enst.fr> + + * texi2dvi ($tmpdir): Avoid security holes. + +Fri Mar 26 17:06:55 1999 Karl Berry <karl@gnu.org> + + * makeinfo/cmds.c (cm_exdent): rewrite to preserve blank lines. + Bug from: "Oleg S. Tihonov" <ost@benetnash.ffke-campus.mipt.ru>. + + * makeinfo/cmds.c (cm_exdent): arg is in `roman'. + +Thu Mar 25 16:21:27 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c, + * makeinfo/defun.c, + * makeinfo/insertion.h (insertion_type): add deftypeivar. + * makeinfo/defun.h (cm_defun): declare here. + * makeinfo/cmds.c (defun.h): include. + * doc/texinfo.txi (deftypeivar[x]): new commands. + * makeinfo/cmds.c (deftypeivar[x]): new commands. + + * makeinfo/cmds.c (cm_exdent): save, set and restore + in_fixed_width_font. + + * doc/texinfo.txi (uref): rewrite. + + * info/info.c (info_short_help): more spaces for new help2man. + + * makeinfo/node.c (cm_node): output node name in html, change + navbar punctuation. + + * doc/texinfo.5: Fix URL. + + * Finally installed this: + 1998-05-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + * makeinfo/makeinfo.c (convert_from_loaded_file): When the file + contains no @setfilename then always look for \input (not + \include) in the first line and skip that. Don't skip the first + line if no \input was found. + +1999-03-24 Akim Demaille <demaille@inf.enst.fr> + + * configure.in (AC_HEADER_STAT): Added. + * util/texindex.c (main): Check infiles are not directories. + +1999-03-24 Akim Demaille <demaille@inf.enst.fr> + + * texi2dvi (index_files): Don't use `!' to run sed -e "s!foo$!!" + since the shell will interpret `$!'. + +Tue Mar 23 16:41:08 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi (uref): rewrite to make HTML output read more + nicely. From Tim S. + + * info/info.c (info_short_help): include examples. + + * makeinfo/makeinfo.c (close_paragraph_with_lines): move earlier + so can be static. + + * makeinfo/sectioning.c, + * makeinfo/node.c, + * makeinfo/makeinfo.h, + * makeinfo/makeinfo.c, + * makeinfo/macro.c, + * makeinfo/insertion.c, + * makeinfo/cmds.c, + * makeinfo/files.c, + * makeinfo/footnote.c (size_of_input_text): rename to + input_text_length. + + * makeinfo/makeinfo.c (cm_xref): make wrong-char-following a warning. + (replace_with_expansion): remove bogus conditional that was duplicated + unconditionally. + From: Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de> + +Mon Mar 22 14:39:59 1999 Karl Berry <karl@gnu.org> + + * doc/Makefile.am (install-tex): parenthesize. + + * Makefile.am (dist-hook): remove, it uses hard links so we chmod + all our sources. + + * makeinfo/toc.c, + * makeinfo/defun.c, + * makeinfo/sectioning.c: Use _, not N_. + + * info/Makefile.am (ginfo_SOURCES): include $(BUILT_SOURCES) + explicitly. + + * makeinfo/lang.c, + * makeinfo/lang.h: ISO-639 updates. + + * makeinfo/cmds.c: exampleindent changes. + + * info/info.c (info_short_help): reformat somewhat, and don't say + info info options any more. + + * doc/info-stnd.texi (Invoking): make description format somewhat + more standard. + + * info/infomap.c (Initialize_info_keymaps): do ea_insert bindings + first so subsequent bindings (e.g., for ESC) override. + +Sun Mar 21 17:31:00 1999 Karl Berry <karl@gnu.org> + + * makeinfo/multi.c (output_multitable_row): remove unnecessary + trailing whitespace from output, output blank row for blank @item. + + * doc/texinfo.txi: Remove extra @item in language multitable. + +Sat Mar 20 12:30:25 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Update language table from ISO 639: + http://www.iro.umontreal.ca/contrib/po/iso-639. From kama. + + * doc/texinfo.txi (exampleindent): document. + + * doc/texinfo.txi (Creating an Info File): use this for the node name. + + * doc/info.texi: Make Texinfo references consistent, etc. + +1999-03-18 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/makeinfo.c (set_default_indentation_increment): new + routine. + * makeinfo/insertion.c (cm_exampleindent): new routine. + Call set_default_indentation_increment. + +Mon Mar 15 17:06:15 1999 Karl Berry <karl@gnu.org> + + * info/Makefile.am (ginfo_SOURCES): Remove doc.c and funs.h in + hopes they then won't be distributed. Report from Andreas. + + * makeinfo/cmds.c (cm_sp): close paragraph and disable filling to + produce blank lines in info. + Report from: Michael Vanier <mvanier@bbb.caltech.edu>. + + * doc/texinfo.txi: Attempt to get Edition info on one line. + + * makeinfo/makeinfo.h (cr_or_whitespace): use whitespace and check + for \r. (skip_whitespace_and_newlines, command_char): use it. + Report from bonzini@gnu.org. + + * makeinfo/cmds.c (cm_center): save and restore filling_enabled, + so @center can be used inside an @example. Bug from kama. + +1999-03-13 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/footnote.c (cm_footnote): In separate footnote style, + generate a reference to "foo-Footnote-NN" for each footnote. + (output_pending_notes): In separate footnote style, generate an + anchor "foo-Footnote-NN" for each footnote, so that the link in + the parent node would lead directly to the footnote. + + * info/footnotes.c (make_footnotes_node): Recognize the new + "foo-Footnote-NN" style of footnote references. + +1999-03-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * configure.in (AC_OUTPUT): Remove command to create po/Makefile, + already done by AM_GNU_GETTEXT. + +Tue Mar 9 17:48:46 1999 Karl Berry <karl@gnu.org> + + * Makefile.am (dist-hook): make distribution directory writable. + + * Installed these changes: + + 1999-03-04 Akim Demaille <demaille@inf.enst.fr> + + * texi2dvi (bibtex): Allow several runs of bibtex, this can be + used if bibentries reference other bibentries. Moreover, looking + for `Citation' in the LOG should be enough to avoid uneless runs. + + Sun Mar 7 15:15:00 1999 UTC Karl Heinz Marbaise <kama@hippo.fido.de> + + * makeinfo/sectioning.{c,h}: + - using defines instead of literals. + - cleaned up some stylistic matters like Karl Berry + suggested. Handling of things like: + @unnumbered .. + @section ... + now it works correct. + + * makeinfo/toc.{c,h} + - addTocEntry, freeToc changed into toc_add_entry + toc_free. stylistics changed. + + * makeinfo/iso2cht.pl,iso-639: script, table from the web. + - perl script converting the iso-639 table from the web + into the appropiate files (isoenum.h, isotab.c and + iso.texi) which can be inserted directly into + lang.c, lang.h and texinfo.txi. + +Tue Mar 9 17:47:59 1999 Karl Berry <karl@gnu.org> + + * configure.in: Bump to 3.12g. + +Sun Mar 7 07:01:19 1999 Karl Berry <karl@gnu.org> + + * info/infomap.c: Don't do isprint, just bind everything. + +Fri Mar 5 14:31:42 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi, + * makeinfo/makeinfo.c: Document that --no-headers writes to stdout + by default. + + * doc/texinfo.txi: @setchapternewpage doesn't change + \bindingoffset, just headers. Recommend not including it in the + manual source at all. + + * makeinfo/node.c (write_tag_table_internal): set + in_fixed_width_font while constructing this so --- doesn't + collapse to --, etc. Bug report from Sergio. + + * dir-example: Add a2ps stuff. + + * info/session.c: Allow any character in search string. + + * info/infodoc.c (describe_key): don't assume non-latin1 + characters are undefined. + + * info/infomap.c (initialize_info_keymaps): make all characters + insertable by default in echo area. From Eli. + + * Installed these changes: + + Wed Feb 23 22:00:00 1999 Karl Heinz Marbaise <kama@hippo.fido.de> + + * makeinfo/sectioning.{c,h}: + - added to hold complete handling of sectioning + a little step towards modularization ;-) + + * makeinfo/cmds.c: + - sectioning_alist moved to sectioning.c and + added information about enumerated chapter, + section ..., appendix or not. Everything + which has any relationship with sectioning + moved to sectioning.{c,h} I hope I have found + all. + + * makeinfo/toc.{c,h}: + - added for complete handling of "table of contents" + "short contents". Better ASCII only support + (--no-headers) so no Text "Menu" is printed. + May be we can do more. + + * makeinfo/makeinfo.{c,h}: + - added new command line switch --number to enumerate + chapter, sections etc. + + * doc/texinfo.txi: + - --number option documented. + + 1999-02-28 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/insertion.c (in_paragraph): New variable. + (cm_item): Add </p> only if <p> is open. + * makeinfo/makeinfo.c (handle_menu_entry): Ditto. + + * makeinfo/insertion.c (begin_insertion), + * makeinfo/makeinfo.c (handle_menu_entry): If commentary + precedes first menu item, put them outside of <ul>. + Put <p> and </p> correctly. + + 1999-02-27 Eli Zaretskii <eliz@is.elta.co.il> + + * info/info.c (info_short_help): Document --show-options and + --usage. + + 1999-02-26 Eli Zaretskii <eliz@is.elta.co.il> + + * info/makedoc.c (main) [STRIP_DOT_EXE]: Strip the .exe suffix, so + that doc.c says "./makedoc.c", not "./makedoc.exe.c". + + * info/info.c (goto_invocation_p): New variable. + (long_options): New options --show-options and its alias --usage. + (main): Don't update the display until we find the first node to + be displayed, to avoid flushing incorrect display. If user wants + to see the command-line options node right away, display whatever + info_intuit_options_node finds. + + * info/session.c (info_intuit_options_node): New function, uses + heuristics to find the node which describes program's invocation. + (info_goto_invocation_node): New command, asks for a program's + name and displays the invocation node of that program. + (entry_in_menu): New function, fuzzily looks for a menu entry in a + node's menu. + (program_name_from_file_name): New function, suggests a program + name given a name of its Info file. + (info_search_in_node): Accept an additional argument: a flag to + search case-sensitively; all callers changed. If case-sensitive + search is required, don't turn on the case-fold flag in the search + binding. + (info_search_internal): Accept an additional argument: a flag to + search case-sensitively; all callers changed. Share the last + search string between normal and case-sensitive search commands. + (info_search_1): New function, with the guts that previously + belonged to info_search. If the search is case-sensitive, + mentions that in the prompt for the search string. If the search + string includes upper-case characters, searches case-sensitively. + (info_search): Calls info_search_1 with zero case-sensitivity + flag. + (info_search_case_sensitively): New command, calls info_search_1 + with non-zero case-sensitivity flag. + (incremental_search): If the search + string includes upper-case characters, searches case-sensitively. + + * info/search.c (search_backward): Fix bug in case-sensitive + search. + + * info/infomap.c (initialize_info_keymaps): `-' in info window map + produces negative arguments. `S' invokes case-sensitive search. + `O' and `I' invoke goto-invocation. + + * doc/info-stnd.texi (Invoking Info): Document --show-options. + (Node Commands): Document `O', goto-invocation. + (Searching Commands): Document `S' and the case-sensitive search + when the search string includes upper-case letters. Document `/' + as a synonym for `s'. + (Miscellaneous Commands): Document `M--' and `-'. + + 1999-02-25 Eli Zaretskii <eliz@is.elta.co.il> + + * info/info.c (main): Under --index-search, search indices *after* + following menus, so that we don't look for an index in DIR. + + +Wed Mar 3 17:20:07 1999 Karl Berry <karl@gnu.org> + + * makeinfo/cmds.c: Do not output <small> in info mode. + From: Eli Zaretskii <eliz@is.elta.co.il>. + + * makeinfo/insertion.c (enum_html): Remove unused var temp. + From: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * info/infodoc.c: Avoid translation of blank lines. + + * info/tilde.c, + * info/man.c, + * makeinfo/index.c (index_add_arg): avoid use of alloca. + + * info/echo-area.c: Don't pause for an additional 75 microseconds. + Noted by Eli. + + * configure.in: Bump to 3.12f. + + * doc/texinfo.txi: findex enddots. From Eli. + +1999-03-01 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/makeinfo.c (insert_html_tag): Add <p> when + paragraph is not opened. + (sectioning_html): Call close_paragraph so that paragraph + will be started. + +1999-02-26 Akim Demaille <demaille@inf.enst.fr> + + * texi2dvi (get_xref_files): Take $filename_noext as $1. + (get_xref_files): Look for $1.idx only, not *.idx. + (get_xref_files): Look for $1.cb files (\usepackage{changebar}). + * texi2dvi: Look for rerun requests in LOG files in addition to + xref files comparison. + (bibtex): Remove useless `./' (already added in + command_line_filename). + (filename_dir): Smarter sed expression that handles file names + with no directory part. + (txiversion): Removed useless () (`` already guarantee a subshell). + +1999-02-25 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/multi.c (find_template_width): Fix operator precedence. + +Tue Feb 23 10:35:53 1999 Karl Berry <karl@gnu.org> + + * dir-example: ccmode not cc-mode. From hds. + +Mon Feb 22 07:34:00 1999 Karl Berry <karl@gnu.org> + + * makeinfo/lang.c, + * doc/texinfo.txi: Fix kazakhkh typo. + +1999-02-21 Eli Zaretskii <eliz@is.elta.co.il> + + * djgpp/config.sed: Add pcterm.c to terminal.o dependencies. + +1999-02-21 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/lang.c (cm_accent_generic): Emit the accent character + only once, after the argument. + +Sun Feb 21 16:36:14 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c (handle_menu_entry): new routine. + (reader_loop): call it, allowing for comments in menus. + + * makeinfo/node.c: Rearrange functions to make static, etc. + + * doc/Makefile.am (EXTRA_DIST, install-tex): Add txi-cs and txi-no. + +1999-02-20 Eli Zaretskii <eliz@is.elta.co.il> + + * util/install-info.c (open_possibly_compressed_file): Output + explicit message about empty input files. + (insert_entry_here): Insert multiple entries in alphabetical order. + +Fri Feb 19 09:13:28 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c (enum_html): new routine. + (begin_insertion): call it. + Based on code from: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>. + + * lib/xexit.c (EXIT_FAILURE) [!defined EXIT_SUCCESS && VMS]: weird + long value. + From: Lars Hecking <lhecking@nmrc.ucc.ie> + +Thu Feb 18 16:42:10 1999 Karl Berry <karl@gnu.org> + + * makeinfo/node.h (remember_node_reference): decl. + * makeinfo/makeinfo.c (find_unused_reference): dump unused decl. + +1999-02-18 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/cmds.c (cm_dots, cm_enddots): Don't produce … for + HTML, as too many browsers don't support it; use "..." in a + smaller font. + (cm_top): Output the lang= attribute inside <html>. + + * makeinfo/node.c (cm_node): Output the lang= attribute inside + <html>. + + * makeinfo/footnote.c (output_pending_notes): Generate <ol> + instead of <dl compact>. Make the text of each footnote start a + new paragraph. + +1999-02-17 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/insertion.c (cm_item): Remove <dd> when immediately + followed by a <dt>. Add a <br> before every <dt>, except if we + are converting @itemx, or in the first item after <dl>. + (begin_insertion): Use <dl> for tables, to make it look closer to + the Info output. Don't output a newline after a <pre>. + +1999-02-17 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (handle_variable): Don't backup input + pointer if we hit the end of text (usually, inside + execute_string). + * makeinfo/insertion.c (get_item_function): Likewise. + +Wed Feb 17 15:09:06 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Better indexing of space entries. + + * makeinfo/multi.c (find_template_width): new routine to really + parse @multitable {...} templates. + (setup_multitable_parameters): call it. + Bug report from: Sergio Pokrovskij <pok@nbsp.nsk.su>. + + * lib/system.h (substring): declare. + + * lib/Makefile.am (libtxi_a_SOURCES): add substring.c. + + * makeinfo/defun.c: Move substring to lib. + + * util/texindex.c (tempcopy): no longer used. + (maketempname): make static. + + * Installed these changes: + +1999-02-13 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/cmds.c (cm_acronym): New function, makes @acronym + produce a smaller font size in HTML mode. + (cm_sc): Produce smaller font size in HTML mode. + + * makeinfo/footnote.c (cm_footnote): In HTML output, make the + footnote number be a superscript; remove [] around the link. + + * makeinfo/cmds.c (cm_var_sc): Separated into two functions: + cm_var and cm_sc, since @var and @sc have different effects in + HTML output. + + * makeinfo/makeinfo.c (cm_xref, cm_inforef): Don't put "[]" around + HTML links. + + * info/pcterm.c (DJGPP_keytab): Add translation for Alt-PgUp and + Alt-PgDn, to support the new M-prior key. + +Wed Feb 17 11:50:46 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Don't mention texi2roff so prominently. + + * makeinfo/makeinfo.c: Pass enclose_expand to remember_brace + rather than enclose_command. From Eli. + + * makeinfo/macro.c (cm_alias, cm_definfoenclose): Expand macros in + first call to get_until_in_line. From Eli. + + * info/makedoc.c, + * info/session.c, + * info/man.c, + * info/tilde.c, + * info/info.c, + * makeinfo/files.c, + * makeinfo/multi.c, + * makeinfo/node.c, + * makeinfo/makeinfo.c: Use xexit. + * makeinfo/makeinfo.h (NO_ERROR, FATAL, SYNTAX): remove. + + * info/terminal.c: Avoid sleep unless on sun-cmd terminal. + + * lib/xexit.c (EXIT_FAILURE) [!EXIT_FAILURE]: #define to 1 to fix + Sony NEWS-OS 4.0C lossage. From Akim. + + * info/infodoc.c: Translate where is doc string, underline lines + in help. + From: Trond Endrestol <trond@agamemnon.gtf.ol.no> + + * makeinfo/cmds.c (cm_dots, cm_enddots): go back to ... and ...., + … apparently doesn't work widely enough. + +Tue Feb 16 07:37:54 1999 Karl Berry <karl@gnu.org> + + * configure.in (ALL_LINGUAS): add de_AT. + + * util/texi2dvi: Redirect cd output to /dev/null when determining + txiversion. + +Mon Feb 15 13:43:37 1999 Karl Berry <karl@gnu.org> + + * util/install-info.c, + * util/texindex.c: Call xexit instead of exit. + + * lib/system.h (xexit): Declare. + + * lib/Makefile.am (libtxi_a_SOURCES): Add xexit.c. + + * doc/texinfo.txi: Document that @documentencoding is used in the + HTML output. + + * makeinfo/cmds.c (cm_top): use document_encoding if set. + (command_table): call cm_documentencoding instead of no-op. + * makeinfo/lang.c (document_encoding, cm_documentencoding): define. + * makeinfo/lang.h (document_encoding, cm_documentencoding): declare. + + * makeinfo/insertion.c: Restore </p> before <li>. + + * util/texi2dvi: If texinfo.tex version is too low for macros, use + makeinfo. + + * makeinfo/cmds.c (cm_center): save and restore value of + indented_fill, otherwise @center within an @enumerate (say) + also closes the indentation. + Bug from: Sergio Pokrovskij <pok@nbsp.nsk.su>. + +Sun Feb 14 15:25:02 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Doc fix. + + * doc/texinfo.txi: Be enthusiastic if people want to implement + more output formats, but use makeinfo to do the job. + + * makeinfo/index.c (index_element_compare): Use strcoll if it's + available. + * configure.in: Call AC_FUNC_STRCOLL. + * makeinfo/makeinfo.c (main): Use LC_CTYPE and LC_COLLATE + categories. Suggestion from Oleg. + + * lib/system.h (setlocale) [!HAVE_SETLOCALE]: #define away. + Suggestion from Akim. + + * doc/texinfo.txi: Document @paragraphindent working in TeX now. + + * doc/texinfo.txi, + * makeinfo/lang.c, + * makeinfo/lang.h (language_code_type): abbrev changes from Oleg. + + * makeinfo/cmds.c, + * makeinfo/node.c: Only translate `Next:', `Previous:', and `Up:', + not the whole href. From Eli. + + * doc/texinfo.txi: Document that only unsplit html output is + supported in this release. + +Sat Feb 13 17:55:30 1999 Karl Berry <karl@gnu.org> + + * configure.in: Check for termlib before termcap for sake of + Solaris (judging from less-332 configure.in) and maybe + HP-UX 11. + + * doc/texinfo.txi (Footnote commands): incoherency reported by Aharon. + Language vs country fixes from Oleg. + +1999-02-13 Karl Eichwalder <ke@gnu.franken.de> + + * makeinfo/node.c (cm_node): Tag navigation links as translatable. + * makeinfo/cmds.c (cm_top): Ditto. + +Wed Feb 10 22:00:00 1999 Karl Heinz Marbaise <kama@hippo.fido.de> + + * makeinfo/defun.h: + - new because we need get_base_type-function + accessible in insertion.c + + * makeinfo/defun.c: + - complete HTML handling of the @def... things. + + * makeinfo/Makefile.am: + - defun.h added as part of makeinfo. + + * makeinfo/makeinfo.c: + - define looking_at moved into header-file, because + we need it in defun.c + + * makeinfo/insertion.c: + - some minor changes made to support the @def... + things in HTML. + + * makeinfo/lang.c: (cm_accent_generic) + - bug fixed. Using umlaut (accent ...) + would produce &A only if an umlaut follows + an empty line. + - bug fixed. Because things like ˜ ` + and ˆ do not exist as standalone characters + in HTML. + - cm_special_char now produce correct HTML for + @O{} and @o{}. + - warning using _("Text") instead "Text" (gettext). + + * makeinfo/cmds.c: + - @url fixed. Display the given Text. + + * doc/texinfo.txi: + - corrected the references for @uref, because + they were given as "url" instead of "uref". + @uref has three arguments, so show them in + command list. + +Wed Feb 10 17:27:58 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Rewrite for overfull box. + +Tue Feb 9 19:03:16 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Document more HTML output stuff. Based on esr + changes. + * makeinfo/macro.c, + * makeinfo/macro.h, + * makeinfo/makeinfo.c: Do alias and definfoenclose expansion. + From esr. + +Mon Feb 8 14:41:07 1999 Karl Berry <karl@gnu.org> + + * makeinfo/cmds.c: New commands @alias and @definfoenclose. + From: "Eric S. Raymond" <esr@snark.thyrsus.com>. + + * doc/texinfo.txi: Document @documentlanguage and + @documentencoding. + + * makeinfo/cmds.c: Move accent support to lang.c. + + * makeinfo/makeinfo.c (add_char): add rather than an 8-bit + char for html. + + * makeinfo/Makefile.am (makeinfo_SOURCES): add lang.[ch]. + + * doc/texinfo.txi: Be even more emphatic that @url is not + typically what you want. + * doc/texinfo.txi: Document that macro calls must use empty + braces. + + * info/session.c: Do not translate node pointers. From Karl E. + + * makeinfo/cmds.c (cm_dfn): Use <dfn>. Suggestion from Eli. + +Sun Feb 7 07:00:08 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Make --html imply --no-split. + + * makeinfo/cmds.c (cm_top): don't core dump if the top node has no + next. + + * makeinfo/makeinfo.c (replace_with_expansion): compare length + after expansion with length of full input text before + expansion, not just the length of the expanded text. + Bug (contents2) reported by kama. + + * info/infodoc.c (create_internal_info_help_node): gettext calls + to help msg strings. From Ulrich. + +Fri Feb 5 17:35:13 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: set makeinfo= for latex case. + + * doc/texinfo.txi (@deftp summary): ref Data Types node that + actually describes it. From kama. + +Thu Feb 4 07:39:10 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Take it back. Emacs info needs that text + before the CTRL-_. + * makeinfo/makeinfo.c: Don't bother to output the header (This is + -, produced ...) to stdout. + + * doc/texinfo.txi (Other Info Directories): Mention that dir files + must be named dir. + + * makeinfo/makeinfo.c (cm_uref): implement optional third + argument. + * doc/texinfo.txi (uref): document it. + Suggestion from: Charles Karney <karney@pppl.gov> + + * doc/Makefile.am (info_TEXINFOS): put texinfo.txi first so + UPDATED reflects its modtime, rather than info-stnd's. + + * makeinfo/files.c (full_pathname) [!WIN32]: #endif in wrong place. + From: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp> + + * makeinfo/cmds.c (cm_url): Remove URL: from output. It's ugly. + +Wed Feb 3 16:05:03 1999 Karl Berry <karl@gnu.org> + + * info/infodoc.c: Doc fix, zero not oh. + + * makeinfo/makeinfo.c (add_char): don't ignore if + only_macro_expansion, even in no_headers case. + Otherwise menu items don't get remembered and defaulting + doesn't work. Macros suck! + + * util/texi2dvi (common): include orig_pwd. + (language): reguess for each file if not explicitly set. + +Tue Feb 2 16:22:32 1999 Karl Berry <karl@gnu.org> + + * configure.in: Bump to 3.12d now. + +Mon Feb 1 14:46:45 1999 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c (cm_item): For itemize and enumerate, do + </p> before the <li> for html. Bug from Eli. + + * makeinfo/index.c: Installed change in index.c: + Mon Dec 28 12:50:14 1998 Matthew Fredette <fredette@mit.edu> + * makeinfo.c (index_add_arg): Use xstrdup on input_filename + when saving it in the new index entry. + + * util/texi2dvi: cd / before cd $orig_pwd in case of DOS drive + change. + +Sun Jan 31 16:39:01 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Used sed to expand only the @{if,}tex parts of + the source since makeinfo's conditional options aren't ready yet + (from Akim). + Also use ${1+"$@"} for Digital Unix "$@" expansion bug (from Noah). + + * util/install-info.c: Doc fix from Eli. + + * doc/texinfo.txi: Oops, said we looked for .png twice. + +Sat Jan 30 17:18:14 1999 Karl Berry <karl@gnu.org> + + * info/session.c (forward_move_node_structure): remove tangled + code to merely print words instead of numbers; too hard to translate. + + * info/session.c: Missing _'s for more i18n. From Trond. + + * doc/Makefile.am (EXTRA_DIST): Include txi-no.tex from Trond. + +Sun Jan 24 09:28:12 1999 Karl Berry <karl@gnu.org> + + * Makefile.am (EXTRA_DIST): Use djgpp by itself instead of listing + each file separately (new feature in automake 1.4). + + * makeinfo/insertion.c (begin_insertion): for quotation, always + increment current_indent even if html output, why not. + (Otherwise must not decrement current_indent in end_insertion.) + + * doc/texinfo.txi: More overfull box fixes. + + * makeinfo/insertion.c: Add some assertions and the beginnings of + handling @tex. + + * doc/texinfo.txi: Fix overfull boxes, but tables of contents at + the front. + + * util/texi2dvi: Can't pass --no-ifinfo --iftex to makeinfo yet, + it's not ready. + +Sat Jan 23 10:22:16 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Pass --no-ifinfo --iftex to makeinfo. + +Fri Jan 22 19:09:49 1999 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Include version.texi before @settitle so + @value{VERSION} gets expanded in the html title. From kama. + + * These patches from Tim Singletary <talon@clark.net>. + * makeinfo/makeinfo.c: Simplify and improve html menus. + * makeinfo/insertion.c (begin_insertion): simplify html menu case + and set had_menu_commentary. + * makeinfo/insertion.h (had_menu_commentary): declare new global. + * makeinfo/node.h (glean_node_from_menu): declare. + * makeinfo/node.c (glean_node_from_menu): new arg to specify what + type of reference to remember as. + + Date: Sun, 29 Nov 1998 09:21:01 -0500 (EST) + From: Tim Singletary <tsingle@talon.clark.net> + To: texinfo-pretest@tug.org + Subject: explanation of previous patches + + > These diffs introduce some non-trivial changes into very + > sensitive parts of makeinfo, and it is hard to judge them without + > knowing what exactly do they solve. + + At a high level, these patches fix (or at least significantly improve) + the html conversion of menus. Specifically, they fix bugs in the + conversion of menu commentary and detailmenu entries. + + The menu commentary fixes require some justification: The unpatched + makeinfo attempts, with many bugs, to place menu commentary outside + the <menu> by adding </ul> and <ul> tags. While I understand the + motivation for this, that there might be browsers that don't support + <p> within <menu>, I'm not aware of any such browser and don't see any + compelling reason to continue the </ul> kludge. + + Certainly + <menu> + <li>First paragraph. + <p>Second paragraph. + <li>Second item. + </menu> + is valid html! + + Anyway, here's what my patches do: + + 1) Deleted the `<h4>Menu</h4>' at the beginning of each menu. Using + `<h4>' is wrong since menus don't usually come after an `h3' + header. `<b>' looks the same on most browsers, but my opinion is + that there's no need for any header at all! + + 2) Deleted the `<li>' kludge at the begining of each menu. It's no + longer needed since I'm deleting the </ul> kludge. + + 3) Replace `in_menu_para', declared static in makeinfo.c:add_char() + with `had_menu_commentary', declared globally. Modified + insertion.c:begin_insertion() to initialize had_menu_commentary to + 1 when beginning a menu. Now there's enough state information for + menu commentary to be processed within <menu> ... </menu>; the + commentary can be seperated from the rest of the menu by bracketing + it between <p>'s. + + Note that the first patch had a bug initializing + had_menu_commentary; the second patch fixes this bug. + + 4) Changed the semantics of the argument to + node.c:glean_node_from_menu(). Previously, glean_node_from_menu() + only called remember_node_reference() when the argument was + non-zero. But add_char() didn't call `glean_node_from_menu(1)' + when processing detailmenu entries. In other words, detailmenu + entries didn't get registered as references, which lead to the html + conversion of detailmenu entries not producing proper hrefs! + + The new semantics are that glean_node_from_menu always calls + remember_node_reference(), but calls it with `menu_reference' when + the first arg to glean_node_from_menu() is 1 and with + `followed_reference' otherwise. Now, detailmenu entries get + registered as `followed_reference' (normal menu entries still get + registered as `menu_reference') and the html conversion produces + proper hrefs. + + 5) The above changes made it possible to streamline the section of + add_char() that deals with html menu text. + + 6) In an otherwise unrelated change, rewrote a section of + glean_node_from_menu to no longer use `goto save_node;'. + + +Thu Jan 21 12:55:42 1999 Karl Berry <karl@gnu.org> + + * doc/info-stnd.texi: OK, let's try restoring the @include + version.texi with the new automake. + + * makeinfo/cmds.c: Improve HTML @pounds, @bullet, etc. + + * doc/Makefile.am (install-tex): new target. + (EXTRA_DIST): Include txi-??.tex. + txi-de.tex: new file from kama. + + * Makefile.am (AUTOMAKE_OPTIONS): Bump to 1.4. + (install-tex): new target. + + * util/texi2dvi: Restore "$@" for explicitness in main loop. + + * doc/Makefile.am (*.1) [TEXINFO_MAINT]: Conditionalize. + + * configure.in (AC_PREREQ): Bump to 2.13. + (TEXINFO_MAINT): Define this AM_CONDITIONAL. + + * doc/texinfo.txi: Document that the HTML output name is derived + from @setfilename. + + * makeinfo/makeinfo.c (convert_from_loaded_file): Use @setfilename + for basename of html output. + + * doc/texinfo.txi (url): Use example.org for the example. + + * makeinfo/cmds.c (cm_url): @url should not produce a link, sorry + to say. + +Wed Jan 20 16:31:55 1999 Karl Berry <karl@gnu.org> + + * util/texindex.c, + * util/install-info.c, + * makeinfo/makeinfo.c, + * info/info.c: It's 1999. + + * doc/info.texi (Advanced info commands): Fix typos from Gildea. + + * makeinfo/makeinfo.c (end_of_sentence_p): don't check negative + array offset. + From: Enrico Scholz <enrico.scholz@wirtschaft.tu-chemnitz.de> + +Sun Jan 17 16:42:16 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Restore --batch, handle changing escape character + more cleanly. From Akim (as always). + +Thu Jan 14 16:47:41 1999 Karl Berry <karl@gnu.org> + + * configure.in (ALL_LINGUAS): Add no. + From: Trond Endrestol <trond@agamemnon.gtf.ol.no> + + * util/texi2dvi: Doc fix from Akim and do not always exit 1 from trap. + And it's 1999. + + * doc/texinfo.txi (image): Document imagename.pdf. + + * Apply this change from Eli: + + 1998-11-20 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.h (meta_char_pos): New variable. + * makeinfo/makeinfo.c (init_paragraph): Initialize it. + (add_char): Use META to create a non-breakable space character. + (add_meta_char): New function. + (end_of_sentence_p): Don't handle characters at meta_char_pos as + normal sentence enders. + (flush_output): Only unMETA the non-breaking space character. + Reset meta_char_pos to zero. + (do_flush_right_indentation): Call adjust_braces_following. + (indent): Likewise. + (cm_value): Save and restore the value of meta_char_pos. + (expansion): Likewise. + * makeinfo/macro.c (me_execute_string_keep_state): Save and + restore the value of meta_char_pos. + * makeinfo/node.c (cm_node): Save and restore the value of + meta_char_pos. + * makeinfo/cmds.c (cm_accent): Make the dot we add due to + @dotaccent be a meta-character. + (cm_code, cm_dfn): Call add_meta_char to insert the closing + quote. + (cm_cite): Call add_char instead of add_word. + +Thu Jan 7 18:04:26 1999 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Handle pdf files more cleanly. From Akim. + +Wed Jan 6 17:49:11 1999 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c (cm_image): Check for .png also. + +Sun Dec 20 07:54:47 1998 Karl Berry <karl@gnu.org> + + * util/texi2dvi: Add --pdf. + + * util/texi2dvi: New option -@ to use @input and @nonstopmode, in + case texinfo is preloaded. + From: Khimenko Victor <khim@sch57.msk.ru> + Date: Sun, 20 Dec 1998 02:04:12 +0300 (EET) + +Sat Dec 19 17:37:37 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi (Multitable Column Widths): leading zero ok for + @columnfractions. + + * util/texi2dvi: New version from Akim, plus --quiet is like + --batch, etc. + +Fri Dec 18 17:22:44 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Document that the Texinfo source can't be + arbitrarily ordered (for print) even if all pointers are supplied. + + * makeinfo/insertion.c (end_insertion): In itemize case, + close_insertion_paragraph so @end itemize cause a line break. + Report from: Sergei Pokrovsky <pok@nbsp.nsk.su> + Date: Sun, 22 Nov 1998 19:45:21 +0700 (GMT) + +Tue Dec 15 16:21:51 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: More fixes from Oleg. + + * configure.in: Bump version to 3.12c for next pretest. + + * util/install-info.c (open_possibly_compressed_file) + [STRIP_DOT_EXE]: logic for compression_program assignment + was reversed. + From: wlestes@wlestes.uncg.edu + +Sat Dec 12 18:02:48 1998 Karl Berry <karl@gnu.org> + + * Merged these changes from Andreas: + +1998-12-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/node.c (cm_node): When searching for @menu don't + require a space after it. + +1998-12-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/cmds.c (cm_top): free top_name only after done using it. + +Sat Dec 12 15:40:13 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Various typos and fixes from Oleg. + + * doc/texinfo.txi: Move @node's outside of @ifinfo for the sake of + HTML processing. + + * doc/texinfo.txi (titlepage): @pxref was not in parens. From Oleg. + +Sun Dec 6 16:49:09 1998 Karl Berry <karl@gnu.org> + + * dir-example: Amd is now am-utils. + + * doc/Makefile.am: Reinstate help2man invocations for development. + + * doc/texinfo.txi: Document @set...contentsaftertitlepage (from kama). + Fix incorrect sense for @image and Hungariam typo (from Oleg). + + * lib/system.h: #include libintl.h here instead of acconfig.h, so + the system include files have a chance to #define NULL + before it does. + * acconfig.h: Remove libintl.h and #defines from here. + From: "Philippe De Muyter" <phdm@macqel.be> + Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET) + + * info/signals.c: Start #ifdef's in column one for cc on sysv68 + (m68k-motorola-sysv). + From: "Philippe De Muyter" <phdm@macqel.be> + Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET) + + * info/filesys.c (is_dir_name): use strcpy instead of automatic + array initialization. + From: "Philippe De Muyter" <phdm@macqel.be> + Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET) + + * configure.in (ALL_LINGUAS): add ru. + +Fri Dec 4 08:12:11 1998 Karl Berry <karl@gnu.org> + + * info/infodoc.c: Gettextize the help buffer string. + +Sun Nov 29 17:12:35 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Use @ifnottex rather than @ifinfo for @top. + (makeinfo top): document this. + + * doc/info-stnd.texi, + * doc/info.texi: Use @ifnottex rather than @ifinfo for @top. + + * makeinfo/insertion.c (cm_menu): Implicitly insert @top command + so we can construct the node tree as usual when we see @menu + before @node. Probably this is when the input uses + @ifinfo instead of @ifnottex, as virtually all existing + manuals do. + + * makeinfo/insertion.c (discard_insertions): Let any conditional + cross node boundary. (So the @top node can be wrapped + in @ifnottex, for example.) + + * Installed these: + +1998-11-21 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (expansion): Save and restore + last_inserted_character and last_char_was_newline. + + * makeinfo/cmds.c (cm_dircategory): Kill any indentation before + INFO-DIR-SECTION. install-info relies on this. + +1998-11-20 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/multi.c (struct env): Add meta_char_pos member. + (select_output_environment): Save and restore meta_char_pos. + (out_char): Output characters by switching environment to #0 and + calling insert. Call flush_output when a newline is output. + (output_multitable_row): Update the current environment's + output_paragraph_offset as well, after removing trailing + whitespace. Fix typo in loop index. + (do_multitable): Call close_single_paragraph. + (end_multitable): Call close_insertion_paragraph. Don't output + an extra newline. + +1998-11-20 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.h (meta_char_pos): New variable. + * makeinfo/makeinfo.c (init_paragraph): Initialize it. + (add_char): Use META to create a non-breakable space character. + (add_meta_char): New function. + (end_of_sentence_p): Don't handle characters at meta_char_pos as + normal sentence enders. + (flush_output): Only unMETA the non-breaking space character. + Reset meta_char_pos to zero. + (do_flush_right_indentation): Call adjust_braces_following. + (indent): Likewise. + (cm_value): Save and restore the value of meta_char_pos. + (expansion): Likewise. + * makeinfo/macro.c (me_execute_string_keep_state): Save and + restore the value of meta_char_pos. + * makeinfo/node.c (cm_node): Save and restore the value of + meta_char_pos. + * makeinfo/cmds.c (cm_accent): Make the dot we add due to + @dotaccent be a meta-character. + (cm_code, cm_dfn): Call add_meta_char to insert the closing + quote. + (cm_cite): Call add_char instead of add_word. + +Sun Nov 29 16:30:06 1998 Karl Berry <karl@gnu.org> + + * info/info.h, + * info/footnotes.h (FOOTNOTE_LABEL), + * info/indices.c (APROPOS_NONE): Use N_ rather than _. + + * info/infodoc.c (create_internal_info_help_node, + function_documentation): Do not translate the empty string. + Date: Fri, 25 Sep 1998 15:09:42 +0400 + From: "Oleg S. Tihonov" <tihonov@ffke-campus.mipt.ru> + + * doc/info-stnd.texi: Mention PRIOR as another alias for + PREVIOUS/PageUp. + + * doc/texinfo.txi: @emph produces _emph_ not *emph*. Spurious + junk before makeinfo bison example. + From: tihonov@ffke-campus.mipt.ru. + +1998-11-16 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/defun.c (defun_internal): Don't expand the arguments to + @defun and its ilk. + + * makeinfo/makeinfo.c (expansion): Copy the name of the currently- + executing command and restore it after expansion. + +Sun Nov 15 17:40:51 1998 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Rearrange usage, allow -v for verbose, only + output `Making' line when verbose. + * makeinfo/makeinfo.h (process_html, process_info, process_tex): + declare. + * makeinfo/cmds.c: Use conditional commands. + * makeinfo/insertion.c (find_type_from_name): Handle rawhtml and + rawtex. + (conditional commands): Allow individual switching on and off. + + * makeinfo/insertion.h: Declare conditionals. + +1998-11-14 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/insertion.c (begin_insertion, end_insertion): Use <pre> + to convert @display and @smalldisplay into HTML. + + * makeinfo/cmds.c (cm_asterisk): Don't insert an extra newline in + HTML mode, since input includes a newline right after the @*. + (cm_sp): Output "<br><p>\n" as many times as the argument says. + (cm_url): Don't include "<a href=" in the anchor text in HTML + output. + + * makeinfo/makeinfo.c (cm_pxref): Don't add a period after @pxref + if in HTML mode. + (get_rest_of_line): Accept an additional argument EXPAND, and + expand the rest of line if it's non-zero. All callers changed. + (close_paragraph): When in HTML mode, honor the formatting of the + source paragraphs by generating "<p>" for every closed paragraph; + follow it by as many "<p>"'s as paragraph_spacing specifies. + +Sat Nov 14 17:38:27 1998 Karl Berry <karl@gnu.org> + + * makeinfo/insertion.c: Use <ul compact> instead of deprecated <menu>. + Omit extra <li> after the menu beginning. + + * makeinfo/index.c: Use <ul compact> instead of deprecated <menu>. + +Thu Nov 12 16:33:09 1998 Karl Berry <karl@gnu.org> + + * Makefile.am (EXTRA_DIST): add djgpp/config.sed. + + * info/terminal.c: #include <sys/ioctl.h> to define TIOCGWINSZ + under LynxOS. From: Marius Groeger <mag@sysgo.de>. + +1998-11-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/insertion.c (begin_insertion): Correctly handle + ifnottex and ifnothtml. + (end_insertion): Likewise. + +Sun Nov 8 17:30:23 1998 Karl Berry <karl@gnu.org> + + * makeinfo/index.c, + * makeinfo/insertion.c: Menu is special to Info. + * makeinfo/node.c: Top is a special name, don't translate it. + * info/session.c (info_top_node): Top is a special name, don't + translate it. + From: "Oleg S. Tihonov" <tihonov@ffke-campus.mipt.ru>. + +Fri Nov 6 17:18:43 1998 Karl Berry <karl@gnu.org> + + * configure.in: Version 3.12b. + + * util/texi2dvi: Fixes from Eli and Christoph Martin. + + Mon Oct 5 13:58:53 1998 Dave Glowacki <dglo@ssec.wisc.edu> + * util/install-info.c: Fix off-by-one error in findlines() + + * util/texindex.c (usage): avoid trigraph until Ulrich fixes + po2tbl.sed.in. From Paul Eggert. + +1998-11-03 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (cm_xref): Don't bypass the test that an + xref ends with a period or a comma if the reference has a single + argument. + +1998-10-31 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/insertion.c (end_insertion): Don't decrement + in_fixed_width_font when leaving a menu, the previous value is + restored by pop_insertion. + + * makeinfo/makeinfo.c (add_char): Don't increment output_column + twice when a newline is inserted into the output. + + * doc/texinfo.txi (emph & strong): Document the use of underscores + for @emph in the Info output. + +1998-10-30 Eli Zaretskii <eliz@is.elta.co.il> + + * djgpp/config.bat: Make sure intl/po2tblsed.in exists before we + begin the configure boogie. + * djgpp/config.sed: Sed script, to be run by config.bat. + + * doc/info-stnd.texi (Node Commands): Document the new G command. + + * info/session.c (info_follow_menus): Step over a possible leading + space in a menu entry in menus[]. + (split_list_of_nodenames): Renamed from split_words. Split the + string on commas, not on spaces, since a menu entry can have + embedded whitespace. Get past the null byte after inserting it. + (info_menu_sequence): Don't crash if there's no DIR node; try + using Top of the current Info file, and if that doesn't work + either, throw an error. + + * util/texi2dvi: Use $path_sep in TEXINPUTS. Don't include any + dots in $tmpdir, 8+3 filesystems won't like that. + + * makeinfo/makeinfo.c (reader_loop): Expand any macros in a menu + entry when creating a <menu> item for HTML. Fix an off-by-one + error in counting input lines. + + * makeinfo/files.c (expand_filename): Don't treat .foo/bar as + absolute file name. + + * makeinfo/makeinfo.c (add_char): Use strncpy instead of memcpy, + since the buffers overlap. If the line being refilled includes + nothing but the indentation and the word being added, do NOT add + an extra newline. + + * util/install-info.c (strip_info_suffix, menu_item_equal, + open_possibly_compressed_file) [__MSDOS__]: Allow .inz and .igz as + suffuxes for compressed files. + (open_possibly_compressed_file): Return an indication whether we + opened a file or a pipe. Use FOPEN_RBIN from system.h. + [STRIP_DOT_EXE]: Use gzip.exe with an explicit .exe extension. + [O_BINARY]: If the file is not compressed, switch its stream to + text mode. + (readfile): Close the file or the pipe. + (output_dirfile): Call pclose to actually run the compressor. + +Thu Nov 5 08:33:06 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: effect -> affect + From: Eric Hanchrow <offby1@blarg.net> + +Tue Nov 3 14:26:59 1998 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c (cm_image): Allocate enough space for the + zero byte. + + * doc/texinfo.txi: Document epsf.tex standard location. + +Tue Oct 27 10:45:47 1998 Karl Berry <karl@gnu.org> + + * Makefile.am (TEXINFO_TEX): add definition. + + * doc/info-stnd.texi: Avoid unnecessary overfull boxes from + examples. + + * doc/Makefile.am (install-data-local): missing ". + + * doc/Makefile.am: Don't try to run help2man in distribution. + +Mon Oct 26 13:43:53 1998 Karl Berry <karl@gnu.org> + + * configure.in (TEXMF): lose this whole block. It is too painful + to maintain with the different tex installations out there. + + * util/Makefile.am (EXTRA_DIST): update-info renamed to + fix-info-dir. + + * makeinfo/footnote.h: Doc fix. + + * makeinfo/multi.c: #include "insertion.h" + * makeinfo/cmds.c: #include "node.h" + * makeinfo/makeinfo.h, + * makeinfo/makeinfo.c: Move globals, functions for insertions and + nodes. + * makeinfo/defun.c: #include "insertion.h" + * makeinfo/Makefile.am: Add insertion.[ch], node.[ch]. + * node.[ch], insertion.[ch]: New files. + + * makeinfo/makeinfo.c, + * makeinfo/makeinfo.h: Move globals for cmds.h. + * makeinfo/index.h: Include cmds.h. + * makeinfo/Makefile.am (makeinfo_SOURCES): Add cmds.h, cmds.c. + * cmds.c, cmds.h: New files. + +Sat Oct 24 17:28:14 1998 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c, + * makeinfo/makeinfo.h: Globals for files.c. + * makeinfo/Makefile.am (makeinfo_SOURCES): add files.[ch]. + +Tue Oct 20 17:03:10 1998 Karl Berry <karl@gnu.org> + + * makeinfo/Makefile.am (makeinfo_SOURCES): add macro.c and + macro.h. + * makeinfo/makeinfo.c: Move macro code to macro.h and macro.c. + * makeinfo/makeinfo.h: Move macro stuff to macro.h, expose global + last_char_was_newline for macro.c. + * makeinfo/index.c, + * makeinfo/footnote.c: #include macro.h. + +Wed Oct 7 16:24:07 1998 Karl Berry <karl@gnu.org> + + * doc/info-stnd.texi: For now don't include version.texi due to + automake error. + + * makeinfo/index.h: #include makeinfo.h for sake of COMMAND type. + * makeinfo/index.c: No need to include makeinfo.h, index.h does + now. + + * makeinfo/makeinfo.c: Move footnote code to footnote.c. + * makeinfo/makeinfo.h: Globals for footnote.c. + * makeinfo/Makefile.am (makeinfo_SOURCES): add footnote.[ch]. + + * makeinfo/makeinfo.c: Move defun code to defun.c, necessary + global to makeinfo.h. + * makeinfo/makeinfo.h (default_indentation_increment): move here + for defun.c. + * makeinfo/Makefile.am (makeinfo_SOURCES): add defun.c. + + * Makefile.am: Doc fix. + + * configure.in (AC_OUTPUT): generate makeinfo/tests/Makefile. + + * makeinfo/makeinfo.c, + * makeinfo/makeinfo.h, + * makeinfo/Makefile.am (makeinfo_SOURCES): add index.[ch]. + +Fri Oct 2 17:42:26 1998 Karl Berry <karl@gnu.org> + + * lib/system.h (STREQ): new macro. + +Thu Oct 1 09:26:57 1998 Karl Berry <karl@gnu.org> + + * doc/texinfo.txi: Delete spare copy since out of date, + add makeinfo html to menu, + detailmenu doesn't take braces in summary. + +Wed Sep 30 14:38:21 1998 Karl Berry <karl@gnu.org> + + * makeinfo/makeinfo.c: Remove != NULL comparisons, + xmalloc/xrealloc casts, assignments in if statements. + +Wed Sep 30 14:16:01 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c: Remove NULL casts and parentheses in return + statements. + + * makeinfo/makeinfo.c (add_link): Don't add a link if the node is null. + (reader_loop): don't glean_node_from_menu if detailmenu, even if html. + Various formatting changes. + + * doc/help2man: Always exit successfully. + + * makeinfo/Makefile.am (SUBDIRS): add. + (makeinfo_SOURCES): no more html.h. + +Fri Sep 11 18:47:15 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c: Fiddle with html output. + +1998-09-07 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (maybe_update_execution_strings): Only + reallocate TEXT if the existing storage is too small, otherwise + leave TEXT alone. + (replace_with_expansion): Call maybe_update_execution_strings to + reallocate input_text if we are executing_string, since storage + for execution_string is assumed to be large enough to hold every + possible string. + (me_execute_string): xstrdup the argument, so callees could freely + relocate it as needed. + +1998-09-06 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (replace_with_expansion): Don't remember + macro-expansion pointers if we are executing_string. + +1998-09-05 Eli Zaretskii <eliz@is.elta.co.il> + + * info/filesys.c (info_suffixes): Put the empty suffix last in the + list, so that `foo.info' is found before `foo', if both exist. + +1998-09-05 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (maybe_update_execution_strings): New + function, updates an entry in execution_strings[] array after + input_text is relocated by replace_with_expansion. + (replace_with_expansion): Call it. + +1998-09-04 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (expand_macro): If a macro is called with + too many arguments, return NULL and print the line number where + the call begins. + (execute_macro): If expand_macro returns NULL, return + immediately. + +Sun Sep 6 19:11:28 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c, + * makeinfo/makeinfo.h, + * makeinfo/multi.c: Html output. Specifically, these changes: + + Fri Jul 4 22:58:29 1997 Dave Love <d.love@dl.ac.uk> + + * doc/makeinfo.texi: Document HTML output. + + * makeinfo/makeinfo.c: Wrap strings in _() in bits changed for + HTML. + (cm_image): Generate <img> for HTML. + + Sun Jun 22 22:50:07 1997 Dave Love <d.love@dl.ac.uk> + + * makeinfo/makeinfo.c (NAMED_NODE_ANCHORS): New define. + (title, outstanding_node, node_number, node_node_references, + escape_html, ifinfo_as_html): New variables. + (tentry.number, node_ref.number, fn.number): New fields. + (CommandTable): Various additions and alterations for HTML. + (long_options): Add html and no-info-as-html. + (main): Extra code for HTML. + (usage): Add HTML stuff. + (expand_filename): Deal with .html. + (escape_string): New procedure. + (convert_from_loaded_file): Extra code for HTML. + (init_internals): Call free_node_references, initialize + node_number. + (reader_loop): Process menu items for HTML hyperlinks. Escape + HTML special characters. + (add_char): Code for line breaks and paragraph insertions in + HTML. + (flush_output): Don't UNMETA for HTML. + (indent): Do nothing for HTML. + (current_item_function): Case for ifhtml. + (begin_insertion): Deal with HTML in various cases. + (insert_html_tag): new procedure. + (cm_asterisk, cm_copyright, cm_accent, cm_code, cm_kbd, + cm_angle_brackets, cm_var, cm_defn, cm_var, cm_emph, cm_string, + cm_cite, cm_top, cm_xref, cm_inforef, cm_uref, cm_direntry, + cm_ifinfo, cm_item, process_defun_args, defun_internal, cm_sp, + cm_dircategory, cm_center, cm_result, cm_expansion, cm_error, + cm_exdent, index_add_arg, make_index_entries_unique, + cm_printindex, cm_footnote, output_pending_notes, + me_execute_string): Code for HTML. + (cm_shyph): New procedure. + (cm_special_char): Add start, end args. Code for HTML. + (cm_email, cm_url, cm_i, cm_b, cm_r): New procedures. + (sectioning_html): New procedure. + (sectioning_underscore): Use it. + (add_link): New procedure. + (remember_node): Add number field and update node_number. Note + next, etc. nodes for HTML. + (add_escaped_anchor_name, add_anchor_name): New procedures. + (cm_node): New code for HTML. Move some other code to more + useful place. + (remember_node_reference): Add number field and update + node_number. + (remember_node_node_reference, free_node_node_references, + number_of_node): New procedures. + (cm_ifhtml, cm_html): New procedures. + (expansion): Take care of HTML escaping. + (cm_settitle): New procedure. + (remember_note): Set number field. + + Declare various procedures in advance. + + * doc/texinfo.txi: Makeinfo --html documentation from Dave Love. + Typo fixes from: Paul DuBois <dubois@primate.wisc.edu>. + +Thu Sep 3 11:11:01 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/Makefile.am (makeinfo_SOURCES): add html.[ch]. + +1998-08-28 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c (cm_uref, cm_email): Use get_xref_token to + gather arguments. + (get_xref_token): Keep track of input line number when expanding + xref arguments. + +Tue Aug 25 14:36:44 1998 Karl Berry <karl@cs.umb.edu> + + * util/texi2dvi: Exit the script if TeX exits with bad status. + +1998-08-16 Eli Zaretskii <eliz@is.elta.co.il> + + * info/indices.c (info_index_apropos): In the *Apropos* + menu, print the label first, then the Info file name and + the node name. Make the Info file name part of the menu + entry, so that all entries are distinct. + (apropos_in_all_indices): Scan each Info file only once, thus + avoiding multiple identical entries in the *Apropos* menu. + Free xstrdup'ed buffer, to avoid leaking memory. + +Thu Aug 13 12:54:58 1998 Karl Berry <karl@cs.umb.edu> + + * configure.in: Set version to 3.12a. + + * Makefile.am (AUTOMAKE_OPTIONS): bump required version to 1.3, + add readme-alpha option. + + * util/texindex.c (program_name), + * util/install-info.c (progname), + * info/info.c (program_name), + * makeinfo/makeinfo.c (progname): hardwire per coding standards. + * doc/help2man: Remove ginfo special case. + +Tue Aug 11 17:41:15 1998 Karl Berry <karl@cs.umb.edu> + + * util/gen-dir-node: New version from drk@sgi.com. + +Mon Aug 10 13:55:37 1998 Karl Berry <karl@cs.umb.edu> + + * dir-example: Add entries from Linux. + + * info/info-utils.c (get_window_of_node): New fn. + * info/info-utils.h (get_window_of_node): New fn. + * (strchr,...) [!HAVE_STRCHR]: remove these #defines. + * info/infodoc.c (info_find_or_create_help_window): Call + get_window_of_node instead of get_internal_info_window. + This is so pressing ? repeatedly will always get to the same Help + window instead of popping up new ones. + From: "Brian J. Fox" <bfox@prospero.datawave.net> + + * info/signals.c: Ignore SIGWINCH if we're in the midst of it. + We might get a whole lot of them. Noticed on Afterstep. + From: "Brian J. Fox" <bfox@prospero.datawave.net> + +1998-07-25 Bruno Haible <bruno@linuix.math.u-bordeaux.fr> + + * install-info.c (findlines): Allocate room for one more line, + to avoid crash if dir file has exactly 512 lines. + +Tue Aug 4 07:14:35 1998 Karl Berry <karl@cs.umb.edu> + + * info/info.c: Improve help message. + + * dir-example: Add mtools. + +Fri Jul 31 13:29:52 1998 Karl Berry <karl@cs.umb.edu> + + * doc/help2man: Various hacks for texinfo. + + * doc/texinfo.txi: Make dir entries more consistent. + + * doc/Makefile.am: Generate man pages with help2man. + + * util/texi2dvi, + * util/install-info.c, + * makeinfo/makeinfo.c, + * util/texindex.c: Improve help message. + + * doc/info.5: Initial. + * doc/texinfo.5: Section 5. + +Thu Jul 30 17:31:42 1998 Karl Berry <karl@cs.umb.edu> + + * doc/info-stnd.texi, + * doc/texinfo.txi: Use Automake-standard VERSION and UPDATED. + +Wed Jul 29 17:34:41 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Describe macro limitations a bit more. + + * dir-example: Correct makeinfo link. + +Tue Jul 28 16:44:06 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (remember_brace_1): xstrdup command, since + we free it later. + +Mon Jul 27 16:27:30 1998 Karl Berry <karl@cs.umb.edu> + + * info/session.c (node_printed_rep): New fn. + Change calls. + + * info/session.c (info_set_node_of_window): Simplify by taking new + argument to say whether to call + set_remembered_pagetop_and_point. Change calls. + * info/indices.c: Change call. + + * info/info.c: Rewrite initial menu-sequence following stuff as a + function in session.c, and call it. + + * info/infomap.c: Define `G' as info_menu_sequence. + * info/session.h (info_menu_sequence, info_follow_menus): declare + new fns. + * info/session.c (info_follow_menus, split_words, + * info_menu_sequence): New functions for new command. + +Thu Jul 23 16:44:42 1998 Karl Berry <karl@cs.umb.edu> + + * info/session.c (info_scroll_other_window_backward): new command. + * info/infomap.c (initialize_info_keymaps): bind M-DEL and M-prior to + scroll-other-window-backward. + Report from: Vladimir Alexiev <vladimir@cs.ualberta.ca> + Date: Tue, 2 Dec 1997 14:54:30 -0700 + + * info/info-utils.c (printed_representation): If ISO_Latin_p, show + characters as-is. Don't assume iscntrl(x) returns false + for meta characters. + Report from: Francois Pinard <pinard@iro.umontreal.ca> + Date: 15 Jan 1998 17:48:51 -0500 + + * info/pcterm.c (pc_initialize_terminal): now no need to set it + here. + * info/info-utils.c (ISO_Latin_p): set to 1 by default. + + * doc/info-stnd.texi: Document SPC, add goto-node anchor. + +Wed Jul 22 18:58:38 1998 Karl Berry <karl@cs.umb.edu> + + * info/window.c (message_buffer_to_node), + * info/session.c (kill_node), + * info/nodes.c (info_get_node_of_file_buffer, + info_node_of_file_buffer_tags), + * info/man.c (manpage_node_of_file_buffer), + * info/footnotes.c (make_footnotes_node): set display_pos member + in new node. + +Tue Jul 21 14:04:52 1998 Karl Berry <karl@cs.umb.edu> + + (all of this is to make SPC/DEL not move outside the current + document, i.e., not up through dir) + * info/info-utils.h (info_label_was_found): Move from here. + * (info_prev_label_of_node): Don't use it any more. + * info/session.c (INFO_LABEL_WAS_FOUND): Move to here, add test + for filename not dir. + (forward_move_node_structure): Change calls, notice if no more nodes. + (backward_move_node_structure): Check for moving outside current + document to dir. + * info/filesys.c (compression_suffixes): Add bz2 for bunzip2. + (is_dir_name): New fn. + * info/filesys.h: Declare it. + * info/nodes.c (info_get_node, info_find_file_internal): Use it. + + * makeinfo/makeinfo.c: Set in_fixed_width_font to avoid munging + node names. + +Sat Jul 18 17:14:10 1998 Karl Berry <karl@cs.umb.edu> + + * info/man.c (reap_children): Call wait (NULL), since we don't + actually use the return status for anything. NEXTSTEP 3.3 + doesn't like an int * even though that is the POSIX + specification. + Date: Fri, 22 Aug 1997 13:55:42 +0200 + From: "Felix H. Gatzemeier" <fxg@imib.rwth-aachen.de> + Via: Thomas Esser <te@informatik.uni-hannover.de> + + * info/session.c (kill_node): Restore point when we go back. + +Thu Jul 16 18:54:04 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (BRACE_ELEMENT): Add `command' to the save + stack. + (MAYBE_BRACE_ARGS): New possibility, somewhat like TeX's + next-token-as-argument. + (command_table): Use cm_accent and MAYBE_BRACE_ARGS for all accents. + (read_command): Implement MAYBE_BRACE_ARGS. + (init_brace_stack): save current command. + (pop_and_call_brace): restore current command. + (cm_accent): move almost all accent characters to after the argument. + Suggested by Fran,cois. + + * info/info.c (version_string): Remove defn. + Change call for --version option. + * info/session.c (display_startup_message_and_start): Just use + VERSION. + * info/info.h (version_string): Remove decl. + +Tue Jul 14 16:46:58 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.h: Doc fix. + + * makeinfo/makeinfo.c (validate_file): Don't complain about + unreferenced anchors. + + * doc/texinfo.txi: Document @anchor. + +Sun Jul 12 14:14:50 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (remember_node): Only set `current_node' if + this is not an anchor. + + * info/nodes.c (get_tags_of_indirect_tags_table): Don't set + nodelen to -1 when fixing up the subfile entries, it might be 0 + from an anchor. + + * info/nodes.c (find_node_of_anchor): Offset display_pos for + anchor tags by the amount that node references are off by (- 1). + +Sat Jul 11 17:37:18 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (cm_anchor): Add output_column for anchors + embedded in a line. + +Fri Jul 10 16:28:21 1998 Karl Berry <karl@cs.umb.edu> + + * info/session.c (info_menu_or_ref_item): Don't search for the + xref text if it's an anchor. + * info/nodes.h (N_FromAnchor): New NODE flag. + * info/nodes.c (find_node_of_anchor): New fn. + (info_node_of_file_buffer_tags): Handle anchor case. + +Wed Jul 8 17:48:59 1998 Karl Berry <karl@cs.umb.edu> + + * info/window.c (window_set_node_of_window): Set window->point to + node->display_pos. + Remove unneeded casts. + +Tue Jul 7 08:06:14 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (add_word_args) [!VA_SPRINTF]: Use buffer, + not the undeclared temp_string. + From: Tobias Naehring <naehring@eeetw3.et.tu-dresden.de> + To: egcs-bugs@cygnus.com + Date: Mon, 6 Jul 98 13:51:55 +0200 + +Mon Jul 6 17:43:25 1998 Karl Berry <karl@cs.umb.edu> + + * info/nodes.h (NODE): Add display_pos member. + +Sun Jul 5 08:17:43 1998 Karl Berry <karl@cs.umb.edu> + + * info/nodes.h (INFO_REF_LABEL): Define. + + * util/texi2dvi: Rationalize use of `index' vs. more general + `xref'. + +Thu Jul 2 18:53:43 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c: Don't translate -Footnotes, it's a magic + cookie. From Eli. + +Wed Jul 1 08:42:41 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi (url): Missing word `command'. + +Tue Jun 30 10:35:48 1998 Karl Berry <karl@cs.umb.edu> + + * info/info.c: Missing \n in try --help msg. + + * makeinfo/makeinfo.c (cm_anchor): New fn for new cmd. + (TAG_FLAG_ANCHOR): New flag for tag entries. + (write_tag_table_internal): Handle anchor case. + (TAG_FLAG_{{PREV,NEXT,UP}_ERROR,NO_WARN,IS_TOP}): Add TAG_FLAG_ prefix + for clarity, change uses. + + * doc/texinfo.txi: Remove warning about footnotes with @item, that + works now. + +Mon Jun 29 10:17:50 1998 Karl Berry <karl@cs.umb.edu> + + * configure.in (AM_CONFIG_HEADER): Use second argument to be 8.3 + compliant. + * config.h.in: Rename to config.in. + + * info/Makefile.am (EXTRA_DIST), + * info/terminal.c [__MSDOS__]: Change #include to pcterm.c and + rename file. + +Sun Jun 28 14:29:27 1998 Karl Berry <karl@cs.umb.edu> + + * info/Makefile.am (EXTRA_DIST): Add pc_term.c. + + * makeinfo/makeinfo.c (HAVE_MACROS): Remove this conditional, we + always want macros now. + + * info/indices.c: Copyright. + +1998-06-26 Eli Zaretskii <eliz@is.elta.co.il> + + * makeinfo/makeinfo.c: (only_macro_expansion): New variable, + suppresses all expansions except macros. + (replace_with_expansion): New function, replaces a portion of + input text with its expansion. Avoids moving the text around if + we are positive it will expand into itself. If the length of the + expanded text is the same as the length of the original text, just + replaces the original text without moving the rest. Resyncs the + remembered text pointers with the realloc'ed input_text, when it + is realloc'ed. + (reader_loop): When only_macro_expansion is non-zero, only handle + macros, but leave the rest of input intact. + (read_command): Now returns an int, zero means no known command or + macro is found after the prefix character; all callers changed. + Support operation under non-zero only_macro_expansion. + (cm_node): Expand only the macros in the @node line. Allocate and + generate the macro-expanded @node line in one swell whoop. + (glean_node_from_menu): Expand macros in menu entries. + (get_xref_token): A new argument EXPAND, when non-zero, means + expand macros in the entire brace-delimited argument before + looking for the next comma; all callers changed. + (expansion): Save and restore additional state variables important + for output generation machinery. Disable indentation and filling + during the recursive expansion, so that the output buffer offset + is not invalidated by filling. + (me_execute_string_keep_state): New function, calls + me_execute_string, but saves and restores state variables + important for output generation, so that -E doesn't change the + generated Info output. + (index_add_arg, cm_footnote): Call me_execute_string_keep_state. + (expand_macro): New function, returns the macro expansion as a + malloc'ed string. + (execute_macro): Call expand_macro. + (me_execute_string): Avoid memory leak by freeing input_filename. + (get_until_in_braces, replace_with_expansion, add_char, + cm_footnote, cm_macro, cm_unmacro, get_brace_args, + extract_colon_unit): Use the faster memcpy/memmove instead of + strncpy. + +Sat Jun 27 14:18:54 1998 Karl Berry <karl@cs.umb.edu> + + * doc/info.texi: Use @subsubsection instead of + @unnumberedsubsubsection, since it's in a numbered chapter. + + * Started installation of following DOS patches from Eli. +>1998-05-16 Eli Zaretskii <eliz@is.elta.co.il> +> +> * info/session.c (info_goto_node): Don't show the nodes of the +> current Info file twice in *Completions*. +> * info/echo-area.c (ea_possible_completions): Actually pass the +> number of completions to printf_to_message_buffer. +> +> * info/man.c (manpage_node_of_file_buffer): xstrdup the nodename +> member of manpage nodes, since the tags are freed and recomputed +> when a new man page is added to *manpages* file_buffer. +> (get_manpage_node): Recompute info_windows[]->nodes[] for all +> windows showing the man pages after nodes[]->contents are +> invalidated by reallocation of file_buffer->contents. +> +>1998-05-15 Eli Zaretskii <eliz@is.elta.co.il> +> +> * lib/system.h (DEFAULT_INFO_PRINT_COMMAND) [__MSDOS__]: Define to +> ">PRN". +> * info/session.c (print_node): Support ">printer" in +> INFO_PRINT_COMMAND, to mean write to the named file/device insead +> of piping to it as a program. +> (kill_node): Compare window in addition to the nodename, when +> looking for the node to kill. +> +>1998-05-09 Eli Zaretskii <eliz@is.elta.co.il> +> +> * lib/system.h (SET_SCREEN_SIZE_HELPER) [__MSDOS__]: Define a new +> macro. +> * info/m-x.c (set_screen_height): Use SET_SCREEN_SIZE_HELPER, if +> defined. If the screen size did'n change, redisplay the previous +> screen contents. +> +> * info/infomap.c (initialize_info_keymaps) [__MSDOS__]: Bind DEL +> to ea_delete in the echo-area keymap. +> * info/session.c (incremental_search): If the key is +> isearch_terminate_search_key, but buffered input is pending, don't +> gobble the ESC key. +> +> * info/info.c (main): Switch the order thet terminal_prep_terminal +> and terminal_clear_screen are called, to make it consistent with +> what initialize_info_session does when called with non-zero second +> argument. Call terminal_unprep_terminal last, after moving the +> cursor to the bottom of the screen. If user_filename is of the +> form "d:foo", add "d:." to the INFOPATH, not "d:". +> +> * info/signals.c (initialize_info_signal_handler): Save old +> SIGUSR1 handler. +> (info_signal_handler): Handle SIGUSR1. +> +> * info/indices.c (info_apropos): Print the results to stdout. +> +>1998-05-02 Eli Zaretskii <eliz@is.elta.co.il> +> +> * makeinfo/makeinfo.c (ALSO_NULL_DEVICE): New macro, for alternate +> null device name. +> +> * info/man.c (get_manpage_contents): Redirect stderr of the man +> page formatter to the null device. +> (executable_file_in_path): Use IS_SLASH. +> +> * info/session.c (info_gather_typeahead) [__DJGPP__]: Call +> pc_term_chars_avail to get the number of pending characters. +> +> * info/filesys.c (convert_eols): New function, converts DOS-style +> EOLs to a single Newline. +> (filesys_read_info_file, filesys_read_compressed): Call it. +> (filesys_read_compressed) [STRIP_DOT_EXE]: Use explicit .exe +> suffix. +> (filesys_read_compressed): Check return status of `pclose'. +> +>1998-05-01 Eli Zaretskii <eliz@is.elta.co.il> +> +> * info/filesys.c (filesys_read_info_file): Add additional +> parameter: is_compressed. All callers changed. +> +> * makeinfo/makeinfo.c (convert_from_loaded_file): Compare file +> names with FILENAME_CMP. Use NULL_DEVICE. +> (cm_node): Compare file names with FILENAME_CMP. +> * info/tilde.c (tilde_find_suffix, tilde_expand_word): Use +> IS_SLASH. +> +> * info/pc_term.c: New file, handles the PC terminal on MS-DOS and +> MS-Windows. +> * info/terminal.c [__MSDOS__]: Include pc_term.c. +> * info/Makefile.in (ginfo_SOURCES): Add pc_term.c +> Add pc_term.c to dependencies of terminal.o. +> +> * info/session.c (info_get_input_char): Reassign tty after EOF +> from a non-stdin input stream. +> +>1998-04-30 Eli Zaretskii <eliz@is.elta.co.il> +> +> * info/session.c (info_set_input_from_file): Use binary input. +> (info_gc_file_buffers): Compare file names with FILENAME_CMP. +> * info/search.c (skip_whitespace_and_newlines): Use +> whitespace_or_newline macro instead of reinventing the wheel. +> * info/nodes.c (info_find_file_internal): Use IS_ABSOLUTE and +> FILENAME_CMP. +> (info_load_file_internal): Call filename_non_directory to find out +> where the basename begins. +> (get_tags_of_indirect_tags_table): Call filename_non_directory. +> containing_dir of "d:foo" is "d:.", not "d:". +> (forget_info_file): Compare file names with FILENAME_CMP. +> * info/nodemenu.c (get_visited_nodes): Use FILENAME_CMP to find +> duplicate lines. +> +> * lib/system.h (PIPE_USE_FORK): New macro. +> * info/man.c (get_manpage_contents): Use it to determine whether +> to call pipe/fork/exec or popen/pclose to run the man page +> formatter. +> (executable_file_in_path): Search for the file with several known +> extensions such as .exe, where appropriate. +> +> * lib/system.h (NULL_DEVICE): A new macro. +> * info/makedoc.c (main): Use it. +> (maybe_dump_tags): Switch output strem to binary mode when +> appropriate. +> (process_one_file): Update file_size after reading the file. +> +> * info/infodoc.c: Add TAB, RET, and `i' to the list of important +> commands in info_internal_help_text. +> +> * info/info.c (main): Support the --speech-friendly option. Use +> PATH_SEP to separate directories. +> (info_short_help) [__MSDOS__]: Mention the --speech-friendly +> option. +> +> * info/info-utils.c (filename_non_directory): Use HAVE_DRIVE and +> IS_SLASH. +> * info/indices.c (do_info_index_search, index_entry_exists): Use +> FILENAME_CMP to compare file names. +> * info/filesys.c: Add ".inf" to the list of known extensions. +> Look for .z before .Z, for the sake of case-insensitive +> filesystems. Add DOS-specific extensions to work around 8+3 +> namespace restrictions. +> (info_absolute_file): New function. +> (info_find_fullpath): Call it for candidates which are absolute +> file names. Use IS_SLASH and IS_ABSOLUTE. +> (info_file_in_path): Use IS_SLASH. +> (extract_colon_unit, info_add_path): Use PATH_SEP instead of ":". +> (lookup_info_filename): Compare file names with FILENAME_CMP. +> (filesys_read_info_file): Read Info files in binary mode. +> (filesys_decompressor_for_file): Read Info files in binary mode. +> Compare file names with FILENAME_CMP. On MS-DOS, allow files +> whose names end with a `z' be decompressed with gunzip. +> * info/dribble.c (open_dribble_file): Open dribble file in +> FOPEN_WBIN mode. +> * info/dir.c (maybe_build_dir_node): Use IS_SLASH. +> * util/texindex.c (maketempname): Put the numeric suffix after the +> dot, to salvage 3 more characters on 8+3 filesystems. +> +>1998-04-29 Eli Zaretskii <eliz@is.elta.co.il> +> +> * util/texindex.c (main): Use IS_SLASH to find the basename of +> argv[0]. Lose the .exe suffix, if any. +> (decode_command): Look at $TEMP and $TMP in addition to $TMPDIR. +> Use DEFAULT_TMPDIR. +> * util/texi2dvi: Use either `:' or `;' as directory separator in +> TEXINPUTS, computed at run time. Save previous versions of index +> files in a separate backup directory. +> * util/install-info.c (main): Support backslashes in file names by +> using IS_SLASH. Avoid recomputing length of infile_basename +> unnecessarily. Use FILENAME_CMP for comparing file names +> case-insensitively, where appropriate. Allow foo.inf as well as +> foo.info to be an Info file name. +> * lib/system.h (PATH_SEP, STRIP_DOT_EXE, FILENAME_CMPN, +> DEFAULT_TMPDIR): New macros. +> +>1998-04-25 Eli Zaretskii <eliz@is.elta.co.il> +> +> * lib/system.h (O_BINARY, SET_BINARY, FOPEN_RBIN, FOPEN_WBIN, +> IS_SLASH, HAVE_DRIVE, IS_ABSOLUTE, FILENAME_CMP, PATH_SEP, +> HAVE_LONG_FILENAMES): New macros. +> * makeinfo/makeinfo.c (find_and_load): Use O_BINARY to decide when +> read returning a value different from what st_size says is not an +> error. Realloc the buffer after we've read the file. +> (skip_directory_part): New function, skips leading directory in a +> way that works on DOSISH systems. +> (filename_non_directory, pathname_part): Call it. +> (filename_part): Call filename_non_directory. +> (expand_filename, full_pathname): Use IS_ABSOLUTE and IS_SLASH. +> (convert_from_file): Check .txi extension first. +> (split_file): Support splitting output files on 8+3 filesystems. +> (main, extract_colon_unit): Use PATH_SEP instead of ':'. +> (get_file_info_in_path): Use IS_ABSOLUTE and IS_SLASH. + + + * doc/texinfo.txi: Changes from Eli for MS-DOS stuff. + * doc/info-stnd.texi: Fixes from Eli: he documented all the + missing keys and command-line options, corrected + inaccuracies (probably left-overs from previous versions), + and added some clarifications where I thought the manual + was not clear enough. + * Makefile.am (EXTRA_DIST): Add djgpp files. + + * makeinfo/makeinfo.c: New no-op commands @setcontentsaftertitlepage + and @setshortcontentsaftertitlepage. + * doc/texinfo.txi: Document the new @set{,short}contentsaftertitlepage + commands and the possibility of putting @contents and + @shortcontents after @end titlepage. + + * util/texi2dvi: Check that the toc file has not changed (as well + as .aux and .??). + +Thu Jun 25 16:58:46 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document new commands @env, @command, @option. + + * makeinfo/makeinfo.c (option, command, env): New markup commands, same + as @code in info. + +Wed Jun 24 15:39:38 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c: New no-op command @acronym. + + * doc/texinfo.txi: Document new command @acronym. + + * util/install-info.c (strip_info_suffix, menu_item_equal): New fns. + (main): Call them instead of doing the filename test inline; all the + .info variations are too confusing to write out twice. + +Tue Jun 23 18:01:40 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Fix some overfull boxes. + +Mon Jun 22 19:22:17 1998 Karl Berry <karl@north> + + * configure.in: Remove AC_LINK_FILES call, that was an old gettext + thing, no longer necessary, and causes problems with Autoconf. + +Sun Jun 14 07:00:15 1998 Karl Berry <karl@cs.umb.edu> + + * util/texi2dvi: Indent options so help2man will work. From Akim. + +Sat Jun 13 10:45:25 1998 Karl Berry <karl@cs.umb.edu> + + * configure.in (ALL_LINGUAS): Add nl. + + * util/texi2dvi: Avoid tabs. + +Wed Jun 10 17:38:21 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (gen_defindex): Use xmalloc instead of alloca. + This was our only use of alloca, so also remove all the #if junk + at the beginning to define it. + + * makeinfo/makeinfo.c: Fix grammar in multiply-defined-node error + message. + +Tue Jun 9 17:53:54 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document new commands @smallformat, + @smalldisplay. + + * makeinfo/makeinfo.c: New commands @smalldisplay and @smallformat. + Suggestion from: Eli Zaretskii <eliz@is.elta.co.il>. + + * makeinfo/makeinfo.h (insertion_type, insertion_type_names): + Declare smalldisplay and smallformat. + +Mon Jun 8 07:57:52 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document possibility of combining @titlefont + and @title. From Eli. + + * util/texi2dvi: Set verbose to : instead of false by default. + + * util/texi2dvi: Missing \\ for sed with -t text. From Akim. + +Sun Jun 7 13:02:13 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document @pagesizes and texidvi -t. + + * makeinfo/makeinfo.c: Define no-op @pagesizes and @afourpaper. + (major_version, minor_version): Remove these globals, just use the + Texinfo package version. + (print_version_info): Ditto. + +Fri Jun 5 17:54:16 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Change texi2dvi documentation a bit. + + * util/texi2dvi: Handle --option=argument style of specifying + arguments. + +Sat May 30 14:01:37 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: More. + + * util/install-info.c (open_possibly_compressed_file): Finish + implementation. + + * doc/texinfo.txi: Document install-info compression support. + +Fri May 29 08:01:43 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c (open_possibly_compressed_file): Initial + implementation. + + * util/install-info.c (output_dirfile): Attempt to write dir.gz if + that's what we read. + (readfile): Pass back the actual opened filename, too. + + * info/indices.c: Check in Eli's patch. + +Thu May 28 17:09:45 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c (readfile): Set up to handle compressed + input (and output) files. Change callers. + Rearrange function order to avoid forward declarations. + + * configure.in: Remove check for libz, we'll fork gzip instead. + +Tue May 26 18:01:13 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c (print_help): Missing \n\ in help string. + + * makeinfo/makeinfo.c (POST_SENTENCE): Rename from post_sentence. + Change calls. + (flush_output): Strip 8th bit if post_sentence char as well as space. + (cm_code, etc.): Change add_char calls for post_sentence chars to set + 8th bit. + +1998-05-23 Eli Zaretskii <eliz@is.elta.co.il> + + * info/indices.c (info_next_index_match): Call + info_set_node_of_window to display the node, so that footnotes are + displayed as well. + +Thu May 21 11:05:50 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c (output_dirfile): New function, extracted + from the end of main. + + * makeinfo/makeinfo.c (begin_insertion): Ignore @group in all the + example-like environments, not just @example. Otherwise the first + line in the environment is not indented correctly. Reported by rms. + +Wed May 20 17:44:38 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c: Doc fixes. + + * util/install-info.c: Handle XEmacs-style dir entries: + * FILENAME::PROGRAM DESCRIPTION. + Date: Wed, 13 May 1998 13:58:28 +0900 + From: KIRIYAMA Kazuhiko <kiri@kiri.toba-cmt.ac.jp> + + Also, do not set something_deleted on continuation lines; they are only + deleted if the entry was deleted. + +Tue May 19 17:22:50 1998 Karl Berry <karl@cs.umb.edu> + + * util/install-info.c: Do not read the dir file if we are only + deleting -- it might not exist, and we don't actually need it. + From: David Kaelbling <drk@sgi.com> + Date: Tue, 12 May 1998 11:05:26 -0400 + + * util/gen-dir-node: + From: David Kaelbling <drk@sgi.com> + Date: Tue, 12 May 1998 16:05:16 -0400 - + - The "dir" moobler header is slightly different from the default + dir file. + - If all files in ${infofiles} appear in the skeleton the last one + is processed twice. + - INFO-DIR-SECTION data is ignored. + - Don't generate entries for directories. + +Sat May 16 17:16:56 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (cm_novalidate): New fn for new command + @novalidate, like --no-validate. + +Thu May 14 18:02:31 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document the @novalidate command. + +Wed May 13 17:47:20 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi: Document limitation on @set/@value names in + index commands. + +Fri May 1 14:12:15 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi (Command List): @deftypevar out of order. + + * configure.in (ALL_LINGUAS): Add cs. + +Tue Apr 28 09:33:41 1998 Karl Berry <karl@cs.umb.edu> + + * makeinfo/makeinfo.c (strcasecmp): This is in lib now. + +1998-04-26 Richard Stallman <rms@psilocin.gnu.org> + + * util/install-info.c (print_help): Doc clarifications. + +Sun Apr 19 15:55:10 1998 Karl Berry <karl@cs.umb.edu> + + * lib/system.h (strcasecmp, strncasecmp) [!HAVE_STR[N]CASECMP]: + Declare these. + + * info/search.h (str[n]casecmp): Remove decl from here. + + * configure.in (AC_REPLACE_FUNCS): Check for strcasecmp and + strncasecmp here. + (AC_CHECK_FUNCS): Instead of just strcasecmp here. + + * configure.in (texconfig): Use TEXMFMAIN in preference to TEXMF + for post-0.4 teTeX. + +Wed Apr 15 17:20:31 1998 Karl Berry <karl@cs.umb.edu> + + * doc/texinfo.txi (Reporting Bugs): New section. + Suggestion from: Andrew Shapira <shapiraa@cs.rpi.edu> + Date: Mon, 4 Aug 1997 19:06:06 -0400 (EDT) + + * info/infomap.c: Define / to be info_search. + Suggestion from: Egil Kvaleberg <egil@kvaleberg.no> + Date: Fri, 1 Aug 1997 08:16:45 +0200 (MET DST) + + * doc/texinfo.txi (uref): Document reason for not using <URL: format. + Also use ftp.gnu.org instead of ftp.gnu.ai.mit.edu throughout. + +Tue Apr 14 10:43:39 1998 Karl Berry <karl@cs.umb.edu> + + 1998-04-05 Karl Eichwalder <ke@suse.de> + * makeinfo/makeinfo.c (begin_insertion): No need to + gettext; it's a keyword. From carl-friedriech.spilcke-liss@ensae.fr. + (cm_printindex): ditto. + + * util/texi2dvi: Always remove the $tmp_dir's. + From: Dean Gaudet <dgaudet@arctic.org> + Date: Tue, 14 Apr 1998 00:55:36 -0700 (PDT) + +Mon Apr 13 18:02:57 1998 Karl Berry <karl@cs.umb.edu> + + * configure.in: Include + AM_SYS_POSIX_TERMIOS + AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL + to avoid window resizing being ignored under glibc2 systems, + e.g., Red Hat Linux 5.0. Actually any system where the ioctls are not + defined in <termios.h>. + See also http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl/full/206. + * acconfig.h (GWINSZ_IN_SYS_IOCTL): New #undef for autoheader. + * info/termdep.h [GWINSZ_IN_SYSIOCTL]: #include <sys/ioctl> if + this is defined. + From: Mark Jefferys <mjeffery@cse.ogi.edu> + Date: Thu, 9 Apr 1998 12:38:27 -0700 (PDT) + +Fri Apr 3 01:18:22 1998 Philippe De Muyter <phdm@macqel.be> + + * info/info.c (main): Use 0, not NULL, as ? : alternative. + Tue Mar 3 13:29:17 1998 Karl Berry <karl@cs.umb.edu> * configure.in: Version 3.12. * po/de.po: New version. - + * po/POTFILES.in: Do not include doc.c; that gets built at runtime, thus causing texinfo.pot to try to get rebuilt. Besides, it doesn't have any translatable strings. @@ -34,7 +3207,7 @@ Fri Feb 27 16:06:23 1998 Karl Berry <karl@cs.umb.edu> * info/info.c: Make help messages consistent with others. * util/install-info.c (print_help): Format consistently. - + (readfile): Support gzipped files via libz. From: Elliot Lee <sopwith@redhat.com> Date: Mon, 1 Sep 1997 23:37:14 -0400 (EDT) @@ -152,7 +3325,7 @@ Sat Feb 21 17:41:26 1998 Karl Berry <karl@cs.umb.edu> * util/texindex.c (--version), * makeinfo/makeinfo.c (cm_today), * makeinfo/makeinfo.c (print_version_info): Version strings etc. do not - need translation. + need translation. From: Karl Eichwalder <ke@suse.de> Date: 13 Sep 1997 16:20:02 +0200 @@ -219,7 +3392,7 @@ Fri Aug 1 14:05:10 1997 Karl Berry <karl@cs.umb.edu> * Makefile.am (EXTRA_DIST): Remove README-alpha. From: "ir. Mark M._Kettenis" <kettenis@phys.uva.nl>. -1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * configure.in: Use AC_CHECK_HEADERS, not AC_CHECK_HEADER. @@ -476,14 +3649,14 @@ Fri Jul 18 10:02:18 1997 Karl Berry <karl@cs.umb.edu> Thu Jul 17 17:19:34 1997 Karl Berry <karl@cs.umb.edu> - + * emacs/Makefile.am (*clean-lisp): Define, as Automake didn't. From: Kenneth Stailey <kstailey@disclosure.com>. * doc/Makefile.am: Do not distribute info.1. * makeinfo/macros: Do not distribute this directory, it's merged into the main documentation. - * doc/makeinfo.texi: Don't distribute this either, it's in the + * doc/makeinfo.texi: Don't distribute this either, it's in the main manual. * util/install-info.c: Use \n\ for multiline string constant. @@ -602,7 +3775,7 @@ Sat Jul 5 17:17:14 1997 Karl Berry <karl@cs.umb.edu> * makeinfo/makeinfo.c (kbdinputstyle): New command. (cm_no_op_line_arg): New function. - * info/termdep.h (HAVE_TERMIOS_H) [NeXT]: #undef. + * info/termdep.h (HAVE_TERMIOS_H) [NeXT]: #undef. From: Gregor Hoffleit <flight@mathi.uni-heidelberg.de> et al. Fri Jul 4 14:18:08 1997 Karl Berry <karl@cs.umb.edu> @@ -755,12 +3928,12 @@ Thu Jun 12 08:37:52 1997 Karl Eichwalder <ke@ke.Central.DE> * info/Makefile.am: * makeinfo/Makefile.am: * util/Makefile.am: - (localedir): Set. + (localedir): Set. (INCLUDES): Add intl/ and LOCALEDIR. (LDADD): Add @INTLLIBS@. * makeinfo/makeinfo.c (main): - * util/texindex.c (main): + * util/texindex.c (main): * util/install-info.c (main): setlocale, bindtextdomain, and textdomain. @@ -804,7 +3977,7 @@ Sun Jun 1 16:34:12 1997 Karl Berry <karl@cs.umb.edu> Tue May 27 17:20:44 1997 Karl Berry <karl@cs.umb.edu> - * doc/texinfo.texi (various): Document @deftypemethod. + * doc/texinfo.texi (various): Document @deftypemethod. (email): @ should have been @@ in the example. From: Mate Wierdl <mw@wierdlmpc.msci.memphis.edu> @@ -917,7 +4090,7 @@ Sun Apr 27 16:12:44 1997 Karl Berry <karl@cs.umb.edu> * info/terminal.c (term_kP, term_kN): New variables to hold PageUp, PageDown key sequences. (terminal_initialize_terminal): Set them. - + * util/texindex.c (main), * util/install-info.c (main), * makeinfo/makeinfo.c (print_version_info), @@ -1083,10 +4256,10 @@ Thu Mar 13 13:59:45 1997 Karl Berry <karl@cs.umb.edu> * configure.in (AC_CONFIG_HEADER): Use this, to avoid hugely long compile line with all the -D's. * info/general.h: Include <config.h>. - + * emacs/Makefile.am (install, install-data): Do @echo to tell the user to compile/install the elisp manually. - + * configure.in (AC_REPLACE_FUNCS): Move strerror check to here. (AC_CHECK_FUNCS): From here. @@ -1230,7 +4403,7 @@ Mon Sep 30 10:07:21 1996 Karl Berry <karl@cs.umb.edu> better page breaks. (\tex): Reset \, to its plain TeX meaning, and do not reset \l. - + * COPYING: Update for new FSF address (from gcc dist). * libtxi/Makefile.in: Various simplifications. @@ -1336,10 +4509,10 @@ Thu Sep 26 10:46:34 1996 Karl Berry <karl@cs.umb.edu> * emacs/texnfo-upd.el, * emacs/texinfo.el, * emacs/texinfmt.el: Update from bob for new Texinfo commands, etc. - + * emacs/info.el, emacs/informat.el, emacs/makeinfo.el, emacs/texnfo-tex.el: Update from Emacs 19.34 dist. - + * emacs/elisp-comp: Use TMPDIR if set. * util/Makefile.in (libdir): Remove. @@ -1591,8 +4764,8 @@ Mon Jul 29 14:44:33 1996 Karl Berry <karl@cs.umb.edu> Sun Jul 28 13:37:05 1996 Karl Berry <karl@cs.umb.edu> * texinfo.tex (paragraphindent): Move to more reasonable place in - the source file. - (chapfonts, secfonts, subsecfonts, indexfonts): Call \setleading. + the source file. + (chapfonts, secfonts, subsecfonts, indexfonts): Call \setleading. (\chfplain, \secheading, \plainsecheading, \subsecheading, \subsubheading): Rewrite to properly \hangindent the title. (\sectionheading): New generic macro to print section titles. @@ -1724,7 +4897,7 @@ Fri Feb 23 19:50:18 1996 Richard Stallman <rms@whiz-bang.gnu.ai.mit.edu> Wed Jan 3 10:01:45 1996 Brian J. Fox <bfox@nirvana.datawave.net> * makeinfo/makeinfo.c (make_index_entries_unique): Be a little bit - stricter about what makes two index entries identical. + stricter about what makes two index entries identical. Fri Dec 29 13:00:24 1995 Brian J. Fox <bfox@wizard.datawave.net> diff --git a/gnu/usr.bin/texinfo/INTRODUCTION b/gnu/usr.bin/texinfo/INTRODUCTION index 1355e6fcf4a..13e24f7cff6 100644 --- a/gnu/usr.bin/texinfo/INTRODUCTION +++ b/gnu/usr.bin/texinfo/INTRODUCTION @@ -48,18 +48,6 @@ read this file, type $ info -f info-stnd -If you are using GNU Emacs, you may want to install the Emacs Lisp files -permanently. Move them them to a directory in the load-path for Emacs; -otherwise Emacs will not be able to load the autoloaded support files, such -as `texinfmt.el'. - -The `texinfo.el' file contains the autoload commands; it is the only -file that needs to be loaded initially. If your Emacs does not -automatically load `texinfo.el', you can tell it to do so by placing -the following in `default.el' or in your `.emacs' file: - - (load "texinfo") - To create a printed manual ========================== @@ -90,13 +78,10 @@ program is not part of this distribution, but is available separately. After following those instructions, type the following to make the .dvi files: - $ make texinfo.dvi - $ (cd info; make info.dvi info-stnd.dvi) - $ (cd makeinfo; make makeinfo.dvi) + $ (cd doc; make dvi) -You can then print the resulting .dvi files with the `lpr' command (on BSD -systems. On SysV systems the command is `lp'. Consult your man pages for -more information). +You can then print the resulting .dvi files with the `lpr' or `lp' +commands, or maybe `dvips'. For example, the command to print the texinfo.dvi file might be: diff --git a/gnu/usr.bin/texinfo/NEWS b/gnu/usr.bin/texinfo/NEWS index a9d80d8f50c..18423d50121 100644 --- a/gnu/usr.bin/texinfo/NEWS +++ b/gnu/usr.bin/texinfo/NEWS @@ -1,11 +1,113 @@ This file records noteworthy changes. +4.0 (28 September 1999) +* Language: + . New command @anchor for cross references to arbitrary points. + . New commands @documentlanguage sets the main document language, + and @documentencoding sets the document input encoding (although not + much is done yet with either). + . New command @pagesizes allows limited control of text area for typesetting. + . New command @acronym for abbreviations in all caps, such as `NASA'. + . New command @alias for simple command aliases. + . New command @definfoenclose for better control of info output. + . New commands @deftypeivar for typed instance variables of a class + and @deftypeop for typed operations of a class. + . New command @novalidate suppresses cross-reference checking and (in + TeX) auxiliary file creation. + . New commands @setcontentsaftertitlepage and + @setshortcontentsaftertitlepage to force printing the table of + contents after @end titlepage. Also, @contents and @shortcontents + themselves can now appear at the beginning of the document as + well as the end. + . New markup commands: @env (for environment variables), @command (for + command names), @option (for command-line options). + . New commands @smallformat and @smalldisplay, a la @smallexample. + . New command @exampleindent to set indentation of example-like + environments a la @paragraphindent. + . @uref takes an optional third argument of text to show instead of + (rather than in addition to) the url for info and dvi output. + . @footnote works in an @item for a @table. +* texinfo.tex: + . latest version always at ftp://ftp.gnu.org/gnu/texinfo.tex (and mirrors). + . implements @macro. + . implements @paragraphindent (except asis). + . @emph and @i use true italic type (cmti) instead of slanted (cmsl). + . implements pdf output when run with pdftex. + . better support for internationalization via txi-??.tex files. +* makeinfo: + . supports HTML output with the --html option. + . implication of --html: @top nodes should be wrapped in @ifnottex + rather than @ifinfo. @ifinfo conditionals are not expanded with --html. + . new option --number-sections to output chapter/section numbers. + . dashes and quotes are not treated specially in node names. + . new option --commands-in-node-names to allow @-commands in node names. + (Not implemented in TeX, and most likely never will be.) + . @emph output uses _underscores_. + . @image looks for .png files before .jpg. + . only output `Making ... file' line when verbose. + . allow -v as synonym for --verbose. + . new command line options to specify which conditionals to process + (but --iftex is not fully implemented). + . warns if @var contains any of ,[](). + . @quote-arg implicitly done for all one-argument macros, so commas in + the argument text are allowed. + . \\ required in macro body to get single \, no other `escapes' defined. +* info: + . ISO Latin 1 characters are displayed and input as-is by default. + . new option --vi-keys to enable vi-like and less-like key bindings. + . new command S does case-sensitive searching. + . new commands C-x n and C-x N repeat last search, respectively, in the + same and in reverse direction, without prompting for the string. These + commands are bound to n and N under --vi-keys, like in Less. + . new command G menu1 menu2 ... searches for menu items from (dir), + as allowed on the command line. + . new command O (capital o, not zero) goes directly to the node that + describes command-line options. + . new command-line option --show-options causes the node which + describes command-line options to be the first node displayed. + . M-prior and M-DEL do new command info-scroll-other-window-backward. + . / searches like s does. + . If the search string includes upper-case letters, in both incremental + and non-incremental search, the search is case-sensitive. + . S searches case-sensitively even if the search string is all + lower-case. + . - makes the argument negative (so e.g. `- /' searches backward). + . l restores point in the window returned to. + . SPC/DEL do not move outside the current document. + . foo.info is found before foo. + . `info foo --index-search=bar' now searches for bar in foo's index. + . support for files compressed with bzip2. +* install-info: + . handles gzipped dir files. + . sort entries into alphabetical order. + . install direntries only in preceding dircategory, not in all. + . --delete does not require the info file to exist. + . --delete can handle XEmacs-style dir entries. +* texi2dvi: + . bug fixed: now uses only the @iftex and @tex parts of the source. + . process LaTeX source as well as Texinfo source. + . output PDF (using pdftex) with new option --pdf. + . handles --OPTION=ARG style of command line arguments. + . new option --batch for progress reports but no interaction. + . new option --clean to remove all auxiliary files. + . new option --quiet for silence (unless there are errors). + . new option -I for specifying directories for @include to search. + . handles LaTeX files (running BibTeX etc.). +* Fixes to util/gen-dir-node and util/fix-info-dir (formerly util/update-info). +* Distribution: + . Man pages included. + . Czech and Norwegian message translations. + . Various translations for texinfo.tex fixed words included. + . DJGPP support. + + 3.12 (3 March 1998) * Elisp files removed, since they are only usefully distributed with Emacs. * Restore inclusion of compile-time $(infodir) to INFOPATH. * install-info creates a proper dir file. * Various portability fixes. + 3.11 (31 July 1997) * New commands: - @uref to make a reference to a url; @url now only indicates such. @@ -40,6 +142,7 @@ This file records noteworthy changes. 3.10 (nonexistent) + 3.9 (4 October 1996) * makeinfo: - Give a suppressible (with --no-validate) error for references @@ -52,6 +155,7 @@ This file records noteworthy changes. * configure: Include replacements for memcpy and memmove functions in the distribution, in case they are missing. + 3.8 (30 September 1996) * Define and/or document new and/or previously existing commands: Accents: @" @' @, @" @= @^ @` @~ @H @d @dotaccent @dotless @ringaccent @@ -93,46 +197,55 @@ This file records noteworthy changes. @infoinclude @iappendix @iappendixsection @iappendixsec @iappendixsubsec @iappendixsubsubsec - @ichapter @isection @isubsection @isubsubsection + @ichapter @isection @isubsection @isubsubsection @iunnumbered @iunnumberedsec @iunnumberedsubsec @iunnumberedsubsubsec @setchapterstyle @titlespec + 3.7 (24 December 1995) * Have --version print texinfo release number as well as the individual program version. * Better man page cleaning. * Update Elisp files from current Emacs release. + 3.6 (21 June 1995) * Unmatched brace error reporting improved. * Missing comment terminator prevented compilation. + 3.5 (20 June 1995) * Autoconf update. * Support for parallel makes. * make install does not install Elisp files. + 3.4 (19 June 1995) * Handle @ifhtml in Elisp. * Update FSF address. + 3.3 (15 June 1995) * Portability changes. * Compile Elisp files. * Don't distribute .info* files. + 3.2 (9 June 1995) * Standalone Info can read Unix man pages. * New commands: @! @? @^ @" @enddots. * makeinfo -E does macro expansion (and nothing else). + 3.1 (23 May 1993) -Just bug fixes, see ChangeLog for full details. +Just bug fixes, see ChangeLog for full details. -texinfo-3.0: first release of Texinfo version 2, with many new commands. + +3.0: first release of Texinfo version 2, with many new commands. + Here is the separate NEWS for old releases of Info: Version 2.11, Sat Apr 1 09:15:21 1995 @@ -332,4 +445,3 @@ Changes since 2.0: * Scrolling in redisplay is implemented. * Recursive uses of the echo area made more robust. * Garbage collection of unreferenced nodes. - diff --git a/gnu/usr.bin/texinfo/README b/gnu/usr.bin/texinfo/README index 15f83239d42..0b865efc648 100644 --- a/gnu/usr.bin/texinfo/README +++ b/gnu/usr.bin/texinfo/README @@ -1,48 +1,82 @@ This is the README file for the GNU Texinfo distribution. -The primary distribution point is ftp://ftp.gnu.org/pub/gnu. +The primary distribution point is ftp://ftp.gnu.org/gnu/texinfo/. + +Mailing lists: +- bug-texinfo@gnu.org for bug reports or enhancement suggestions, + archived at ftp://ftp-mailing-list-archives.gnu.org/. +- help-texinfo@gnu.org for authoring questions and general discussion. + archived at the same place. +- texinfo-pretest@tug.org for pretests of new releases, + archived at http://tug.org/archives/texinfo-pretest/. +There are as yet no corresponding newsgroups. + +For bug reports, please include enough information for the maintainers +to reproduce the problem. Generally speaking, that means: +- the version number of Texinfo and the program(s) involved (use --version). +- hardware, operating system, and compiler versions (uname -a). +- any unusual options you gave to configure (see config.status). +- the contents of any input files necessary to reproduce the bug (crucial!). +- a description of the problem and any samples of the erroneous output. +- anything else that you think would be helpful. + +Patches are most welcome; if possible, please make them with diff -c and +include ChangeLog entries. + +When sending email, please do not encode or split the messages in any +way if at all possible; it's much easier to deal with one large message +than many small ones. GNU shar is a convenient way of packaging +multiple and/or binary files for email. -Please email bugs or suggestions to bug-texinfo@gnu.org. (If you wish, -you can join this list by sending a subscribe message to -bug-texinfo-request@gnu.org.) Patches are welcome; if possible, please -make them with diff -c and include ChangeLog entries. - -Programs within this distribution have their own version numbers. When -you refer to a file, please mention its own version, as well as the -version number of the Texinfo distribution. For generic installation instructions on compiling and installing this Automake-based distribution, please read the file `INSTALL'. Installation notes specific to Texinfo: - * The Info tree uses a file `dir' as its root node; the `dir-example' - file in this distribution is included for informative purposes. - Use it, modify it, or ignore it just as you like. +* The Info tree uses a file `dir' as its root node; the `dir-example' + file in this distribution is included as a possible starting point. + Use it, modify it, or ignore it just as you like. + +* You can create a file texinfo.cnf to be read by TeX when + processing Texinfo manuals. For example, you might like to use + @afourpaper by default. See the `Preparing for TeX' node in + texinfo.txi for more details. You don't have to create the file if + you have nothing to put in it. + +* If your info files are not in $prefix/info, you may wish to add a line +#define DEFAULT_INFOPATH "/mydir1:/mydir2:..." + to config.h after running configure. - * You can create a file texinfo.cnf to be read by TeX when - processing Texinfo manuals. For example, it might contain the - command @afourpaper. See the `Preparing for TeX' node in - texinfo.texi for more details. +* For instructions on compiling this distribution with DJGPP tools + for MS-DOS and MS-Windows, please see the file djgpp/README. - * If your info files are not in $prefix/info, you may wish to add a line -#define DEFAULT_INFOPATH "/mydir1:/mydir2:/etc" - to config.h after running configure. +If you would like to contribute to the GNU project by implementing +additional documentation output formats for Texinfo, that would be +great. But please do not write a separate translator texi2foo for your +favorite format foo! That is the hard way to do the job, and makes +extra work in subsequent maintenance, since the Texinfo language is +continually being enhanced and updated. Instead, the best approach is +modify Makeinfo to generate the new format, as it does now for Info and HTML. -This distribution includes (but is not limited to) the following files: + +This distribution includes the following files, among others: README This file. + + NEWS Summary of new features by release. + INTRODUCTION Brief introduction to the system, and how to create readable files from the Texinfo source files in this distribution. Texinfo source files (in ./doc): - texinfo.texi This manual describes the Texinfo language - and many of the associated tools. It - tells how to use Texinfo to write - documentation, how to use Texinfo mode - in GNU Emacs, TeX, makeinfo, and the - Emacs Lisp Texinfo formatting commands. + texinfo.txi Describes the Texinfo language and many + of the associated tools. It tells how + to use Texinfo to write documentation, + how to use Texinfo mode in GNU Emacs, + TeX, makeinfo, and the Emacs Lisp + Texinfo formatting commands. info.texi This manual tells you how to use Info. This document comes as part of @@ -72,26 +106,20 @@ Printing related files: util/texi2dvi This is a shell script for producing an indexed DVI file using - TeX and texindex. Must be used if the - source document uses Texinfo @macros. + TeX and texindex. Source files for standalone C programs (./lib, ./makeinfo, ./info): - makeinfo.c This file contains the source for + makeinfo/makeinfo.c This file contains the source for the `makeinfo' program that you can use to create an Info file from a Texinfo file. - info.c This file contains the source for + info/info.c This file contains the source for the `info' program that you can use to view Info files on an ASCII terminal. - getopt.c Various support files - getopt1.c - getopt.h - - Installation files: configure This file creates creates a Makefile @@ -110,11 +138,7 @@ Installation files: to use to make a Makefile.in. -Other files (util): - - NEWS This contains a summary of new - features since the first edition - of Texinfo. +Other files: fixfonts This is a shell script to install the `lcircle10' TeX fonts as an alias for diff --git a/gnu/usr.bin/texinfo/TODO b/gnu/usr.bin/texinfo/TODO index 6df65a872ef..a06b40c68f3 100644 --- a/gnu/usr.bin/texinfo/TODO +++ b/gnu/usr.bin/texinfo/TODO @@ -1,8 +1,8 @@ If you are interested in working on any of these, email bug-texinfo@gnu.org. * Makeinfo: - - HTML output is being actively worked on, and with luck will be in - the next release. + - Support output of Docbook format and SGML-Tools format. + - Support output of true 8-bit characters from accent commands, etc. - A detexinfo program, like detex or delatex. This command would strip all the texinfo commands out, and would be used as a filter on the way to a speller. An option would be to NOT strip comments out. @@ -13,23 +13,27 @@ If you are interested in working on any of these, email bug-texinfo@gnu.org. chapter/section references. See: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/faq201s.zip - Call Ghostscript to get ASCII output for the @image command. + - Better HTML output: allow settable background color, table colors + and spacing, <head> meta tags, back link from footnote marker, etc. + - Could warn if @sc{TEXT} for all-caps TEXT, since it's a no-op. * TeX: - Use @ as the escape character, and Texinfo syntax generally, in the table of contents, aux, and index files. Eliminate all the crazy multiple redefinitions of every Texinfo command in different contexts. - Handle @hsep and @vsep in @multitables. + - Introduce new command to change \bindingoffset. + - How about using latex2html to produce HTML? * General: - Better i18n support, including support for 8-bit input characters, and 8-bit output in info. Perhaps have to use the ec fonts. - Support compressed image files, automatic generation of .txt or .jpg from .eps by Ghostscript. - - Repeat TeX run until cross-references stabilize, not just twice. - (Document this in manual and fix texi2dvi.) - Handle reference card creation, perhaps by only paying attention to sectioning and @def... commands. - Allow : in node names for info files, for names like `class::method'. + - Allow @end (and other?) commands to be indented in the source. - Get Info declared as a MIME Content-Type. * Language: @@ -41,15 +45,18 @@ If you are interested in working on any of these, email bug-texinfo@gnu.org. @caption ... @end caption <arbitrary Texinfo commands> @end figure + - support bibliographies with BibTeX (see web2c/doc for kludge prototype). - @flushboth to combine @flushleft and @flushright, for RFC's. - @part sectioning command. - - Anchors a la HTML? - Allow subitems and `see' and `see also' in indices. + - @verbatim ... @end verbatim. - @exercise/@answer command for, e.g., gawk. - Allow @hsep/@vsep at @item, instead of just in template. - The dark corner symbol for the gawk manual. + - Support automatic line numbering of examples. - Change bars. This is difficult or impossible in TeX, unfortunately. To do it right requires device driver support. + wdiff or ediff may be better in some cases, anyway. * Doc: - Include a complete functional summary, as in a reference card, in @@ -59,20 +66,29 @@ If you are interested in working on any of these, email bug-texinfo@gnu.org. for an example of doing it in both the tex and info versions. * Info: + - Regular expression search. + - Allow key rebinding, perhaps through the readline library. + - Full-text search across all info files installed on the system. + - Support character sets other than ISO Latin 1. + - Perhaps comply with LANGUAGE setting on a per-node basis, to allow + incremental translation of Texinfo files. - Search all nodes of dir file at startup, then can have INFO-DIR-SEPARATE-GROUPS and other such. - Better dir file merging. - Steal interface ideas from Lynx: TAB for navigating to next link - within a page, number links, etc. + within a page, number links, use color, etc. Perhaps code from the pinfo + viewer can be reused: http://zeus.polsl.gliwice.pl/~pborys/. - q within help should quit help like C-x 0. - - Full-text search on all available info files. - - Incorporate an X-based viewer, perhaps tkinfo: - http://www.math.ucsb.edu/~boldt/tkinfo/. + - Incorporate an X-based viewer, perhaps tkinfo + http://www.math.ucsb.edu/~boldt/tkinfo/ + or saxinfo. - Perhaps process Texinfo files directly instead of converting to Info: ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcltk/tkman.tar.Z + ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcltk/rman.tar.Z + Tcl/Tk 8.0 from ftp.smli.com in the /pub/tcl directory. From: phelps@ecstasy.CS.Berkeley.EDU (Tom Phelps) + (But this has the disadvantage of needing to be updated when the + Texinfo language changes, so don't.) * Install-info: - be able to copy the info file to compile-time $(infodir), to diff --git a/gnu/usr.bin/texinfo/acinclude.m4 b/gnu/usr.bin/texinfo/acinclude.m4 new file mode 100644 index 00000000000..8f6fe5a3d4e --- /dev/null +++ b/gnu/usr.bin/texinfo/acinclude.m4 @@ -0,0 +1,90 @@ +# $Id: acinclude.m4,v 1.1 2000/02/09 01:23:53 espie Exp $ +# Source file used by aclocal in generating aclocal.m4. + +#serial 3 + +AC_DEFUN(jm_CHECK_DECLARATION, +[ + AC_REQUIRE([AC_HEADER_STDC])dnl + test -z "$ac_cv_header_memory_h" && AC_CHECK_HEADERS(memory.h) + test -z "$ac_cv_header_string_h" && AC_CHECK_HEADERS(string.h) + test -z "$ac_cv_header_strings_h" && AC_CHECK_HEADERS(strings.h) + test -z "$ac_cv_header_stdlib_h" && AC_CHECK_HEADERS(stdlib.h) + test -z "$ac_cv_header_unistd_h" && AC_CHECK_HEADERS(unistd.h) + AC_MSG_CHECKING([whether $1 is declared]) + AC_CACHE_VAL(jm_cv_func_decl_$1, + [AC_TRY_COMPILE($2, + [ +#ifndef $1 +char *(*pfn) = (char *(*)) $1 +#endif + ], + eval "jm_cv_func_decl_$1=yes", + eval "jm_cv_func_decl_$1=no")]) + + if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$3], , :, [$3]) + else + AC_MSG_RESULT(no) + ifelse([$4], , , [$4 +])dnl + fi +])dnl + +dnl jm_CHECK_DECLARATIONS(INCLUDES, FUNCTION... [, ACTION-IF-DECLARED +dnl [, ACTION-IF-NOT-DECLARED]]) +AC_DEFUN(jm_CHECK_DECLARATIONS, +[ + for jm_func in $2 + do + jm_CHECK_DECLARATION($jm_func, $1, + [ + jm_tr_func=HAVE_DECL_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` + AC_DEFINE_UNQUOTED($jm_tr_func) $3], $4)dnl + done +]) + +#serial 1 +# this is check-decl.m4 in sh-utils 1.16k/m4/check-decl.m4 +# with a different function list. + +dnl This is just a wrapper function to encapsulate this kludge. +dnl Putting it in a separate file like this helps share it between +dnl different packages. +AC_DEFUN(txi_CHECK_DECLS, +[ + headers=' +#include <stdio.h> +#ifdef HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#else +# ifdef HAVE_STRINGS_H +# include <strings.h> +# endif +#endif +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +' + + if test x = y; then + dnl This code is deliberately never run via ./configure. + dnl FIXME: this is a gross hack to make autoheader put entries + dnl for each of these symbols in the config.h.in. + dnl Otherwise, I'd have to update acconfig.h every time I change + dnl this list of functions. + AC_DEFINE(HAVE_DECL_STRERROR, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRCASECMP, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRNCASECMP, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRCOLL, 1, [Define if this function is declared.]) + fi + + jm_CHECK_DECLARATIONS($headers, strerror strcasecmp strncasecmp strcoll) +]) diff --git a/gnu/usr.bin/texinfo/aclocal.m4 b/gnu/usr.bin/texinfo/aclocal.m4 index 1c120d3dfa2..20d3fd0b45e 100644 --- a/gnu/usr.bin/texinfo/aclocal.m4 +++ b/gnu/usr.bin/texinfo/aclocal.m4 @@ -1,7 +1,7 @@ -dnl aclocal.m4 generated automatically by aclocal 1.2f +dnl aclocal.m4 generated automatically by aclocal 1.4 -dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -dnl This Makefile.in is free software; the Free Software Foundation +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,6 +10,97 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. +# $Id: aclocal.m4,v 1.1.1.3 2000/02/09 01:23:55 espie Exp $ +# Source file used by aclocal in generating aclocal.m4. + +#serial 3 + +AC_DEFUN(jm_CHECK_DECLARATION, +[ + AC_REQUIRE([AC_HEADER_STDC])dnl + test -z "$ac_cv_header_memory_h" && AC_CHECK_HEADERS(memory.h) + test -z "$ac_cv_header_string_h" && AC_CHECK_HEADERS(string.h) + test -z "$ac_cv_header_strings_h" && AC_CHECK_HEADERS(strings.h) + test -z "$ac_cv_header_stdlib_h" && AC_CHECK_HEADERS(stdlib.h) + test -z "$ac_cv_header_unistd_h" && AC_CHECK_HEADERS(unistd.h) + AC_MSG_CHECKING([whether $1 is declared]) + AC_CACHE_VAL(jm_cv_func_decl_$1, + [AC_TRY_COMPILE($2, + [ +#ifndef $1 +char *(*pfn) = (char *(*)) $1 +#endif + ], + eval "jm_cv_func_decl_$1=yes", + eval "jm_cv_func_decl_$1=no")]) + + if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$3], , :, [$3]) + else + AC_MSG_RESULT(no) + ifelse([$4], , , [$4 +])dnl + fi +])dnl + +dnl jm_CHECK_DECLARATIONS(INCLUDES, FUNCTION... [, ACTION-IF-DECLARED +dnl [, ACTION-IF-NOT-DECLARED]]) +AC_DEFUN(jm_CHECK_DECLARATIONS, +[ + for jm_func in $2 + do + jm_CHECK_DECLARATION($jm_func, $1, + [ + jm_tr_func=HAVE_DECL_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` + AC_DEFINE_UNQUOTED($jm_tr_func) $3], $4)dnl + done +]) + +#serial 1 +# this is check-decl.m4 in sh-utils 1.16k/m4/check-decl.m4 +# with a different function list. + +dnl This is just a wrapper function to encapsulate this kludge. +dnl Putting it in a separate file like this helps share it between +dnl different packages. +AC_DEFUN(txi_CHECK_DECLS, +[ + headers=' +#include <stdio.h> +#ifdef HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#else +# ifdef HAVE_STRINGS_H +# include <strings.h> +# endif +#endif +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +' + + if test x = y; then + dnl This code is deliberately never run via ./configure. + dnl FIXME: this is a gross hack to make autoheader put entries + dnl for each of these symbols in the config.h.in. + dnl Otherwise, I'd have to update acconfig.h every time I change + dnl this list of functions. + AC_DEFINE(HAVE_DECL_STRERROR, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRCASECMP, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRNCASECMP, 1, [Define if this function is declared.]) + AC_DEFINE(HAVE_DECL_STRCOLL, 1, [Define if this function is declared.]) + fi + + jm_CHECK_DECLARATIONS($headers, strerror strcasecmp strncasecmp strcoll) +]) + # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, @@ -43,7 +134,7 @@ dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN(AM_INIT_AUTOMAKE, -[AC_REQUIRE([AM_PROG_INSTALL]) +[AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] @@ -53,8 +144,8 @@ if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") -AC_DEFINE_UNQUOTED(VERSION, "$VERSION")) +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. @@ -66,15 +157,6 @@ AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# serial 1 - -AC_DEFUN(AM_PROG_INSTALL, -[AC_REQUIRE([AC_PROG_INSTALL]) -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' -AC_SUBST(INSTALL_SCRIPT)dnl -]) - # # Check to make sure that the build environment is sane. # @@ -134,15 +216,80 @@ else fi AC_SUBST($1)]) +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + +dnl From Jim Meyering. + +# serial 1 + +AC_DEFUN(AM_SYS_POSIX_TERMIOS, +[AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios, + [AC_TRY_LINK([#include <sys/types.h> +#include <unistd.h> +#include <termios.h>], + [/* SunOS 4.0.3 has termios.h but not the library calls. */ + tcgetattr(0, 0);], + am_cv_sys_posix_termios=yes, + am_cv_sys_posix_termios=no)]) +]) + +dnl From Jim Meyering. + +# serial 1 + +AC_DEFUN(AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL, +[AC_REQUIRE([AM_SYS_POSIX_TERMIOS]) + AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h], + am_cv_sys_tiocgwinsz_needs_sys_ioctl_h, + [am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no + + gwinsz_in_termios_h=no + if test $am_cv_sys_posix_termios = yes; then + AC_EGREP_CPP([yes], + [#include <sys/types.h> +# include <termios.h> +# ifdef TIOCGWINSZ + yes +# endif + ], gwinsz_in_termios_h=yes) + fi + + if test $gwinsz_in_termios_h = no; then + AC_EGREP_CPP([yes], + [#include <sys/types.h> +# include <sys/ioctl.h> +# ifdef TIOCGWINSZ + yes +# endif + ], am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes) + fi + ]) + if test $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then + AC_DEFINE(GWINSZ_IN_SYS_IOCTL,1, + [Define if TIOCGWINSZ requires sys/ioctl.h]) + fi +]) + # Macro to add for using GNU gettext. # Ulrich Drepper <drepper@cygnus.com>, 1995. # -# This file file be copied and used freely without restrictions. It can +# This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. -# serial 3 +# serial 5 AC_DEFUN(AM_WITH_NLS, [AC_MSG_CHECKING([whether NLS is requested]) @@ -162,7 +309,7 @@ AC_DEFUN(AM_WITH_NLS, AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) + nls_cv_force_use_gnu_gettext=yes) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" @@ -184,9 +331,10 @@ AC_DEFUN(AM_WITH_NLS, AC_CHECK_LIB(intl, bindtextdomain, [AC_CACHE_CHECK([for gettext in libintl], gt_cv_func_gettext_libintl, - [AC_TRY_LINK([], [return (int) gettext ("")], - gt_cv_func_gettext_libintl=yes, - gt_cv_func_gettext_libintl=no)])]) + [AC_CHECK_LIB(intl, gettext, + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)], + gt_cv_func_gettext_libintl=no)]) fi if test "$gt_cv_func_gettext_libc" = "yes" \ @@ -280,7 +428,7 @@ AC_DEFUN(AM_WITH_NLS, : ; else AC_MSG_RESULT( - [found xgettext programs is not GNU xgettext; ignore it]) + [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi @@ -292,6 +440,12 @@ AC_DEFUN(AM_WITH_NLS, nls_cv_header_intl=intl/libintl.h nls_cv_header_libgt=intl/libgettext.h fi + AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + # If this is used in GNU gettext we have to set USE_NLS to `yes' # because some of the sources are only built for this goal. @@ -336,9 +490,9 @@ AC_DEFUN(AM_GNU_GETTEXT, AC_REQUIRE([AC_FUNC_MMAP])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h values.h sys/param.h]) +unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ -__argz_count __argz_stringify __argz_next]) +strdup __argz_count __argz_stringify __argz_next]) if test "${ac_cv_func_stpcpy+set}" != "set"; then AC_CHECK_FUNCS(stpcpy) @@ -430,11 +584,13 @@ __argz_count __argz_stringify __argz_next]) dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + changequote(, )dnl + if test "x`echo $srcdir | sed -e 's@^[A-z]:@@' -e 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi + changequote([, ])dnl else posrcprefix="../" fi @@ -446,7 +602,7 @@ __argz_count __argz_stringify __argz_next]) # Search path for a program which passes the given test. # Ulrich Drepper <drepper@cygnus.com>, 1996. # -# This file file be copied and used freely without restrictions. It can +# This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. @@ -494,7 +650,7 @@ AC_SUBST($1)dnl # Check whether LC_MESSAGES is available in <locale.h>. # Ulrich Drepper <drepper@cygnus.com>, 1995. # -# This file file be copied and used freely without restrictions. It can +# This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. diff --git a/gnu/usr.bin/texinfo/config.in b/gnu/usr.bin/texinfo/config.in new file mode 100644 index 00000000000..3e943f55925 --- /dev/null +++ b/gnu/usr.bin/texinfo/config.in @@ -0,0 +1,278 @@ +/* config.in. Generated automatically from configure.in by autoheader. */ +/* acconfig.h + This file is in the public domain. + $Id: config.in,v 1.1.1.1 2000/02/09 01:23:57 espie Exp $ + + Descriptive text for the C preprocessor macros that + the distributed Autoconf macros can define. + No software package will use all of them; autoheader copies the ones + your configure.in uses into your configuration header file templates. + + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). Although this order + can split up related entries, it makes it easier to check whether + a given entry is in the file. + + Leave the following blank line there!! Autoheader needs it. */ + + + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + +/* Define if you don't have vprintf but do have _doprnt. */ +#undef HAVE_DOPRNT + +/* Define if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define if you have the strcoll function and it is properly defined. */ +#undef HAVE_STRCOLL + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF + +/* Define as __inline if that's what the C compiler calls it. */ +#undef inline + +/* Define if on MINIX. */ +#undef _MINIX + +/* Define to `long' if <sys/types.h> doesn't define. */ +#undef off_t + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +#undef _POSIX_1_SOURCE + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +#undef SETVBUF_REVERSED + +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +#undef size_t + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#undef STACK_DIRECTION + +/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */ +#undef STAT_MACROS_BROKEN + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if your <sys/time.h> declares struct tm. */ +#undef TM_IN_SYS_TIME + +/* Define to 1 if NLS is requested. */ +#undef ENABLE_NLS + +/* Define as 1 if you have catgets and don't want to use GNU gettext. */ +#undef HAVE_CATGETS + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +#undef HAVE_GETTEXT + +/* Define if your locale.h file contains LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define as 1 if you have the stpcpy function. */ +#undef HAVE_STPCPY + +/* Define if you have the __argz_count function. */ +#undef HAVE___ARGZ_COUNT + +/* Define if you have the __argz_next function. */ +#undef HAVE___ARGZ_NEXT + +/* Define if you have the __argz_stringify function. */ +#undef HAVE___ARGZ_STRINGIFY + +/* Define if you have the bzero function. */ +#undef HAVE_BZERO + +/* Define if you have the dcgettext function. */ +#undef HAVE_DCGETTEXT + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD + +/* Define if you have the getpagesize function. */ +#undef HAVE_GETPAGESIZE + +/* Define if you have the memcpy function. */ +#undef HAVE_MEMCPY + +/* Define if you have the memmove function. */ +#undef HAVE_MEMMOVE + +/* Define if you have the memset function. */ +#undef HAVE_MEMSET + +/* Define if you have the munmap function. */ +#undef HAVE_MUNMAP + +/* Define if you have the putenv function. */ +#undef HAVE_PUTENV + +/* Define if you have the setenv function. */ +#undef HAVE_SETENV + +/* Define if you have the setlocale function. */ +#undef HAVE_SETLOCALE + +/* Define if you have the setvbuf function. */ +#undef HAVE_SETVBUF + +/* Define if you have the sigprocmask function. */ +#undef HAVE_SIGPROCMASK + +/* Define if you have the sigsetmask function. */ +#undef HAVE_SIGSETMASK + +/* Define if you have the stpcpy function. */ +#undef HAVE_STPCPY + +/* Define if you have the strcasecmp function. */ +#undef HAVE_STRCASECMP + +/* Define if you have the strchr function. */ +#undef HAVE_STRCHR + +/* Define if you have the strdup function. */ +#undef HAVE_STRDUP + +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR + +/* Define if you have the strncasecmp function. */ +#undef HAVE_STRNCASECMP + +/* Define if you have the <argz.h> header file. */ +#undef HAVE_ARGZ_H + +/* Define if you have the <fcntl.h> header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the <locale.h> header file. */ +#undef HAVE_LOCALE_H + +/* Define if you have the <malloc.h> header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the <ncurses/termcap.h> header file. */ +#undef HAVE_NCURSES_TERMCAP_H + +/* Define if you have the <nl_types.h> header file. */ +#undef HAVE_NL_TYPES_H + +/* Define if you have the <pwd.h> header file. */ +#undef HAVE_PWD_H + +/* Define if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the <sys/fcntl.h> header file. */ +#undef HAVE_SYS_FCNTL_H + +/* Define if you have the <sys/file.h> header file. */ +#undef HAVE_SYS_FILE_H + +/* Define if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the <sys/ptem.h> header file. */ +#undef HAVE_SYS_PTEM_H + +/* Define if you have the <sys/time.h> header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the <sys/ttold.h> header file. */ +#undef HAVE_SYS_TTOLD_H + +/* Define if you have the <sys/wait.h> header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have the <termcap.h> header file. */ +#undef HAVE_TERMCAP_H + +/* Define if you have the <termio.h> header file. */ +#undef HAVE_TERMIO_H + +/* Define if you have the <termios.h> header file. */ +#undef HAVE_TERMIOS_H + +/* Define if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the bsd library (-lbsd). */ +#undef HAVE_LIBBSD + +/* Define if you have the i library (-li). */ +#undef HAVE_LIBI + +/* Name of package */ +#undef PACKAGE + +/* Version number of package */ +#undef VERSION + +/* Define if TIOCGWINSZ requires sys/ioctl.h */ +#undef GWINSZ_IN_SYS_IOCTL + +/* Define if this function is declared. */ +#undef HAVE_DECL_STRERROR + +/* Define if this function is declared. */ +#undef HAVE_DECL_STRCASECMP + +/* Define if this function is declared. */ +#undef HAVE_DECL_STRNCASECMP + +/* Define if this function is declared. */ +#undef HAVE_DECL_STRCOLL + + + +/* Leave that blank line there!! Autoheader needs it. + If you're adding to this file, keep in mind: + The entries are in sort -df order: alphabetical, case insensitive, + ignoring punctuation (such as underscores). */ diff --git a/gnu/usr.bin/texinfo/djgpp/README b/gnu/usr.bin/texinfo/djgpp/README new file mode 100644 index 00000000000..064486f4322 --- /dev/null +++ b/gnu/usr.bin/texinfo/djgpp/README @@ -0,0 +1,422 @@ +Building and installing GNU Texinfo with DJGPP v2.x
+===================================================
+
+This directory holds files required for building Texinfo with DJGPP
+tools for MS-DOS and MS-Windows. If you got this file with a binary
+distribution, look for the "Installation" section below.
+
+
+1. Building Texinfo
+ ----------------
+
+ a. To compile Texinfo, you will need the following tools:
+
+ - basic DJGPP development environment: GCC, Binutils and djdev;
+ - a DJGPP port of GNU Make version 3.75 or later;
+ - a DJGPP port of Bash;
+ - a port of GNU Sed;
+ - ginstall and rm from the Fileutils package;
+ - DJGPP ports of Fileutils, Diffutils, and Grep (only if you
+ need to reconfigure the source distribution);
+ - etags (from the Emacs distribution) and mkid (from ID-utils)
+ if you need the TAGS and ID targets of the Makefile's.
+
+ All of the above are available from the DJGPP ftp sites on
+ SimTel.NET mirrors, in the pub/simtelnet/gnu/djgpp/v2gnu
+ directory.
+
+ b. From the root of your DJGPP installation, unzip the source package:
+
+ - if you are unpacking the official GNU source distribution:
+
+ tar -xvzf texinfo-X.YZ.tar.gz
+
+ or
+
+ djtar -x texinfo-X.YZ.tar.gz
+
+ where X.YZ is the version number. (Users of MS-DOS and
+ MS-Windows 3.X, which don't support long file names, will need
+ to rename the archive to something like texi-XYZ.tgz.)
+
+ - if you are unpacking a source distribution from a DJGPP ftp
+ site:
+
+ unzip txiXYZs
+
+ or
+
+ pkunzip -d txiXYZs
+
+ If you build Texinfo on Windows 9X, you are advised to use a
+ version of Unzip which supports long filenames, so that the
+ original long filenames of the source files will be preserved.
+ Otherwise, the build procedure will most probably fail.
+
+ Note: do NOT use an unzip program which supports long file names
+ on Windows NT, as DJGPP doesn't support long names there.
+
+ c. If the source distribution comes with a ready Makefile (this is
+ usually the case with archives downloaded from the DJGPP sites),
+ and all you need is to build Texinfo, you may skip the configure
+ step below and go directly to step e.
+
+ d. To build the official GNU distribution, or to configure Texinfo
+ for any environment but stock DJGPP v2.x, run djgpp\config.bat
+ first, like this:
+
+ SRCDIR\djgpp\config SRCDIR
+
+ Here SRCDIR is the directory where you unpacked the sources. If
+ you are configuring from the source directory itself, you may
+ omit the argument to the config.bat file. If you do supply the
+ argument, you MUST use forward slashes in it, or else the batch
+ file might fail.
+
+ config.bat sets some environment variables, then invokes the
+ configure script. The script will run for a few minutes and
+ create Makefile's in all the directories, and the config.h file.
+
+ e. Run `Make'. This builds the programs and the Info files.
+
+
+
+2. Installation
+ ------------
+
+ a. If you are installing the binary distribution, then go to your
+ main DJGPP directory and unzip the files. For instance, if your
+ DJGPP installation is rooted on C:\DJGPP, then type this (XYZ is
+ the version number):
+
+ cd c:\djgpp
+ unzip txiXYZb
+
+ or, if you prefer `pkunzip':
+
+ pkunzip -d txiXYZb
+
+ b. If you downloaded and built Texinfo from sources, install by
+ invoking Make:
+
+ make install
+
+ This requires a port of Unix-like program `install.exe'. It is
+ available from the DJGPP port of GNU Fileutils on SimTel.NET.
+
+ c. Info needs a file named DIR with the top-level menu of all the
+ Info files installed on your system. If you installed the DJGPP
+ development environment (djdevNN.zip), then you already have
+ this file in the info/ subdirectory of your DJGPP installation.
+ Otherwise, you will need to create it. A minimal DIR file is
+ available in this distribution, as a starting point. Copy it to
+ the directory where you install the Info files from this
+ distribution.
+
+ Even if you already have a DIR file, you should review it to
+ make sure it is consistent with the names of the Info file you
+ are installing. Here's how your Texinfo-related entries in DIR
+ should look like:
+
+ * Info: (info).
+ Documentation browsing system. This topic teaches you about
+ how to use the online help information.
+
+ * Info-Standalone: (info-stnd).
+ This topic helps you use the standalone Info-Program (info.exe)
+
+ * Texinfo: (texinfo).
+ With one source file, make either a printed manual
+ (through TeX) or an Info file (through makeinfo).
+ Full documentation in this menu item.
+
+ * install-info: (texinfo)Invoking install-info.
+ How to update info/dir entries when installing GNU packages.
+
+ * texi2dvi: (texinfo)Format with texi2dvi.
+ Printing Texinfo documentation with TeX.
+
+ * texindex: (texinfo)Format with tex/texindex.
+ Sorting Texinfo index files automatically.
+
+ * makeinfo: (texinfo)makeinfo options.
+ Translate Texinfo source into Info, plain ASCII, or HTML.
+
+
+ Note that the asterisk `*' should be flushed all the way to the
+ left, it is indented here just to make reading more convenient.
+
+ If your DIR file entries differ from these, I suggest to edit them
+ so they are as shown above. Otherwise, Info might not be able to
+ find some of the files. You HAVE been warned!
+
+ d. Optionally, set up environment variables for Info. These are:
+
+ * INFO_LINES -- screen size for Info.
+ * INFO_COLORS -- screen colors for Info.
+
+ (If you have DJGPP installed on your system, the file djgpp.env
+ which comes with it already has entries for Info, see the [info]
+ section there.)
+
+ INFO_LINES can be one of 25 (the default), 28, 35, 40, 43, or 50
+ (that's if you have a VGA; EGAs only support 25, 35 and 43 lines).
+ I recommend 40 if your monitor is 17" or larger, and at least 28
+ lines for smaller monitors (I work with 40 lines even on 14"
+ monitors).
+
+ INFO_COLORS should have the following syntax:
+
+ set INFO_COLORS=XX.YY
+
+ where XX is the text attribute for text displayed in the text
+ windows and the echo area, and YY is the text attribute for the
+ modeline (aka the status line). Each attribute is a numeric
+ value of a byte which describes the desired combination of
+ foreground and background colors. The individual bits in the
+ attribute byte are defined as follows:
+
+ bBBBFFFF
+
+ where `b' is the blink bit, `BBB' are the 3 bits for background
+ color and `FFFF' are the 4 bits for the foreground color. This is
+ the usual PC text attribute byte structure, and is further explained
+ in any standard reference on text-mode programming for the PC.
+
+ My favorite setting for INFO_COLORS is `0x1e.0x31'. This makes
+ Info use yellow foreground on blue background for the text and
+ blue foreground on cyan background for the modelines.
+
+ After you've played with these variables and have chosen the values
+ you like, it's a good idea to put them on the DJGPP.ENV file, in the
+ [info] section.
+
+ e. Beginning with version 3.6, GNU Info can read Unix man pages. If
+ you have a `man' clone on your system and would like to be able to
+ read man pages with Info, read the chapter ``Reading Man Pages''
+ below. One such clone is available as v2apps/manXYb.zip from
+ the DJGPP sites (XY is the version number).
+
+ f. This port supports compressed Info files, like what Info under Unix
+ gives you. For this to work, you will need to install a DOS port of
+ GNU `Gzip' package and to observe certain rules of file naming, so
+ that Info will find the compressed files working around the DOS 8.3
+ filename restriction. The chapter ``Compressed Info Files'' below
+ explains the details of this.
+
+ g. If you need to use the `print-node' command, read the chapter
+ ``Printing Nodes'' below.
+
+ h. That's it! You are now ready to use Info, Makeinfo, and Texindex.
+ To learn about them, type `Info' and press [Enter]. You will be
+ presented with the top-level menu of GNU/DJGPP hypertext
+ documentation. If you are unfamiliar with Info, press `?' to see
+ the available commands. Pressing `h' will cause Info to take you on
+ a guided tour through its features (recommended for first-time
+ users).
+
+ i. If you are used to Info ports of versions before 3.6, you should
+ know that the command bindings to PC-specific keys has changed: the
+ numeric keypad keys invoke the same commands as their extended
+ namesakes. That is, e.g., the key `PgUp' on the numeric keypad
+ invokes the same command as the grey `PgUp' key on the extended
+ keypad. This was done at DJ's request, because laptop machines
+ don't have extended keys. Commands to move between nodes
+ (previously bound to numeric keypad) are now bound to Ctrl-
+ varieties of numeric keypad keys (e.g., `next-node' is on
+ `Ctrl-PgDn', `prev-node' is on `Ctrl-PgUp', etc.). You can use
+ the `Alt-x describe-key' command to see which command is invoked
+ by a particular key.
+
+ j. There are several MSDOS-specific changes in Texinfo, relative to
+ previous Texinfo ports (for other changes, see the file NEWS):
+
+ * Full support for both forward and backslashes in all file
+ names. Previously, Info was sensitive to the style of
+ slashes in directories mentioned in the INFOPATH environment
+ variable.
+
+ * The default operation of the `print-node' command has been
+ changed so that it will automatically print to the local
+ printer device connected to the PRN port. (If your printer
+ is connected to another port, set the INFO_PRINT_COMMAND
+ environment variable like this:
+
+ set INFO_PRINT_COMMAND=>LPT2
+
+ In other words, if the value of INFO_PRINT_COMMAND begins
+ wih a `>' character, Info will write to the file or device
+ whose name follows the `>' character. (Don't leave any
+ blanks between `>' and the device name!).
+
+ Note that stock DOS shell won't let you use the `>'
+ character in environment variables set from the DOS prompt
+ or batch files, but you can set it in the [info] section of
+ your DJGPP.ENV file.
+
+ * The `set-screen-height' command now actually changes the
+ screen dimensions from within Info if you specify one of the
+ sizes supported by your video hardware.
+
+ * If you don't have a `man' clone installed, and you invoke
+ Info with a name of a document which Info cannot find, it
+ will no longer wait for 15 seconds.
+
+ * Several bugs in handling of man pages were corrected.
+
+ * Info opens the dribble and input files in BINARY mode. This
+ allows to record keystrokes and restore them in another Info
+ session, thus using dribble files as a startup or init file
+ which changes default behavior, binds keys, etc.
+
+ * Info recognizes a new DOS-specific command-line option `-b'
+ or `--speech-friendly'. This option causes Info to use DOS
+ I/O functions (`printf', `puts', etc.) instead of direct
+ screen writes, which is required to enable speech
+ synthesizer software (used by visually-impaired people) to
+ grab the output. When this option is given, the screen
+ colors defined by the `INFO_COLORS' environment variable and
+ the visible-bell feature will be disabled, because stdio
+ functions don't support neither color text nor inverting
+ screen colors. This improvement was suggested and
+ originally implemented by Hans-Bernhard Broeker
+ <Broeker@physik.rwth-aachen.de>.
+
+ * Makeinfo now generates full .info-NN filenames when long
+ filenames are supported (e.g. on Win9x) and short .iNN
+ filenames otherwise. When the Texinfo source or the
+ command-line parameter -o specify an output file with no
+ extension (like `texinfo'), and long filenames aren't
+ supported, Makeinfo will make sure the generated names will
+ be unique (it will create e.g. `texinf-1', `texin-10' etc.).
+
+ * The texi2dvi script is now fully compatible with
+ MS-DOS/MS-Windows and with the DJGPP port of TeX.
+
+
+3. Reading Man Pages
+ -----------------
+
+ Yes, Info can now read man pages! This port supports that feature,
+ but for it to work, you will have to make sure your `man' clone is
+ set up correctly:
+
+ a. You should have an executable file named `man.exe', `man.com'
+ etc. somewhere on your PATH.
+
+ b. When invoked with redirected stdout, that executable should
+ print the contents of the file it gets as its argument to stdout
+ and exit. If your man command calls some pager, that pager
+ should have this behavior (various ports of Unix command `more'
+ and the DJGPP port of GNU Less behave that way).
+
+ One `man' clone is available as v2apps/manNNb.zip from the DJGPP
+ sites on SimTel.NET.
+
+
+4. Compressed Info Files
+ ---------------------
+
+ Info allows you to hold your Info files in compressed form, to save
+ disk space. When a file Info wants cannot be found, it will
+ automatically try to find that file in compressed form. Info does
+ this by trying to find the original file with specific extensions.
+ Each extension tells Info which program should be called to
+ decompress the file.
+
+ This port supports compression by the GNU Gzip program. When Info
+ cannot find a file `foo', it will first try to find `foo.z' or
+ `foo.gz'. If this fails, and the file has an extension, the last
+ one or two characters of the extension are replaced by `z' and `gz'
+ respectively, and Info tries again. If it finds any of these, it
+ will call the `GUnzip' program to decompress the file, catch its
+ output and display it. (The original compressed file stays
+ intact.)
+
+ So, to use this feature, compress your files with Gzip and call the
+ compressed files using the following as guidelines:
+
+ foo --> foo.gz
+ foo.inf --> foo.igz
+ foo.i5 --> foo.i5z
+ foo.25 --> foo.25z
+
+ If you have a package whose Info docs are split into more than 9
+ sub-files and you need to compress those files, you will have to
+ rename the sub-files from `foo.iNN' to `foo.NN' so that there will
+ be place for the trailing `z' in the compressed names. Don't
+ forget to edit the indirect file table in the main Info file and
+ change the sub-file filenames there too!
+
+ An alternative for those packages which have more than 99 Info
+ sub-files is to generate them from the Texinfo sources and force
+ Makeinfo to produce files without the .iNN extensions, like this:
+
+ makeinfo -o foo foo.txi
+
+ This causes Makeinfo to generate file names like foo-1, foo-2,
+ etc., which leave more place for the numeric index. If necessary,
+ Makeinfo will automatically remove characters from the end of the
+ argument to `-o'. For example, "-o texinfo" produces files
+ texinf-1, ..., texin-10, ..., texi-100, etc. on platforms which
+ only support 8+3 file names.
+
+ Saying "@setfilename foo" near the beginning of the Texinfo source
+ file is another way of forcing Makeinfo to produce files without
+ the .iNN extensions.
+
+ Using Makeinfo to produce files whose names are "compression-ready"
+ is more convenient, since you don't need to edit the the indirect
+ file table to reflect the changes in file names.
+
+ On platforms which support long filenames, the usual Info behavior
+ of appending `.gz' or `.Z' to the original filename also works;
+ this is done *before* Info checks the above butchered names.
+
+ Special considerations apply if you are installing Info on dual
+ DOS/Windows 9X system, where you'd like Info to work with the same
+ files both in plain DOS and from the Windows DOS box. In this
+ case, you should make sure your compressed Info files follow the
+ 8+3 DOS naming conventions outlined above, even though Info
+ supports long file names on Windows 9X. Also, you need to turn off
+ the generation of numeric tails in short 8+3 aliases Windows
+ creates for long names (if you don't know how, the DJGPP FAQ list
+ explains it).
+
+ Please note: for the automatic decompression to work, Info must be
+ able to find the file it looks for with an extension which
+ indicates that the file is compressed. Do NOT call the compressed
+ files as the original uncompressed files were called, or Info
+ won't be able to find them! File names like bison-1, gcc.i10 or
+ make.info-3 have nothing in them to suggest that they are
+ compressed, so don't expect Info to uncompress them.
+
+
+5. Printing Nodes
+ --------------
+
+ Info has a `print-node' command. It works by piping the contents of
+ the current node through a program which is named by the environment
+ variable INFO_PRINT_COMMAND. That command should read its standard
+ input and write it to your printer. Find any such program, put its
+ name into the above environment variable, and you can print nodes from
+ within Info.
+
+ If the value of INFO_PRINT_COMMAND begins with a redirection
+ character `>', Info will write the contents of the node to the file
+ whose name follows the `>' character.
+
+ If INFO_PRINT_COMMAND is not defined, the DJGPP port will use
+ ">PRN" as the default, which causes it to print to the local printer
+ device, PRN.
+
+6. Bug Reports
+ -----------
+
+ If you see any bugs which seem specific to this DOS port, please tell
+ me about them.
+
+
+ Enjoy,
+
+ Eli Zaretskii <eliz@is.elta.co.il>
diff --git a/gnu/usr.bin/texinfo/djgpp/config.bat b/gnu/usr.bin/texinfo/djgpp/config.bat new file mode 100644 index 00000000000..5b09e0f12a8 --- /dev/null +++ b/gnu/usr.bin/texinfo/djgpp/config.bat @@ -0,0 +1,88 @@ +@echo off
+echo Configuring GNU Texinfo for DJGPP v2.x...
+
+Rem The SmallEnv tests protect against fixed and too small size
+Rem of the environment in stock DOS shell.
+
+Rem Find out where the sources are
+set XSRC=.
+if not "%XSRC%" == "." goto SmallEnv
+if "%1" == "" goto InPlace
+set XSRC=%1
+if not "%XSRC%" == "%1" goto SmallEnv
+redir -e /dev/null update %XSRC%/configure.orig ./configure
+if not exist configure update %XSRC%/configure ./configure
+
+:InPlace
+Rem Update configuration files
+echo Updating configuration scripts...
+if not exist configure.orig update configure configure.orig
+sed -f %XSRC%/djgpp/config.sed configure.orig > configure
+if errorlevel 1 goto SedError
+
+Rem Make sure they have a config.site file
+set CONFIG_SITE=%XSRC%/djgpp/config.site
+if not "%CONFIG_SITE%" == "%XSRC%/djgpp/config.site" goto SmallEnv
+
+Rem Make sure crucial file names are not munged by unpacking
+test -f %XSRC%/intl/po2tbl.sed.in
+if not errorlevel 1 mv -f %XSRC%/intl/po2tbl.sed.in %XSRC%/intl/po2tblsed.in
+test -f %XSRC%/intl/po2tblsed.in
+if errorlevel 1 mv -f %XSRC%/intl/po2tbl.sed %XSRC%/intl/po2tblsed.in
+test -f %XSRC%/po/Makefile.in-in
+if errorlevel 1 mv -f %XSRC%/po/Makefile.in.in %XSRC%/po/Makefile.in-in
+if exist INSTALL ren INSTALL INSTALL.txt
+
+Rem Set HOSTNAME so it shows in config.status
+if not "%HOSTNAME%" == "" goto hostdone
+if "%windir%" == "" goto msdos
+set OS=MS-Windows
+if not "%OS%" == "MS-Windows" goto SmallEnv
+goto haveos
+:msdos
+set OS=MS-DOS
+if not "%OS%" == "MS-DOS" goto SmallEnv
+:haveos
+if not "%USERNAME%" == "" goto haveuname
+if not "%USER%" == "" goto haveuser
+echo No USERNAME and no USER found in the environment, using default values
+set HOSTNAME=Unknown PC
+if not "%HOSTNAME%" == "Unknown PC" goto SmallEnv
+:haveuser
+set HOSTNAME=%USER%'s PC
+if not "%HOSTNAME%" == "%USER%'s PC" goto SmallEnv
+goto userdone
+:haveuname
+set HOSTNAME=%USERNAME%'s PC
+if not "%HOSTNAME%" == "%USERNAME%'s PC" goto SmallEnv
+:userdone
+set HOSTNAME=%HOSTNAME%, %OS%
+if not "%HOSTNAME%" == "%HOSTNAME%, %OS%" goto SmallEnv
+:hostdone
+set OS=
+
+
+Rem install-sh is required by the configure script but clashes with the
+Rem various Makefile install-foo targets, so we MUST have it before the
+Rem script runs and rename it afterwards
+if not exist install-sh if exist install-sh.sh ren install-sh.sh install-sh
+echo Running the ./configure script...
+sh ./configure --src=%XSRC% --infodir=c:/djgpp/info --disable-nls
+if errorlevel 1 goto CfgError
+if not exist install-sh.sh if exist install-sh ren install-sh install-sh.sh
+echo Done.
+goto End
+
+:SedError
+echo ./configure script editing failed!
+goto End
+
+:CfgError
+echo ./configure script exited abnormally!
+goto End
+
+:SmallEnv
+echo Your environment size is too small. Enlarge it and run me again.
+echo Configuration NOT done!
+:End
+set XSRC=
diff --git a/gnu/usr.bin/texinfo/djgpp/config.sed b/gnu/usr.bin/texinfo/djgpp/config.sed new file mode 100644 index 00000000000..bad8c8426df --- /dev/null +++ b/gnu/usr.bin/texinfo/djgpp/config.sed @@ -0,0 +1,26 @@ +/for ac_dir in \$PATH; do/,/IFS="\$ac_save_[Ii][Ff][Ss]"/ { + s|test -f \$ac_dir/|test -x $ac_dir/| +} + +/IFS="\${IFS=/,/IFS="\$ac_save_ifs"/ { + s|test -f \$ac_dir/|test -x $ac_dir/| +} + +s|po2tbl\.sed\.in|po2tblsed.in|g + +/ac_given_INSTALL=/,/^CEOF/ { + /^s%@l@%/a\ + /TEXINPUTS=/s,:,\\\\\\\\\\\\\\;,g\ + /^terminal\\.o:/s,: ,: pcterm.c ,\ + s,po2tbl\\.sed\\.in,po2tblsed.in,g\ + s,Makefile\\.in\\.in,Makefile.in-in,g +} + +/^CONFIG_FILES=/,/^EOF/ { + s|po/Makefile.in|po/Makefile.in:po/Makefile.in-in| +} + +/\*) srcdir=/s,/\*,/*|[A-z]:/*, +/\$]\*) INSTALL=/s,\[/\$\]\*,&|[A-z]:/*, +/\$]\*) ac_rel_source=/s,\[/\$\]\*,&|[A-z]:/*, +/ac_file_inputs=/s,\( -e "s%\^%\$ac_given_srcdir/%"\)\( -e "s%:% $ac_given_srcdir/%g"\),\2\1, diff --git a/gnu/usr.bin/texinfo/djgpp/config.site b/gnu/usr.bin/texinfo/djgpp/config.site new file mode 100644 index 00000000000..e2238ac4d0c --- /dev/null +++ b/gnu/usr.bin/texinfo/djgpp/config.site @@ -0,0 +1,25 @@ +#! /bin/sh + +# This is the config.site file for configuring GNU packages +# which are to be built with DJGPP tools. + +# These two variables are required, otherwise looking for +# programs along the PATH will not work. +PATH_SEPARATOR=: +PATH_EXPAND=y + +# The root of the DJGPP tree serves as the default prefix +test "x$prefix" = xNONE && prefix='${DJDIR}' + +# This is required for config.status script to be run, since +# ./configure runs it by invoking ${CONFIG_SHELL-/bin/sh} +CONFIG_SHELL=${CONFIG_SHELL='sh'} + +# These are set here so the generated Makefile's will be good +# for every DJGPP installation, not only the one where the +# package was configured. +# $INSTALL must be an absolute path name, otherwise config.status +# will try to prepend ./ and ../ to it when it goes into subdirs. +INSTALL=${INSTALL='${DJDIR}/bin/ginstall -c'} +RANLIB=${RANLIB='ranlib'} + diff --git a/gnu/usr.bin/texinfo/doc/README b/gnu/usr.bin/texinfo/doc/README index fe8e65444f8..c10fad9797a 100644 --- a/gnu/usr.bin/texinfo/doc/README +++ b/gnu/usr.bin/texinfo/doc/README @@ -1,22 +1,30 @@ This directory contains documentation on the Texinfo system and the TeX -sources needed to process Texinfo sources. (Use texi2dvi to run a -Texinfo manual through TeX to produce a DVI file.) +sources needed to process Texinfo sources. We recommend using the +texi2dvi included in the distribution to run a Texinfo manual through +TeX to produce a DVI file. The .tex files are not installed automatically because TeX installations vary so widely. Installing them in the wrong place would give a false sense of security. So, you should simply cp *.tex to the appropriate place. If your installation follows the TeX Directory Structure -standard (http://www.tug.org/tds/), this will be the directory +standard (http://tug.org/tds/), this will be the directory <texmf>/tex/texinfo/ for texinfo.tex and <texmf>/tex/plain/dvips/ for epsf.tex. If you use the default installation paths, <texmf> will be -/usr/local/share/texmf. If you have teTeX, you can find <texmf> by -running: - texconfig confall | grep \^TEXMF= -(The configure script tries to do this for you.) +/usr/local/share/texmf. On systems with TeX preinstalled, as most +GNU/Linux distributions offer, <texmf> will often be something like +/usr/share/texmf. + +It is also possible to put these .tex files in a `local' place instead +of overwriting existing ones, but it is more complicated. See your TeX +documentation in general and the texmf.cnf file in particular for information. + +If you add files to your TeX installations, not just replace existing +ones, you very likely have to update your ls-R file; do this with the +mktexlsr command. In older versions, this was named MakeTeXls-R. You can get the latest texinfo.tex from -ftp://ftp.tug.org/tex/texinfo.tex -ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex +ftp://ftp.gnu.org/gnu/texinfo.tex (and all GNU mirrors) +ftp://tug.org/tex/texinfo.tex (and all CTAN mirrors) or on the FSF machines in /home/gd/gnu/doc/texinfo.tex. If you have problems with the version in this distribution, please check for a newer version. diff --git a/gnu/usr.bin/texinfo/doc/epsf.tex b/gnu/usr.bin/texinfo/doc/epsf.tex index 4f9dded4fdd..7d4a628dd5e 100644 --- a/gnu/usr.bin/texinfo/doc/epsf.tex +++ b/gnu/usr.bin/texinfo/doc/epsf.tex @@ -321,24 +321,24 @@ TeX, i.e., somewhere in the TEXINPUTS (or equivalent) path.}% \divide\epsftmp\pspoints \ifnum\epsfrsize=0\relax \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space - llx=\epsfllx\space - lly=\epsflly\space - urx=\epsfurx\space - ury=\epsfury\space - rwi=\number\epsftmp - \epsfclipstring + llx=\epsfllx\space + lly=\epsflly\space + urx=\epsfurx\space + ury=\epsfury\space + rwi=\number\epsftmp + \epsfclipstring }% \else \epsfrsize=10\epsfysize \divide\epsfrsize\pspoints \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space - llx=\epsfllx\space - lly=\epsflly\space - urx=\epsfurx\space - ury=\epsfury\space - rwi=\number\epsftmp - rhi=\number\epsfrsize - \epsfclipstring + llx=\epsfllx\space + lly=\epsflly\space + urx=\epsfurx\space + ury=\epsfury\space + rwi=\number\epsftmp + rhi=\number\epsfrsize + \epsfclipstring }% \fi }% @@ -427,27 +427,27 @@ TeX, i.e., somewhere in the TEXINPUTS (or equivalent) path.}% \epsfxsize=\epsfsize{\epsftsize}{\epsfrsize}% \ifnum \epsfxsize=0 \ifnum \epsfysize=0 - \epsfxsize=\epsftsize + \epsfxsize=\epsftsize \epsfysize=\epsfrsize - \epsfrsize=0pt + \epsfrsize=0pt % % We have a sticky problem here: TeX doesn't do floating point arithmetic! % Our goal is to compute y = rx/t. The following loop does this reasonably % fast, with an error of at most about 16 sp (about 1/4000 pt). % \else - \epsftmp=\epsftsize \divide\epsftmp\epsfrsize - \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp - \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp - \epsftmp=\epsfysize - \loop \advance\epsftsize\epsftsize \divide\epsftmp 2 - \ifnum \epsftmp>0 - \ifnum \epsftsize<\epsfrsize + \epsftmp=\epsftsize \divide\epsftmp\epsfrsize + \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp + \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp + \epsftmp=\epsfysize + \loop \advance\epsftsize\epsftsize \divide\epsftmp 2 + \ifnum \epsftmp>0 + \ifnum \epsftsize<\epsfrsize \else - \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp + \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp \fi - \repeat - \epsfrsize=0pt + \repeat + \epsfrsize=0pt \fi \else \ifnum \epsfysize=0 @@ -457,9 +457,9 @@ TeX, i.e., somewhere in the TEXINPUTS (or equivalent) path.}% \epsftmp=\epsfxsize \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2 \ifnum \epsftmp>0 - \ifnum \epsfrsize<\epsftsize + \ifnum \epsfrsize<\epsftsize \else - \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp + \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp \fi \repeat \epsfrsize=0pt diff --git a/gnu/usr.bin/texinfo/doc/help2man b/gnu/usr.bin/texinfo/doc/help2man new file mode 100644 index 00000000000..d33f7cdf67f --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/help2man @@ -0,0 +1,401 @@ +#!/usr/local/bin/perl -w + +# Generate a short man page from --help and --version output. +# Copyright © 1997, 98, 99 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Written by Brendan O'Dea <bod@compusol.com.au> + +use 5.004; +use strict; +use Getopt::Long; +use Text::Tabs qw(expand); +use POSIX qw(strftime setlocale LC_TIME); + +my $this_program = 'help2man'; +my $this_version = '1.013'; +my $version_info = <<EOT; +$this_program $this_version + +Copyright (C) 1997, 98, 99 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Written by Brendan O'Dea <bod\@compusol.com.au> +EOT + +my $help_info = <<EOT; +`$this_program' generates a man page out of `--help' and `--version' output. + +Usage: $this_program [OPTION]... EXECUTABLE + + -n, --name=STRING use `STRING' as the description for the NAME paragraph + -s, --section=SECTION use `SECTION' as the section for the man page + -i, --include=FILE include material from `FILE' + -I, --opt-include=FILE include material from `FILE' if it exists + -o, --output=FILE send output to `FILE' + -N, --no-info suppress pointer to Texinfo manual + --help print this help, then exit + --version print $this_program program version number, then exit + +EXECUTABLE should accept `--help' and `--version' options. +EOT + +my $section = 1; +my ($include, $opt_name, $opt_include, $opt_output, $opt_no_info); + +# Parse options. +Getopt::Long::config('bundling'); +GetOptions ( + 'n|name=s' => \$opt_name, + 's|section=s' => \$section, + 'i|include=s' => \$include, + 'I|opt-include=s' => \$opt_include, + 'o|output=s' => \$opt_output, + 'N|no-info' => \$opt_no_info, + help => sub { print $help_info; exit }, + version => sub { print $version_info; exit }, +) or die $help_info; + +die $help_info unless @ARGV == 1; + +my %include = (); +my @include = (); # to retain order + +# Process include file (if given). Format is: +# +# [section name] +# verbatim text + +if ($include or $opt_include) +{ + if (open INC, $include || $opt_include) + { + my $sect; + + while (<INC>) + { + if (/^\[([^]]+)\]/) + { + $sect = uc $1; + $sect =~ s/^\s+//; + $sect =~ s/\s+$//; + next; + } + + # Silently ignore anything before the first + # section--allows for comments and revision info. + next unless $sect; + + push @include, $sect unless $include{$sect}; + $include{$sect} ||= ''; + $include{$sect} .= $_; + } + + close INC; + + die "$this_program: no valid information found in `$include'\n" + unless %include; + + # Compress trailing blank lines. + for (keys %include) + { + $include{$_} =~ s/\n+$//; + $include{$_} .= "\n" unless /^NAME$/; + } + } + else + { + die "$this_program: can't open `$include' ($!)\n" if $include; + } +} + +# Turn off localisation of executable's ouput. +@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; + +# Turn off localisation of date (for strftime) +setlocale LC_TIME, 'C'; + +# Expand tabs, strip trailing spaces and break into paragraphs +sub paragraphs { split /\n\n+/, join '', expand @_ } + +# Grab help and version paragraphs from executable +my @help = paragraphs `$ARGV[0] --help 2>/dev/null` + or die "$this_program: can't get `--help' info from $ARGV[0]\n"; + +my @version = paragraphs `$ARGV[0] --version 2>/dev/null` + or die "$this_program: can't get `--version' info from $ARGV[0]\n"; + +my $date = strftime "%B %Y", localtime; +(my $program = $ARGV[0]) =~ s!.*/!!; +my $package = $program; +my $version; + +if ($opt_output) +{ + unlink $opt_output + or die "$this_program: can't unlink $opt_output ($!)\n" + if -e $opt_output; + + open STDOUT, ">$opt_output" + or die "$this_program: can't create $opt_output ($!)\n"; +} + +# The first line of the --version information is assumed to be in one +# of the following formats: +# +# <version> +# <program> <version> +# {GNU,Free} <program> <version> +# <program> ({GNU,Free} <package>) <version> +# <program> - {GNU,Free} <package> <version> +# +# and seperated from any copyright/author details by a blank line. + +$_ = shift @version; + +if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or + /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/) +{ + $program = $1; + $package = $2; + $version = $3; +} +elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/) +{ + $program = $2; + $package = $1 ? "$1$2" : $2; + $version = $3; +} +else +{ + $version = $_; +} + +$program =~ s!.*/!!; + +# no info for `info' itself +$opt_no_info = 1 if $program eq 'info'; + +# --name overrides --include contents +$include{NAME} = "$program \\- $opt_name" if $opt_name; + +# Default (useless) NAME paragraph +$include{NAME} ||= "$program \\- manual page for $program $version"; + +# Man pages traditionally have the page title in caps. +my $PROGRAM = uc $program; + +# Header. +print <<EOT; +.\\" DO NOT MODIFY THIS FILE! It was generated by $this_program $this_version. +.TH $PROGRAM "$section" "$date" "$package $version" FSF +.SH NAME +$include{NAME} +EOT + +my $break; +my $accumulate = 1; +my @description = (); + +sub convert_option; + +# Output converted --help information. +for (@help) +{ + chomp; + + if (s/^Usage: +\S+ +(.*)\n?//) + { + # Turn the usage clause into a synopsis. + my $synopsis = ''; + + do { + my $syn = $1; + $syn =~ s/(([][]|\.\.+)+)/\\fR$1\\fI/g; + $syn =~ s/^/\\fI/ unless $syn =~ s/^\\fR//; + $syn .= '\fR'; + $syn =~ s/\\fI( *)\\fR/$1/g; + + $synopsis .= ".br\n" unless $accumulate; + $synopsis .= ".B $program\n"; + $synopsis .= "$syn\n"; + $accumulate = 0; + } while s/^(?:Usage| *or): +\S+ +(.*)\n?//; + + # Include file overrides SYNOPSIS. + print ".SH SYNOPSIS\n", $include{SYNOPSIS} || $synopsis; + + # Dump any accumulated description text. + print ".SH DESCRIPTION\n"; + print @description; + + # Add additional description text from include file. + if ($include{DESCRIPTION}) + { + print ".PP\n" unless $include{DESCRIPTION} =~ /^\..P/; + print $include{DESCRIPTION}; + } + + $break = 1; + next unless $_; + } + + # Accumulate text if the synopsis has not been produced yet. + if ($accumulate) + { + push @description, ".PP\n" if @description; + push @description, "$_\n"; + next; + } + + # Convert some standard paragraph names + if (s/^(Options|Examples): *\n//) + { + print qq(.SH \U$1\n); + $break = ''; + next unless length; + } + + # Catch bug report text. + if (/^Report bugs |^Email bug reports to /) + { + print qq(.SH "REPORTING BUGS"\n$_\n); + $break = ''; + next; + } + + # Option subsections have second line indented. + if (s/^(\S.*)\n / /) + { + print qq(.SS "$1"\n); + $break = ''; + } + + my $output = ''; + while (length) + { + my $indent = 0; + + # Tagged paragraph + if (s/^( +(\S.*?) +)(\S.*)\n?//) + { + $indent = length $1; + $output .= ".TP\n$2\n$3\n"; + $break = 1; + } + + # Indented paragraph + elsif (s/^( +)(\S.*)\n?//) + { + $indent = length $1; + $output .= ".IP\n$2\n"; + $break = 1; + } + + # Left justified paragraph + else + { + s/(.*)\n?//; + $output .= ".PP\n" if $break; + $output .= "$1\n"; + $break = 1; + } + + # Continuations + $output .= "$1\n" while s/^ {$indent}(\S.*)\n?//; + } + + $_ = $output; + + # Escape backslashes. + s/\\/\\e/g; + + # Convert options. + s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge; + print; +} + +# Print any include items other than the ones we have already dealt +# with. +for (@include) +{ + print qq(.SH "$_"\n$include{$_}) + unless /^(NAME|SYNOPSIS|DESCRIPTION|SEE ALSO)$/; +} + +# Refer to the real documentation. +if ($include{'SEE ALSO'} or !$opt_no_info) +{ + print qq(.SH "SEE ALSO"\n); + print $include{'SEE ALSO'}, ".PP\n" if $include{'SEE ALSO'}; + + print <<EOT unless $opt_no_info; +The full documentation for +.B $program +is maintained as a Texinfo manual. If the +.B info +and +.B $program +programs are properly installed at your site, the command +.IP +.B info $program +.PP +should give you access to the complete manual. +EOT +} + +# Output converted --version information. +for (@version) +{ + chomp; + + # Join hyphenated lines. + s/([A-Za-z])-\n */$1/g; + + # Convert copyright symbol or (c) to nroff character. + s/Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/g; + + # Insert appropriate headings for copyright and author. + if (/^Copyright \\/) { print ".SH COPYRIGHT\n" } + elsif (/^Written +by/) { print ".SH AUTHOR\n" } + else { print ".PP\n"; } + + # Insert line breaks before additional copyright messages and the + # disclaimer. + s/(.)\n(Copyright |This is free software)/$1\n.br\n$2/g; + + print "$_\n"; +} + +exit; + +# Convert option dashes to \- to stop nroff from hyphenating 'em, and +# embolden. Option arguments get italicised. +sub convert_option +{ + my $option = '\fB' . shift; + + $option =~ s/-/\\-/g; + unless ($option =~ s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/) + { + $option =~ s/=(.)/\\fR=\\fI$1/; + $option =~ s/ (.)/ \\fI$1/; + $option .= '\fR'; + } + + $option; +} diff --git a/gnu/usr.bin/texinfo/doc/info.1 b/gnu/usr.bin/texinfo/doc/info.1 new file mode 100644 index 00000000000..f572a4f8003 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/info.1 @@ -0,0 +1,80 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.013. +.TH INFO "1" "September 1999" "GNU texinfo 4.0" FSF +.SH NAME +info \- read Info documents +.SH SYNOPSIS +.B info +[\fIOPTION\fR]... [\fIMENU-ITEM\fR...] +.SH DESCRIPTION +.PP +Read documentation in Info format. +.SH OPTIONS +.TP +\fB\-\-apropos\fR=\fISUBJECT\fR +look up SUBJECT in all indices of all manuals. +.TP +\fB\-\-directory\fR=\fIDIR\fR +add DIR to INFOPATH. +.TP +\fB\-\-dribble\fR=\fIFILENAME\fR +remember user keystrokes in FILENAME. +.TP +\fB\-\-file\fR=\fIFILENAME\fR +specify Info file to visit. +.TP +\fB\-\-help\fR +display this help and exit. +.TP +\fB\-\-index\-search\fR=\fISTRING\fR +go to node pointed by index entry STRING. +.TP +\fB\-\-node\fR=\fINODENAME\fR +specify nodes in first visited Info file. +.TP +\fB\-\-output\fR=\fIFILENAME\fR +output selected nodes to FILENAME. +.TP +\fB\-\-restore\fR=\fIFILENAME\fR +read initial keystrokes from FILENAME. +.TP +\fB\-\-show\-options\fR, \fB\-\-usage\fR +go to command-line options node. +.TP +\fB\-\-subnodes\fR +recursively output menu items. +.TP +\fB\-\-vi\-keys\fR +use vi-like and less-like key bindings. +.TP +\fB\-\-version\fR +display version information and exit. +.PP +The first non-option argument, if present, is the menu entry to start from; +it is searched for in all `dir' files along INFOPATH. +If it is not present, info merges all `dir' files and shows the result. +Any remaining arguments are treated as the names of menu +items relative to the initial node visited. +.SH EXAMPLES +.TP +info +show top-level dir menu +.TP +info emacs +start at emacs node from top-level dir +.TP +info emacs buffers +start at buffers node within emacs manual +.TP +info \fB\-\-show\-options\fR emacs +start at node with emacs' command line options +.TP +info \fB\-f\fR ./foo.info +show file ./foo.info, not searching dir +.SH "REPORTING BUGS" +Email bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH COPYRIGHT +Copyright \(co 1999 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. diff --git a/gnu/usr.bin/texinfo/doc/info.5 b/gnu/usr.bin/texinfo/doc/info.5 new file mode 100644 index 00000000000..0e7eb1dc9cc --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/info.5 @@ -0,0 +1,62 @@ +.\" info(5) +.\" $Id: info.5,v 1.1.1.1 2000/02/09 01:27:23 espie Exp $ +.\" +.\" Copyright (C) 1998 Free Software Foundation, Inc. +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of +.\" this manual under the conditions for verbatim copying, provided that +.\" the entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Permission is granted to copy and distribute translations of this +.\" manual into another language, under the above conditions for modified +.\" versions, except that this permission notice may be stated in a +.\" translation approved by the Foundation. +.\" +.TH INFO 5 "GNU Info" "FSF" +.SH NAME +info \- readable online documentation +.SH DESCRIPTION +The Info file format is an easily-parsable representation for online +documents. It can be read by +.I emacs(1) +and +.I info(1) +among other programs. +.PP +Info files are usually created from +.I texinfo(5) +sources by +.IR makeinfo(1) , +but can be created from scratch if so desired. +.PP +For a full description of the Texinfo language and associated tools, +please see the Texinfo manual (written in Texinfo itself). Most likely, +running this command from your shell: +.RS +.I info texinfo +.RE +or this key sequence from inside Emacs: +.RS +.I M-x info RET m texinfo RET +.RE +will get you there. +.SH AVAILABILITY +ftp://ftp.gnu.org/pub/gnu/texinfo-<version>.tar.gz +.br +or any GNU mirror site. +.SH "REPORTING BUGS" +Please send bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH "SEE ALSO" +info(1), install-info(1), makeinfo(1), texi2dvi(1), +.br +texindex(1). +.br +emacs(1), tex(1). +.br +texinfo(5). diff --git a/gnu/usr.bin/texinfo/doc/install-info.1 b/gnu/usr.bin/texinfo/doc/install-info.1 new file mode 100644 index 00000000000..f2b8c2ace7a --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/install-info.1 @@ -0,0 +1,84 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.013. +.TH INSTALL-INFO "1" "September 1999" "GNU texinfo 4.0" FSF +.SH NAME +install-info \- update info/dir entries +.SH SYNOPSIS +.B install-info +[\fIOPTION\fR]... [\fIINFO-FILE \fR[\fIDIR-FILE\fR]] +.SH DESCRIPTION +.PP +Install or delete dir entries from INFO-FILE in the Info directory file +DIR-FILE. +.SH OPTIONS +.TP +\fB\-\-delete\fR +delete existing entries for INFO-FILE from DIR-FILE; +.IP +don't insert any new entries. +.TP +\fB\-\-dir\-file\fR=\fINAME\fR +specify file name of Info directory file. +.IP +This is equivalent to using the DIR-FILE argument. +.TP +\fB\-\-entry\fR=\fITEXT\fR +insert TEXT as an Info directory entry. +.IP +TEXT should have the form of an Info menu item line +plus zero or more extra lines starting with whitespace. +If you specify more than one entry, they are all added. +If you don't specify any entries, they are determined +from information in the Info file itself. +.TP +\fB\-\-help\fR +display this help and exit. +.TP +\fB\-\-info\-file\fR=\fIFILE\fR +specify Info file to install in the directory. +.IP +This is equivalent to using the INFO-FILE argument. +.TP +\fB\-\-info\-dir\fR=\fIDIR\fR +same as \fB\-\-dir\-file\fR=\fIDIR\fR/dir. +.TP +\fB\-\-item\fR=\fITEXT\fR +same as \fB\-\-entry\fR TEXT. +.IP +An Info directory entry is actually a menu item. +.TP +\fB\-\-quiet\fR +suppress warnings. +.TP +\fB\-\-remove\fR +same as \fB\-\-delete\fR. +.TP +\fB\-\-section\fR=\fISEC\fR +put this file's entries in section SEC of the directory. +.IP +If you specify more than one section, all the entries +are added in each of the sections. +If you don't specify any sections, they are determined +from information in the Info file itself. +.TP +\fB\-\-version\fR +display version information and exit. +.SH "REPORTING BUGS" +Email bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH "SEE ALSO" +The full documentation for +.B install-info +is maintained as a Texinfo manual. If the +.B info +and +.B install-info +programs are properly installed at your site, the command +.IP +.B info install-info +.PP +should give you access to the complete manual. +.SH COPYRIGHT +Copyright \(co 1999 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. diff --git a/gnu/usr.bin/texinfo/doc/makeinfo.1 b/gnu/usr.bin/texinfo/doc/makeinfo.1 new file mode 100644 index 00000000000..62d22b831b0 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/makeinfo.1 @@ -0,0 +1,152 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.013. +.TH MAKEINFO "1" "September 1999" "GNU texinfo 4.0" FSF +.SH NAME +makeinfo \- translate Texinfo documents +.SH SYNOPSIS +.B makeinfo +[\fIOPTION\fR]...\fI TEXINFO-FILE\fR... +.SH DESCRIPTION +.PP +Translate Texinfo source documentation to various other formats: +Info files suitable for reading online with Emacs or standalone GNU Info +(by default); plain text (with \fB\-\-no\-headers\fR); or HTML (with \fB\-\-html\fR). +.SH OPTIONS +.TP +\fB\-\-commands\-in\-node\-names\fR +allow @ commands in node names. +.TP +\fB\-D\fR VAR +define a variable, as with @set. +.TP +\fB\-E\fR, \fB\-\-macro\-expand\fR FILE +output macro-expanded source to FILE. +.TP +\fB\-\-error\-limit\fR=\fINUM\fR +quit after NUM errors (default 100). +.TP +\fB\-\-fill\-column\fR=\fINUM\fR +break Info lines at NUM characters (default 72). +.TP +\fB\-\-footnote\-style\fR=\fISTYLE\fR +output footnotes according to STYLE: +.IP +`separate' to place footnotes in their own node, +`end' to place the footnotes at the end of the +.IP +node in which they are defined (the default). +.TP +\fB\-\-force\fR +preserve output even if errors. +.TP +\fB\-\-help\fR +display this help and exit. +.TP +\fB\-\-html\fR +output HTML rather than Info format; +.TP +\fB\-I\fR DIR +append DIR to the @include search path. +.TP +\fB\-\-ifhtml\fR +process @ifhtml and @html text even when not +.IP +generating HTML. +.TP +\fB\-\-ifinfo\fR +process @ifinfo text even when generating HTML. +.TP +\fB\-\-iftex\fR +process @iftex and @tex text. +.IP +implies \fB\-\-no\-split\fR. +.TP +\fB\-\-no\-headers\fR +suppress Info node separators and Node: lines and +.IP +write to standard output without \fB\-\-output\fR. +.TP +\fB\-\-no\-ifhtml\fR +do not process @ifhtml and @html text. +.TP +\fB\-\-no\-ifinfo\fR +do not process @ifinfo text. +.TP +\fB\-\-no\-iftex\fR +do not process @iftex and @tex text. +.TP +\fB\-\-no\-split\fR +suppress splitting of large Info output files or +generation of one HTML file per node. +.TP +\fB\-\-no\-validate\fR +suppress node cross-reference validation. +.TP +\fB\-\-no\-warn\fR +suppress warnings (but not errors). +.TP +\fB\-\-number\-sections\fR +include chapter, section, etc. numbers in output. +.TP +\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR +output to FILE, ignoring any @setfilename. +.TP +\fB\-P\fR DIR +prepend DIR to the @include search path. +.TP +\fB\-\-paragraph\-indent\fR=\fIVAL\fR +indent Info paragraphs by VAL spaces (default 3). +.IP +if VAL is `none', do not indent; +if VAL is `asis', preserve existing indentation. +.TP +\fB\-\-reference\-limit\fR=\fINUM\fR +warn about at most NUM references (default 1000). +.TP +\fB\-U\fR VAR +undefine a variable, as with @clear. +.TP +\fB\-v\fR, \fB\-\-verbose\fR +explain what is being done. +.TP +\fB\-\-version\fR +display version information and exit. +.PP +The defaults for the @if... conditionals depend on the output format: +if generating HTML, \fB\-\-ifhtml\fR is on and the others are off; +if generating Info or plain text, \fB\-\-ifinfo\fR is on and the others are off. +.SH EXAMPLES +.TP +makeinfo foo.texi +write Info to foo's @setfilename +.TP +makeinfo \fB\-\-html\fR foo.texi +write HTML to foo's @setfilename +.TP +makeinfo \fB\-\-no\-headers\fR \fB\-o\fR - foo.texi +write plain text to standard output +.TP +makeinfo \fB\-\-number\-sections\fR foo.texi +write Info with numbered sections +.TP +makeinfo \fB\-\-no\-split\fR foo.texi +write one Info file however big +.SH "REPORTING BUGS" +Email bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH "SEE ALSO" +The full documentation for +.B makeinfo +is maintained as a Texinfo manual. If the +.B info +and +.B makeinfo +programs are properly installed at your site, the command +.IP +.B info makeinfo +.PP +should give you access to the complete manual. +.SH COPYRIGHT +Copyright \(co 1999 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. diff --git a/gnu/usr.bin/texinfo/doc/mdate-sh b/gnu/usr.bin/texinfo/doc/mdate-sh new file mode 100644 index 00000000000..37171f21fbd --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/mdate-sh @@ -0,0 +1,92 @@ +#!/bin/sh +# Get modification time of a file or directory and pretty-print it. +# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Prevent date giving response in another language. +LANG=C +export LANG +LC_ALL=C +export LC_ALL +LC_TIME=C +export LC_TIME + +# Get the extended ls output of the file or directory. +# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +if ls -L /dev/null 1>/dev/null 2>&1; then + set - x`ls -L -l -d $1` +else + set - x`ls -l -d $1` +fi +# The month is at least the fourth argument +# (3 shifts here, the next inside the loop). +shift +shift +shift + +# Find the month. Next argument is day, followed by the year or time. +month= +until test $month +do + shift + case $1 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; + esac +done + +day=$2 + +# Here we have to deal with the problem that the ls output gives either +# the time of day or the year. +case $3 in + *:*) set `date`; eval year=\$$# + case $2 in + Jan) nummonthtod=1;; + Feb) nummonthtod=2;; + Mar) nummonthtod=3;; + Apr) nummonthtod=4;; + May) nummonthtod=5;; + Jun) nummonthtod=6;; + Jul) nummonthtod=7;; + Aug) nummonthtod=8;; + Sep) nummonthtod=9;; + Oct) nummonthtod=10;; + Nov) nummonthtod=11;; + Dec) nummonthtod=12;; + esac + # For the first six month of the year the time notation can also + # be used for files modified in the last year. + if (expr $nummonth \> $nummonthtod) > /dev/null; + then + year=`expr $year - 1` + fi;; + *) year=$3;; +esac + +# The result. +echo $day $month $year diff --git a/gnu/usr.bin/texinfo/doc/stamp-vti b/gnu/usr.bin/texinfo/doc/stamp-vti new file mode 100644 index 00000000000..2d7c14922ab --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/stamp-vti @@ -0,0 +1,3 @@ +@set UPDATED 28 September 1999 +@set EDITION 4.0 +@set VERSION 4.0 diff --git a/gnu/usr.bin/texinfo/doc/stamp-vti.1 b/gnu/usr.bin/texinfo/doc/stamp-vti.1 new file mode 100644 index 00000000000..6a12e306559 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/stamp-vti.1 @@ -0,0 +1,3 @@ +@set UPDATED 22 March 1999 +@set EDITION 3.12g +@set VERSION 3.12g diff --git a/gnu/usr.bin/texinfo/doc/texi2dvi.1 b/gnu/usr.bin/texinfo/doc/texi2dvi.1 new file mode 100644 index 00000000000..d9e98c4ca5f --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/texi2dvi.1 @@ -0,0 +1,84 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.013. +.TH TEXI2DVI "1" "September 1999" "GNU Texinfo 4.0 0.43" FSF +.SH NAME +texi2dvi \- print Texinfo documents +.SH SYNOPSIS +.B texi2dvi +[\fIOPTION\fR]...\fI FILE\fR... +.SH DESCRIPTION +.PP +Run each Texinfo or LaTeX FILE through TeX in turn until all +cross-references are resolved, building all indices. The directory +containing each FILE is searched for included files. The suffix of FILE +is used to determine its language (LaTeX or Texinfo). +.PP +Makeinfo is used to perform Texinfo macro expansion before running TeX +when needed. +.SH OPTIONS +.TP +-@ +Use @input instead of \einput; for preloaded Texinfo. +.TP +\fB\-b\fR, \fB\-\-batch\fR +No interaction. +.TP +\fB\-c\fR, \fB\-\-clean\fR +Remove all auxiliary files. +.TP +\fB\-D\fR, \fB\-\-debug\fR +Turn on shell debugging (set \fB\-x\fR). +.TP +\fB\-e\fR, \fB\-\-expand\fR +Force macro expansion using makeinfo. +.TP +\fB\-I\fR DIR +Search DIR for Texinfo files. +.TP +\fB\-h\fR, \fB\-\-help\fR +Display this help and exit successfully. +.TP +\fB\-l\fR, \fB\-\-language\fR=\fILANG\fR +Specify the LANG of FILE: LaTeX or Texinfo. +.TP +\fB\-p\fR, \fB\-\-pdf\fR +Use pdftex or pdflatex for processing. +.TP +\fB\-q\fR, \fB\-\-quiet\fR +No output unless errors (implies \fB\-\-batch\fR). +.TP +\fB\-s\fR, \fB\-\-silent\fR +Same as \fB\-\-quiet\fR. +.TP +\fB\-t\fR, \fB\-\-texinfo\fR=\fICMD\fR +Insert CMD after @setfilename in copy of input file. +Multiple values accumulate. +.TP +\fB\-v\fR, \fB\-\-version\fR +Display version information and exit successfully. +.TP +\fB\-V\fR, \fB\-\-verbose\fR +Report on what is done. +.PP +The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, +TEX (or PDFTEX), and TEXINDEX environment variables are used to run +those commands, if they are set. +.SH "REPORTING BUGS" +Email bug reports to <bug-texinfo@gnu.org>, +general questions and discussion to <help-texinfo@gnu.org>. +.SH "SEE ALSO" +The full documentation for +.B texi2dvi +is maintained as a Texinfo manual. If the +.B info +and +.B texi2dvi +programs are properly installed at your site, the command +.IP +.B info texi2dvi +.PP +should give you access to the complete manual. +.SH COPYRIGHT +Copyright \(co 1999 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. diff --git a/gnu/usr.bin/texinfo/doc/texindex.1 b/gnu/usr.bin/texinfo/doc/texindex.1 new file mode 100644 index 00000000000..6708829704c --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/texindex.1 @@ -0,0 +1,47 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.013. +.TH TEXINDEX "1" "September 1999" "GNU texinfo 4.0" FSF +.SH NAME +texindex \- sort Texinfo index files +.SH SYNOPSIS +.B texindex +[\fIOPTION\fR]...\fI FILE\fR... +.SH DESCRIPTION +.PP +Generate a sorted index for each TeX output FILE. +Usually FILE... is specified as `foo.??' for a document `foo.texi'. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +display this help and exit +.TP +\fB\-k\fR, \fB\-\-keep\fR +keep temporary files around after processing +.TP +\fB\-\-no\-keep\fR +do not keep temporary files around after processing (default) +.TP +\fB\-o\fR, \fB\-\-output\fR FILE +send output to FILE +.TP +\fB\-\-version\fR +display version information and exit +.SH "REPORTING BUGS" +Email bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH "SEE ALSO" +The full documentation for +.B texindex +is maintained as a Texinfo manual. If the +.B info +and +.B texindex +programs are properly installed at your site, the command +.IP +.B info texindex +.PP +should give you access to the complete manual. +.SH COPYRIGHT +Copyright \(co 1999 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. diff --git a/gnu/usr.bin/texinfo/doc/texinfo.5 b/gnu/usr.bin/texinfo/doc/texinfo.5 new file mode 100644 index 00000000000..68504e38035 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/texinfo.5 @@ -0,0 +1,51 @@ +.\" texinfo(5) +.\" $Id: texinfo.5,v 1.1.1.1 2000/02/09 01:27:23 espie Exp $ +.\" +.\" Copyright (C) 1998, 99 Free Software Foundation, Inc. +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of +.\" this manual under the conditions for verbatim copying, provided that +.\" the entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Permission is granted to copy and distribute translations of this +.\" manual into another language, under the above conditions for modified +.\" versions, except that this permission notice may be stated in a +.\" translation approved by the Foundation. +.\" +.TH TEXINFO 5 "GNU Texinfo" "FSF" +.SH NAME +Texinfo \- software documentation system +.SH DESCRIPTION +Texinfo is a documentation system that uses a single source file to +produce both online information and printed output. It is primarily +designed for writing software manuals. +.PP +For a full description of the Texinfo language and associated tools, +please see the Texinfo manual (written in Texinfo itself). Most likely, +running this command from your shell: +.RS +.I info texinfo +.RE +or this key sequence from inside Emacs: +.RS +.I M-x info RET m texinfo RET +.RE +will get you there. +.SH AVAILABILITY +ftp://ftp.gnu.org/gnu/texinfo/ +.br +or any GNU mirror site. +.SH "REPORTING BUGS" +Please send bug reports to bug-texinfo@gnu.org, +general questions and discussion to help-texinfo@gnu.org. +.SH "SEE ALSO" +info(1), install-info(1), makeinfo(1), texi2dvi(1), texindex(1). +.br +emacs(1), tex(1). +.br +info(5). diff --git a/gnu/usr.bin/texinfo/doc/txi-cs.tex b/gnu/usr.bin/texinfo/doc/txi-cs.tex new file mode 100644 index 00000000000..d1aa88d3f20 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-cs.tex @@ -0,0 +1,72 @@ +% Czech translation for texinfo.tex (1999-01-24, GNU Texinfo 3.12c).
+%
+% Copyright (C) 1999 Vladimir Michl <Vladimir.Michl@mujweb.cz>
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% To: Karl Berry <karl@cs.umb.edu>
+%
+\gdef\putwordAppendix{Pøílohy}
+\gdef\putwordChapter{Kapitola}
+\gdef\putwordfile{soubor}
+\gdef\putwordIndexIsEmpty{(Rejstøík je prázdný)}
+\gdef\putwordIndexNonexistent{(Rejstøík neexistuje)}
+\gdef\putwordInfo{Info}
+\gdef\putwordMethodon{Metoda aktivní}
+\gdef\putwordNoTitle{Bez nadpisu}
+\gdef\putwordOf{}
+\gdef\putwordon{zapnuto}
+\gdef\putwordpage{stránka}
+\gdef\putwordsection{podkapitola}
+\gdef\putwordSection{Podkapitola}
+\gdef\putwordsee{vidìt}
+\gdef\putwordSee{Vidìt}
+\gdef\putwordShortTOC{Krátký obsah}
+\gdef\putwordTOC{Obsah}
+%
+\gdef\putwordMJan{ledna}
+\gdef\putwordMFeb{února}
+\gdef\putwordMMar{bøezna}
+\gdef\putwordMApr{dubna}
+\gdef\putwordMMai{kvìtna}
+\gdef\putwordMJun{èervna}
+\gdef\putwordMJul{èervence}
+\gdef\putwordMAug{srpna}
+\gdef\putwordMSep{záøí}
+\gdef\putwordMOct{øíjna}
+\gdef\putwordMNov{listopadu}
+\gdef\putwordMDec{prosince}
+%
+\gdef\putwordDefmac{Makro}
+\gdef\putwordDefspec{Speciální forma}
+\gdef\putwordDefivar{Instance promìnné}
+\gdef\putwordDefvar{Promìnná}
+\gdef\putwordDefopt{Volby}
+\gdef\putwordDeftypevar{Promìnná}
+\gdef\putwordDeffunc{Funkce}
+\gdef\putwordDeftypefun{Funkce}
+%
+% Redefine \today to produce Czech
+% preferred dates such as 28. januar 1999.
+%
+\gdef\today{%
+ \number\day.\space
+ \ifcase\month
+ \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+ \or\putwordMMai\or\putwordMJun\or\putwordMJul\or\putwordMAug
+ \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+ \fi
+ \space\number\year}
+%
diff --git a/gnu/usr.bin/texinfo/doc/txi-de.tex b/gnu/usr.bin/texinfo/doc/txi-de.tex new file mode 100644 index 00000000000..4d5b1c63b5f --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-de.tex @@ -0,0 +1,83 @@ +% txi-de.tex -- adaptation to German for texinfo.tex. +% $Id: txi-de.tex,v 1.1.1.1 2000/02/09 01:27:22 espie Exp $ +% +% Copyright (C) 1999 Free Software Foundation, Inc. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2, or (at your option) +% any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +% +% Written by Karl Heinz Marbaise, 18. January 1999, <kama@hippo.fido.de> +%% +%% german translation of the used words. +%% Don't use checking because if it is our turn they have +%% been defined. +\gdef\putwordAppendix{Anhang} +\gdef\putwordChapter{Kapitel} +\gdef\putwordfile{Datei} +\gdef\putwordin{in} +\gdef\putwordInfo{Info} +\gdef\putwordMethodon{Methode von} +\gdef\putwordon{auf} +\gdef\putwordof{von} +\gdef\putwordpage{Seite} +\gdef\putwordsection{Abschnitt} +\gdef\putwordSection{Abschnitt} +\gdef\putwordsee{siehe} +\gdef\putwordSee{Siehe} +\gdef\putwordShortTOC{Kurzverzeichnis} +\gdef\putwordTOC{Inhaltsverzeichnis} +%% +\gdef\putwordNoTitle{Kein Titel} +%% +%% New defintion for the output of months. +\gdef\putwordMJan{Januar} +\gdef\putwordMFeb{Februar} +\gdef\putwordMMar{M\"arz} +\gdef\putwordMApr{April} +\gdef\putwordMMai{Mai} +\gdef\putwordMJun{Juni} +\gdef\putwordMJul{Juli} +\gdef\putwordMAug{August} +\gdef\putwordMSep{September} +\gdef\putwordMOct{Oktober} +\gdef\putwordMNov{November} +\gdef\putwordMDec{Dezember} +%% +%% some hyphenation for german language. Might be changed. +\hyphenation{An-hang} +%%\hyphenation{mini-buf-fer mini-buf-fers} +%%\hyphenation{eshell} +%%\hyphenation{white-space} +%% +%% Index handling should also work correct in german +\gdef\putwordIndexNonexistent{(Index ist nicht vorhanden)} +\gdef\putwordIndexIsEmpty{(Der Index ist leer)} +%% +%% \defmac +\gdef\putwordDefmac{Makro} +%% \defspec +\gdef\putwordDefspec{Spezial Form} +%% \defivar +\gdef\putwordDefivar{exemplar Variable} +%% \defvar leave unchanged because no difference in +%% writing but in phonectics. +\gdef\putwordDefvar{Variable} +%% \defopt +\gdef\putwordDefopt{Benutzer Option} +%% \deftypevar +\gdef\putwordDeftypevar{Variable} +%% \deffun +\gdef\putwordDeffunc{Funktion} +%% \deftypefun +\gdef\putwordDeftypefun{Funktion} diff --git a/gnu/usr.bin/texinfo/doc/txi-en.tex b/gnu/usr.bin/texinfo/doc/txi-en.tex new file mode 100644 index 00000000000..f972a745317 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-en.tex @@ -0,0 +1,71 @@ +% English non-translation for texinfo.tex. This is read when a source +% document says @documentlanguage en (which might happen after another +% @documentlanguage). The actual values are the same as defaults. +% $Id: txi-en.tex,v 1.1.1.1 2000/02/09 01:27:22 espie Exp $ +% +% Copyright (C) 1999 Free Software Foundation. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +\gdef\putwordAppendix{Appendix} +\gdef\putwordChapter{Chapter} +\gdef\putwordfile{file} +\gdef\putwordin{in} +\gdef\putwordIndexIsEmpty{(Index is empty)} +\gdef\putwordIndexNonexistent{(Index is nonexistent)} +\gdef\putwordInfo{Info} +\gdef\putwordInstanceVariableof{Instance Variable of} +\gdef\putwordMethodon{Method on} +\gdef\putwordNoTitle{No Title} +\gdef\putwordof{of} +\gdef\putwordon{on} +\gdef\putwordpage{page} +\gdef\putwordsection{section} +\gdef\putwordSection{Section} +\gdef\putwordsee{see} +\gdef\putwordSee{See} +\gdef\putwordShortTOC{Short Contents} +\gdef\putwordTOC{Table of Contents} +% +\gdef\putwordMJan{January} +\gdef\putwordMFeb{February} +\gdef\putwordMMar{March} +\gdef\putwordMApr{April} +\gdef\putwordMMay{May} +\gdef\putwordMJun{June} +\gdef\putwordMJul{July} +\gdef\putwordMAug{August} +\gdef\putwordMSep{September} +\gdef\putwordMOct{October} +\gdef\putwordMNov{November} +\gdef\putwordMDec{December} +% +\gdef\putwordDefmac{Macro} +\gdef\putwordDefspec{Special Form} +\gdef\putwordDefvar{Variable} +\gdef\putwordDefopt{User Option} +\gdef\putwordDeftypevar{Variable} +\gdef\putwordDeffunc{Function} +\gdef\putwordDeftypefun{Function} + +% Produces Day Month Year style of output. +\def\today{% + \number\day\space + \ifcase\month + \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr + \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug + \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec + \fi + \space\number\year} diff --git a/gnu/usr.bin/texinfo/doc/txi-es.tex b/gnu/usr.bin/texinfo/doc/txi-es.tex new file mode 100644 index 00000000000..496bd2586ea --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-es.tex @@ -0,0 +1,60 @@ +% txi-es.tex -- TeX macros to handle Spanish language documents. +% +% Copyright (C) 1999 by Adrian Perez Jorge +% +% This txi-es.tex file is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2, or (at +% your option) any later version. +% +% This txi-es.tex file is distributed in the hope that it will be +% useful, but WITHOUT ANY WARRANTY; without even the implied warranty +% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +% General Public License for more details. +% + +% +% Set up fixed words for Spanish. +% + +\gdef\putwordAppendix{Ap\'endice} +\gdef\putwordChapter{Cap\'{\char16{}}tulo} +\gdef\putwordfile{archivo} +\gdef\putwordIndexIsEmpty{(El \'Indice est\'a vac\'{\char16{}}o)} +\gdef\putwordIndexNonexistent{(No existe el \'Indice)} +\gdef\putwordInfo{Info} +\gdef\putwordMethodon{M\'etodo de} +\gdef\putwordNoTitle{Sin T\'{\char{16}}tulo} +\gdef\putwordof{de} +\gdef\putwordon{de} +\gdef\putwordpage{p\'agina} +\gdef\putwordsection{secci\'on} +\gdef\putwordSection{Secci\'on} +\gdef\putwordsee{v\'ease} +\gdef\putwordSee{V\'ease} +\gdef\putwordShortTOC{Resumen del Contenido} +\gdef\putwordTOC{\'Indice General} +% +\gdef\putwordMJan{enero} +\gdef\putwordMFeb{febrero} +\gdef\putwordMMar{marzo} +\gdef\putwordMApr{abril} +\gdef\putwordMMay{mayo} +\gdef\putwordMJun{junio} +\gdef\putwordMJul{julio} +\gdef\putwordMAug{agosto} +\gdef\putwordMSep{septiembre} +\gdef\putwordMOct{octubre} +\gdef\putwordMNov{noviembre} +\gdef\putwordMDec{diciembre} +% +\gdef\putwordDefmac{Macro} +\gdef\putwordDefspec{Forma Especial} +\gdef\putwordDefivar{Variable de Instancia} +\gdef\putwordDefvar{Variable} +\gdef\putwordDefopt{Opci\'on de Usuario} +\gdef\putwordDeftypevar{Variable} +\gdef\putwordDeffunc{Funci\'on} +\gdef\putwordDeftypefun{Funci\'on} + +\endinput diff --git a/gnu/usr.bin/texinfo/doc/txi-nl.tex b/gnu/usr.bin/texinfo/doc/txi-nl.tex new file mode 100644 index 00000000000..65b9d05ff73 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-nl.tex @@ -0,0 +1,70 @@ +% Dutch translation for texinfo.tex. +% $Id: txi-nl.tex,v 1.1.1.1 2000/02/09 01:27:22 espie Exp $ +% +% Copyright (C) 1999 Free Software Foundation. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +% Set up fixed words if not already set. +\gdef\putwordAppendix{Appendix} +\gdef\putwordChapter{Hoofdstuk} +\gdef\putwordfile{bestand} +\gdef\putwordin{in} +\gdef\putwordIndexIsEmpty{(Index is leeg)} +\gdef\putwordIndexNonexistent{(Index bestaat niet)} +\gdef\putwordInfo{Info} +\gdef\putwordInstanceVariableof{Instantie Variabele van} +\gdef\putwordMethodon{Methode van} +\gdef\putwordNoTitle{Geen titel} +\gdef\putwordof{van} +\gdef\putwordon{op} +\gdef\putwordpage{pagina} +\gdef\putwordsection{sectie} +\gdef\putwordSection{Sectie} +\gdef\putwordsee{zie} +\gdef\putwordSee{Zie} +\gdef\putwordShortTOC{Korte inhoudsopgave} +\gdef\putwordTOC{Inhoudsopgave} +% +\gdef\putwordMJan{Januari} +\gdef\putwordMFeb{Februari} +\gdef\putwordMMar{Maart} +\gdef\putwordMApr{April} +\gdef\putwordMMay{Mei} +\gdef\putwordMJun{Juni} +\gdef\putwordMJul{Juli} +\gdef\putwordMAug{Augustus} +\gdef\putwordMSep{September} +\gdef\putwordMOct{Oktober} +\gdef\putwordMNov{November} +\gdef\putwordMDec{December} +% +\gdef\putwordDefmac{Macro} +\gdef\putwordDefspec{Speciale Vorm} +\gdef\putwordDefvar{Variabele} +\gdef\putwordDefopt{Gebruikers optie} +\gdef\putwordDeftypevar{Variabele} +\gdef\putwordDeffunc{Functie} +\gdef\putwordDeftypefun{Functie} + +% Produces Day Month Year style of output. +\def\today{% + \number\day\space + \ifcase\month + \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr + \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug + \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec + \fi + \space\number\year} diff --git a/gnu/usr.bin/texinfo/doc/txi-no.tex b/gnu/usr.bin/texinfo/doc/txi-no.tex new file mode 100644 index 00000000000..899d42cf2a2 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-no.tex @@ -0,0 +1,72 @@ +% Norwegian translation for texinfo.tex (1999-02-09, GNU Texinfo 3.12d).
+% Enables the use of words like Kapittel instead of Chapter, etc.
+%
+% Copyright (C) 1999 Trond Endrestøl <endrestol@hotmail.com>
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+% MA 02111-1307, USA.
+%
+\gdef\putwordAppendix{Vedlegg}
+\gdef\putwordChapter{Kapittel}
+\gdef\putwordfile{fil}
+\gdef\putwordIndexIsEmpty{(Indeks er tom)}
+\gdef\putwordIndexNonexistent{(Indeks eksisterer ikke)}
+\gdef\putwordInfo{Info}
+\gdef\putwordMethodon{Metode p\aa}
+\gdef\putwordNoTitle{Ingen tittel}
+\gdef\putwordof{av}
+\gdef\putwordon{p\aa}
+\gdef\putwordpage{side}
+\gdef\putwordsection{avsnitt}
+\gdef\putwordSection{Avsnitt}
+\gdef\putwordsee{se}
+\gdef\putwordSee{Se}
+\gdef\putwordShortTOC{Kort innholdsfortegnelse}
+\gdef\putwordTOC{Innholdsfortegnelse}
+%
+\gdef\putwordMJan{januar}
+\gdef\putwordMFeb{februar}
+\gdef\putwordMMar{mars}
+\gdef\putwordMApr{april}
+\gdef\putwordMMay{mai}
+\gdef\putwordMJun{juni}
+\gdef\putwordMJul{juli}
+\gdef\putwordMAug{august}
+\gdef\putwordMSep{september}
+\gdef\putwordMOct{oktober}
+\gdef\putwordMNov{november}
+\gdef\putwordMDec{desember}
+%
+\gdef\putwordDefmac{Makro}
+\gdef\putwordDefspec{Spesiell form}
+\gdef\putwordDefivar{Forekomstvariabel}
+\gdef\putwordDefvar{Variabel}
+\gdef\putwordDefopt{Brukervalg}
+\gdef\putwordDeftypevar{Variabel}
+\gdef\putwordDeffunc{Funksjon}
+\gdef\putwordDeftypefun{Funksjon}
+%
+% Redefine \today to produce Norwegian
+% preferred dates such as 28. januar 1999.
+%
+\gdef\today{%
+ \number\day.\space
+ \ifcase\month
+ \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+ \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+ \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+ \fi
+ \space\number\year}
+%
diff --git a/gnu/usr.bin/texinfo/doc/txi-pt.tex b/gnu/usr.bin/texinfo/doc/txi-pt.tex new file mode 100644 index 00000000000..4f4530b3df5 --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/txi-pt.tex @@ -0,0 +1,73 @@ +% txi-pt.tex -- adaptation to Portuguese for texinfo.tex. +% +% Copyright (C) 1999 Free Software Foundation, Inc. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2, or (at your option) +% any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +% +% Written by Lalo Martins <lalo@webcom.com> at 05 August 1999 +%% +%% Portuguese translation of the used words. +\gdef\putwordAppendix{Ap\^endice} +\gdef\putwordChapter{Cap\'\ptexi tulo} +\gdef\putwordfile{Data} +\gdef\putwordin{em} +\gdef\putwordInfo{Info} +\gdef\putwordMethodon{M\'etodo de} +\gdef\putwordon{em} +\gdef\putwordof{de} +\gdef\putwordpage{P\'agina} +\gdef\putwordsection{se\,c\~ao} +\gdef\putwordSection{Se\,c\~ao} +\gdef\putwordsee{veja} +\gdef\putwordSee{Veja} +\gdef\putwordShortTOC{Breve Sum\'ario} +\gdef\putwordTOC{Sum\'ario} +%% +\gdef\putwordNoTitle{Sem T\'\ptexi tulo} +%% +%% New defintion for the output of months. +\gdef\putwordMJan{Janeiro} +\gdef\putwordMFeb{Fevereiro} +\gdef\putwordMMar{Mar\,co} +\gdef\putwordMApr{Abril} +\gdef\putwordMMai{Maio} +\gdef\putwordMJun{Junho} +\gdef\putwordMJul{Julho} +\gdef\putwordMAug{Agosto} +\gdef\putwordMSep{Setembro} +\gdef\putwordMOct{Outubro} +\gdef\putwordMNov{Novembro} +\gdef\putwordMDec{Dezembro} +%% +%% Index handling should also work correct in german +\gdef\putwordIndexNonexistent{(\'Indice inexistente)} +\gdef\putwordIndexIsEmpty{(\'Indice vazio)} +%% +%% \defmac +\gdef\putwordDefmac{Macro} +%% \defspec +\gdef\putwordDefspec{Forma Especial} +%% \defivar +\gdef\putwordDefivar{Vari\'avel de Inst\^ancia} +%% \defvar +\gdef\putwordDefvar{Vari\'avel} +%% \defopt +\gdef\putwordDefopt{Op\,c\~ao de Usu\'ario} +%% \deftypevar +\gdef\putwordDeftypevar{Vari\'avel} +%% \deffun +\gdef\putwordDeffunc{Fun\,c\~ao} +%% \deftypefun +\gdef\putwordDeftypefun{Fun\,c\~ao} diff --git a/gnu/usr.bin/texinfo/doc/version.texi b/gnu/usr.bin/texinfo/doc/version.texi new file mode 100644 index 00000000000..2d7c14922ab --- /dev/null +++ b/gnu/usr.bin/texinfo/doc/version.texi @@ -0,0 +1,3 @@ +@set UPDATED 28 September 1999 +@set EDITION 4.0 +@set VERSION 4.0 diff --git a/gnu/usr.bin/texinfo/info/README b/gnu/usr.bin/texinfo/info/README index 7e1ab327b99..5cc0791c06b 100644 --- a/gnu/usr.bin/texinfo/info/README +++ b/gnu/usr.bin/texinfo/info/README @@ -14,11 +14,6 @@ the advantages of smaller size, ease of portability, and a built in library which can be used in other programs (to get or display documentation from Info files, for example). -I eagerly await responses to this newer version of Info; comments on its -portability, ease of use and user interface, code quality, and general -usefulness are all of interest to me, and I will appreciate any comments -that you would care to make. - A full listing of the commands available in Info can be gotten by typing `?' while within an Info window. This produces a node in a window which can be viewed just like any Info node. diff --git a/gnu/usr.bin/texinfo/info/dribble.c b/gnu/usr.bin/texinfo/info/dribble.c index d1d58486560..c4b5b9fd3f6 100644 --- a/gnu/usr.bin/texinfo/info/dribble.c +++ b/gnu/usr.bin/texinfo/info/dribble.c @@ -1,9 +1,6 @@ -/* dribble.c -- Dribble files for Info. */ +/* dribble.c -- dribble files for Info. -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 98 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -37,7 +34,8 @@ open_dribble_file (name) /* Perhaps close existing dribble file. */ close_dribble_file (); - info_dribble_file = fopen (name, "w"); + /* Keystrokes can be non-printable characters, so we need binary I/O. */ + info_dribble_file = fopen (name, FOPEN_WBIN); #if defined (HAVE_SETVBUF) if (info_dribble_file) diff --git a/gnu/usr.bin/texinfo/info/info-utils.c b/gnu/usr.bin/texinfo/info/info-utils.c index d9ab9a0634b..18eebe777ec 100644 --- a/gnu/usr.bin/texinfo/info/info-utils.c +++ b/gnu/usr.bin/texinfo/info/info-utils.c @@ -1,9 +1,7 @@ -/* info-utils.c -- Useful functions for manipulating Info file quirks. */ +/* info-utils.c -- miscellanous. + $Id: info-utils.c,v 1.1.1.3 2000/02/09 01:24:44 espie Exp $ -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 98 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,7 +27,7 @@ /* When non-zero, various display and input functions handle ISO Latin character sets correctly. */ -int ISO_Latin_p = 0; +int ISO_Latin_p = 1; /* Variable which holds the most recent filename parsed as a result of calling info_parse_xxx (). */ @@ -300,8 +298,8 @@ info_references_internal (label, binding) return (refs); } -/* Get the entry associated with LABEL in MENU. Return a pointer to the - REFERENCE if found, or NULL. */ +/* Get the entry associated with LABEL in REFERENCES. Return a pointer + to the ENTRY if found, or NULL. */ REFERENCE * info_get_labeled_reference (label, references) char *label; @@ -444,19 +442,10 @@ printed_representation (character, hpos) int hpos; { register int i = 0; - int printable_limit; - - if (ISO_Latin_p) - printable_limit = 160; - else - printable_limit = 127; - - if (character == '\177') - { - the_rep[i++] = '^'; - the_rep[i++] = '?'; - } - else if (iscntrl (character)) + int printable_limit = ISO_Latin_p ? 255 : 127; + + /* Show CTRL-x as ^X. */ + if (iscntrl (character) && character < 127) { switch (character) { @@ -480,17 +469,23 @@ printed_representation (character, hpos) the_rep[i++] = (character | 0x40); } } + /* Show META-x as 0370. */ else if (character > printable_limit) { sprintf (the_rep + i, "\\%0o", character); i = strlen (the_rep); } + else if (character == DEL) + { + the_rep[i++] = '^'; + the_rep[i++] = '?'; + } else the_rep[i++] = character; - the_rep[i] = '\0'; + the_rep[i] = 0; - return (the_rep); + return the_rep; } @@ -604,14 +599,13 @@ char * filename_non_directory (pathname) char *pathname; { - char *filename; + register char *filename = pathname + strlen (pathname); - filename = (char *) strrchr (pathname, '/'); + if (HAVE_DRIVE (pathname)) + pathname += 2; - if (filename) - filename++; - else - filename = pathname; + while (filename > pathname && !IS_SLASH (filename[-1])) + filename--; return (filename); } @@ -663,3 +657,17 @@ get_internal_info_window (name) return (win); } + +/* Return a window displaying the node NODE. */ +WINDOW * +get_window_of_node (node) + NODE *node; +{ + WINDOW *win = (WINDOW *)NULL; + + for (win = windows; win; win = win->next) + if (win->node == node) + break; + + return (win); +} diff --git a/gnu/usr.bin/texinfo/info/nodes.c b/gnu/usr.bin/texinfo/info/nodes.c index f2737e7b354..e90fd2eda07 100644 --- a/gnu/usr.bin/texinfo/info/nodes.c +++ b/gnu/usr.bin/texinfo/info/nodes.c @@ -1,9 +1,7 @@ -/* nodes.c -- How to get an Info file and node. */ +/* nodes.c -- how to get an Info file and node. + $Id: nodes.c,v 1.1.1.3 2000/02/09 01:24:52 espie Exp $ -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 98, 99 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,12 +30,6 @@ # include "man.h" #endif /* HANDLE_MAN_PAGES */ -/* **************************************************************** */ -/* */ -/* Functions Static to this File */ -/* */ -/* **************************************************************** */ - static void forget_info_file (), remember_info_file (); static void free_file_buffer_tags (), free_info_tag (); static void get_nodes_of_tags_table (), get_nodes_of_info_file (); @@ -50,8 +42,7 @@ static NODE *info_node_of_file_buffer_tags (); static long get_node_length (); /* Magic number that RMS used to decide how much a tags table pointer could - be off by. I feel that it should be much smaller, like on the order of - 4. */ + be off by. I feel that it should be much smaller, like 4. */ #define DEFAULT_INFO_FUDGE 1000 /* Passed to *_internal functions. INFO_GET_TAGS says to do what is @@ -59,46 +50,36 @@ static long get_node_length (); #define INFO_NO_TAGS 0 #define INFO_GET_TAGS 1 -/* **************************************************************** */ -/* */ -/* Global Variables */ -/* */ -/* **************************************************************** */ +/* Global variables. */ /* When non-zero, this is a string describing the recent file error. */ -char *info_recent_file_error = (char *)NULL; +char *info_recent_file_error = NULL; /* The list of already loaded nodes. */ -FILE_BUFFER **info_loaded_files = (FILE_BUFFER **)NULL; +FILE_BUFFER **info_loaded_files = NULL; /* The number of slots currently allocated to LOADED_FILES. */ int info_loaded_files_slots = 0; -/* **************************************************************** */ -/* */ -/* Public Functions for Node Manipulation */ -/* */ -/* **************************************************************** */ +/* Public functions for node manipulation. */ -/* Used to build "dir" menu from "localdir" files found in INFOPATH. */ +/* Used to build `dir' menu from `localdir' files found in INFOPATH. */ extern void maybe_build_dir_node (); /* Return a pointer to a NODE structure for the Info node (FILENAME)NODENAME. - FILENAME can be passed as NULL, in which case the filename of "dir" is used. - NODENAME can be passed as NULL, in which case the nodename of "Top" is used. - If the node cannot be found, return a NULL pointer. */ + If FILENAME is NULL, `dir' is used. + IF NODENAME is NULL, `Top' is used. + If the node cannot be found, return NULL. */ NODE * info_get_node (filename, nodename) char *filename, *nodename; { - FILE_BUFFER *file_buffer; NODE *node; + FILE_BUFFER *file_buffer = NULL; - file_buffer = (FILE_BUFFER *)NULL; - info_recent_file_error = (char *)NULL; - + info_recent_file_error = NULL; info_parse_node (nodename, DONT_SKIP_NEWLINES); - nodename = (char *)NULL; + nodename = NULL; if (info_parsed_filename) filename = info_parsed_filename; @@ -112,23 +93,23 @@ info_get_node (filename, nodename) /* If the file to be looked up is "dir", build the contents from all of the "dir"s and "localdir"s found in INFOPATH. */ - if (strcasecmp (filename, "dir") == 0) + if (is_dir_name (filename)) maybe_build_dir_node (filename); - /* Find the correct info file. */ + /* Find the correct info file, or give up. */ file_buffer = info_find_file (filename); - if (!file_buffer) { if (filesys_error_number) info_recent_file_error = filesys_error_string (filename, filesys_error_number); - return ((NODE *)NULL); + return NULL; } + /* Look for the node. */ node = info_get_node_of_file_buffer (nodename, file_buffer); - /* If the node looked for was "Top", try again looking for the node under - a slightly different name. */ + + /* If the node not found was "Top", try again with different case. */ if (!node && (nodename == NULL || strcasecmp (nodename, "Top") == 0)) { node = info_get_node_of_file_buffer ("Top", file_buffer); @@ -137,7 +118,8 @@ info_get_node (filename, nodename) if (!node) node = info_get_node_of_file_buffer ("TOP", file_buffer); } - return (node); + + return node; } /* Return a pointer to a NODE structure for the Info node NODENAME in @@ -149,12 +131,12 @@ info_get_node_of_file_buffer (nodename, file_buffer) char *nodename; FILE_BUFFER *file_buffer; { - NODE *node = (NODE *)NULL; + NODE *node = NULL; /* If we are unable to find the file, we have to give up. There isn't anything else we can do. */ if (!file_buffer) - return ((NODE *)NULL); + return NULL; /* If the file buffer was gc'ed, reload the contents now. */ if (!file_buffer->contents) @@ -171,11 +153,12 @@ info_get_node_of_file_buffer (nodename, file_buffer) { node = (NODE *)xmalloc (sizeof (NODE)); node->filename = file_buffer->fullpath; - node->parent = (char *)NULL; + node->parent = NULL; node->nodename = xstrdup ("*"); node->contents = file_buffer->contents; node->nodelen = file_buffer->filesize; node->flags = 0; + node->display_pos = 0; } #if defined (HANDLE_MAN_PAGES) /* If the file buffer is the magic one associated with manpages, call @@ -195,7 +178,7 @@ info_get_node_of_file_buffer (nodename, file_buffer) } /* Return the results of our node search. */ - return (node); + return node; } /* Locate the file named by FILENAME, and return the information structure @@ -207,7 +190,7 @@ FILE_BUFFER * info_find_file (filename) char *filename; { - return (info_find_file_internal (filename, INFO_GET_TAGS)); + return info_find_file_internal (filename, INFO_GET_TAGS); } /* Load the info file FILENAME, remembering information about it in a @@ -216,15 +199,11 @@ FILE_BUFFER * info_load_file (filename) char *filename; { - return (info_load_file_internal (filename, INFO_GET_TAGS)); + return info_load_file_internal (filename, INFO_GET_TAGS); } -/* **************************************************************** */ -/* */ -/* Private Functions Implementation */ -/* */ -/* **************************************************************** */ +/* Private functions implementation. */ /* The workhorse for info_find_file (). Non-zero 2nd argument says to try to build a tags table (or otherwise glean the nodes) for this @@ -236,30 +215,30 @@ info_find_file_internal (filename, get_tags) char *filename; int get_tags; { - register int i; - register FILE_BUFFER *file_buffer; + int i; + FILE_BUFFER *file_buffer; /* First try to find the file in our list of already loaded files. */ if (info_loaded_files) { for (i = 0; (file_buffer = info_loaded_files[i]); i++) - if ((strcmp (filename, file_buffer->filename) == 0) || - (strcmp (filename, file_buffer->fullpath) == 0) || - ((*filename != '/') && - strcmp (filename, - filename_non_directory (file_buffer->fullpath)) == 0)) + if ((FILENAME_CMP (filename, file_buffer->filename) == 0) || + (FILENAME_CMP (filename, file_buffer->fullpath) == 0) || + (!IS_ABSOLUTE (filename) && + FILENAME_CMP (filename, + filename_non_directory (file_buffer->fullpath)) == 0)) { struct stat new_info, *old_info; /* This file is loaded. If the filename that we want is specifically "dir", then simply return the file buffer. */ - if (strcasecmp (filename_non_directory (filename), "dir") == 0) - return (file_buffer); + if (is_dir_name (filename_non_directory (filename))) + return file_buffer; #if defined (HANDLE_MAN_PAGES) /* Do the same for the magic MANPAGE file. */ if (file_buffer->flags & N_IsManPage) - return (file_buffer); + return file_buffer; #endif /* HANDLE_MAN_PAGES */ /* The file appears to be already loaded, and it is not "dir". @@ -268,7 +247,7 @@ info_find_file_internal (filename, get_tags) if (stat (file_buffer->fullpath, &new_info) == -1) { filesys_error_number = errno; - return ((FILE_BUFFER *)NULL); + return NULL; } old_info = &file_buffer->finfo; @@ -288,10 +267,18 @@ info_find_file_internal (filename, get_tags) for this file, and there isn't one here, build the nodes for this file_buffer. In any case, return the file_buffer object. */ + if (!file_buffer->contents) + { + /* The file's contents have been gc'ed. Reload it. */ + info_reload_file_buffer_contents (file_buffer); + if (!file_buffer->contents) + return NULL; + } + if (get_tags && !file_buffer->tags) build_tags_and_nodes (file_buffer); - return (file_buffer); + return file_buffer; } } } @@ -310,7 +297,7 @@ info_find_file_internal (filename, get_tags) if (file_buffer) remember_info_file (file_buffer); - return (file_buffer); + return file_buffer; } /* The workhorse function for info_load_file (). Non-zero second argument @@ -325,8 +312,8 @@ info_load_file_internal (filename, get_tags) char *fullpath, *contents; long filesize; struct stat finfo; - int retcode; - FILE_BUFFER *file_buffer = (FILE_BUFFER *)NULL; + int retcode, compressed; + FILE_BUFFER *file_buffer = NULL; /* Get the full pathname of this file, as known by the info system. That is to say, search along INFOPATH and expand tildes, etc. */ @@ -338,18 +325,16 @@ info_load_file_internal (filename, get_tags) /* If the file referenced by the name returned from info_find_fullpath () doesn't exist, then try again with the last part of the filename appearing in lowercase. */ + /* This is probably not needed at all on those systems which define + FILENAME_CMP to be strcasecmp. But let's do it anyway, lest some + network redirector supports case sensitivity. */ if (retcode < 0) { char *lowered_name; char *basename; lowered_name = xstrdup (filename); - basename = (char *) strrchr (lowered_name, '/'); - - if (basename) - basename++; - else - basename = lowered_name; + basename = filename_non_directory (lowered_name); while (*basename) { @@ -369,14 +354,14 @@ info_load_file_internal (filename, get_tags) if (retcode < 0) { filesys_error_number = errno; - return ((FILE_BUFFER *)NULL); + return NULL; } /* Otherwise, try to load the file. */ - contents = filesys_read_info_file (fullpath, &filesize, &finfo); + contents = filesys_read_info_file (fullpath, &filesize, &finfo, &compressed); if (!contents) - return ((FILE_BUFFER *)NULL); + return NULL; /* The file was found, and can be read. Allocate FILE_BUFFER and fill in the various members. */ @@ -386,16 +371,16 @@ info_load_file_internal (filename, get_tags) file_buffer->finfo = finfo; file_buffer->filesize = filesize; file_buffer->contents = contents; - if (file_buffer->filesize != file_buffer->finfo.st_size) + if (compressed) file_buffer->flags |= N_IsCompressed; /* If requested, build the tags and nodes for this file buffer. */ if (get_tags) build_tags_and_nodes (file_buffer); - return (file_buffer); + return file_buffer; } - + /* Grovel FILE_BUFFER->contents finding tags and nodes, and filling in the various slots. This can also be used to rebuild a tag or node table. */ void @@ -527,6 +512,7 @@ get_nodes_of_info_file (file_buffer) int start, end; char *nodeline; TAG *entry; + int anchor = 0; /* Skip past the characters just found. */ binding.start = nodestart; @@ -537,6 +523,13 @@ get_nodes_of_info_file (file_buffer) /* Find "Node:" */ start = string_in_line (INFO_NODE_LABEL, nodeline); + /* No Node:. Maybe it's a Ref:. */ + if (start == -1) + { + start = string_in_line (INFO_REF_LABEL, nodeline); + if (start != -1) + anchor = 1; + } /* If not there, this is not the start of a node. */ if (start == -1) @@ -550,21 +543,24 @@ get_nodes_of_info_file (file_buffer) skip_node_characters (nodeline + start, DONT_SKIP_NEWLINES); /* Okay, we have isolated the node name, and we know where the - node starts. Remember this information in a NODE structure. */ - entry = (TAG *)xmalloc (sizeof (TAG)); - entry->nodename = (char *)xmalloc (1 + (end - start)); + node starts. Remember this information. */ + entry = xmalloc (sizeof (TAG)); + entry->nodename = xmalloc (1 + (end - start)); strncpy (entry->nodename, nodeline + start, end - start); - entry->nodename[end - start] = '\0'; + entry->nodename[end - start] = 0; entry->nodestart = nodestart; - { - SEARCH_BINDING node_body; + if (anchor) + entry->nodelen = 0; + else + { + SEARCH_BINDING node_body; - node_body.buffer = binding.buffer + binding.start; - node_body.start = 0; - node_body.end = binding.end - binding.start; - node_body.flags = S_FoldCase; - entry->nodelen = get_node_length (&node_body); - } + node_body.buffer = binding.buffer + binding.start; + node_body.start = 0; + node_body.end = binding.end - binding.start; + node_body.flags = S_FoldCase; + entry->nodelen = get_node_length (&node_body); + } entry->filename = file_buffer->fullpath; @@ -579,17 +575,16 @@ static long get_node_length (binding) SEARCH_BINDING *binding; { - register int i; + int i; char *body; - /* From the Info-RFC file: - [A node] ends with either a ^_, a ^L, or the end of file. */ + /* [A node] ends with either a ^_, a ^L, or end of file. */ for (i = binding->start, body = binding->buffer; i < binding->end; i++) { if (body[i] == INFO_FF || body[i] == INFO_COOKIE) break; } - return ((long) i - binding->start); + return i - binding->start; } /* Build and save the array of nodes in FILE_BUFFER by searching through the @@ -599,9 +594,10 @@ get_nodes_of_tags_table (file_buffer, buffer_binding) FILE_BUFFER *file_buffer; SEARCH_BINDING *buffer_binding; { - int offset, tags_index = 0; + int name_offset; SEARCH_BINDING *search; long position; + int tags_index = 0; search = copy_binding (buffer_binding); @@ -624,6 +620,8 @@ get_nodes_of_tags_table (file_buffer, buffer_binding) { TAG *entry; char *nodedef; + unsigned p; + int anchor = 0; /* Prepare to skip this line. */ search->start = position; @@ -634,36 +632,45 @@ get_nodes_of_tags_table (file_buffer, buffer_binding) continue; /* Find the label preceding the node name. */ - offset = + name_offset = string_in_line (INFO_NODE_LABEL, search->buffer + search->start); + /* If no node label, maybe it's an anchor. */ + if (name_offset == -1) + { + name_offset = string_in_line (INFO_REF_LABEL, + search->buffer + search->start); + if (name_offset != -1) + anchor = 1; + } + /* If not there, not a defining line, so we must be out of the - tags table. */ - if (offset == -1) + tags table. */ + if (name_offset == -1) break; - /* Point to the beginning of the node definition. */ - search->start += offset; + entry = xmalloc (sizeof (TAG)); + + /* Find the beginning of the node definition. */ + search->start += name_offset; nodedef = search->buffer + search->start; nodedef += skip_whitespace (nodedef); - /* Move past the node's name. */ - for (offset = 0; - (nodedef[offset]) && (nodedef[offset] != INFO_TAGSEP); - offset++); - - if (nodedef[offset] != INFO_TAGSEP) + /* Move past the node's name in this tag to the TAGSEP character. */ + for (p = 0; nodedef[p] && nodedef[p] != INFO_TAGSEP; p++) + ; + if (nodedef[p] != INFO_TAGSEP) continue; - entry = (TAG *)xmalloc (sizeof (TAG)); - entry->nodename = (char *)xmalloc (1 + offset); - strncpy (entry->nodename, nodedef, offset); - entry->nodename[offset] = '\0'; - offset++; - entry->nodestart = (long) atol (nodedef + offset); + entry->nodename = xmalloc (p + 1); + strncpy (entry->nodename, nodedef, p); + entry->nodename[p] = 0; + p++; + entry->nodestart = atol (nodedef + p); - /* We don't know the length of this node yet. */ - entry->nodelen = -1; + /* If a node, we don't know the length yet, but if it's an + anchor, the length is 0. */ + entry->nodelen = anchor ? 0 : -1; /* The filename of this node is currently known as the same as the name of this file. */ @@ -677,7 +684,7 @@ get_nodes_of_tags_table (file_buffer, buffer_binding) free (search); } -/* A structure used only in get_tags_of_indirect_tags_table () to hold onto +/* A structure used only in `get_tags_of_indirect_tags_table' to hold onto an intermediate value. */ typedef struct { char *filename; @@ -692,8 +699,8 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) FILE_BUFFER *file_buffer; SEARCH_BINDING *indirect_binding, *tags_binding; { - register int i; - SUBFILE **subfiles = (SUBFILE **)NULL; + int i; + SUBFILE **subfiles = NULL; int subfiles_index = 0, subfiles_slots = 0; TAG *entry; @@ -723,7 +730,7 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) subfile = (SUBFILE *)xmalloc (sizeof (SUBFILE)); subfile->filename = (char *)xmalloc (colon); strncpy (subfile->filename, line, colon - 1); - subfile->filename[colon - 1] = '\0'; + subfile->filename[colon - 1] = 0; subfile->first_byte = (long) atol (line + colon); add_pointer_to_array @@ -742,7 +749,7 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) } else { - register int tags_index; + int tags_index; long header_length; SEARCH_BINDING binding; @@ -762,14 +769,21 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) /* Build the file buffer's list of subfiles. */ { - char *containing_dir, *temp; + char *containing_dir = xstrdup (file_buffer->fullpath); + char *temp = filename_non_directory (containing_dir); int len_containing_dir; - containing_dir = xstrdup (file_buffer->fullpath); - temp = (char *) strrchr (containing_dir, '/'); - - if (temp) - *temp = '\0'; + if (temp > containing_dir) + { + if (HAVE_DRIVE (file_buffer->fullpath) && + temp == containing_dir + 2) + { + /* Avoid converting "d:foo" into "d:/foo" below. */ + *temp = '.'; + temp += 2; + } + temp[-1] = 0; + } len_containing_dir = strlen (containing_dir); @@ -789,7 +803,7 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) file_buffer->subfiles[i] = fullpath; } - file_buffer->subfiles[i] = (char *)NULL; + file_buffer->subfiles[i] = NULL; free (containing_dir); } @@ -814,7 +828,7 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) free (subfiles[i]); free (file_buffer->subfiles[i]); } - file_buffer->subfiles = (char **)NULL; + file_buffer->subfiles = NULL; free_file_buffer_tags (file_buffer); return; } @@ -825,9 +839,8 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) preceding this one is the one containing the node. */ entry->filename = file_buffer->subfiles[i - 1]; - entry->nodestart -= subfiles[i -1]->first_byte; + entry->nodestart -= subfiles[i - 1]->first_byte; entry->nodestart += header_length; - entry->nodelen = -1; } /* We have successfully built the tags table. Remember that it @@ -845,18 +858,89 @@ get_tags_of_indirect_tags_table (file_buffer, indirect_binding, tags_binding) free (subfiles); } + +/* Return the node that contains TAG in FILE_BUFFER, else + (pathologically) NULL. Called from info_node_of_file_buffer_tags. */ +static NODE * +find_node_of_anchor (file_buffer, tag) + FILE_BUFFER *file_buffer; + TAG *tag; +{ + int anchor_pos, node_pos; + TAG *node_tag; + NODE *node; + + /* Look through the tag list for the anchor. */ + for (anchor_pos = 0; file_buffer->tags[anchor_pos]; anchor_pos++) + { + TAG *t = file_buffer->tags[anchor_pos]; + if (t->nodestart == tag->nodestart) + break; + } + + /* Should not happen, because we should always find the anchor. */ + if (!file_buffer->tags[anchor_pos]) + return NULL; + + /* We've found the anchor. Look backwards in the tag table for the + preceding node (we're assuming the tags are given in order), + skipping over any preceding anchors. */ + for (node_pos = anchor_pos - 1; + node_pos >= 0 && file_buffer->tags[node_pos]->nodelen == 0; + node_pos--) + ; + + /* An info file with an anchor before any nodes is pathological, but + it's possible, so don't crash. */ + if (node_pos < 0) + return NULL; + + /* We have the tag for the node that contained the anchor tag. */ + node_tag = file_buffer->tags[node_pos]; + + /* Look up the node name in the tag table to get the actual node. + This is a recursive call, but it can't recurse again, because we + call it with a real node. */ + node = info_node_of_file_buffer_tags (file_buffer, node_tag->nodename); + + /* Start displaying the node at the anchor position. */ + if (node) + { /* The nodestart for real nodes is three characters before the `F' + in the `File:' line (a newline, the CTRL-_, and another + newline). The nodestart for anchors is the actual position. + But we offset by only 2, rather than 3, because if an anchor is + at the beginning of a paragraph, it's nicer for it to end up on + the beginning of the first line of the paragraph rather than + the blank line before it. (makeinfo has no way of knowing that + a paragraph is going to start, so we can't fix it there.) */ + node->display_pos = file_buffer->tags[anchor_pos]->nodestart + - (node_tag->nodestart + 2); + + /* Otherwise an anchor at the end of a node ends up displaying at + the end of the last line of the node (way over on the right of + the screen), which looks wrong. */ + if (node->display_pos >= node->nodelen) + node->display_pos = node->nodelen - 1; + + /* Don't search in the node for the xref text, it's not there. */ + node->flags |= N_FromAnchor; + } + + return node; +} + + /* Return the node from FILE_BUFFER which matches NODENAME by searching - the tags table in FILE_BUFFER. If the node could not be found, return - a NULL pointer. */ + the tags table in FILE_BUFFER, or NULL. */ static NODE * info_node_of_file_buffer_tags (file_buffer, nodename) FILE_BUFFER *file_buffer; char *nodename; { - register int i; TAG *tag; + int i; - for (i = 0; (tag = file_buffer->tags[i]); i++) + for (i = 0; (tag = file_buffer->tags[i]); i++) if (strcmp (nodename, tag->nodename) == 0) { FILE_BUFFER *subfile; @@ -864,27 +948,26 @@ info_node_of_file_buffer_tags (file_buffer, nodename) subfile = info_find_file_internal (tag->filename, INFO_NO_TAGS); if (!subfile) - return ((NODE *)NULL); + return NULL; if (!subfile->contents) { info_reload_file_buffer_contents (subfile); if (!subfile->contents) - return ((NODE *)NULL); + return NULL; } /* If we were able to find this file and load it, then return the node within it. */ { - NODE *node; - - node = (NODE *)xmalloc (sizeof (NODE)); - node->filename = (subfile->fullpath); - node->nodename = tag->nodename; - node->contents = subfile->contents + tag->nodestart; - node->flags = 0; - node->parent = (char *)NULL; + NODE *node = xmalloc (sizeof (NODE)); + node->filename = subfile->fullpath; + node->parent = NULL; + node->nodename = tag->nodename; + node->contents = subfile->contents + tag->nodestart; + node->display_pos = 0; + node->flags = 0; if (file_buffer->flags & N_HasTagsTable) { @@ -923,14 +1006,14 @@ info_node_of_file_buffer_tags (file_buffer, nodename) max = subfile->filesize - tag->nodestart; /* NODE_SEP gets the address of the separator which defines - this node, or (char *)NULL if the node wasn't found. + this node, or NULL if the node wasn't found. NODE->contents is side-effected to point to right after the separator. */ node_sep = adjust_nodestart (node, min, max); - if (node_sep == (char *)NULL) + if (node_sep == NULL) { free (node); - return ((NODE *)NULL); + return NULL; } /* Readjust tag->nodestart. */ tag->nodestart = node_sep - subfile->contents; @@ -943,46 +1026,49 @@ info_node_of_file_buffer_tags (file_buffer, nodename) node_body.end = buff_end - node_body.buffer; node_body.flags = 0; tag->nodelen = get_node_length (&node_body); + node->nodelen = tag->nodelen; } + + else if (tag->nodelen == 0) /* anchor, return containing node */ + { + free (node); + node = find_node_of_anchor (file_buffer, tag); + } + else { /* Since we know the length of this node, we have already adjusted tag->nodestart to point to the exact start of it. Simply skip the node separator. */ node->contents += skip_node_separator (node->contents); + node->nodelen = tag->nodelen; } - node->nodelen = tag->nodelen; - return (node); + return node; } } /* There was a tag table for this file, and the node wasn't found. Return NULL, since this file doesn't contain the desired node. */ - return ((NODE *)NULL); + return NULL; } -/* **************************************************************** */ -/* */ -/* Managing file_buffers, nodes, and tags. */ -/* */ -/* **************************************************************** */ +/* Managing file_buffers, nodes, and tags. */ /* Create a new, empty file buffer. */ FILE_BUFFER * make_file_buffer () { - FILE_BUFFER *file_buffer; + FILE_BUFFER *file_buffer = xmalloc (sizeof (FILE_BUFFER)); - file_buffer = (FILE_BUFFER *)xmalloc (sizeof (FILE_BUFFER)); - file_buffer->filename = file_buffer->fullpath = (char *)NULL; - file_buffer->contents = (char *)NULL; - file_buffer->tags = (TAG **)NULL; - file_buffer->subfiles = (char **)NULL; + file_buffer->filename = file_buffer->fullpath = NULL; + file_buffer->contents = NULL; + file_buffer->tags = NULL; + file_buffer->subfiles = NULL; file_buffer->tags_slots = 0; file_buffer->flags = 0; - return (file_buffer); + return file_buffer; } /* Add FILE_BUFFER to our list of already loaded info files. */ @@ -1004,15 +1090,15 @@ static void forget_info_file (filename) char *filename; { - register int i; + int i; FILE_BUFFER *file_buffer; if (!info_loaded_files) return; - for (i = 0; (file_buffer = info_loaded_files[i]); i++) - if ((strcmp (filename, file_buffer->filename) == 0) || - (strcmp (filename, file_buffer->fullpath) == 0)) + for (i = 0; file_buffer = info_loaded_files[i]; i++) + if (FILENAME_CMP (filename, file_buffer->filename) == 0 + || FILENAME_CMP (filename, file_buffer->fullpath) == 0) { free (file_buffer->filename); free (file_buffer->fullpath); @@ -1020,13 +1106,17 @@ forget_info_file (filename) if (file_buffer->contents) free (file_buffer->contents); - /* Note that free_file_buffer_tags () also kills the subfiles - list, since the subfiles list is only of use in conjunction - with tags. */ + /* free_file_buffer_tags () also kills the subfiles list, since + the subfiles list is only of use in conjunction with tags. */ free_file_buffer_tags (file_buffer); - while ((info_loaded_files[i] = info_loaded_files[++i])) - ; + /* Move rest of list down. */ + while (info_loaded_files[i + 1]) + { + info_loaded_files[i] = info_loaded_files[i + 1]; + i++; + } + info_loaded_files[i] = 0; break; } @@ -1037,17 +1127,17 @@ static void free_file_buffer_tags (file_buffer) FILE_BUFFER *file_buffer; { - register int i; + int i; if (file_buffer->tags) { - register TAG *tag; + TAG *tag; for (i = 0; (tag = file_buffer->tags[i]); i++) free_info_tag (tag); free (file_buffer->tags); - file_buffer->tags = (TAG **)NULL; + file_buffer->tags = NULL; file_buffer->tags_slots = 0; } @@ -1057,7 +1147,7 @@ free_file_buffer_tags (file_buffer) free (file_buffer->subfiles[i]); free (file_buffer->subfiles); - file_buffer->subfiles = (char **)NULL; + file_buffer->subfiles = NULL; } } @@ -1084,6 +1174,7 @@ static void info_reload_file_buffer_contents (fb) FILE_BUFFER *fb; { + int is_compressed; #if defined (HANDLE_MAN_PAGES) /* If this is the magic manpage node, don't try to reload, just give up. */ @@ -1095,8 +1186,9 @@ info_reload_file_buffer_contents (fb) /* Let the filesystem do all the work for us. */ fb->contents = - filesys_read_info_file (fb->fullpath, &(fb->filesize), &(fb->finfo)); - if (fb->filesize != (long) (fb->finfo.st_size)) + filesys_read_info_file (fb->fullpath, &(fb->filesize), &(fb->finfo), + &is_compressed); + if (is_compressed) fb->flags |= N_IsCompressed; } @@ -1157,7 +1249,7 @@ adjust_nodestart (node, min, max) (strncmp (node->nodename, nodedef, offset) == 0)) { node->contents = nodestart; - return (node_body.buffer + position); + return node_body.buffer + position; } } } @@ -1173,7 +1265,7 @@ adjust_nodestart (node, min, max) /* If the node couldn't be found, we lose big. */ if (position == -1) - return ((char *)NULL); + return NULL; /* Otherwise, the node was found, but the tags table could need updating (if we used a tag to get here, that is). Set the flag in NODE->flags. */ @@ -1181,5 +1273,5 @@ adjust_nodestart (node, min, max) node->contents += skip_node_separator (node->contents); if (node->flags & N_HasTagsTable) node->flags |= N_UpdateTags; - return (node_body.buffer + position); + return node_body.buffer + position; } diff --git a/gnu/usr.bin/texinfo/info/pcterm.c b/gnu/usr.bin/texinfo/info/pcterm.c new file mode 100644 index 00000000000..a7aa4f3704b --- /dev/null +++ b/gnu/usr.bin/texinfo/info/pcterm.c @@ -0,0 +1,747 @@ +/* pc_term.c -- How to handle the PC terminal for Info under MS-DOS/MS-Windows. + $Id: pcterm.c,v 1.1.1.1 2000/02/09 01:25:07 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + +/* WARNING WARNING WARNING!!! + This probably won't work as is with anything but DJGPP! However, Borland + should come close, and other PC compilers will need minor modifications. */ + +/* intl/libintl.h defines a macro `gettext' which + conflicts with conio.h header. */ +#ifdef gettext +# undef gettext +# define gettext _gettext +#endif + +#include <pc.h> +#include <keys.h> +#include <conio.h> + +#include "variables.h" + +extern int speech_friendly; /* defined in info.c */ + +#ifdef max +# undef max +#endif +#ifdef min +# undef min +#endif +#define max(x,y) ((x)>(y) ? (x) : (y)) +#define min(x,y) ((x)<(y) ? (x) : (y)) + +/* **************************************************************** */ +/* */ +/* PC Terminal Output Functions */ +/* */ +/* **************************************************************** */ + +static struct text_info outside_info; /* holds screen params outside Info */ +static unsigned char norm_attr, inv_attr; + +static unsigned const char * find_sequence (int); + +/* Turn on reverse video. */ +static void +pc_begin_inverse (void) +{ + textattr (inv_attr); +} + +/* Turn off reverse video. */ +static void +pc_end_inverse (void) +{ + textattr (norm_attr); +} + +/* Move the cursor up one line. */ +static void +pc_up_line (void) +{ + int x, y; + ScreenGetCursor (&y, &x); + ScreenSetCursor (max (y-1, 0), x); +} + +/* Move the cursor down one line. */ +static void +pc_down_line (void) +{ + int x, y; + ScreenGetCursor (&y, &x); + ScreenSetCursor (min (screenheight-1, y+1), x); +} + +/* Clear the entire terminal screen. */ +static void +pc_clear_screen (void) +{ + ScreenClear (); +} + +/* Clear from the current position of the cursor to the end of the line. */ +static void +pc_clear_to_eol (void) +{ + clreol (); /* perhaps to be replaced by a loop */ +} + +/* Set the global variables SCREENWIDTH and SCREENHEIGHT. */ +static void +pc_get_screen_size(void) +{ + /* Current screen dimensions are the default. */ + if (!outside_info.screenheight) /* paranoia */ + gettextinfo (&outside_info); + screenwidth = outside_info.screenwidth; + screenheight = outside_info.screenheight; + + /* Environment variable "LINES" overrides the default. */ + if (getenv ("LINES") != NULL) + screenheight = atoi (getenv ("LINES")); + + /* Environment variable "INFO_LINES" overrides "LINES". */ + if (getenv ("INFO_LINES") != NULL) + screenheight = atoi (getenv ("INFO_LINES")); +} + +/* Move the cursor to the terminal location of X and Y. */ +static void +pc_goto_xy (x, y) + int x, y; +{ + ScreenSetCursor (y, x); /* yes, pc.h says ScreenSetCursor (row, column) !! */ +} + +/* Print STRING to the terminal at the current position. */ +static void +pc_put_text (string) + char *string; +{ + if (speech_friendly) + fputs (string, stdout); + else + cputs (string); +} + +/* Ring the terminal bell. The bell is rung visibly if the terminal is + capable of doing that, and if terminal_use_visible_bell_p is non-zero. */ +static void +pc_ring_bell(void) +{ + if (terminal_has_visible_bell_p && terminal_use_visible_bell_p) + ScreenVisualBell (); + else + { + printf ("%c",'\a'); + fflush (stdout); + } +} + +/* Print NCHARS from STRING to the terminal at the current position. */ +static void +pc_write_chars (string, nchars) + char *string; + int nchars; +{ + if (!nchars) + return; + + if (speech_friendly) + printf ("%.*s",nchars, string); + else + cprintf ("%..*s",nchars, string); +} + +/* Scroll an area of the terminal from START to (and excluding) END, + AMOUNT lines. If AMOUNT is negative, the lines are scrolled + towards the top of the screen, else they are scrolled towards the + bottom of the screen. The lines of the old region which do not + overlap the new region are cleared, to mimic terminal operation. */ +static void +pc_scroll_terminal (start, end, amount) + int start, end, amount; +{ + int line_to_clear = amount > 0 ? start : end + amount; + + /* Move the text. Note that `movetext' expects 1-based coordinates. */ + movetext (1, start + 1, ScreenCols (), end, 1, start + amount + 1); + + /* Now clear the lines which were left unoccupied. */ + if (amount < 0) + amount = -amount; + while (amount--) + { + ScreenSetCursor (line_to_clear++, 0); + clreol (); + } +} + +/* Put the screen in the video mode and colors which Info will use. + Prepare to start using the terminal to read characters singly. */ +static void +pc_prep_terminal (void) +{ + int tty; + + /* Do not set screen height if we already have it, because + doing so erases the screen. */ + if (screenheight != ScreenRows ()) + _set_screen_lines (screenheight); + + /* Don't fail if they asked for screen dimensions that their + hardware cannot support. */ + screenheight = ScreenRows (); + screenwidth = ScreenCols (); + + /* Try setting the colors user asked for. */ + textattr (norm_attr); + ScreenClear (); + + /* Switch console reads to binary mode. */ + tty = fileno (stdin); +#ifdef __DJGPP__ + setmode (tty, O_BINARY); + __djgpp_set_ctrl_c (1); /* re-enable SIGINT generation by Ctrl-C */ +#endif +} + +/* Restore the tty settings back to what they were before we started using + this terminal. */ +static void +pc_unprep_terminal (void) +{ + int tty; + + textattr (outside_info.normattr); + + /* Do not set screen height if we already have it, because + doing so erases the screen. */ + if (outside_info.screenheight != ScreenRows ()) + { + _set_screen_lines (outside_info.screenheight); + textmode (LASTMODE); + } + else + pc_clear_to_eol (); /* for text attributes to really take effect */ + + /* Switch back to text mode on stdin. */ + tty = fileno (stdin); +#ifdef __DJGPP__ + setmode (tty, O_TEXT); +#endif +} + +/* Initialize the terminal which is known as TERMINAL_NAME. If this + terminal doesn't have cursor addressability, `terminal_is_dumb_p' + becomes nonzero. The variables SCREENHEIGHT and SCREENWIDTH are set + to the dimensions that this terminal actually has. The variable + TERMINAL_HAS_META_P becomes nonzero if this terminal supports a Meta + key. Finally, the terminal screen is cleared. */ +static void +pc_initialize_terminal (term_name) + char *term_name; +{ + char *info_colors; + + if (!term_name) + { + term_name = getenv ("TERM"); + if (!term_name) + term_name = "pc-dos"; /* ``what's in a name?'' */ + } + + /* Get current video information, to be restored later. */ + if (outside_info.screenwidth == 0) + gettextinfo (&outside_info); + + /* Current screen colors are the default. */ + norm_attr = outside_info.normattr; + inv_attr = (((outside_info.normattr & 7) << 4) | + ((outside_info.normattr & 0x7f) >> 4)); + + /* Does the user want non-default colors? */ + info_colors = getenv ("INFO_COLORS"); + if ((info_colors != (char *)0) && !speech_friendly) + { + /* Decode a color from a string descriptor. + The descriptor string is a sequence of color specifiers separated + by a non-numeric character. Each color specifier should represent + a small integer which fits into an unsigned char, and can be given + in any base supported by strtoul. Examples of valid descriptors: + + "10 31" + "0x13/0x45" + "007.077" + + The separator between two color specifiers can be any character which + cannot be used in a printed representation of an integer number. */ + char *endp; + unsigned long color_desc = strtoul (info_colors, &endp, 0); + + if (color_desc <= UCHAR_MAX) + { + norm_attr = (unsigned char)color_desc; + color_desc = strtoul (endp + 1, &endp, 0); + if (color_desc <= UCHAR_MAX) + inv_attr = (unsigned char)color_desc; + } + } + + /* We can scroll. */ + terminal_can_scroll = 1; + + /* We know how to produce a visible bell, if somebody's looking... */ + if (!speech_friendly) + terminal_has_visible_bell_p = 1; + + /* We have a Meta key. */ + terminal_has_meta_p = 1; + + /* We are *certainly* NOT dumb! */ + terminal_is_dumb_p = 0; + + pc_get_screen_size (); + + /* Store the arrow keys. */ + term_ku = (char *)find_sequence (K_Up); + term_kd = (char *)find_sequence (K_Down); + term_kr = (char *)find_sequence (K_Right); + term_kl = (char *)find_sequence (K_Left); + + term_kP = (char *)find_sequence (K_PageUp); + term_kN = (char *)find_sequence (K_PageDown); + + /* Set all the hooks to our PC-specific functions. */ + terminal_begin_inverse_hook = pc_begin_inverse; + terminal_end_inverse_hook = pc_end_inverse; + terminal_prep_terminal_hook = pc_prep_terminal; + terminal_unprep_terminal_hook = pc_unprep_terminal; + terminal_up_line_hook = pc_up_line; + terminal_down_line_hook = pc_down_line; + terminal_clear_screen_hook = pc_clear_screen; + terminal_clear_to_eol_hook = pc_clear_to_eol; + terminal_get_screen_size_hook = pc_get_screen_size; + terminal_goto_xy_hook = pc_goto_xy; + terminal_put_text_hook = pc_put_text; + terminal_ring_bell_hook = pc_ring_bell; + terminal_write_chars_hook = pc_write_chars; + terminal_scroll_terminal_hook = pc_scroll_terminal; +} + +/* **************************************************************** */ +/* */ +/* How to Read Characters From the PC Terminal */ +/* */ +/* **************************************************************** */ + +/* This will most certainly work ONLY with DJGPP. */ +#ifdef __DJGPP__ + +#include <errno.h> +#include <sys/fsext.h> +#include <dpmi.h> + +/* Translation table for some special keys. + Arrow keys which are standard on other keyboards are translated into + standard ESC-sequences, in case somebody rebinds the simple keys + (like C-f, C-b, C-n, etc.). + + The strange "\033\061" prefix in some keys is a numeric argument of + one, which means ``do the next command once''. It is here so that + when the according PC key is pressed in the middle of an incremental + search, Info doesn't see just an ASCII character like `n' or `B', + and doesn't add it to the search string; instead, it will exit the + incremental search and then perform the command. */ +static struct +{ + int inkey; + unsigned char const * const sequence; +} DJGPP_keytab[] = { /* these are for moving between nodes... */ + {K_Control_PageDown, "\033\061n"}, + {K_Control_PageUp, "\033\061p"}, + {K_Control_Up, "\033\061u"}, + {K_Control_Down, "\033\061m"}, + {K_Control_Center, "\033\061l"}, + + {K_Home, "\001"}, /* ...and these are for moving IN a node */ + {K_End, "\005"}, /* they're Numeric-Keypad-Keys, so */ + {K_Left, "\033[D"}, /* NUMLOCK should be off !! */ + {K_Right, "\033[C"}, + {K_Down, "\033[B"}, + {K_Up, "\033[A"}, + {K_PageDown, "\033[G"}, + {K_PageUp, "\033[I"}, + {K_Control_Left, "\033b"}, + {K_Control_Right, "\033f"}, + {K_Control_Home, "\033<"}, + {K_Control_End, "\033>"}, + + {K_EHome, "\001"}, /* these are also for moving IN a node */ + {K_EEnd, "\005"}, /* they're the "extended" (Grey) keys */ + {K_ELeft, "\033[D"}, + {K_ERight, "\033[C"}, + {K_EDown, "\033[B"}, + {K_EUp, "\033[A"}, + {K_EPageDown, "\033[G"}, + {K_EPageUp, "\033[I"}, + {K_Control_ELeft, "\033b"}, + {K_Control_ERight, "\033f"}, + {K_Control_EHome, "\033<"}, + {K_Control_EEnd, "\033>"}, + + {K_BackTab, "\033\011"}, + {K_F1, "\10"}, /* YEAH, gimme that good old F-one-thing */ + {K_Delete, "\177"}, /* to make Kp-Del be DEL (0x7f) */ + {K_EDelete, "\177"}, /* to make Delete be DEL (0x7f) */ + + /* These are here to map more Alt-X keys to ESC X sequences. */ + {K_Alt_Q, "\033q"}, + {K_Alt_W, "\033w"}, + {K_Alt_E, "\033e"}, + {K_Alt_R, "\033r"}, + {K_Alt_T, "\033t"}, + {K_Alt_Y, "\033y"}, + {K_Alt_U, "\033u"}, + {K_Alt_I, "\033i"}, + {K_Alt_O, "\033o"}, + {K_Alt_P, "\033p"}, + {K_Alt_LBracket, "\033["}, + {K_Alt_RBracket, "\033]"}, + {K_Alt_Return, "\033\015"}, + {K_Alt_A, "\033a"}, + {K_Alt_S, "\033s"}, + {K_Alt_D, "\033d"}, + {K_Alt_F, "\033f"}, + {K_Alt_G, "\033g"}, + {K_Alt_H, "\033h"}, + {K_Alt_J, "\033j"}, + {K_Alt_K, "\033k"}, + {K_Alt_L, "\033l"}, + {K_Alt_Semicolon, "\033;"}, + {K_Alt_Quote, "\033'"}, + {K_Alt_Backquote, "\033`"}, + {K_Alt_Backslash, "\033\\"}, + {K_Alt_Z, "\033z"}, + {K_Alt_X, "\033x"}, + {K_Alt_C, "\033c"}, + {K_Alt_V, "\033v"}, + {K_Alt_B, "\033b"}, + {K_Alt_N, "\033n"}, + {K_Alt_M, "\033m"}, + {K_Alt_Comma, "\033<"}, /* our reader cannot distinguish between */ + {K_Alt_Period, "\033>"}, /* Alt-. and Alt->, so we cheat a little */ + {K_Alt_Slash, "\033?"}, /* ditto, to get Alt-? */ + {K_Alt_Backspace, "\033\177"}, /* M-DEL, to delete word backwards */ + {K_Alt_1, "\033\061"}, + {K_Alt_2, "\033\062"}, + {K_Alt_3, "\033\063"}, + {K_Alt_4, "\033\064"}, + {K_Alt_5, "\033\065"}, + {K_Alt_6, "\033\066"}, + {K_Alt_7, "\033\067"}, + {K_Alt_8, "\033\070"}, + {K_Alt_9, "\033\071"}, + {K_Alt_0, "\033\060"}, + {K_Alt_Dash, "\033\055"}, + {K_Alt_EPageUp, "\033\033[I"}, + {K_Alt_EPageDown, "\033\033[G"}, + {K_Alt_Equals, "\033\075"}, + {K_Alt_EDelete, "\033\177"}, + {K_Alt_Tab, "\033\011"}, + {0, 0} +}; + +/* Given a key, return the sequence of characters which + our keyboard driver generates. */ +static unsigned const char * +find_sequence (int key) +{ + int i; + + for (i = 0; DJGPP_keytab[i].inkey; i++) + if (key == DJGPP_keytab[i].inkey) + return DJGPP_keytab[i].sequence; + + return (unsigned const char *)NULL; +} + +/* Return zero if a key is pending in the + keyboard buffer, non-zero otherwise. */ +static int +kbd_buffer_empty (void) +{ + __dpmi_regs r; + int retval; + + r.h.ah = 0x11; /* Get enhanced keyboard status */ + __dpmi_int (0x16, &r); + + /* If the keyboard buffer is empty, the Zero Flag will be set. */ + return (r.x.flags & 0x40) == 0x40; +} + +/* The buffered characters pending to be read. + Actually, Info usually reads a single character, but when we + translate a key into a sequence of characters, we keep them here. */ +static unsigned char buffered[512]; + +/* Index of the next buffered character to be returned. */ +static int buf_idx; + +/* Return the number of characters waiting to be read. */ +long +pc_term_chars_avail (void) +{ + if (buf_idx >= sizeof (buffered)) /* paranoia */ + { + buf_idx = 0; + buffered[buf_idx] = '\0'; + return 0; + } + else + return (long)strlen (buffered + buf_idx); +} + +/* Our special terminal keyboard reader. It will be called by + low-level libc functions when the application calls `read' or + the ANSI-standard stream-oriented read functions. If the + caller wants to read the terminal, we redirect the call to + the BIOS keyboard functions, since that lets us recognize more + keys than DOS does. */ +static int +keyboard_read (__FSEXT_Fnumber func, int *retval, va_list rest_args) +{ + /* When we are called, REST_ARGS are: file_descriptor, buf, nbytes. */ + unsigned char *buf; + size_t nbytes, nread = 0; + int fd = va_arg (rest_args, int); + + /* Is this call for us? */ + if (func != __FSEXT_read || !isatty (fd)) + return 0; /* and the usual DOS call will be issued */ + + buf = va_arg (rest_args, unsigned char *); + nbytes = va_arg (rest_args, size_t); + + if (!buf) + { + errno = EINVAL; + *retval = -1; + return 1; + } + if (!nbytes) + { + *retval = 0; + return 1; + } + + /* Loop here until enough bytes has been read. */ + do + { + int key; + + /* If any ``buffered characters'' are left, return as much + of them as the caller wanted. */ + while (buffered[buf_idx] && nbytes) + { + *buf++ = buffered[buf_idx++]; + nread++; + nbytes--; + } + + if (nbytes <= 0) + break; + + /* Wait for another key. + We do that in a busy-waiting loop so we don't get parked + inside a BIOS call, which will effectively disable signals. + While we wait for them to type something, we repeatedly + release the rest of our time slice, so that other programs + in a multitasking environment, such as Windows, get more cycles. */ + while (kbd_buffer_empty ()) + __dpmi_yield (); + + key = getxkey (); + + /* Translate the key if necessary. + Untranslated non-ASCII keys are silently ignored. */ + if ((key & 0x300) != 0) + { + unsigned char const * key_sequence = find_sequence (key); + + if (key_sequence != NULL) + { + strcpy (buffered, key_sequence); + buf_idx = 0; + } + } + else if (key == K_Control_Z) + raise (SIGUSR1); /* we don't have SIGTSTP, so simulate it */ + else if (key <= 0xff) + { + *buf++ = key; + nbytes--; + nread++; + } + } + while (nbytes > 0); + + *retval = nread; + return 1; /* meaning that we handled the call */ +} + +/* Install our keyboard handler. + This is called by the startup code before `main'. */ +static void __attribute__((constructor)) +install_keyboard_handler (void) +{ + __FSEXT_set_function (fileno (stdin), keyboard_read); + + /* We need to set this single hook here; the rest + will be set by pc_initialize_terminal when it is called. */ + terminal_initialize_terminal_hook = pc_initialize_terminal; +} + +#endif /* __DJGPP__ */ + +/* **************************************************************** */ +/* */ +/* Emulation of SIGTSTP on Ctrl-Z */ +/* */ +/* **************************************************************** */ + +#include <limits.h> +#include "signals.h" +#include "session.h" + +#ifndef PATH_MAX +# define PATH_MAX 512 +#endif + +/* Effectively disable signals which aren't defined + (assuming no signal can ever be zero). + SIGINT is ANSI, so we expect it to be always defined. */ +#ifndef SIGUSR1 +# define SIGUSR1 0 +#endif +#ifndef SIGQUIT +# define SIGQUIT 0 +#endif + +int +kill (pid_t pid, int sig) +{ + static char interrupted_msg[] = "Interrupted\r\n"; + static char stopped_msg[] = "Stopped. Type \"exit RET\" to return.\r\n"; + char cwd[PATH_MAX + 1]; + + if (pid == getpid () + || pid == 0 + || pid == -1 + || pid == -getpid ()) + { + switch (sig) + { + RETSIGTYPE (*old_INT)(int), (*old_QUIT)(int); + + case SIGINT: +#ifdef __DJGPP__ + /* If SIGINT was generated by a readable key, we want to remove + it from the PC keyboard buffer, so that DOS and other + programs never see it. DJGPP signal-handling mechanism + doesn't remove the INT key from the keyboard buffer. */ + if (!kbd_buffer_empty ()) + getxkey (); +#endif + pc_write_chars (interrupted_msg, sizeof (interrupted_msg) - 1); + xexit (1); + case SIGUSR1: + /* Simulate SIGTSTP by invoking a subsidiary shell. */ + pc_goto_xy (0, outside_info.screenheight - 1); + pc_clear_to_eol (); + pc_write_chars (stopped_msg, sizeof (stopped_msg) - 1); + + /* The child shell can change the working directory, so + we need to save and restore it, since it is global. */ + if (!getcwd (cwd, PATH_MAX)) /* should never happen */ + cwd[0] = '\0'; + + /* We don't want to get fatal signals while the subshell runs. */ + old_INT = signal (SIGINT, SIG_IGN); + old_QUIT = signal (SIGQUIT, SIG_IGN); + system (""); + if (*cwd) + chdir (cwd); + signal (SIGINT, old_INT); + signal (SIGQUIT, old_QUIT); + break; + default: + if (sig) + raise (sig); + break; + } + return 0; + } + else + return -1; +} + +/* These should never be called, but they make the linker happy. */ + +void tputs (char *a, int b, int (*c)()) +{ + perror ("tputs"); +} + +char* tgoto (char*a, int b, int c) +{ + perror ("tgoto"); return 0; /* here and below, added dummy retvals */ +} + +int tgetnum (char*a) +{ + perror ("tgetnum"); return 0; +} + +int tgetflag (char*a) +{ + perror ("tgetflag"); return 0; +} + +char* tgetstr (char *a, char **b) +{ + perror ("tgetstr"); return 0; +} + +int tgetent (char*a, char*b) +{ + perror ("tgetent"); return 0; +} + +int tcgetattr(int fildes, struct termios *termios_p) +{ + perror ("tcgetattr"); return 0; +} + +int tcsetattr(int fd, int opt_actions, const struct termios *termios_p) +{ + perror ("tcsetattr"); return 0; +} diff --git a/gnu/usr.bin/texinfo/info/search.c b/gnu/usr.bin/texinfo/info/search.c index 0e8e619256a..89720f410cf 100644 --- a/gnu/usr.bin/texinfo/info/search.c +++ b/gnu/usr.bin/texinfo/info/search.c @@ -1,9 +1,7 @@ -/* search.c -- How to search large bodies of text. */ +/* search.c -- searching large bodies of text. + $Id: search.c,v 1.1.1.3 2000/02/09 01:24:52 espie Exp $ -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993, 97 Free Software Foundation, Inc. + Copyright (C) 1993, 97, 98 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -198,7 +196,7 @@ search_backward (input_string, binding) { c = *(buff - i); - if (c != string[i] && (alternate && c != alternate[i])) + if (c != string[i] && (!alternate || c != alternate[i])) break; } @@ -292,7 +290,7 @@ skip_whitespace_and_newlines (string) { register int i; - for (i = 0; string && (whitespace (string[i]) || string[i] == '\n'); i++); + for (i = 0; string && whitespace_or_newline (string[i]); i++); return (i); } diff --git a/gnu/usr.bin/texinfo/info/session.h b/gnu/usr.bin/texinfo/info/session.h index f1e5b23be8a..09aca7e4fe8 100644 --- a/gnu/usr.bin/texinfo/info/session.h +++ b/gnu/usr.bin/texinfo/info/session.h @@ -1,9 +1,7 @@ -/* session.h -- Functions found in session.c. */ +/* session.h -- Functions found in session.c. + $Id: session.h,v 1.1.1.3 2000/02/09 01:24:59 espie Exp $ -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 98, 99 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +19,7 @@ Written by Brian Fox (bfox@ai.mit.edu). */ -#if !defined (SESSION_H) +#ifndef SESSION_H #define SESSION_H #include "info.h" @@ -76,6 +74,7 @@ extern void info_select_reference (); extern int info_any_buffered_input_p (); extern void print_node (); extern void dump_node_to_file (), dump_nodes_to_file (); +extern char *program_name_from_file_name (); /* Do the physical deletion of WINDOW, and forget this window and associated nodes. */ @@ -110,6 +109,8 @@ extern void info_move_to_prev_xref (), info_move_to_next_xref (); extern void info_scroll_forward (), info_scroll_backward (); extern void info_redraw_display (), info_toggle_wrap (); extern void info_move_to_window_line (); +extern void info_up_line (), info_down_line (); +extern void info_scroll_half_screen_down (), info_scroll_half_screen_up (); /* Manipulating multiple windows. */ extern void info_split_window (), info_delete_window (); @@ -123,6 +124,8 @@ extern void info_last_node (), info_first_node (), info_history_node (); extern void info_goto_node (), info_top_node (), info_dir_node (); extern void info_global_next_node (), info_global_prev_node (); extern void info_kill_node (), info_view_file (); +extern void info_menu_sequence (); +extern NODE *info_follow_menus (/* initial_node, menus, errstr, errarg */); /* Selecting cross references. */ extern void info_menu_digit (), info_menu_item (), info_xref_item (); @@ -136,6 +139,8 @@ extern void info_initialize_numeric_arg (), info_numeric_arg_digit_loop (); /* Searching commands. */ extern void info_search (), isearch_forward (), isearch_backward (); +extern void info_search_case_sensitively (), info_search_backward (); +extern void info_search_next (), info_search_previous (); /* Dumping and printing nodes. */ extern void info_print_node (); @@ -143,4 +148,4 @@ extern void info_print_node (); /* Miscellaneous commands. */ extern void info_abort_key (), info_quit (), info_do_lowercase_version (); -#endif /* SESSION_H */ +#endif /* not SESSION_H */ diff --git a/gnu/usr.bin/texinfo/info/signals.c b/gnu/usr.bin/texinfo/info/signals.c index b93a585f567..0fd9fc0c63a 100644 --- a/gnu/usr.bin/texinfo/info/signals.c +++ b/gnu/usr.bin/texinfo/info/signals.c @@ -1,9 +1,7 @@ -/* signals.c -- Install and maintain Info signal handlers. */ +/* signals.c -- install and maintain Info signal handlers. + $Id: signals.c,v 1.1.1.3 2000/02/09 01:25:00 espie Exp $ -/* This file is part of GNU Info, a program for reading online documentation - stored in Info format. - - Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1993, 94, 95, 98 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,6 +28,9 @@ /* */ /* **************************************************************** */ +/* Non-zero when our signal handler has been called to handle SIGWINCH. */ +static int in_sigwinch = 0; + #if !defined (HAVE_SIGPROCMASK) && defined (HAVE_SIGSETMASK) /* Perform OPERATION on NEWSET, perhaps leaving information in OLDSET. */ static void @@ -66,7 +67,7 @@ typedef RETSIGTYPE signal_handler (); static RETSIGTYPE info_signal_handler (); static signal_handler *old_TSTP, *old_TTOU, *old_TTIN; -static signal_handler *old_WINCH, *old_INT; +static signal_handler *old_WINCH, *old_INT, *old_USR1; void initialize_info_signal_handler () @@ -84,6 +85,11 @@ initialize_info_signal_handler () #if defined (SIGINT) old_INT = (signal_handler *) signal (SIGINT, info_signal_handler); #endif + +#if defined (SIGUSR1) + /* Used by DJGPP to simulate SIGTSTP on Ctrl-Z. */ + old_USR1 = (signal_handler *) signal (SIGUSR1, info_signal_handler); +#endif } static void @@ -97,6 +103,19 @@ redisplay_after_signal () fflush (stdout); } +static void +reset_info_window_sizes () +{ + terminal_goto_xy (0, 0); + fflush (stdout); + terminal_unprep_terminal (); + terminal_get_screen_size (); + terminal_prep_terminal (); + display_initialize_display (screenwidth, screenheight); + window_new_screen_size (screenwidth, screenheight, NULL); + redisplay_after_signal (); +} + static RETSIGTYPE info_signal_handler (sig) int sig; @@ -145,28 +164,43 @@ info_signal_handler (sig) } break; -#if defined (SIGWINCH) +#if defined (SIGWINCH) || defined (SIGUSR1) +#ifdef SIGWINCH case SIGWINCH: +#endif +#ifdef SIGUSR1 + case SIGUSR1: +#endif { - /* Turn off terminal IO, tell our parent that the window has changed, - then reinitialize the terminal and rebuild our windows. */ - old_signal_handler = &old_WINCH; - terminal_goto_xy (0, 0); - fflush (stdout); - terminal_unprep_terminal (); - signal (sig, *old_signal_handler); - UNBLOCK_SIGNAL (sig); - kill (getpid (), sig); - - /* After our old signal handler returns... */ - terminal_get_screen_size (); - terminal_prep_terminal (); - display_initialize_display (screenwidth, screenheight); - window_new_screen_size (screenwidth, screenheight, (VFunction *)NULL); - *old_signal_handler = (signal_handler *) signal (sig, info_signal_handler); - redisplay_after_signal (); + if (!in_sigwinch) { + in_sigwinch++; + + /* Turn off terminal IO, tell our parent that the window has changed, + then reinitialize the terminal and rebuild our windows. */ +#ifdef SIGWINCH + if (sig == SIGWINCH) + old_signal_handler = &old_WINCH; +#endif +#ifdef SIGUSR1 + if (sig == SIGUSR1) + old_signal_handler = &old_USR1; +#endif + terminal_goto_xy (0, 0); + fflush (stdout); + terminal_unprep_terminal (); + signal (sig, *old_signal_handler); + UNBLOCK_SIGNAL (sig); + kill (getpid (), sig); + + /* After our old signal handler returns... */ + *old_signal_handler + = (signal_handler *) signal (sig, info_signal_handler); + terminal_prep_terminal (); + reset_info_window_sizes (); + in_sigwinch--; + } } break; -#endif /* SIGWINCH */ +#endif /* SIGWINCH || SIGUSR1 */ } } diff --git a/gnu/usr.bin/texinfo/install-sh b/gnu/usr.bin/texinfo/install-sh index 2c212ccf4ae..ebc66913e94 100644 --- a/gnu/usr.bin/texinfo/install-sh +++ b/gnu/usr.bin/texinfo/install-sh @@ -20,8 +20,8 @@ # when there is no Makefile. # # This script is compatible with the BSD install script, but was written -# from scratch. -# +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. # set DOITPROG to echo to test this script diff --git a/gnu/usr.bin/texinfo/intl/ChangeLog b/gnu/usr.bin/texinfo/intl/ChangeLog index ecff6f6b2cd..198950159da 100644 --- a/gnu/usr.bin/texinfo/intl/ChangeLog +++ b/gnu/usr.bin/texinfo/intl/ChangeLog @@ -1,3 +1,67 @@ +1998-04-29 Ulrich Drepper <drepper@cygnus.com> + + * intl/localealias.c (read_alias_file): Use unsigned char for + local variables. Remove unused variable tp. + * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char * + for type of codeset. For loosing Solaris systems. + * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset. + * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable + len if not needed. + Patches by Jim Meyering. + +1998-04-28 Ulrich Drepper <drepper@cygnus.com> + + * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if + mmap is not supported. + + * hash-string.h: Don't include <values.h>. + +1998-04-27 Ulrich Drepper <drepper@cygnus.com> + + * textdomain.c: Use strdup is available. + + * localealias.c: Define HAVE_MEMPCPY so that we can use this + function. Define and use semapahores to protect modfication of + global objects when compiling for glibc. Add code to allow + freeing alias table. + + * l10nflist.c: Don't assume stpcpy not being a macro. + + * gettextP.h: Define internal_function macri if not already done. + Use glibc byte-swap macros instead of defining SWAP when compiled + for glibc. + (struct loaded_domain): Add elements to allow unloading. + + * Makefile.in (distclean): Don't remove libintl.h here. + + * bindtextdomain.c: Carry over changes from glibc. Use strdup if + available. + + * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal + functions. Add memory freeing code for glibc. + + * dgettext.c: Update copyright. + + * explodename.c: Include stdlib.h and string.h only if they exist. + Use strings.h eventually. + + * finddomain.c: Mark internal functions. Use strdup if available. + Add memory freeing code for glibc. + +1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com> + + * libgettext.h: Fix dummy textdomain and bindtextdomain macros. + They should return reasonable values. + Reported by Tom Tromey <tromey@cygnus.com>. + +1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com> + + * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined. + * intlh.inst.in: Likewise. + Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>. + + * libintl.glibc: Update from current glibc version. + 1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com> * intlh.inst.in: Reformat copyright. diff --git a/gnu/usr.bin/texinfo/intl/Makefile.in b/gnu/usr.bin/texinfo/intl/Makefile.in index a41fb5796b0..970253a111a 100644 --- a/gnu/usr.bin/texinfo/intl/Makefile.in +++ b/gnu/usr.bin/texinfo/intl/Makefile.in @@ -143,10 +143,12 @@ install-data: all installcheck: uninstall: - dists="$(DISTFILES.common)"; \ - for file in $$dists; do \ - rm -f $(gettextsrcdir)/$$file; \ - done + if test "$(PACKAGE)" = "gettext"; then \ + dists="$(DISTFILES.common)"; \ + for file in $$dists; do \ + rm -f $(gettextsrcdir)/$$file; \ + done; \ + fi info dvi: @@ -171,7 +173,7 @@ mostlyclean: clean: mostlyclean distclean: clean - rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h + rm -f Makefile ID TAGS po2msg.sed po2tbl.sed maintainer-clean: distclean @echo "This command is intended for maintainers to use;" diff --git a/gnu/usr.bin/texinfo/intl/VERSION b/gnu/usr.bin/texinfo/intl/VERSION index d31950a61d6..ee66b0612bc 100644 --- a/gnu/usr.bin/texinfo/intl/VERSION +++ b/gnu/usr.bin/texinfo/intl/VERSION @@ -1 +1 @@ -GNU gettext library from gettext-0.10.32 +GNU gettext library from gettext-0.10.35 diff --git a/gnu/usr.bin/texinfo/intl/bindtextdom.c b/gnu/usr.bin/texinfo/intl/bindtextdom.c index 9fcb8d9f29b..d9c3f349e04 100644 --- a/gnu/usr.bin/texinfo/intl/bindtextdom.c +++ b/gnu/usr.bin/texinfo/intl/bindtextdom.c @@ -1,5 +1,5 @@ /* Implementation of the bindtextdomain(3) function - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -61,7 +61,9 @@ extern struct binding *_nl_domain_bindings; prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain -# define strdup(str) __strdup (str) +# ifndef strdup +# define strdup(str) __strdup (str) +# endif #else # define BINDTEXTDOMAIN bindtextdomain__ #endif @@ -133,7 +135,9 @@ BINDTEXTDOMAIN (domainname, dirname) else { /* We have to create a new binding. */ +#if !defined _LIBC && !defined HAVE_STRDUP size_t len; +#endif struct binding *new_binding = (struct binding *) malloc (sizeof (*new_binding)); diff --git a/gnu/usr.bin/texinfo/intl/dcgettext.c b/gnu/usr.bin/texinfo/intl/dcgettext.c index a316bfd1086..c4c7a2c7d14 100644 --- a/gnu/usr.bin/texinfo/intl/dcgettext.c +++ b/gnu/usr.bin/texinfo/intl/dcgettext.c @@ -1,5 +1,5 @@ -/* Implementation of the dcgettext(3) function - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Implementation of the dcgettext(3) function. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -91,7 +91,9 @@ void free (); because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define getcwd __getcwd -# define stpcpy __stpcpy +# ifndef stpcpy +# define stpcpy __stpcpy +# endif #else # if !defined HAVE_GETCWD char *getwd (); @@ -162,10 +164,11 @@ struct binding *_nl_domain_bindings; /* Prototypes for local functions. */ static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, - const char *msgid)); -static const char *category_to_name PARAMS ((int category)); + const char *msgid)) internal_function; +static const char *category_to_name PARAMS ((int category)) internal_function; static const char *guess_category_value PARAMS ((int category, - const char *categoryname)); + const char *categoryname)) + internal_function; /* For those loosing systems which don't have `alloca' we have to add @@ -388,6 +391,7 @@ weak_alias (__dcgettext, dcgettext); static char * +internal_function find_msg (domain_file, msgid) struct loaded_l10nfile *domain_file; const char *msgid; @@ -476,6 +480,7 @@ find_msg (domain_file, msgid) /* Return string representation of locale CATEGORY. */ static const char * +internal_function category_to_name (category) int category; { @@ -535,6 +540,7 @@ category_to_name (category) /* Guess value of current locale from value of the environment variables. */ static const char * +internal_function guess_category_value (category, categoryname) int category; const char *categoryname; @@ -591,3 +597,28 @@ stpcpy (dest, src) return dest - 1; } #endif + + +#ifdef _LIBC +/* If we want to free all resources we have to do some work at + program's end. */ +static void __attribute__ ((unused)) +free_mem (void) +{ + struct binding *runp; + + for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next) + { + free (runp->domainname); + if (runp->dirname != _nl_default_dirname) + /* Yes, this is a pointer comparison. */ + free (runp->dirname); + } + + if (_nl_current_default_domain != _nl_default_default_domain) + /* Yes, again a pointer comparison. */ + free ((char *) _nl_current_default_domain); +} + +text_set_element (__libc_subfreeres, free_mem); +#endif diff --git a/gnu/usr.bin/texinfo/intl/dgettext.c b/gnu/usr.bin/texinfo/intl/dgettext.c index 2fde6770f79..0510c2b071f 100644 --- a/gnu/usr.bin/texinfo/intl/dgettext.c +++ b/gnu/usr.bin/texinfo/intl/dgettext.c @@ -1,19 +1,19 @@ -/* dgettext.c -- implementation of the dgettext(3) function - Copyright (C) 1995 Software Foundation, Inc. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* Implementation of the dgettext(3) function + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include <config.h> diff --git a/gnu/usr.bin/texinfo/intl/explodename.c b/gnu/usr.bin/texinfo/intl/explodename.c index 37c46e9d7b8..8066dc29962 100644 --- a/gnu/usr.bin/texinfo/intl/explodename.c +++ b/gnu/usr.bin/texinfo/intl/explodename.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify @@ -19,8 +19,15 @@ # include <config.h> #endif -#include <stdlib.h> -#include <string.h> +#if defined STDC_HEADERS || defined _LIBC +# include <stdlib.h> +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include <string.h> +#else +# include <strings.h> +#endif #include <sys/types.h> #include "loadinfo.h" diff --git a/gnu/usr.bin/texinfo/intl/finddomain.c b/gnu/usr.bin/texinfo/intl/finddomain.c index ec85d4de4d1..81ea29bf4e4 100644 --- a/gnu/usr.bin/texinfo/intl/finddomain.c +++ b/gnu/usr.bin/texinfo/intl/finddomain.c @@ -1,5 +1,5 @@ /* Handle list of needed message catalogs - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify @@ -70,6 +70,7 @@ static struct loaded_l10nfile *_nl_loaded_domains; the DOMAINNAME and CATEGORY parameters with respect to the currently established bindings. */ struct loaded_l10nfile * +internal_function _nl_find_domain (dirname, locale, domainname) const char *dirname; char *locale; @@ -95,9 +96,9 @@ _nl_find_domain (dirname, locale, domainname) language[_territory][+audience][+special][,[sponsor][_revision]] - Beside the first all of them are allowed to be missing. If the - full specified locale is not found, the less specific one are - looked for. The various part will be stripped of according to + Beside the first part all of them are allowed to be missing. If + the full specified locale is not found, the less specific one are + looked for. The various parts will be stripped off according to the following order: (1) revision (2) sponsor @@ -142,12 +143,18 @@ _nl_find_domain (dirname, locale, domainname) alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { +#if defined _LIBC || defined HAVE_STRDUP + locale = strdup (alias_value); + if (locale == NULL) + return NULL; +#else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); +#endif } /* Now we determine the single parts of the locale name. First @@ -187,3 +194,23 @@ _nl_find_domain (dirname, locale, domainname) return retval; } + + +#ifdef _LIBC +static void __attribute__ ((unused)) +free_mem (void) +{ + struct loaded_l10nfile *runp = _nl_loaded_domains; + + while (runp != NULL) + { + struct loaded_l10nfile *here = runp; + if (runp->data != NULL) + _nl_unload_domain ((struct loaded_domain *) runp->data); + runp = runp->next; + free (here); + } +} + +text_set_element (__libc_subfreeres, free_mem); +#endif diff --git a/gnu/usr.bin/texinfo/intl/gettext.c b/gnu/usr.bin/texinfo/intl/gettext.c index 1336d21e7c9..d929f98d68a 100644 --- a/gnu/usr.bin/texinfo/intl/gettext.c +++ b/gnu/usr.bin/texinfo/intl/gettext.c @@ -1,4 +1,4 @@ -/* Implementation of gettext(3) function +/* Implementation of gettext(3) function. Copyright (C) 1995, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/usr.bin/texinfo/intl/gettextP.h b/gnu/usr.bin/texinfo/intl/gettextP.h index bb8d55235ad..00c52031972 100644 --- a/gnu/usr.bin/texinfo/intl/gettextP.h +++ b/gnu/usr.bin/texinfo/intl/gettextP.h @@ -1,5 +1,6 @@ /* Header describing internals of gettext library - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,11 +31,19 @@ # endif #endif +#ifndef internal_function +# define internal_function +#endif + #ifndef W # define W(flag, data) ((flag) ? SWAP (data) : (data)) #endif +#ifdef _LIBC +# include <byteswap.h> +# define SWAP(i) bswap_32 (i) +#else static nls_uint32 SWAP PARAMS ((nls_uint32 i)); static inline nls_uint32 @@ -43,11 +52,14 @@ SWAP (i) { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } +#endif struct loaded_domain { const char *data; + int use_mmap; + size_t mmap_size; int must_swap; nls_uint32 nstrings; struct string_desc *orig_tab; @@ -65,8 +77,12 @@ struct binding struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, char *__locale, - const char *__domainname)); -void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)); + const char *__domainname)) + internal_function; +void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)) + internal_function; +void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) + internal_function; /* @@ begin of epilog @@ */ diff --git a/gnu/usr.bin/texinfo/intl/hash-string.h b/gnu/usr.bin/texinfo/intl/hash-string.h index e66e8417a97..cacb38e479f 100644 --- a/gnu/usr.bin/texinfo/intl/hash-string.h +++ b/gnu/usr.bin/texinfo/intl/hash-string.h @@ -16,10 +16,6 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifdef HAVE_VALUES_H -# include <values.h> -#endif - /* @@ end of prolog @@ */ #ifndef PARAMS diff --git a/gnu/usr.bin/texinfo/intl/l10nflist.c b/gnu/usr.bin/texinfo/intl/l10nflist.c index 4e2bc130950..9c7dc18360f 100644 --- a/gnu/usr.bin/texinfo/intl/l10nflist.c +++ b/gnu/usr.bin/texinfo/intl/l10nflist.c @@ -1,6 +1,6 @@ /* Handle list of needed message catalogs Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. - Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. + Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -65,7 +65,9 @@ /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ -# define stpcpy(dest, src) __stpcpy(dest, src) +# ifndef stpcpy +# define stpcpy(dest, src) __stpcpy(dest, src) +# endif #else # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); @@ -350,7 +352,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, names. */ const char * _nl_normalize_codeset (codeset, name_len) - const char *codeset; + const unsigned char *codeset; size_t name_len; { int len = 0; diff --git a/gnu/usr.bin/texinfo/intl/loadinfo.h b/gnu/usr.bin/texinfo/intl/loadinfo.h index c67c2eb2e8e..f4ebf6d8112 100644 --- a/gnu/usr.bin/texinfo/intl/loadinfo.h +++ b/gnu/usr.bin/texinfo/intl/loadinfo.h @@ -1,3 +1,21 @@ +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + #ifndef PARAMS # if __STDC__ # define PARAMS(args) args @@ -32,7 +50,7 @@ struct loaded_l10nfile }; -extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, +extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset, size_t name_len)); extern struct loaded_l10nfile * diff --git a/gnu/usr.bin/texinfo/intl/loadmsgcat.c b/gnu/usr.bin/texinfo/intl/loadmsgcat.c index 73e90a9190f..515892dfb86 100644 --- a/gnu/usr.bin/texinfo/intl/loadmsgcat.c +++ b/gnu/usr.bin/texinfo/intl/loadmsgcat.c @@ -1,5 +1,5 @@ -/* Load needed message catalogs - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Load needed message catalogs. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,6 @@ /* Rename the non ISO C functions. This is required by the standard because some ISO C functions will require linking with this object file and the name space must not be polluted. */ -# define fstat __fstat # define open __open # define close __close # define read __read @@ -61,10 +60,12 @@ int _nl_msg_cat_cntr = 0; /* Load the message catalogs specified by FILENAME. If it is no valid message catalog do nothing. */ void +internal_function _nl_load_domain (domain_file) struct loaded_l10nfile *domain_file; { int fd; + size_t size; struct stat st; struct mo_file_header *data = (struct mo_file_header *) -1; #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ @@ -90,7 +91,8 @@ _nl_load_domain (domain_file) /* We must know about the size of the file. */ if (fstat (fd, &st) != 0 - && st.st_size < (off_t) sizeof (struct mo_file_header)) + || (size = (size_t) st.st_size) != st.st_size + || size < sizeof (struct mo_file_header)) { /* Something went wrong. */ close (fd); @@ -101,7 +103,7 @@ _nl_load_domain (domain_file) || defined _LIBC /* Now we are ready to load the file. If mmap() is available we try this first. If not available or it failed we try to load it. */ - data = (struct mo_file_header *) mmap (NULL, st.st_size, PROT_READ, + data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); if (data != (struct mo_file_header *) -1) @@ -116,14 +118,14 @@ _nl_load_domain (domain_file) it manually. */ if (data == (struct mo_file_header *) -1) { - off_t to_read; + size_t to_read; char *read_ptr; - data = (struct mo_file_header *) malloc (st.st_size); + data = (struct mo_file_header *) malloc (size); if (data == NULL) return; - to_read = st.st_size; + to_read = size; read_ptr = (char *) data; do { @@ -150,7 +152,7 @@ _nl_load_domain (domain_file) #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC if (use_mmap) - munmap ((caddr_t) data, st.st_size); + munmap ((caddr_t) data, size); else #endif free (data); @@ -164,6 +166,11 @@ _nl_load_domain (domain_file) domain = (struct loaded_domain *) domain_file->data; domain->data = (char *) data; +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + domain->use_mmap = use_mmap; +#endif + domain->mmap_size = size; domain->must_swap = data->magic != _MAGIC; /* Fill in the information about the available tables. */ @@ -184,7 +191,7 @@ _nl_load_domain (domain_file) #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC if (use_mmap) - munmap ((caddr_t) data, st.st_size); + munmap ((caddr_t) data, size); else #endif free (data); @@ -197,3 +204,19 @@ _nl_load_domain (domain_file) translations invalid. */ ++_nl_msg_cat_cntr; } + + +#ifdef _LIBC +void +internal_function +_nl_unload_domain (domain) + struct loaded_domain *domain; +{ + if (domain->use_mmap) + munmap ((caddr_t) domain->data, domain->mmap_size); + else + free ((void *) domain->data); + + free (domain); +} +#endif diff --git a/gnu/usr.bin/texinfo/intl/localealias.c b/gnu/usr.bin/texinfo/intl/localealias.c index 00d91941b9b..bca555a610f 100644 --- a/gnu/usr.bin/texinfo/intl/localealias.c +++ b/gnu/usr.bin/texinfo/intl/localealias.c @@ -1,5 +1,5 @@ -/* Handle aliases for locale names - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Handle aliases for locale names. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify @@ -79,6 +79,14 @@ void free (); because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define strcasecmp __strcasecmp + +# define mempcpy __mempcpy +# define HAVE_MEMPCPY 1 + +/* We need locking here since we can be called from different places. */ +# include <bits/libc-lock.h> + +__libc_lock_define_initialized (static, lock); #endif @@ -125,13 +133,17 @@ struct alias_map }; +static char *string_space = NULL; +static size_t string_space_act = 0; +static size_t string_space_max = 0; static struct alias_map *map; static size_t nmap = 0; static size_t maxmap = 0; /* Prototypes for local functions. */ -static size_t read_alias_file PARAMS ((const char *fname, int fname_len)); +static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) + internal_function; static void extend_alias_table PARAMS ((void)); static int alias_compare PARAMS ((const struct alias_map *map1, const struct alias_map *map2)); @@ -143,8 +155,13 @@ _nl_expand_alias (name) { static const char *locale_alias_path = LOCALE_ALIAS_PATH; struct alias_map *retval; + const char *result = NULL; size_t added; +#ifdef _LIBC + __libc_lock_lock (lock); +#endif + do { struct alias_map item; @@ -162,7 +179,10 @@ _nl_expand_alias (name) /* We really found an alias. Return the value. */ if (retval != NULL) - return retval->value; + { + result = retval->value; + break; + } /* Perhaps we can find another alias file. */ added = 0; @@ -183,11 +203,16 @@ _nl_expand_alias (name) } while (added != 0); - return NULL; +#ifdef _LIBC + __libc_lock_unlock (lock); +#endif + + return result; } static size_t +internal_function read_alias_file (fname, fname_len) const char *fname; int fname_len; @@ -202,8 +227,13 @@ read_alias_file (fname, fname_len) full_fname = (char *) alloca (fname_len + sizeof aliasfile); ADD_BLOCK (block_list, full_fname); +#ifdef HAVE_MEMPCPY + mempcpy (mempcpy (full_fname, fname, fname_len), + aliasfile, sizeof aliasfile); +#else memcpy (full_fname, fname, fname_len); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); +#endif fp = fopen (full_fname, "r"); if (fp == NULL) @@ -220,15 +250,28 @@ read_alias_file (fname, fname_len) b) these fields must be usable as file names and so must not be that long */ - char buf[BUFSIZ]; - char *alias; - char *value; - char *cp; + unsigned char buf[BUFSIZ]; + unsigned char *alias; + unsigned char *value; + unsigned char *cp; - if (fgets (buf, BUFSIZ, fp) == NULL) + if (fgets (buf, sizeof buf, fp) == NULL) /* EOF reached. */ break; + /* Possibly not the whole line fits into the buffer. Ignore + the rest of the line. */ + if (strchr (buf, '\n') == NULL) + { + char altbuf[BUFSIZ]; + do + if (fgets (altbuf, sizeof altbuf, fp) == NULL) + /* Make sure the inner loop will be left. The outer loop + will exit at the `feof' test. */ + break; + while (strchr (altbuf, '\n') == NULL); + } + cp = buf; /* Ignore leading white space. */ while (isspace (cp[0])) @@ -250,8 +293,8 @@ read_alias_file (fname, fname_len) if (cp[0] != '\0') { - char *tp; - size_t len; + size_t alias_len; + size_t value_len; value = cp++; while (cp[0] != '\0' && !isspace (cp[0])) @@ -271,42 +314,37 @@ read_alias_file (fname, fname_len) if (nmap >= maxmap) extend_alias_table (); - /* We cannot depend on strdup available in the libc. Sigh! */ - len = strlen (alias) + 1; - tp = (char *) malloc (len); - if (tp == NULL) - { - FREE_BLOCKS (block_list); - return added; - } - memcpy (tp, alias, len); - map[nmap].alias = tp; + alias_len = strlen (alias) + 1; + value_len = strlen (value) + 1; - len = strlen (value) + 1; - tp = (char *) malloc (len); - if (tp == NULL) + if (string_space_act + alias_len + value_len > string_space_max) { - FREE_BLOCKS (block_list); - return added; + /* Increase size of memory pool. */ + size_t new_size = (string_space_max + + (alias_len + value_len > 1024 + ? alias_len + value_len : 1024)); + char *new_pool = (char *) realloc (string_space, new_size); + if (new_pool == NULL) + { + FREE_BLOCKS (block_list); + return added; + } + string_space = new_pool; + string_space_max = new_size; } - memcpy (tp, value, len); - map[nmap].value = tp; + + map[nmap].alias = memcpy (&string_space[string_space_act], + alias, alias_len); + string_space_act += alias_len; + + map[nmap].value = memcpy (&string_space[string_space_act], + value, value_len); + string_space_act += value_len; ++nmap; ++added; } } - - /* Possibly not the whole line fits into the buffer. Ignore - the rest of the line. */ - while (strchr (cp, '\n') == NULL) - { - cp = buf; - if (fgets (buf, BUFSIZ, fp) == NULL) - /* Make sure the inner loop will be left. The outer loop - will exit at the `feof' test. */ - *cp = '\n'; - } } /* Should we test for ferror()? I think we have to silently ignore @@ -329,22 +367,30 @@ extend_alias_table () struct alias_map *new_map; new_size = maxmap == 0 ? 100 : 2 * maxmap; - new_map = (struct alias_map *) malloc (new_size - * sizeof (struct alias_map)); + new_map = (struct alias_map *) realloc (map, (new_size + * sizeof (struct alias_map))); if (new_map == NULL) /* Simply don't extend: we don't have any more core. */ return; - memcpy (new_map, map, nmap * sizeof (struct alias_map)); - - if (maxmap != 0) - free (map); - map = new_map; maxmap = new_size; } +#ifdef _LIBC +static void __attribute__ ((unused)) +free_mem (void) +{ + if (string_space != NULL) + free (string_space); + if (map != NULL) + free (map); +} +text_set_element (__libc_subfreeres, free_mem); +#endif + + static int alias_compare (map1, map2) const struct alias_map *map1; diff --git a/gnu/usr.bin/texinfo/intl/textdomain.c b/gnu/usr.bin/texinfo/intl/textdomain.c index 55d93406a8a..88557460f3b 100644 --- a/gnu/usr.bin/texinfo/intl/textdomain.c +++ b/gnu/usr.bin/texinfo/intl/textdomain.c @@ -1,5 +1,5 @@ -/* Implementation of the textdomain(3) function - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Implementation of the textdomain(3) function. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. This program is free software; you can redistribute it and/or modify @@ -54,7 +54,9 @@ extern const char *_nl_current_default_domain; prefix. So we have to make a difference here. */ #ifdef _LIBC # define TEXTDOMAIN __textdomain -# define strdup(str) __strdup (str) +# ifndef strdup +# define strdup(str) __strdup (str) +# endif #else # define TEXTDOMAIN textdomain__ #endif diff --git a/gnu/usr.bin/texinfo/lib/getopt.c b/gnu/usr.bin/texinfo/lib/getopt.c index fc87ce67d69..03effcbdb3e 100644 --- a/gnu/usr.bin/texinfo/lib/getopt.c +++ b/gnu/usr.bin/texinfo/lib/getopt.c @@ -1,13 +1,13 @@ /* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu + "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. + Bugs can be reported to bug-glibc@gnu.org. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -27,19 +27,19 @@ /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. Ditto for AIX 3.2 and <stdlib.h>. */ #ifndef _NO_PROTO -#define _NO_PROTO +# define _NO_PROTO #endif #ifdef HAVE_CONFIG_H -#include <config.h> +# include <config.h> #endif -#if !defined (__STDC__) || !__STDC__ +#if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ -#ifndef const -#define const -#endif +# ifndef const +# define const +# endif #endif #include <stdio.h> @@ -53,11 +53,11 @@ it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 -#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 -#include <gnu-versions.h> -#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -#define ELIDE_CODE -#endif +#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 +# include <gnu-versions.h> +# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION +# define ELIDE_CODE +# endif #endif #ifndef ELIDE_CODE @@ -68,26 +68,26 @@ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ -#include <stdlib.h> -#include <unistd.h> +# include <stdlib.h> +# include <unistd.h> #endif /* GNU C library. */ #ifdef VMS -#include <unixlib.h> -#if HAVE_STRING_H - 0 -#include <string.h> -#endif +# include <unixlib.h> +# if HAVE_STRING_H - 0 +# include <string.h> +# endif #endif #ifndef _ /* This is for other GNU distributions with internationalized messages. When compiling libc, the _ macro is predefined. */ -#ifdef HAVE_LIBINTL_H -# include <libintl.h> -# define _(msgid) gettext (msgid) -#else -# define _(msgid) (msgid) -#endif +# ifdef HAVE_LIBINTL_H +# include <libintl.h> +# define _(msgid) gettext (msgid) +# else +# define _(msgid) (msgid) +# endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' @@ -197,14 +197,22 @@ static char *posixly_correct; because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ -#include <string.h> -#define my_index strchr +# include <string.h> +# define my_index strchr #else +# if HAVE_STRING_H +# include <string.h> +# else +# include <strings.h> +# endif + /* Avoid depending on library functions or files whose names are inconsistent. */ -char *getenv (); +#ifndef getenv +extern char *getenv (); +#endif static char * my_index (str, chr) @@ -225,11 +233,11 @@ my_index (str, chr) #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ -#if !defined (__STDC__) || !__STDC__ +# if (!defined __STDC__ || !__STDC__) && !defined strlen /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); -#endif /* not __STDC__ */ +# endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ @@ -292,7 +300,7 @@ text_set_element (__libc_subinit, store_args_and_env); `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ -#if defined (__STDC__) && __STDC__ +#if defined __STDC__ && __STDC__ static void exchange (char **); #endif @@ -378,7 +386,7 @@ exchange (argv) /* Initialize the internal data when the first call is made. */ -#if defined (__STDC__) && __STDC__ +#if defined __STDC__ && __STDC__ static const char *_getopt_initialize (int, char *const *, const char *); #endif static const char * @@ -527,11 +535,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC -#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) +# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ + || (optind < nonoption_flags_len \ + && __getopt_nonoption_flags[optind] == '1')) #else -#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') +# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif if (nextchar == NULL || *nextchar == '\0') diff --git a/gnu/usr.bin/texinfo/lib/getopt.h b/gnu/usr.bin/texinfo/lib/getopt.h index c4adc30bbba..fb30719a860 100644 --- a/gnu/usr.bin/texinfo/lib/getopt.h +++ b/gnu/usr.bin/texinfo/lib/getopt.h @@ -2,7 +2,7 @@ Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. + Bugs can be reported to bug-glibc@gnu.org. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff --git a/gnu/usr.bin/texinfo/lib/getopt1.c b/gnu/usr.bin/texinfo/lib/getopt1.c index af8e6819657..ff257374c33 100644 --- a/gnu/usr.bin/texinfo/lib/getopt1.c +++ b/gnu/usr.bin/texinfo/lib/getopt1.c @@ -1,8 +1,9 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. + Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 + Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. + Bugs can be reported to bug-glibc@gnu.org. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -25,7 +26,7 @@ #include "getopt.h" -#if !defined (__STDC__) || !__STDC__ +#if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const @@ -44,7 +45,7 @@ it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 -#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 +#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 #include <gnu-versions.h> #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE diff --git a/gnu/usr.bin/texinfo/lib/strcasecmp.c b/gnu/usr.bin/texinfo/lib/strcasecmp.c new file mode 100644 index 00000000000..366bcf2e9c2 --- /dev/null +++ b/gnu/usr.bin/texinfo/lib/strcasecmp.c @@ -0,0 +1,49 @@ +/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <string.h> +#include <ctype.h> + +/* Compare S1 and S2, ignoring case, returning less than, equal to or + greater than zero if S1 is lexiographically less than, + equal to or greater than S2. */ +int +strcasecmp (s1, s2) + const char *s1; + const char *s2; +{ + register const unsigned char *p1 = (const unsigned char *) s1; + register const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if (p1 == p2) + return 0; + + do + { + c1 = tolower (*p1++); + c2 = tolower (*p2++); + if (c1 == '\0') + break; + } + while (c1 == c2); + + return c1 - c2; +} diff --git a/gnu/usr.bin/texinfo/lib/strncasecmp.c b/gnu/usr.bin/texinfo/lib/strncasecmp.c new file mode 100644 index 00000000000..2476fad55ee --- /dev/null +++ b/gnu/usr.bin/texinfo/lib/strncasecmp.c @@ -0,0 +1,48 @@ +/* strncase.c -- compare at most N characters of two strings without + taking care for the case +Copyright (C) 1992 Free Software Foundation. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include <string.h> +#include <ctype.h> + +/* Compare no more than N characters of S1 and S2, + ignoring case, returning less than, equal to or + greater than zero if S1 is lexicographically less + than, equal to or greater than S2. */ +int +strncasecmp (s1, s2, n) + const char *s1; + const char *s2; + size_t n; +{ + register const unsigned char *p1 = (const unsigned char *) s1; + register const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if (p1 == p2 || n == 0) + return 0; + + do + { + c1 = tolower (*p1++); + c2 = tolower (*p2++); + if (c1 == '\0' || c1 != c2) + return c1 - c2; + } while (--n > 0); + + return c1 - c2; +} diff --git a/gnu/usr.bin/texinfo/lib/substring.c b/gnu/usr.bin/texinfo/lib/substring.c new file mode 100644 index 00000000000..64772334de5 --- /dev/null +++ b/gnu/usr.bin/texinfo/lib/substring.c @@ -0,0 +1,37 @@ +/* substring.c -- extract substring. + $Id: substring.c,v 1.1.1.1 2000/02/09 01:24:23 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" + +char * +substring (start, end) + char *start; + char *end; +{ + char *result = xmalloc (end - start + 1); + char *scan_result = result; + char *scan = start; + + while (scan < end) + *scan_result++ = *scan++; + + *scan_result = 0; + return result; +} + diff --git a/gnu/usr.bin/texinfo/lib/xexit.c b/gnu/usr.bin/texinfo/lib/xexit.c new file mode 100644 index 00000000000..a9376f57cfa --- /dev/null +++ b/gnu/usr.bin/texinfo/lib/xexit.c @@ -0,0 +1,86 @@ +/* xexit.c -- exit with attention to return values and closing stdout. + $Id: xexit.c,v 1.1.1.1 2000/02/09 01:24:24 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" + +/* SunOS 4.1.1 gets STDC_HEADERS defined, but it doesn't provide + EXIT_FAILURE. So far no system has defined one of EXIT_FAILURE and + EXIT_SUCCESS without the other. */ +#ifdef EXIT_SUCCESS + /* The following test is to work around the gross typo in + systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE + is defined to 0, not 1. */ +# if !EXIT_FAILURE +# undef EXIT_FAILURE +# define EXIT_FAILURE 1 +# endif +#else /* not EXIT_SUCCESS */ +# ifdef VMS /* these values suppress some messages; from gnuplot */ +# define EXIT_SUCCESS 1 +# define EXIT_FAILURE 0x10000002 +# else /* not VMS */ +# define EXIT_SUCCESS 0 +# define EXIT_FAILURE 1 +# endif /* not VMS */ +#endif /* not EXIT_SUCCESS */ + + +/* Flush stdout first, exit if failure. Otherwise, if EXIT_STATUS is + zero, exit successfully, else unsuccessfully. */ + +void +xexit (exit_status) + int exit_status; +{ + if (ferror (stdout)) + { + fprintf (stderr, "ferror on stdout"); + exit_status = 1; + } + else if (fflush (stdout) != 0) + { + fprintf (stderr, "fflush error on stdout"); + exit_status = 1; + } + + exit_status = exit_status == 0 ? EXIT_SUCCESS : EXIT_FAILURE; + + exit (exit_status); +} + + +/* Why do we care about stdout you may ask? Here's why, from Jim + Meyering in the lib/closeout.c file. */ + +/* If a program writes *anything* to stdout, that program should close + stdout and make sure that the close succeeds. Otherwise, suppose that + you go to the extreme of checking the return status of every function + that does an explicit write to stdout. The last printf can succeed in + writing to the internal stream buffer, and yet the fclose(stdout) could + still fail (due e.g., to a disk full error) when it tries to write + out that buffered data. Thus, you would be left with an incomplete + output file and the offending program would exit successfully. + + Besides, it's wasteful to check the return value from every call + that writes to stdout -- just let the internal stream state record + the failure. That's what the ferror test is checking below. + + It's important to detect such failures and exit nonzero because many + tools (most notably `make' and other build-management systems) depend + on being able to detect failure in other tools via their exit status. */ diff --git a/gnu/usr.bin/texinfo/makeinfo/README b/gnu/usr.bin/texinfo/makeinfo/README index 2bfe6e1cbeb..a6f97ebed4c 100644 --- a/gnu/usr.bin/texinfo/makeinfo/README +++ b/gnu/usr.bin/texinfo/makeinfo/README @@ -1,8 +1,8 @@ makeinfo is a standalone program to convert Texinfo source into Info files readable with standalone info or M-x info in Emacs. -makeinfo can also output plain ASCII. Work to support HTML and Troff -output is almost complete. +makeinfo can also output plain ASCII (with --no-headers) +or HTML (with --html). The Emacs function M-x texinfo-format-buffer does more or less the same job, but makeinfo is faster and gives better error messages. diff --git a/gnu/usr.bin/texinfo/makeinfo/cmds.c b/gnu/usr.bin/texinfo/makeinfo/cmds.c new file mode 100644 index 00000000000..740007bc8cf --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/cmds.c @@ -0,0 +1,1121 @@ +/* cmds.c -- Texinfo commands. + $Id: cmds.c,v 1.1 2000/02/09 01:25:09 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "cmds.h" +#include "defun.h" +#include "files.h" +#include "footnote.h" +#include "insertion.h" +#include "lang.h" +#include "macro.h" +#include "makeinfo.h" +#include "node.h" +#include "sectioning.h" +#include "toc.h" + +#ifdef TM_IN_SYS_TIME +#include <sys/time.h> +#else +#include <time.h> +#endif + + +void insert_self (), insert_space (), cm_ignore_line (), cm_ignore_arg (); + +void + cm_TeX (), cm_acronym (), cm_asterisk (), cm_b (), cm_bullet (), cm_cite (), + cm_code (), cm_copyright (), cm_ctrl (), cm_dfn (), cm_dircategory (), + cm_direntry (), cm_dmn (), cm_dots (), cm_emph (), cm_enddots (), cm_i (), + cm_image (), cm_kbd (), cm_key (), cm_no_op (), + cm_novalidate (), cm_not_fixed_width (), cm_r (), + cm_strong (), cm_var (), cm_sc (), cm_w (), cm_email (), cm_url (); + +void + cm_anchor (), cm_node (), cm_menu (), cm_xref (), cm_ftable (), + cm_vtable (), cm_pxref (), cm_inforef (), cm_uref (), cm_email (), + cm_quotation (), cm_display (), cm_smalldisplay (), cm_itemize (), + cm_enumerate (), cm_tab (), cm_table (), cm_itemx (), cm_noindent (), + cm_setfilename (), cm_br (), cm_sp (), cm_page (), cm_group (), + cm_center (), cm_ref (), cm_include (), cm_bye (), cm_item (), cm_end (), + cm_kindex (), cm_cindex (), cm_findex (), cm_pindex (), cm_vindex (), + cm_tindex (), cm_synindex (), cm_printindex (), cm_minus (), + cm_example (), cm_smallexample (), cm_smalllisp (), cm_lisp (), + cm_format (), cm_smallformat (), cm_exdent (), cm_defindex (), + cm_defcodeindex (), cm_result (), cm_expansion (), cm_equiv (), + cm_print (), cm_error (), cm_point (), cm_today (), cm_flushleft (), + cm_flushright (), cm_finalout (), cm_cartouche (), cm_detailmenu (), + cm_multitable (), cm_settitle (), cm_titlefont (), cm_tt (); + +/* Conditionals. */ +void cm_set (), cm_clear (), cm_ifset (), cm_ifclear (); +void cm_value (), cm_ifeq (); + +/* Options. */ +static void cm_paragraphindent (), cm_exampleindent (); + +/* Internals. */ +static void cm_obsolete (); + +/* A random string. */ +static const char small_tag[] = "small"; + +/* The dispatch table. */ +COMMAND command_table[] = { + { "\t", insert_space, NO_BRACE_ARGS }, + { "\n", insert_space, NO_BRACE_ARGS }, + { " ", insert_self, NO_BRACE_ARGS }, + { "!", insert_self, NO_BRACE_ARGS }, + { "\"", cm_accent_umlaut, MAYBE_BRACE_ARGS }, + { "'", cm_accent_acute, MAYBE_BRACE_ARGS }, + { "*", cm_asterisk, NO_BRACE_ARGS }, + { ",", cm_accent_cedilla, MAYBE_BRACE_ARGS }, + { "-", cm_no_op, NO_BRACE_ARGS }, + { ".", insert_self, NO_BRACE_ARGS }, + { ":", cm_no_op, NO_BRACE_ARGS }, + { "=", cm_accent, MAYBE_BRACE_ARGS }, + { "?", insert_self, NO_BRACE_ARGS }, + { "@", insert_self, NO_BRACE_ARGS }, + { "^", cm_accent_hat, MAYBE_BRACE_ARGS }, + { "`", cm_accent_grave, MAYBE_BRACE_ARGS }, + { "{", insert_self, NO_BRACE_ARGS }, + { "|", cm_no_op, NO_BRACE_ARGS }, + { "}", insert_self, NO_BRACE_ARGS }, + { "~", cm_accent_tilde, MAYBE_BRACE_ARGS }, + { "AA", cm_special_char, BRACE_ARGS }, + { "AE", cm_special_char, BRACE_ARGS }, + { "H", cm_accent, MAYBE_BRACE_ARGS }, + { "L", cm_special_char, BRACE_ARGS }, + { "O", cm_special_char, BRACE_ARGS }, + { "OE", cm_special_char, BRACE_ARGS }, + { "TeX", cm_TeX, BRACE_ARGS }, + { "aa", cm_special_char, BRACE_ARGS }, + { "acronym", cm_acronym, BRACE_ARGS }, + { "ae", cm_special_char, BRACE_ARGS }, + { "afourpaper", cm_ignore_line, NO_BRACE_ARGS }, + { "alias", cm_alias, NO_BRACE_ARGS }, + { "anchor", cm_anchor, BRACE_ARGS }, + { "appendix", cm_appendix, NO_BRACE_ARGS }, + { "appendixsection", cm_appendixsec, NO_BRACE_ARGS }, + { "appendixsec", cm_appendixsec, NO_BRACE_ARGS }, + { "appendixsubsec", cm_appendixsubsec, NO_BRACE_ARGS }, + { "appendixsubsubsec", cm_appendixsubsubsec, NO_BRACE_ARGS }, + { "asis", cm_no_op, BRACE_ARGS }, + { "b", cm_b, BRACE_ARGS }, + { "bullet", cm_bullet, BRACE_ARGS }, + { "bye", cm_bye, NO_BRACE_ARGS }, + { "c", cm_ignore_line, NO_BRACE_ARGS }, + { "cartouche", cm_cartouche, NO_BRACE_ARGS }, + { "center", cm_center, NO_BRACE_ARGS }, + { "centerchap", cm_unnumbered, NO_BRACE_ARGS }, + { "chapheading", cm_chapheading, NO_BRACE_ARGS }, + { "chapter", cm_chapter, NO_BRACE_ARGS }, + { "cindex", cm_cindex, NO_BRACE_ARGS }, + { "cite", cm_cite, BRACE_ARGS }, + { "clear", cm_clear, NO_BRACE_ARGS }, + { "code", cm_code, BRACE_ARGS }, + { "command", cm_code, BRACE_ARGS }, + { "comment", cm_ignore_line, NO_BRACE_ARGS }, + { "contents", cm_contents, NO_BRACE_ARGS }, + { "copyright", cm_copyright, BRACE_ARGS }, + { "ctrl", cm_obsolete, BRACE_ARGS }, + { "defcodeindex", cm_defcodeindex, NO_BRACE_ARGS }, + { "defcv", cm_defun, NO_BRACE_ARGS }, + { "defcvx", cm_defun, NO_BRACE_ARGS }, + { "deffn", cm_defun, NO_BRACE_ARGS }, + { "deffnx", cm_defun, NO_BRACE_ARGS }, + { "defindex", cm_defindex, NO_BRACE_ARGS }, + { "definfoenclose", cm_definfoenclose, NO_BRACE_ARGS }, + { "defivar", cm_defun, NO_BRACE_ARGS }, + { "defivarx", cm_defun, NO_BRACE_ARGS }, + { "defmac", cm_defun, NO_BRACE_ARGS }, + { "defmacx", cm_defun, NO_BRACE_ARGS }, + { "defmethod", cm_defun, NO_BRACE_ARGS }, + { "defmethodx", cm_defun, NO_BRACE_ARGS }, + { "defop", cm_defun, NO_BRACE_ARGS }, + { "defopt", cm_defun, NO_BRACE_ARGS }, + { "defoptx", cm_defun, NO_BRACE_ARGS }, + { "defopx", cm_defun, NO_BRACE_ARGS }, + { "defspec", cm_defun, NO_BRACE_ARGS }, + { "defspecx", cm_defun, NO_BRACE_ARGS }, + { "deftp", cm_defun, NO_BRACE_ARGS }, + { "deftpx", cm_defun, NO_BRACE_ARGS }, + { "deftypefn", cm_defun, NO_BRACE_ARGS }, + { "deftypefnx", cm_defun, NO_BRACE_ARGS }, + { "deftypefun", cm_defun, NO_BRACE_ARGS }, + { "deftypefunx", cm_defun, NO_BRACE_ARGS }, + { "deftypeivar", cm_defun, NO_BRACE_ARGS }, + { "deftypeivarx", cm_defun, NO_BRACE_ARGS }, + { "deftypemethod", cm_defun, NO_BRACE_ARGS }, + { "deftypemethodx", cm_defun, NO_BRACE_ARGS }, + { "deftypeop", cm_defun, NO_BRACE_ARGS }, + { "deftypeopx", cm_defun, NO_BRACE_ARGS }, + { "deftypevar", cm_defun, NO_BRACE_ARGS }, + { "deftypevarx", cm_defun, NO_BRACE_ARGS }, + { "deftypevr", cm_defun, NO_BRACE_ARGS }, + { "deftypevrx", cm_defun, NO_BRACE_ARGS }, + { "defun", cm_defun, NO_BRACE_ARGS }, + { "defunx", cm_defun, NO_BRACE_ARGS }, + { "defvar", cm_defun, NO_BRACE_ARGS }, + { "defvarx", cm_defun, NO_BRACE_ARGS }, + { "defvr", cm_defun, NO_BRACE_ARGS }, + { "defvrx", cm_defun, NO_BRACE_ARGS }, + { "detailmenu", cm_detailmenu, NO_BRACE_ARGS }, + { "dfn", cm_dfn, BRACE_ARGS }, + { "dircategory", cm_dircategory, NO_BRACE_ARGS }, + { "direntry", cm_direntry, NO_BRACE_ARGS }, + { "display", cm_display, NO_BRACE_ARGS }, + { "dmn", cm_no_op, BRACE_ARGS }, + { "documentencoding", cm_documentencoding, NO_BRACE_ARGS }, + { "documentlanguage", cm_documentlanguage, NO_BRACE_ARGS }, + { "dotaccent", cm_accent, MAYBE_BRACE_ARGS }, + { "dotless", cm_dotless, BRACE_ARGS }, + { "dots", cm_dots, BRACE_ARGS }, + { "email", cm_email, BRACE_ARGS }, + { "emph", cm_emph, BRACE_ARGS }, + { "end", cm_end, NO_BRACE_ARGS }, + { "enddots", cm_enddots, BRACE_ARGS }, + { "enumerate", cm_enumerate, NO_BRACE_ARGS }, + { "env", cm_code, BRACE_ARGS }, + { "equiv", cm_equiv, BRACE_ARGS }, + { "error", cm_error, BRACE_ARGS }, + { "example", cm_example, NO_BRACE_ARGS }, + { "exampleindent", cm_exampleindent, NO_BRACE_ARGS }, + { "exclamdown", cm_special_char, BRACE_ARGS }, + { "exdent", cm_exdent, NO_BRACE_ARGS }, + { "expansion", cm_expansion, BRACE_ARGS }, + { "file", cm_code, BRACE_ARGS }, + { "finalout", cm_no_op, NO_BRACE_ARGS }, + { "findex", cm_findex, NO_BRACE_ARGS }, + { "flushleft", cm_flushleft, NO_BRACE_ARGS }, + { "flushright", cm_flushright, NO_BRACE_ARGS }, + { "footnote", cm_footnote, NO_BRACE_ARGS}, /* self-arg eater */ + { "footnotestyle", cm_footnotestyle, NO_BRACE_ARGS }, + { "format", cm_format, NO_BRACE_ARGS }, + { "ftable", cm_ftable, NO_BRACE_ARGS }, + { "group", cm_group, NO_BRACE_ARGS }, + { "heading", cm_heading, NO_BRACE_ARGS }, + { "headings", cm_ignore_line, NO_BRACE_ARGS }, + { "html", cm_html, NO_BRACE_ARGS }, + { "hyphenation", cm_ignore_arg, BRACE_ARGS }, + { "i", cm_i, BRACE_ARGS }, + { "ifclear", cm_ifclear, NO_BRACE_ARGS }, + { "ifeq", cm_ifeq, NO_BRACE_ARGS }, + { "ifhtml", cm_ifhtml, NO_BRACE_ARGS }, + { "ifinfo", cm_ifinfo, NO_BRACE_ARGS }, + { "ifnothtml", cm_ifnothtml, NO_BRACE_ARGS }, + { "ifnotinfo", cm_ifnotinfo, NO_BRACE_ARGS }, + { "ifnottex", cm_ifnottex, NO_BRACE_ARGS }, + { "ifset", cm_ifset, NO_BRACE_ARGS }, + { "iftex", cm_iftex, NO_BRACE_ARGS }, + { "ignore", command_name_condition, NO_BRACE_ARGS }, + { "image", cm_image, BRACE_ARGS }, + { "include", cm_include, NO_BRACE_ARGS }, + { "inforef", cm_inforef, BRACE_ARGS }, + { "item", cm_item, NO_BRACE_ARGS }, + { "itemize", cm_itemize, NO_BRACE_ARGS }, + { "itemx", cm_itemx, NO_BRACE_ARGS }, + { "kbd", cm_kbd, BRACE_ARGS }, + { "kbdinputstyle", cm_ignore_line, NO_BRACE_ARGS }, + { "key", cm_key, BRACE_ARGS }, + { "kindex", cm_kindex, NO_BRACE_ARGS }, + { "l", cm_special_char, BRACE_ARGS }, + { "lisp", cm_lisp, NO_BRACE_ARGS }, + { "lowersections", cm_lowersections, NO_BRACE_ARGS }, + { "macro", cm_macro, NO_BRACE_ARGS }, + { "majorheading", cm_majorheading, NO_BRACE_ARGS }, + { "math", cm_no_op, BRACE_ARGS }, + { "menu", cm_menu, NO_BRACE_ARGS }, + { "minus", cm_minus, BRACE_ARGS }, + { "multitable", cm_multitable, NO_BRACE_ARGS }, + { "need", cm_ignore_line, NO_BRACE_ARGS }, + { "node", cm_node, NO_BRACE_ARGS }, + { "noindent", cm_noindent, NO_BRACE_ARGS }, + { "noindent", cm_novalidate, NO_BRACE_ARGS }, + { "nwnode", cm_node, NO_BRACE_ARGS }, + { "o", cm_special_char, BRACE_ARGS }, + { "oe", cm_special_char, BRACE_ARGS }, + { "option", cm_code, BRACE_ARGS }, + { "page", cm_no_op, NO_BRACE_ARGS }, + { "pagesizes", cm_ignore_line, NO_BRACE_ARGS }, + { "paragraphindent", cm_paragraphindent, NO_BRACE_ARGS }, + { "pindex", cm_pindex, NO_BRACE_ARGS }, + { "point", cm_point, BRACE_ARGS }, + { "pounds", cm_special_char, BRACE_ARGS }, + { "print", cm_print, BRACE_ARGS }, + { "printindex", cm_printindex, NO_BRACE_ARGS }, + { "pxref", cm_pxref, BRACE_ARGS }, + { "questiondown", cm_special_char, BRACE_ARGS }, + { "quotation", cm_quotation, NO_BRACE_ARGS }, + { "r", cm_r, BRACE_ARGS }, + { "raisesections", cm_raisesections, NO_BRACE_ARGS }, + { "ref", cm_ref, BRACE_ARGS }, + { "refill", cm_no_op, NO_BRACE_ARGS }, + { "result", cm_result, BRACE_ARGS }, + { "ringaccent", cm_accent, MAYBE_BRACE_ARGS }, + { "rmacro", cm_rmacro, NO_BRACE_ARGS }, + { "samp", cm_code, BRACE_ARGS }, + { "sc", cm_sc, BRACE_ARGS }, + { "section", cm_section, NO_BRACE_ARGS }, + { "set", cm_set, NO_BRACE_ARGS }, + { "setchapternewpage", cm_ignore_line, NO_BRACE_ARGS }, + { "setchapterstyle", cm_obsolete, NO_BRACE_ARGS }, + { "setcontentsaftertitlepage", cm_no_op, NO_BRACE_ARGS }, + { "setfilename", cm_setfilename, NO_BRACE_ARGS }, + { "setshortcontentsaftertitlepage", cm_no_op, NO_BRACE_ARGS }, + { "settitle", cm_settitle, NO_BRACE_ARGS }, + { "shortcontents", cm_shortcontents, NO_BRACE_ARGS }, + { "shorttitlepage", cm_ignore_line, NO_BRACE_ARGS }, + { "smallbook", cm_ignore_line, NO_BRACE_ARGS }, + { "smalldisplay", cm_smalldisplay, NO_BRACE_ARGS }, + { "smallexample", cm_smallexample, NO_BRACE_ARGS }, + { "smallformat", cm_smallformat, NO_BRACE_ARGS }, + { "smalllisp", cm_smalllisp, NO_BRACE_ARGS }, + { "sp", cm_sp, NO_BRACE_ARGS }, + { "ss", cm_special_char, BRACE_ARGS }, + { "strong", cm_strong, BRACE_ARGS }, + { "subheading", cm_subheading, NO_BRACE_ARGS }, + { "subsection", cm_subsection, NO_BRACE_ARGS }, + { "subsubheading", cm_subsubheading, NO_BRACE_ARGS }, + { "subsubsection", cm_subsubsection, NO_BRACE_ARGS }, + { "summarycontents", cm_no_op, NO_BRACE_ARGS }, + { "syncodeindex", cm_synindex, NO_BRACE_ARGS }, + { "synindex", cm_synindex, NO_BRACE_ARGS }, + { "t", cm_tt, BRACE_ARGS }, + { "tab", cm_tab, NO_BRACE_ARGS }, + { "table", cm_table, NO_BRACE_ARGS }, + { "tex", cm_tex, NO_BRACE_ARGS }, + { "tieaccent", cm_accent, MAYBE_BRACE_ARGS }, + { "tindex", cm_tindex, NO_BRACE_ARGS }, + { "titlefont", cm_titlefont, BRACE_ARGS }, + { "titlepage", command_name_condition, NO_BRACE_ARGS }, + { "today", cm_today, BRACE_ARGS }, + { "top", cm_top, NO_BRACE_ARGS }, + { "u", cm_accent, MAYBE_BRACE_ARGS }, + { "ubaraccent", cm_accent, MAYBE_BRACE_ARGS }, + { "udotaccent", cm_accent, MAYBE_BRACE_ARGS }, + { "unmacro", cm_unmacro, NO_BRACE_ARGS }, + { "unnumbered", cm_unnumbered, NO_BRACE_ARGS }, + { "unnumberedsec", cm_unnumberedsec, NO_BRACE_ARGS }, + { "unnumberedsubsec", cm_unnumberedsubsec, NO_BRACE_ARGS }, + { "unnumberedsubsubsec", cm_unnumberedsubsubsec, NO_BRACE_ARGS }, + { "uref", cm_uref, BRACE_ARGS }, + { "url", cm_url, BRACE_ARGS }, + { "v", cm_accent, MAYBE_BRACE_ARGS }, + { "value", cm_value, BRACE_ARGS }, + { "var", cm_var, BRACE_ARGS }, + { "vindex", cm_vindex, NO_BRACE_ARGS }, + { "vtable", cm_vtable, NO_BRACE_ARGS }, + { "w", cm_w, BRACE_ARGS }, + { "xref", cm_xref, BRACE_ARGS }, + + /* Deprecated commands. These used to be for italics. */ + { "iappendix", cm_ideprecated, NO_BRACE_ARGS }, + { "iappendixsec", cm_ideprecated, NO_BRACE_ARGS }, + { "iappendixsection", cm_ideprecated, NO_BRACE_ARGS }, + { "iappendixsubsec", cm_ideprecated, NO_BRACE_ARGS }, + { "iappendixsubsubsec", cm_ideprecated, NO_BRACE_ARGS }, + { "ichapter", cm_ideprecated, NO_BRACE_ARGS }, + { "isection", cm_ideprecated, NO_BRACE_ARGS }, + { "isubsection", cm_ideprecated, NO_BRACE_ARGS }, + { "isubsubsection", cm_ideprecated, NO_BRACE_ARGS }, + { "iunnumbered", cm_ideprecated, NO_BRACE_ARGS }, + { "iunnumberedsec", cm_ideprecated, NO_BRACE_ARGS }, + { "iunnumberedsubsec", cm_ideprecated, NO_BRACE_ARGS }, + { "iunnumberedsubsubsec", cm_ideprecated, NO_BRACE_ARGS }, + + /* Now @include does what this was used to. */ + { "infoinclude", cm_obsolete, NO_BRACE_ARGS }, + { "titlespec", cm_obsolete, NO_BRACE_ARGS }, + + { NULL, NULL, NO_BRACE_ARGS } +}; + +/* The bulk of the Texinfo commands. */ + +/* Commands which insert their own names. */ +void +insert_self (arg) + int arg; +{ + if (arg == START) + add_word (command); +} + +void +insert_space (arg) + int arg; +{ + if (arg == START) + add_char (' '); +} + +/* Force a line break in the output. */ +void +cm_asterisk () +{ + if (html) + add_word ("<br>"); + else + { + close_single_paragraph (); + cm_noindent (); + } +} + +/* Insert ellipsis. */ +void +cm_dots (arg) + int arg; +{ + if (arg == START) + add_word (html ? "<small>...</small>" : "..."); +} + +/* Insert ellipsis for sentence end. */ +void +cm_enddots (arg) + int arg; +{ + if (arg == START) + add_word (html ? "<small>...</small>." : "...."); +} + +void +cm_bullet (arg) + int arg; +{ + if (arg == START) + { + if (html) + add_word ("•"); + else + add_char ('*'); + } +} + +void +cm_minus (arg) + int arg; +{ + if (arg == START) + add_char ('-'); +} + +/* Insert "TeX". */ +void +cm_TeX (arg) + int arg; +{ + if (arg == START) + add_word ("TeX"); +} + +/* Copyright symbol. */ +void +cm_copyright (arg) + int arg; +{ + if (arg == START) + if (html) + add_word ("©"); + else + add_word ("(C)"); +} + +void +cm_today (arg) + int arg; +{ + static char *months[12] = + { N_("January"), N_("February"), N_("March"), N_("April"), N_("May"), + N_("June"), N_("July"), N_("August"), N_("September"), N_("October"), + N_("November"), N_("December") }; + if (arg == START) + { + time_t timer = time (0); + struct tm *ts = localtime (&timer); + add_word_args ("%d %s %d", ts->tm_mday, _(months[ts->tm_mon]), + ts->tm_year + 1900); + } +} + +void +cm_acronym (arg) + int arg; +{ + if (html) + insert_html_tag (arg, small_tag); +} + +void +cm_tt (arg) + int arg; +{ + /* @t{} is a no-op in Info. */ + if (html) + insert_html_tag (arg, "tt"); +} + +void +cm_code (arg) + int arg; +{ + extern int printing_index; + + if (arg == START) + { + in_fixed_width_font++; + + if (html) + insert_html_tag (arg, "code"); + else if (!printing_index) + add_char ('`'); + } + else if (html) + insert_html_tag (arg, "code"); + else + { + if (!printing_index) + add_meta_char ('\''); + } +} + +void +cm_kbd (arg) + int arg; +{ + if (html) + { /* Seems like we should increment in_fixed_width_font for Info + format too, but then the quote-omitting special case gets + confused. Punt. */ + if (arg == START) + in_fixed_width_font++; + insert_html_tag (arg, "kbd"); + } + else + { /* People use @kbd in an example to get the "user input" font. + We don't want quotes in that case. */ + if (!in_fixed_width_font) + cm_code (arg); + } +} + +void +cm_url (arg, start, end) +{ + if (html) + { + if (arg == START) + add_word ("<<code>"); + else + add_word ("</code>>"); + } + else + if (arg == START) + add_word ("<"); + else + add_word (">"); +} + +void +cm_key (arg) + int arg; +{ + if (html) + add_word (arg == START ? "<" : ">"); + else + add_char (arg == START ? '<' : '>'); +} + +/* Handle a command that switches to a non-fixed-width font. */ +void +not_fixed_width (arg) + int arg; +{ + if (arg == START) + in_fixed_width_font = 0; +} + +/* @var in makeinfo just uppercases the text. */ +void +cm_var (arg, start_pos, end_pos) + int arg, start_pos, end_pos; +{ + not_fixed_width (arg); + + if (html) + insert_html_tag (arg, "var"); + else if (arg == END) + { + while (start_pos < end_pos) + { + unsigned char c = output_paragraph[start_pos]; + if (strchr ("[](),", c)) + warning (_("unlikely character %c in @var"), c); + output_paragraph[start_pos] = coerce_to_upper (c); + start_pos++; + } + } +} + +void +cm_sc (arg, start_pos, end_pos) + int arg, start_pos, end_pos; +{ + not_fixed_width (arg); + + if (arg == START) + { + if (html) + insert_html_tag (arg, small_tag); + } + else + { + int all_upper = 1; + + if (html) + start_pos += sizeof (small_tag) + 2 - 1; /* skip <small> */ + + while (start_pos < end_pos) + { + unsigned char c = output_paragraph[start_pos]; + if (!isupper (c)) + all_upper = 0; + output_paragraph[start_pos] = coerce_to_upper (c); + start_pos++; + } + if (all_upper) + warning (_("@sc argument all uppercase, thus no effect")); + + if (html) + insert_html_tag (arg, small_tag); + } +} + +void +cm_dfn (arg, position) + int arg, position; +{ + if (html) + insert_html_tag (arg, "dfn"); + else if (arg == START) + add_char ('"'); + else + add_meta_char ('"'); +} + +void +cm_emph (arg) + int arg; +{ + if (html) + insert_html_tag (arg, "em"); + else + add_char ('_'); +} + +void +cm_strong (arg, position) + int arg, position; +{ + if (html) + insert_html_tag (arg, "strong"); + else + add_char ('*'); +} + +void +cm_cite (arg, position) + int arg, position; +{ + if (html) + insert_html_tag (arg, "cite"); + else + { + if (arg == START) + add_char ('`'); + else + add_char ('\''); + } +} + +/* No highlighting, but argument switches fonts. */ +void +cm_not_fixed_width (arg, start, end) + int arg, start, end; +{ + not_fixed_width (arg); +} + +void +cm_i (arg) + int arg; +{ + if (html) + insert_html_tag (arg, "i"); + else + not_fixed_width (arg); +} + +void +cm_b (arg) + int arg; +{ + if (html) + insert_html_tag (arg, "b"); + else + not_fixed_width (arg); +} + +void +cm_r (arg) + int arg; +{ + extern int printing_index; + + /* People use @r{} in index entries like this: + + @findex foo@r{, some text} + + This is supposed to produce output as if the entry were saying + "@code{foo}, some text", since the "fn" index is typeset as + @code. The following attempts to do the same in HTML. Note that + this relies on the fact that only @code bumps up the variable + in_fixed_width_font while processing index entries in HTML mode. */ + if (html && printing_index) + { + int level = in_fixed_width_font; + + while (level--) + insert_html_tag (arg == START ? END : START, "code"); + } + + not_fixed_width (arg); +} + +void +cm_titlefont (arg) + int arg; +{ + not_fixed_width (arg); +} + +/* Various commands are no-op's. */ +void +cm_no_op () +{ +} + + +/* For proofing single chapters, etc. */ +void +cm_novalidate () +{ + validating = 0; +} + + +/* Prevent the argument from being split across two lines. */ +void +cm_w (arg, start, end) + int arg, start, end; +{ + if (arg == START) + non_splitting_words++; + else + non_splitting_words--; +} + + +/* Explain that this command is obsolete, thus the user shouldn't + do anything with it. */ +static void +cm_obsolete (arg, start, end) + int arg, start, end; +{ + if (arg == START) + warning (_("%c%s is obsolete"), COMMAND_PREFIX, command); +} + + +/* This says to inhibit the indentation of the next paragraph, but + not of following paragraphs. */ +void +cm_noindent () +{ + if (!inhibit_paragraph_indentation) + inhibit_paragraph_indentation = -1; +} + +/* I don't know exactly what to do with this. Should I allow + someone to switch filenames in the middle of output? Since the + file could be partially written, this doesn't seem to make sense. + Another option: ignore it, since they don't *really* want to + switch files. Finally, complain, or at least warn. It doesn't + really matter, anyway, since this doesn't get executed. */ +void +cm_setfilename () +{ + char *filename; + get_rest_of_line (1, &filename); + /* warning ("`@%s %s' encountered and ignored", command, filename); */ + free (filename); +} + +void +cm_settitle () +{ + get_rest_of_line (0, &title); +} + +/* Ignore argument in braces. */ +void +cm_ignore_arg (arg, start_pos, end_pos) + int arg, start_pos, end_pos; +{ + if (arg == END) + output_paragraph_offset = start_pos; +} + +/* Ignore argument on rest of line. */ +void +cm_ignore_line () +{ + discard_until ("\n"); +} + +/* Insert the number of blank lines passed as argument. */ +void +cm_sp () +{ + int lines; + char *line; + + get_rest_of_line (1, &line); + + if (sscanf (line, "%d", &lines) != 1 || lines <= 0) + line_error (_("@sp requires a positive numeric argument, not `%s'"), line); + else + { /* Must disable filling since otherwise multiple newlines is like + multiple spaces. Must close paragraph since that's what the + manual says and that's what TeX does. */ + int save_filling_enabled = filling_enabled; + filling_enabled = 0; + + close_paragraph (); + + while (lines--) + { + if (html) + insert_string ("<br><p>\n"); + else + add_char ('\n'); + } + + filling_enabled = save_filling_enabled; + } + free (line); +} + +/* @dircategory LINE outputs INFO-DIR-SECTION LINE, unless --no-headers. */ +void +cm_dircategory () +{ + char *line; + + if (html) + cm_ignore_line (); + else + { + get_rest_of_line (1, &line); + + if (!no_headers && !html) + { + kill_self_indent (-1); /* make sure there's no indentation */ + insert_string ("INFO-DIR-SECTION "); + insert_string (line); + insert ('\n'); + } + + free (line); + } +} + +/* Start a new line with just this text on it. + Then center the line of text. + This always ends the current paragraph. */ +void +cm_center () +{ + int i, start, length; + unsigned char *line; + int save_indented_fill = indented_fill; + int save_filling_enabled = filling_enabled; + int fudge_factor = 1; + + close_paragraph (); + filling_enabled = indented_fill = 0; + cm_noindent (); + start = output_paragraph_offset; + + if (html) + add_word ("<p align=\"center\">"); + + inhibit_output_flushing (); + get_rest_of_line (0, (char **)&line); + execute_string ("%s", (char *)line); + free (line); + uninhibit_output_flushing (); + if (html) + add_word ("</p>"); + + else + { + i = output_paragraph_offset - 1; + while (i > (start - 1) && output_paragraph[i] == '\n') + i--; + + output_paragraph_offset = ++i; + length = output_paragraph_offset - start; + + if (length < (fill_column - fudge_factor)) + { + line = xmalloc (1 + length); + memcpy (line, (char *)(output_paragraph + start), length); + + i = (fill_column - fudge_factor - length) / 2; + output_paragraph_offset = start; + + while (i--) + insert (' '); + + for (i = 0; i < length; i++) + insert (line[i]); + + free (line); + } + } + + insert ('\n'); + close_paragraph (); + filling_enabled = save_filling_enabled; + indented_fill = save_indented_fill; +} + +/* Show what an expression returns. */ +void +cm_result (arg) + int arg; +{ + if (arg == END) + add_word (html ? "=>" : "=>"); +} + +/* What an expression expands to. */ +void +cm_expansion (arg) + int arg; +{ + if (arg == END) + add_word (html ? "==>" : "==>"); +} + +/* Indicates two expressions are equivalent. */ +void +cm_equiv (arg) + int arg; +{ + if (arg == END) + add_word ("=="); +} + +/* What an expression may print. */ +void +cm_print (arg) + int arg; +{ + if (arg == END) + add_word ("-|"); +} + +/* An error signaled. */ +void +cm_error (arg) + int arg; +{ + if (arg == END) + add_word (html ? "error-->" : "error-->"); +} + +/* The location of point in an example of a buffer. */ +void +cm_point (arg) + int arg; +{ + if (arg == END) + add_word ("-!-"); +} + +/* @exdent: Start a new line with just this text on it. + The text is outdented one level if possible. */ +void +cm_exdent () +{ + char *line; + int save_indent = current_indent; + int save_in_fixed_width_font = in_fixed_width_font; + + /* Read argument */ + get_rest_of_line (0, &line); + + /* Exdent the output. Actually this may be a no-op. */ + if (current_indent) + current_indent -= default_indentation_increment; + + /* @exdent arg is supposed to be in roman. */ + in_fixed_width_font = 0; + + /* The preceding newline already inserted the `current_indent'. + Remove one level's worth. */ + kill_self_indent (default_indentation_increment); + + if (html) + add_word ("<br>"); + + /* Can't close_single_paragraph, then we lose preceding blank lines. */ + flush_output (); + execute_string ("%s", line); + free (line); + + if (html) + add_word ("<br>"); + close_single_paragraph (); + + current_indent = save_indent; + in_fixed_width_font = save_in_fixed_width_font; +} + + +/* Remember this file, and move onto the next. */ +void +cm_include () +{ + char *filename; + + if (macro_expansion_output_stream && !executing_string) + me_append_before_this_command (); + + close_paragraph (); + get_rest_of_line (0, &filename); + + if (macro_expansion_output_stream && !executing_string) + remember_itext (input_text, input_text_offset); + + pushfile (); + + /* In verbose mode we print info about including another file. */ + if (verbose_mode) + { + int i = 0; + FSTACK *stack = filestack; + + for (i = 0, stack = filestack; stack; stack = stack->next, i++); + + i *= 2; + + printf ("%*s", i, ""); + printf ("%c%s %s\n", COMMAND_PREFIX, command, filename); + fflush (stdout); + } + + if (!find_and_load (filename)) + { + extern int errno; + + popfile (); + line_number--; + + /* Cannot "@include foo", in line 5 of "/wh/bar". */ + line_error ("%c%s %s: %s", COMMAND_PREFIX, command, filename, + strerror (errno)); + + free (filename); + return; + } + else + { + if (macro_expansion_output_stream && !executing_string) + remember_itext (input_text, input_text_offset); + reader_loop (); + } + free (filename); + popfile (); +} + + +/* @bye: Signals end of processing. Easy to make this happen. */ + +void +cm_bye () +{ + discard_braces (); /* should not have any unclosed braces left */ + flush_output (); + input_text_offset = input_text_length; +} + +/* @paragraphindent */ + +static void +cm_paragraphindent () +{ + char *arg; + + get_rest_of_line (1, &arg); + if (set_paragraph_indent (arg) != 0) + line_error (_("Bad argument to %c%s"), COMMAND_PREFIX, command); + + free (arg); +} + +/* @exampleindent: change indentation of example-like environments. */ +static int +set_default_indentation_increment (string) + char *string; +{ + if (strcmp (string, "asis") == 0 || strcmp (string, _("asis")) == 0) + ; + else if (strcmp (string, "none") == 0 || strcmp (string, _("none")) == 0) + default_indentation_increment = 0; + else if (sscanf (string, "%d", &default_indentation_increment) != 1) + return -1; + return 0; +} + +static void +cm_exampleindent () +{ + char *arg; + + get_rest_of_line (1, &arg); + if (set_default_indentation_increment (arg) != 0) + line_error (_("Bad argument to %c%s"), COMMAND_PREFIX, command); + + free (arg); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/cmds.h b/gnu/usr.bin/texinfo/makeinfo/cmds.h new file mode 100644 index 00000000000..528b08512ec --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/cmds.h @@ -0,0 +1,50 @@ +/* cmds.h -- declarations for cmds.c. + $Id: cmds.h,v 1.1.1.1 2000/02/09 01:25:09 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef CMDS_H +#define CMDS_H + +/* The three arguments a command can get are a flag saying whether it is + before argument parsing (START) or after (END), the starting position + of the arguments, and the ending position. */ +typedef void COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */ + +/* Each command has an associated function. When the command is + encountered in the text, the associated function is called with START + as the argument. If the function expects arguments in braces, it + remembers itself on the stack. When the corresponding close brace is + encountered, the function is called with END as the argument. */ +#define START 0 +#define END 1 + +/* Does the command expect braces? */ +#define NO_BRACE_ARGS 0 +#define BRACE_ARGS 1 +#define MAYBE_BRACE_ARGS 2 + +typedef struct +{ + char *name; + COMMAND_FUNCTION *proc; + int argument_in_braces; +} COMMAND; + +extern COMMAND command_table[]; + +#endif /* !CMDS_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/defun.c b/gnu/usr.bin/texinfo/makeinfo/defun.c new file mode 100644 index 00000000000..e9078c655f7 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/defun.c @@ -0,0 +1,663 @@ +/* defun.c -- @defun and friends. + $Id: defun.c,v 1.1.1.1 2000/02/09 01:25:10 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "defun.h" +#include "insertion.h" +#include "makeinfo.h" + + +#define DEFUN_SELF_DELIMITING(c) \ + ((c) == '(' || (c) == ')' || (c) == '[' || (c) == ']') + +struct token_accumulator +{ + unsigned int length; + unsigned int index; + char **tokens; +}; + +static void +initialize_token_accumulator (accumulator) + struct token_accumulator *accumulator; +{ + accumulator->length = 0; + accumulator->index = 0; + accumulator->tokens = NULL; +} + +static void +accumulate_token (accumulator, token) + struct token_accumulator *accumulator; + char *token; +{ + if (accumulator->index >= accumulator->length) + { + accumulator->length += 10; + accumulator->tokens = xrealloc (accumulator->tokens, + (accumulator->length * sizeof (char *))); + } + accumulator->tokens[accumulator->index] = token; + accumulator->index += 1; +} + +/* Given STRING_POINTER pointing at an open brace, skip forward and return a + pointer to just past the matching close brace. */ +static int +scan_group_in_string (string_pointer) + char **string_pointer; +{ + char *scan_string = (*string_pointer) + 1; + unsigned int level = 1; + + for (;;) + { + int c; + if (level == 0) + { + *string_pointer = scan_string; + return 1; + } + c = *scan_string++; + if (c == 0) + { + /* Tweak line_number to compensate for fact that + we gobbled the whole line before coming here. */ + line_number -= 1; + line_error (_("Missing `}' in @def arg")); + line_number += 1; + *string_pointer = scan_string - 1; + return 0; + } + + if (c == '{') + level += 1; + if (c == '}') + level -= 1; + } +} + +/* Return a list of tokens from the contents of STRING. + Commands and brace-delimited groups count as single tokens. + Contiguous whitespace characters are converted to a token + consisting of a single space. */ +static char ** +args_from_string (string) + char *string; +{ + struct token_accumulator accumulator; + char *token_start, *token_end; + char *scan_string = string; + + initialize_token_accumulator (&accumulator); + + while (*scan_string) + { /* Replace arbitrary whitespace by a single space. */ + if (whitespace (*scan_string)) + { + scan_string += 1; + while (whitespace (*scan_string)) + scan_string += 1; + accumulate_token ((&accumulator), (xstrdup (" "))); + continue; + } + + /* Commands count as single tokens. */ + if (*scan_string == COMMAND_PREFIX) + { + token_start = scan_string; + scan_string += 1; + if (self_delimiting (*scan_string)) + scan_string += 1; + else + { + int c; + while (1) + { + c = *scan_string++; + + if ((c == 0) || (c == '{') || (whitespace (c))) + { + scan_string -= 1; + break; + } + } + + if (*scan_string == '{') + { + char *s = scan_string; + (void) scan_group_in_string (&s); + scan_string = s; + } + } + token_end = scan_string; + } + + /* Parentheses and brackets are self-delimiting. */ + else if (DEFUN_SELF_DELIMITING (*scan_string)) + { + token_start = scan_string; + scan_string += 1; + token_end = scan_string; + } + + /* Open brace introduces a group that is a single token. */ + else if (*scan_string == '{') + { + char *s = scan_string; + int balanced = scan_group_in_string (&s); + + token_start = scan_string + 1; + scan_string = s; + token_end = balanced ? (scan_string - 1) : scan_string; + } + + /* Otherwise a token is delimited by whitespace, parentheses, + brackets, or braces. A token is also ended by a command. */ + else + { + token_start = scan_string; + + for (;;) + { + int c; + + c = *scan_string++; + + /* Do not back up if we're looking at a }; since the only + valid }'s are those matched with {'s, we want to give + an error. If we back up, we go into an infinite loop. */ + if (!c || whitespace (c) || DEFUN_SELF_DELIMITING (c) + || c == '{') + { + scan_string--; + break; + } + + /* If we encounter a command embedded within a token, + then end the token. */ + if (c == COMMAND_PREFIX) + { + scan_string--; + break; + } + } + token_end = scan_string; + } + + accumulate_token (&accumulator, substring (token_start, token_end)); + } + accumulate_token (&accumulator, NULL); + return accumulator.tokens; +} + +static void +process_defun_args (defun_args, auto_var_p) + char **defun_args; + int auto_var_p; +{ + int pending_space = 0; + + for (;;) + { + char *defun_arg = *defun_args++; + + if (defun_arg == NULL) + break; + + if (defun_arg[0] == ' ') + { + pending_space = 1; + continue; + } + + if (pending_space) + { + add_char (' '); + pending_space = 0; + } + + if (DEFUN_SELF_DELIMITING (defun_arg[0])) + add_char (defun_arg[0]); + else if (defun_arg[0] == '&') + if (html) + { + defun_arg = escape_string (xstrdup (defun_arg)); + add_word (defun_arg); + free (defun_arg); + } + else + add_word (defun_arg); + else if (defun_arg[0] == COMMAND_PREFIX) + execute_string ("%s", defun_arg); + else if (auto_var_p) + if (html) + { + defun_arg = escape_string (xstrdup (defun_arg)); + add_word (defun_arg); + free (defun_arg); + } + else + add_word (defun_arg); + else + add_word (defun_arg); + } +} + +static char * +next_nonwhite_defun_arg (arg_pointer) + char ***arg_pointer; +{ + char **scan = (*arg_pointer); + char *arg = (*scan++); + + if ((arg != 0) && (*arg == ' ')) + arg = *scan++; + + if (arg == 0) + scan -= 1; + + *arg_pointer = scan; + + return (arg == 0) ? "" : arg; +} + + +/* This is needed also in insertion.c. */ + +enum insertion_type +get_base_type (type) + enum insertion_type type; +{ + enum insertion_type base_type; + switch (type) + { + case defivar: base_type = defcv; break; + case defmac: base_type = deffn; break; + case defmethod: base_type = defop; break; + case defopt: base_type = defvr; break; + case defspec: base_type = deffn; break; + case deftypefun: base_type = deftypefn; break; + case deftypeivar: base_type = deftypeivar; break; + case deftypemethod: base_type = deftypemethod; break; + case deftypeop: base_type = deftypeop; break; + case deftypevar: base_type = deftypevr; break; + case defun: base_type = deffn; break; + case defvar: base_type = defvr; break; + default: + base_type = type; + break; + } + + return base_type; +} + +/* Make the defun type insertion. + TYPE says which insertion this is. + X_P, if nonzero, says not to start a new insertion. */ +static void +defun_internal (type, x_p) + enum insertion_type type; + int x_p; +{ + enum insertion_type base_type; + char **defun_args, **scan_args; + char *category, *defined_name, *type_name, *type_name2; + + { + char *line; + + /* The @def.. line is the only place in Texinfo where you are + allowed to use unquoted braces that don't delimit arguments of + a command or a macro; in any other place it will trigger an + error message from the reader loop. The special handling of + this case inside `args_from_string' is an extra special hack + which allows this. The side effect is that if we try to expand + the rest of the line below, the recursive reader loop will + signal an error if there are brace-delimited arguments on that line. + + The best solution to this would be to change the syntax of + @def.. commands so that it doesn't violate Texinfo's own rules. + But it's probably too late for this now, as it will break a lot + of existing manuals. + + Unfortunately, this means that you can't call macros, use @value, etc. + inside @def.. commands, sigh. */ + get_rest_of_line (0, &line); + defun_args = (args_from_string (line)); + free (line); + } + + scan_args = defun_args; + + /* Get base type and category string. */ + base_type = get_base_type (type); + + /* xx all these const strings should be determined upon + documentlanguage argument and NOT via gettext (kama). */ + switch (type) + { + case defun: + case deftypefun: + category = _("Function"); + break; + case defmac: + category = _("Macro"); + break; + case defspec: + category = _("Special Form"); + break; + case defvar: + case deftypevar: + category = _("Variable"); + break; + case defopt: + category = _("User Option"); + break; + case defivar: + case deftypeivar: + category = _("Instance Variable"); + break; + case defmethod: + case deftypemethod: + category = _("Method"); + break; + default: + category = next_nonwhite_defun_arg (&scan_args); + break; + } + + /* The class name. */ + if ((base_type == deftypefn) + || (base_type == deftypevr) + || (base_type == defcv) + || (base_type == defop) + || (base_type == deftypeivar) + || (base_type == deftypemethod) + || (base_type == deftypeop) + ) + type_name = next_nonwhite_defun_arg (&scan_args); + + /* The type name for typed languages. */ + if (base_type == deftypemethod + || base_type == deftypeivar + || base_type == deftypeop + ) + type_name2 = next_nonwhite_defun_arg (&scan_args); + + /* The function or whatever that's actually being defined. */ + defined_name = next_nonwhite_defun_arg (&scan_args); + + /* This hack exists solely for the purposes of formatting the Texinfo + manual. I couldn't think of a better way. The token might be a + simple @@ followed immediately by more text. If this is the case, + then the next defun arg is part of this one, and we should + concatenate them. */ + if (*scan_args && **scan_args && !whitespace (**scan_args) + && STREQ (defined_name, "@@")) + { + char *tem = xmalloc (3 + strlen (scan_args[0])); + + sprintf (tem, "@@%s", scan_args[0]); + + free (scan_args[0]); + scan_args[0] = tem; + scan_args++; + defined_name = tem; + } + + if (!x_p) + begin_insertion (type); + + /* Write the definition header line. + This should start at the normal indentation. */ + current_indent -= default_indentation_increment; + start_paragraph (); + + if (html && !x_p) + /* Start the definition on new paragraph. */ + add_word ("<p>\n"); + + if (!html) + switch (base_type) + { + case deffn: + case defvr: + case deftp: + execute_string (" -- %s: %s", category, defined_name); + break; + case deftypefn: + case deftypevr: + execute_string (" -- %s: %s %s", category, type_name, defined_name); + break; + case defcv: + execute_string (" -- %s %s %s: %s", category, _("of"), type_name, + defined_name); + break; + case deftypeivar: + execute_string (" -- %s %s %s: %s %s", category, _("of"), type_name, + type_name2, defined_name); + break; + case defop: + execute_string (" -- %s %s %s: %s", category, _("on"), type_name, + defined_name); + break; + case deftypeop: + execute_string (" -- %s %s %s: %s %s", category, _("on"), type_name, + type_name2, defined_name); + break; + case deftypemethod: + execute_string (" -- %s %s %s: %s %s", category, _("on"), type_name, + type_name2, defined_name); + break; + } + + if (html) + { + /* If this is not a @def...x version, it could only + be a normal version @def.... So start the table here. */ + if (!x_p) + add_word ("<table width=\"100%\">\n"); + + /* If this is an @def...x there has to be an other @def... before + it, so this is only a new row within an existing table. With + two complete standalone tables the gap between them is too big. */ + add_word ("<tr>\n"); + add_word ("<td align=\"left\">"); + + switch (base_type) + { + case deffn: + case defvr: + case deftp: + /* <i> is for the following function arguments. */ + add_word_args ("<b>%s</b><i>", defined_name); + break; + case deftypefn: + case deftypevr: + add_word_args ("%s <b>%s</b><i>", type_name, defined_name); + break; + case defcv: + case defop: + add_word_args ("<b>%s</b><i>", defined_name); + break; + case deftypemethod: + case deftypeop: + case deftypeivar: + add_word_args ("%s <b>%s</b><i>", type_name2, defined_name); + break; + } + } /* if (html)... */ + + current_indent += default_indentation_increment; + + /* Now process the function arguments, if any. If these carry onto + the next line, they should be indented by two increments to + distinguish them from the body of the definition, which is indented + by one increment. */ + current_indent += default_indentation_increment; + + switch (base_type) + { + case deffn: + case defop: + process_defun_args (scan_args, 1); + break; + + /* Through Makeinfo 1.67 we processed remaining args only for deftp, + deftypefn, and deftypemethod. But the libc manual, for example, + needs to say: + @deftypevar {char *} tzname[2] + And simply allowing the extra text seems far simpler than trying + to invent yet more defn commands. In any case, we should either + output it or give an error, not silently ignore it. */ + default: + process_defun_args (scan_args, 0); + break; + } + + current_indent -= default_indentation_increment; + close_single_paragraph (); + + if (html) + { + /* xx The single words (on, off) used here, should depend on + documentlanguage and NOT on gettext --kama. */ + switch (base_type) + { + case deffn: + case defvr: + case deftp: + case deftypefn: + case deftypevr: + add_word ("</i>"); /* close italic area for arguments */ + /* put the rest into the second column */ + add_word_args ("</td>\n<td align=\"right\">%s", category); + break; + + case defcv: + add_word ("</td>\n<td align=\"right\">"); + add_word_args ("%s %s %s", category, _("of"), type_name); + break; + + case defop: + case deftypemethod: + case deftypeop: + add_word ("</i>"); + add_word ("</td>\n<td align=\"right\">"); + add_word_args ("%s %s %s", category, _("on"), type_name); + break; + + case deftypeivar: + add_word ("</i>"); + add_word ("</td>\n<td align=\"right\">"); + add_word_args ("%s %s %s", category, _("of"), type_name); + break; + } /* switch (base_type)... */ + + add_word ("</td>\n"); /* close second column */ + add_word ("</tr>\n"); /* close row */ + + /* This is needed because I have to know if the next line is + normal text or another @def..x. If text follows, create a new + table to get the indentation for the following text. + + This construction would fail if someone uses: + @deffn + @sp 2 + @deffnx + . + @end deffn + But we don't care. */ + if (!looking_at ("@def")) + { + add_word ("</table>\n"); + add_word ("<table width=\"95%\" align=\"center\">\n"); + add_word ("<tr><td>\n"); + } + + } /* if (html)... */ + + /* Make an entry in the appropriate index. */ + switch (base_type) + { + case deffn: + case deftypefn: + execute_string ("@findex %s\n", defined_name); + break; + case defvr: + case deftypevr: + case defcv: + execute_string ("@vindex %s\n", defined_name); + break; + case deftypeivar: + execute_string ("@vindex %s %s %s\n", defined_name, _("of"), type_name); + break; + case defop: + case deftypeop: + case deftypemethod: + execute_string ("@findex %s %s %s\n", defined_name, _("on"), type_name); + break; + case deftp: + execute_string ("@tindex %s\n", defined_name); + break; + } + + /* Deallocate the token list. */ + scan_args = defun_args; + while (1) + { + char * arg = (*scan_args++); + if (arg == NULL) + break; + free (arg); + } + free (defun_args); +} + +/* Add an entry for a function, macro, special form, variable, or option. + If the name of the calling command ends in `x', then this is an extra + entry included in the body of an insertion of the same type. */ +void +cm_defun () +{ + int x_p; + enum insertion_type type; + char *temp = xstrdup (command); + + x_p = (command[strlen (command) - 1] == 'x'); + + if (x_p) + temp[strlen (temp) - 1] = 0; + + type = find_type_from_name (temp); + free (temp); + + /* If we are adding to an already existing insertion, then make sure + that we are already in an insertion of type TYPE. */ + if (x_p && (!insertion_level || insertion_stack->insertion != type)) + { + line_error (_("Must be in `%s' insertion to use `%sx'"), + command, command); + discard_until ("\n"); + return; + } + + defun_internal (type, x_p); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/defun.h b/gnu/usr.bin/texinfo/makeinfo/defun.h new file mode 100644 index 00000000000..9ab64483a7e --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/defun.h @@ -0,0 +1,31 @@ +/* defun.h -- declaration for defuns. + $Id: defun.h,v 1.1.1.1 2000/02/09 01:25:10 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#ifndef DEFUN_H +#define DEFUN_H + +#include "insertion.h" + +extern enum insertion_type get_base_type (); +extern void cm_defun (); + +#endif /* !DEFUN_H */ + diff --git a/gnu/usr.bin/texinfo/makeinfo/files.c b/gnu/usr.bin/texinfo/makeinfo/files.c new file mode 100644 index 00000000000..6f2dcb2b8d6 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/files.c @@ -0,0 +1,529 @@ +/* files.c -- file-related functions for Texinfo. + $Id: files.c,v 1.1.1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "files.h" +#include "macro.h" +#include "makeinfo.h" + +FSTACK *filestack = NULL; + +static int node_filename_stack_index = 0; +static int node_filename_stack_size = 0; +static char **node_filename_stack = NULL; + + +/* Looking for include files. */ + +/* Given a string containing units of information separated by colons, + return the next one pointed to by INDEX, or NULL if there are no more. + Advance INDEX to the character after the colon. */ +static char * +extract_colon_unit (string, index) + char *string; + int *index; +{ + int start; + int path_sep_char = PATH_SEP[0]; + int i = *index; + + if (!string || (i >= strlen (string))) + return NULL; + + /* Each call to this routine leaves the index pointing at a colon if + there is more to the path. If i > 0, then increment past the + `:'. If i == 0, then the path has a leading colon. Trailing colons + are handled OK by the `else' part of the if statement; an empty + string is returned in that case. */ + if (i && string[i] == path_sep_char) + i++; + + start = i; + while (string[i] && string[i] != path_sep_char) i++; + *index = i; + + if (i == start) + { + if (string[i]) + (*index)++; + + /* Return "" in the case of a trailing `:'. */ + return xstrdup (""); + } + else + { + char *value; + + value = xmalloc (1 + (i - start)); + memcpy (value, &string[start], (i - start)); + value [i - start] = 0; + + return value; + } +} + +/* Return the full pathname for FILENAME by searching along PATH. + When found, return the stat () info for FILENAME in FINFO. + If PATH is NULL, only the current directory is searched. + If the file could not be found, return a NULL pointer. */ +static char * +get_file_info_in_path (filename, path, finfo) + char *filename, *path; + struct stat *finfo; +{ + char *dir; + int result, index = 0; + + if (path == NULL) + path = "."; + + /* Handle absolute pathnames. */ + if (IS_ABSOLUTE (filename) + || (*filename == '.' + && (IS_SLASH (filename[1]) + || (filename[1] == '.' && IS_SLASH (filename[2]))))) + { + if (stat (filename, finfo) == 0) + return xstrdup (filename); + else + return NULL; + } + + while ((dir = extract_colon_unit (path, &index))) + { + char *fullpath; + + if (!*dir) + { + free (dir); + dir = xstrdup ("."); + } + + fullpath = xmalloc (2 + strlen (dir) + strlen (filename)); + sprintf (fullpath, "%s/%s", dir, filename); + free (dir); + + result = stat (fullpath, finfo); + + if (result == 0) + return fullpath; + else + free (fullpath); + } + return NULL; +} + +/* Find and load the file named FILENAME. Return a pointer to + the loaded file, or NULL if it can't be loaded. */ +char * +find_and_load (filename) + char *filename; +{ + struct stat fileinfo; + long file_size; + int file = -1, count = 0; + char *fullpath, *result; +#if O_BINARY || defined (VMS) + int n; +#endif + + result = fullpath = NULL; + + fullpath = get_file_info_in_path (filename, include_files_path, &fileinfo); + + if (!fullpath) + goto error_exit; + + filename = fullpath; + file_size = (long) fileinfo.st_size; + + file = open (filename, O_RDONLY); + if (file < 0) + goto error_exit; + + /* Load the file, with enough room for a newline and a null. */ + result = xmalloc (file_size + 2); + + /* VMS stat lies about the st_size value. The actual number of + readable bytes is always less than this value. The arcane + mysteries of VMS/RMS are too much to probe, so this hack + suffices to make things work. */ +#if O_BINARY || defined (VMS) +#ifdef VMS + while ((n = read (file, result + count, file_size)) > 0) +#else /* !VMS */ +#ifndef WIN32 + while ((n = read (file, result + count, file_size)) > 0) +#else /* WIN32 */ + /* Does WIN32 really need reading 1 character at a time?? */ + while ((n = read (file, result + count, 1)) > 0) +#endif /* WIN32 */ +#endif /* !VMS */ + count += n; + if (0 < count && count < file_size) + result = xrealloc (result, count + 2); /* why waste the slack? */ + else if (n == -1) +#else /* !VMS && !O_BINARY */ + count = file_size; + if (read (file, result, file_size) != file_size) +#endif /* !VMS && !WIN32 */ + + error_exit: + { + if (result) + free (result); + + if (fullpath) + free (fullpath); + + if (file != -1) + close (file); + + return NULL; + } + close (file); + + /* Set the globals to the new file. */ + input_text = result; + input_text_length = count; + input_filename = fullpath; + node_filename = xstrdup (fullpath); + input_text_offset = 0; + line_number = 1; + /* Not strictly necessary. This magic prevents read_token () from doing + extra unnecessary work each time it is called (that is a lot of times). + INPUT_TEXT_LENGTH is one past the actual end of the text. */ + input_text[input_text_length] = '\n'; + /* This, on the other hand, is always necessary. */ + input_text[input_text_length+1] = 0; + return result; +} + +/* Pushing and popping files. */ +void +push_node_filename () +{ + if (node_filename_stack_index + 1 > node_filename_stack_size) + node_filename_stack = xrealloc + (node_filename_stack, (node_filename_stack_size += 10) * sizeof (char *)); + + node_filename_stack[node_filename_stack_index] = node_filename; + node_filename_stack_index++; +} + +void +pop_node_filename () +{ + node_filename = node_filename_stack[--node_filename_stack_index]; +} + +/* Save the state of the current input file. */ +void +pushfile () +{ + FSTACK *newstack = xmalloc (sizeof (FSTACK)); + newstack->filename = input_filename; + newstack->text = input_text; + newstack->size = input_text_length; + newstack->offset = input_text_offset; + newstack->line_number = line_number; + newstack->next = filestack; + + filestack = newstack; + push_node_filename (); +} + +/* Make the current file globals be what is on top of the file stack. */ +void +popfile () +{ + FSTACK *tos = filestack; + + if (!tos) + abort (); /* My fault. I wonder what I did? */ + + if (macro_expansion_output_stream) + { + maybe_write_itext (input_text, input_text_offset); + forget_itext (input_text); + } + + /* Pop the stack. */ + filestack = filestack->next; + + /* Make sure that commands with braces have been satisfied. */ + if (!executing_string && !me_executing_string) + discard_braces (); + + /* Get the top of the stack into the globals. */ + input_filename = tos->filename; + input_text = tos->text; + input_text_length = tos->size; + input_text_offset = tos->offset; + line_number = tos->line_number; + free (tos); + + /* Go back to the (now) current node. */ + pop_node_filename (); +} + +/* Flush all open files on the file stack. */ +void +flush_file_stack () +{ + while (filestack) + { + char *fname = input_filename; + char *text = input_text; + popfile (); + free (fname); + free (text); + } +} + +/* Return the index of the first character in the filename + which is past all the leading directory characters. */ +static int +skip_directory_part (filename) + char *filename; +{ + int i = strlen (filename) - 1; + + while (i && !IS_SLASH (filename[i])) + i--; + if (IS_SLASH (filename[i])) + i++; + else if (filename[i] && HAVE_DRIVE (filename)) + i = 2; + + return i; +} + +char * +filename_non_directory (name) + char *name; +{ + return xstrdup (name + skip_directory_part (name)); +} + +/* Return just the simple part of the filename; i.e. the + filename without the path information, or extensions. + This conses up a new string. */ +char * +filename_part (filename) + char *filename; +{ + char *basename = filename_non_directory (filename); + +#ifdef REMOVE_OUTPUT_EXTENSIONS + /* See if there is an extension to remove. If so, remove it. */ + { + char *temp; + + temp = strrchr (basename, '.'); + if (temp) + *temp = 0; + } +#endif /* REMOVE_OUTPUT_EXTENSIONS */ + return basename; +} + +/* Return the pathname part of filename. This can be NULL. */ +char * +pathname_part (filename) + char *filename; +{ + char *expand_filename (); + char *result = NULL; + int i; + + filename = expand_filename (filename, ""); + + i = skip_directory_part (filename); + if (i) + { + result = xmalloc (1 + i); + strncpy (result, filename, i); + result[i] = 0; + } + free (filename); + return result; +} + +/* Return the expansion of FILENAME. */ +char * +expand_filename (filename, input_name) + char *filename, *input_name; +{ + int i; + char *full_pathname (); + + if (filename) + { + filename = full_pathname (filename); + if (IS_ABSOLUTE (filename) + || (*filename == '.' && + (IS_SLASH (filename[1]) || + (filename[1] == '.' && IS_SLASH (filename[2]))))) + return filename; + } + else + { + filename = filename_non_directory (input_name); + + if (!*filename) + { + free (filename); + filename = xstrdup ("noname.texi"); + } + + for (i = strlen (filename) - 1; i; i--) + if (filename[i] == '.') + break; + + if (!i) + i = strlen (filename); + + if (i + 6 > (strlen (filename))) + filename = xrealloc (filename, i + 6); + strcpy (filename + i, html ? ".html" : ".info"); + return filename; + } + + if (IS_ABSOLUTE (input_name)) + { + /* Make it so that relative names work. */ + char *result; + + i = strlen (input_name) - 1; + + result = xmalloc (1 + strlen (input_name) + strlen (filename)); + strcpy (result, input_name); + + while (!IS_SLASH (result[i]) && i) + i--; + if (IS_SLASH (result[i])) + i++; + + strcpy (&result[i], filename); + free (filename); + return result; + } + return filename; +} + +/* Return the full path to FILENAME. */ +char * +full_pathname (filename) + char *filename; +{ + int initial_character; + char *result; + + /* No filename given? */ + if (!filename || !*filename) + return xstrdup (""); + + /* Already absolute? */ + if (IS_ABSOLUTE (filename) || + (*filename == '.' && + (IS_SLASH (filename[1]) || + (filename[1] == '.' && IS_SLASH (filename[2]))))) + return xstrdup (filename); + + initial_character = *filename; + if (initial_character != '~') + { + char *localdir = xmalloc (1025); +#ifdef HAVE_GETCWD + if (!getcwd (localdir, 1024)) +#else + if (!getwd (localdir)) +#endif + { + fprintf (stderr, _("%s: getwd: %s, %s\n"), + progname, filename, localdir); + xexit (1); + } + + strcat (localdir, "/"); + strcat (localdir, filename); + result = xstrdup (localdir); + free (localdir); + } + else + { /* Does anybody know why WIN32 doesn't want to support $HOME? + If the reason is they don't have getpwnam, they should + only disable the else clause below. */ +#ifndef WIN32 + if (IS_SLASH (filename[1])) + { + /* Return the concatenation of the environment variable HOME + and the rest of the string. */ + char *temp_home; + + temp_home = (char *) getenv ("HOME"); + result = xmalloc (strlen (&filename[1]) + + 1 + + temp_home ? strlen (temp_home) + : 0); + *result = 0; + + if (temp_home) + strcpy (result, temp_home); + + strcat (result, &filename[1]); + } + else + { + struct passwd *user_entry; + int i, c; + char *username = xmalloc (257); + + for (i = 1; (c = filename[i]); i++) + { + if (IS_SLASH (c)) + break; + else + username[i - 1] = c; + } + if (c) + username[i - 1] = 0; + + user_entry = getpwnam (username); + + if (!user_entry) + return xstrdup (filename); + + result = xmalloc (1 + strlen (user_entry->pw_dir) + + strlen (&filename[i])); + strcpy (result, user_entry->pw_dir); + strcat (result, &filename[i]); + } +#endif /* not WIN32 */ + } + return result; +} + +char * +output_name_from_input_name (name) + char *name; +{ + return expand_filename (NULL, name); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/files.h b/gnu/usr.bin/texinfo/makeinfo/files.h new file mode 100644 index 00000000000..6cae9e543e4 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/files.h @@ -0,0 +1,45 @@ +/* files.h -- declarations for files.c. + $Id: files.h,v 1.1.1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1998 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef FILES_H +#define FILES_H + +/* A stack of file information records. If a new file is read in with + "@input", we remember the old input file state on this stack. */ +typedef struct fstack +{ + struct fstack *next; + char *filename; + char *text; + int size; + int offset; + int line_number; +} FSTACK; +extern FSTACK *filestack; + +extern void pushfile (), popfile (); +extern void flush_file_stack (); +extern char *find_and_load (); +extern char *output_name_from_input_name (); +extern char *expand_filename (); +extern char *filename_part (); +extern char *pathname_part (); + +#endif /* !FILES_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/footnote.c b/gnu/usr.bin/texinfo/makeinfo/footnote.c new file mode 100644 index 00000000000..79a52e6996b --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/footnote.c @@ -0,0 +1,359 @@ +/* footnote.c -- footnotes for Texinfo. + $Id: footnote.c,v 1.1.1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "footnote.h" +#include "macro.h" +#include "makeinfo.h" + +/* Nonzero means that the footnote style for this document was set on + the command line, which overrides any other settings. */ +int footnote_style_preset = 0; + +/* The current footnote number in this node. Each time a new node is + started this is reset to 1. */ +int current_footnote_number = 1; + +/* Nonzero means we automatically number footnotes with no specified marker. */ +int number_footnotes = 1; + +/* Nonzero means we are currently outputting footnotes. */ +int already_outputting_pending_notes = 0; + + +/* Footnotes can be handled in one of two ways: + + separate_node: + Make them look like followed references, with the reference + destinations in a makeinfo manufactured node or, + end_node: + Make them appear at the bottom of the node that they originally + appeared in. */ + +#define separate_node 0 +#define end_node 1 + +int footnote_style = end_node; +int first_footnote_this_node = 1; +int footnote_count = 0; + +/* Set the footnote style based on the style identifier in STRING. */ +int +set_footnote_style (string) + char *string; +{ + if (strcasecmp (string, "separate") == 0) + footnote_style = separate_node; + else if (strcasecmp (string, "end") == 0) + footnote_style = end_node; + else + return -1; + + return 0; +} + +void +cm_footnotestyle () +{ + char *arg; + + get_rest_of_line (1, &arg); + + /* If set on command line, do not change the footnote style. */ + if (!footnote_style_preset && set_footnote_style (arg) != 0) + line_error (_("Bad argument to %c%s"), COMMAND_PREFIX, command); + + free (arg); +} + +typedef struct fn +{ + struct fn *next; + char *marker; + char *note; + int number; +} FN; + +FN *pending_notes = NULL; + +/* A method for remembering footnotes. Note that this list gets output + at the end of the current node. */ +void +remember_note (marker, note) + char *marker, *note; +{ + FN *temp = xmalloc (sizeof (FN)); + + temp->marker = xstrdup (marker); + temp->note = xstrdup (note); + temp->next = pending_notes; + temp->number = current_footnote_number; + pending_notes = temp; + footnote_count++; +} + +/* How to get rid of existing footnotes. */ +static void +free_pending_notes () +{ + FN *temp; + + while ((temp = pending_notes)) + { + free (temp->marker); + free (temp->note); + pending_notes = pending_notes->next; + free (temp); + } + first_footnote_this_node = 1; + footnote_count = 0; + current_footnote_number = 1; /* for html */ +} + +/* What to do when you see a @footnote construct. */ + + /* Handle a "footnote". + footnote *{this is a footnote} + where "*" is the (optional) marker character for this note. */ +void +cm_footnote () +{ + char *marker; + char *note; + + get_until ("{", &marker); + canon_white (marker); + + if (macro_expansion_output_stream && !executing_string) + append_to_expansion_output (input_text_offset + 1); /* include the { */ + + /* Read the argument in braces. */ + if (curchar () != '{') + { + line_error (_("`%c%s' needs an argument `{...}', not just `%s'"), + COMMAND_PREFIX, command, marker); + free (marker); + return; + } + else + { + int len; + int braces = 1; + int loc = ++input_text_offset; + + while (braces) + { + if (loc == input_text_length) + { + line_error (_("No closing brace for footnote `%s'"), marker); + return; + } + + if (input_text[loc] == '{') + braces++; + else if (input_text[loc] == '}') + braces--; + else if (input_text[loc] == '\n') + line_number++; + + loc++; + } + + len = (loc - input_text_offset) - 1; + note = xmalloc (len + 1); + memcpy (note, &input_text[input_text_offset], len); + note[len] = 0; + input_text_offset = loc; + } + + /* Must write the macro-expanded argument to the macro expansion + output stream. This is like the case in index_add_arg. */ + if (macro_expansion_output_stream && !executing_string) + { + /* Calling me_execute_string on a lone } provokes an error, since + as far as the reader knows there is no matching {. We wrote + the { above in the call to append_to_expansion_output. */ + me_execute_string_keep_state (note, "}"); + } + + if (!current_node || !*current_node) + { + line_error (_("Footnote defined without parent node")); + free (marker); + free (note); + return; + } + + if (!*marker) + { + free (marker); + + if (number_footnotes) + { + marker = xmalloc (10); + sprintf (marker, "%d", current_footnote_number); + } + else + marker = xstrdup ("*"); + } + + remember_note (marker, note); + + /* fixme: html: footnote processing needs work; we currently ignore + the style requested; we could clash with a node name of the form + `fn-<n>', though that's unlikely. */ + if (html) + add_word_args ("<a rel=footnote href=\"#fn-%d\"><sup>%s</sup></a>", + current_footnote_number, marker); + else + /* Your method should at least insert MARKER. */ + switch (footnote_style) + { + case separate_node: + add_word_args ("(%s)", marker); + execute_string (" (*note %s-Footnote-%d::)", + current_node, current_footnote_number); + if (first_footnote_this_node) + { + char *temp_string, *expanded_ref; + + temp_string = xmalloc (strlen (current_node) + + strlen ("-Footnotes") + 1); + + strcpy (temp_string, current_node); + strcat (temp_string, "-Footnotes"); + expanded_ref = expansion (temp_string, 0); + remember_node_reference (expanded_ref, line_number, + followed_reference); + free (temp_string); + free (expanded_ref); + first_footnote_this_node = 0; + } + break; + + case end_node: + add_word_args ("(%s)", marker); + break; + + default: + break; + } + current_footnote_number++; + + free (marker); + free (note); +} + +/* Output the footnotes. We are at the end of the current node. */ +void +output_pending_notes () +{ + FN *footnote = pending_notes; + + if (!pending_notes) + return; + + if (html) + { /* The type= attribute is used just in case some weirdo browser + out there doesn't use numbers by default. Since we rely on the + browser to produce the footnote numbers, we need to make sure + they ARE indeed numbers. Pre-HTML4 browsers seem to not care. */ + add_word ("<hr><h4>"); + add_word (_("Footnotes")); + add_word ("</h4>\n<ol type=\"1\">\n"); + } + else + switch (footnote_style) + { + case separate_node: + { + char *old_current_node = current_node; + char *old_command = xstrdup (command); + + already_outputting_pending_notes++; + execute_string ("%cnode %s-Footnotes,,,%s\n", + COMMAND_PREFIX, current_node, current_node); + already_outputting_pending_notes--; + current_node = old_current_node; + free (command); + command = old_command; + } + break; + + case end_node: + close_paragraph (); + in_fixed_width_font++; + /* This string should be translated according to the + @documentlanguage, not the current LANG. We can't do that + yet, so leave it in English. */ + execute_string ("---------- Footnotes ----------\n\n"); + in_fixed_width_font--; + break; + } + + /* Handle the footnotes in reverse order. */ + { + FN **array = xmalloc ((footnote_count + 1) * sizeof (FN *)); + array[footnote_count] = NULL; + + while (--footnote_count > -1) + { + array[footnote_count] = footnote; + footnote = footnote->next; + } + + filling_enabled = 1; + indented_fill = 1; + + while ((footnote = array[++footnote_count])) + { + if (html) + { + /* Make the text of every footnote begin a separate paragraph. */ + add_word_args ("<li><a name=\"fn-%d\"></a>\n<p>", + footnote->number); + execute_string ("%s", footnote->note); + add_word ("</p>\n"); + } + else + { + char *old_current_node = current_node; + char *old_command = xstrdup (command); + + already_outputting_pending_notes++; + execute_string ("%canchor{%s-Footnote-%d}(%s) %s", + COMMAND_PREFIX, current_node, footnote->number, + footnote->marker, footnote->note); + already_outputting_pending_notes--; + current_node = old_current_node; + free (command); + command = old_command; + } + + close_paragraph (); + } + + if (html) + add_word ("</ol><hr>"); + close_paragraph (); + free (array); + } + + free_pending_notes (); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/footnote.h b/gnu/usr.bin/texinfo/makeinfo/footnote.h new file mode 100644 index 00000000000..b5edb509ade --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/footnote.h @@ -0,0 +1,37 @@ +/* footnote.h -- declarations for footnote.c. + $Id: footnote.h,v 1.1.1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1998 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef FOOTNOTE_H +#define FOOTNOTE_H + +extern int footnote_style_preset; +extern int current_footnote_number; +extern int number_footnotes; +extern int already_outputting_pending_notes; + +/* The Texinfo @commands. */ +extern void cm_footnote (); +extern void cm_footnotestyle (); + +extern int set_footnote_style (); /* called for -s option */ + +extern void output_pending_notes (); /* called for output */ + +#endif /* !FOOTNOTE_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/html.c b/gnu/usr.bin/texinfo/makeinfo/html.c new file mode 100644 index 00000000000..931327a7ed7 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/html.c @@ -0,0 +1,182 @@ +/* html.c -- html-related utilities. + $Id: html.c,v 1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "cmds.h" +#include "html.h" +#include "lang.h" +#include "makeinfo.h" +#include "sectioning.h" + +/* See html.h. */ +int html_output_head_p = 0; + +void +html_output_head () +{ + char *html_title; + + if (html_output_head_p) + return; + html_output_head_p = 1; + + /* The <title> should not have markup. */ + html_title = title ? text_expansion (title) : _("Untitled"); + + add_word_args ("<html lang=\"%s\"><head>\n<title>%s</title>\n", + language_table[language_code].abbrev, html_title); + + add_word ("<meta http-equiv=\"Content-Type\" content=\"text/html"); + if (document_encoding) + add_word_args ("; charset=%s", document_encoding); + add_word ("\">\n"); + + add_word_args ("<meta name=description content=\"%s\">\n", html_title); + add_word_args ("<meta name=generator content=\"makeinfo %s\">\n", VERSION); + add_word ("<link href=\"http://texinfo.org/\" rel=generator-home>\n"); + add_word ("</head><body>\n\n"); +} + + +/* Escape HTML special characters in the string if necessary, + returning a pointer to a possibly newly-allocated one. */ +char * +escape_string (string) + char * string; +{ + int i=0, newlen=0; + char * newstring; + + do + { + /* Find how much to allocate. */ + switch (string[i]) + { + case '&': + newlen += 5; /* `&' */ + break; + case '<': + case '>': + newlen += 4; /* `<', `>' */ + break; + default: + newlen++; + } + i++; + } + while (string[i]); + + if (newlen == i) return string; /* Already OK. */ + + newstring = xmalloc (newlen + 2); + i = 0; + do + { + switch (string[i]) + { + case '&': + strcpy (newstring, "&"); + newstring += 5; + break; + case '<': + strcpy (newstring, "<"); + newstring += 4; + break; + case '>': + strcpy (newstring, ">"); + newstring += 4; + break; + default: + newstring[0] = string[i]; + newstring++; + } + } + while (string[i++]); + free (string); + return newstring - newlen -1; +} + +/* Open or close TAG according to START_OR_END. */ +void +insert_html_tag (start_or_end, tag) + int start_or_end; + char *tag; +{ + if (!paragraph_is_open && (start_or_end == START)) + { + /* Need to compensate for the <p> we are about to insert, or + else cm_xxx functions that call us will get wrong text + between START and END. */ + adjust_braces_following (output_paragraph_offset, 3); + add_word ("<p>"); + } + add_char ('<'); + if (start_or_end != START) + add_char ('/'); + add_word (tag); + add_char ('>'); +} + +/* Output an HTML <link> to the filename for NODE, including the + other string as extra attributes. */ +void +add_link (node, attributes) + char *node, *attributes; +{ + if (node) + { + add_word_args ("<link %s href=\"", attributes); + add_anchor_name (node, 1); + add_word ("\">\n"); + } +} + +/* Output NAME with characters escaped as appropriate for an anchor + name, i.e., escape URL special characters as %<n>. */ +void +add_escaped_anchor_name (name) + char *name; +{ + for (; *name; name++) + { + if (*name == '&') + add_word ("&"); + else if (! URL_SAFE_CHAR (*name)) + /* Cast so characters with the high bit set are treated as >128, + for example o-umlaut should be 246, not -10. */ + add_word_args ("%%%x", (unsigned char) *name); + else + add_char (*name); + } +} + +/* Insert the text for the name of a reference in an HTML anchor + appropriate for NODENAME. If HREF is nonzero, it will be + appropriate for a href= attribute, rather than name= i.e., including + the `#' if it's an internal reference. */ +void +add_anchor_name (nodename, href) + char *nodename; + int href; +{ + if (href) + add_char ('#'); + + add_escaped_anchor_name (nodename); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/html.h b/gnu/usr.bin/texinfo/makeinfo/html.h new file mode 100644 index 00000000000..54305b82082 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/html.h @@ -0,0 +1,44 @@ +/* html.h -- declarations for html-related utilities. + $Id: html.h,v 1.1.1.1 2000/02/09 01:25:11 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef HTML_H +#define HTML_H + +/* Nonzero if we have output the <head>. */ +extern int html_output_head_p; + +/* Perform the <head> output. */ +extern void html_output_head (); + +/* Escape &<>. */ +extern char *escape_string (/* char * */); + +/* Open or close TAG according to START_OR_END. */ +extern void insert_html_tag (/* int start_or_end, char *tag */); + +/* Output HTML <link> to NODE, plus extra ATTRIBUTES. */ +extern void add_link (/* char *node, char *attributes */); + +/* Escape URL-special characters as %xy. */ +extern void add_escaped_anchor_name (/* char *name */); + +/* See html.c. */ +extern void add_anchor_name (/* nodename, href */); + +#endif /* !HTML_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/index.c b/gnu/usr.bin/texinfo/makeinfo/index.c new file mode 100644 index 00000000000..72442efa1ef --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/index.c @@ -0,0 +1,823 @@ +/* index.c -- indexing for Texinfo. + $Id: index.c,v 1.1.1.1 2000/02/09 01:25:16 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "index.h" +#include "lang.h" +#include "macro.h" +#include "toc.h" + +/* An index element... */ +typedef struct index_elt +{ + struct index_elt *next; + char *entry; /* The index entry itself, after expansion. */ + char *entry_text; /* The original, non-expanded entry text. */ + char *node; /* The node from whence it came. */ + int code; /* Nonzero means add `@code{...}' when + printing this element. */ + int defining_line; /* Line number where this entry was written. */ + char *defining_file; /* Source file for defining_line. */ +} INDEX_ELT; + + +/* A list of short-names for each index. + There are two indices into the the_indices array. + * read_index is the index that points to the list of index + entries that we will find if we ask for the list of entries for + this name. + * write_index is the index that points to the list of index entries + that we will add new entries to. + + Initially, read_index and write_index are the same, but the + @syncodeindex and @synindex commands can change the list we add + entries to. + + For example, after the commands + @cindex foo + @defindex ii + @synindex cp ii + @cindex bar + + the cp index will contain the entry `foo', and the new ii + index will contain the entry `bar'. This is consistent with the + way texinfo.tex handles the same situation. + + In addition, for each index, it is remembered whether that index is + a code index or not. Code indices have @code{} inserted around the + first word when they are printed with printindex. */ +typedef struct +{ + char *name; + int read_index; /* index entries for `name' */ + int write_index; /* store index entries here, @synindex can change it */ + int code; +} INDEX_ALIST; + +INDEX_ALIST **name_index_alist = NULL; + +/* An array of pointers. Each one is for a different index. The + "synindex" command changes which array slot is pointed to by a + given "index". */ +INDEX_ELT **the_indices = NULL; + +/* The number of defined indices. */ +int defined_indices = 0; + +/* Stuff for defining commands on the fly. */ +COMMAND **user_command_array = NULL; +int user_command_array_len = 0; + +/* How to compare index entries for sorting. May be set to strcoll. */ +int (*index_compare_fn) () = strcasecmp; + +/* Find which element in the known list of indices has this name. + Returns -1 if NAME isn't found. */ +static int +find_index_offset (name) + char *name; +{ + int i; + for (i = 0; i < defined_indices; i++) + if (name_index_alist[i] && STREQ (name, name_index_alist[i]->name)) + return i; + return -1; +} + +/* Return a pointer to the entry of (name . index) for this name. + Return NULL if the index doesn't exist. */ +INDEX_ALIST * +find_index (name) + char *name; +{ + int offset = find_index_offset (name); + if (offset > -1) + return name_index_alist[offset]; + else + return NULL; +} + +/* User-defined commands, which happens only from user-defined indexes. + Used to initialize the builtin indices, too. */ +void +define_user_command (name, proc, needs_braces_p) + char *name; + COMMAND_FUNCTION *proc; + int needs_braces_p; +{ + int slot = user_command_array_len; + user_command_array_len++; + + if (!user_command_array) + user_command_array = xmalloc (1 * sizeof (COMMAND *)); + + user_command_array = xrealloc (user_command_array, + (1 + user_command_array_len) * sizeof (COMMAND *)); + + user_command_array[slot] = xmalloc (sizeof (COMMAND)); + user_command_array[slot]->name = xstrdup (name); + user_command_array[slot]->proc = proc; + user_command_array[slot]->argument_in_braces = needs_braces_p; +} + +/* Please release me, let me go... */ +static void +free_index (index) + INDEX_ELT *index; +{ + INDEX_ELT *temp; + + while ((temp = index)) + { + free (temp->entry); + free (temp->entry_text); + /* Do not free the node, because we already freed the tag table, + which freed all the node names. */ + /* free (temp->node); */ + index = index->next; + free (temp); + } +} + +/* Flush an index by name. This will delete the list of entries that + would be written by a @printindex command for this index. */ +static void +undefindex (name) + char *name; +{ + int i; + int which = find_index_offset (name); + + /* The index might have already been freed if this was the target of + an @synindex. */ + if (which < 0 || !name_index_alist[which]) + return; + + i = name_index_alist[which]->read_index; + + free_index (the_indices[i]); + the_indices[i] = NULL; + + free (name_index_alist[which]->name); + free (name_index_alist[which]); + name_index_alist[which] = NULL; +} + +/* Add the arguments to the current index command to the index NAME. + html fixxme generate specific html anchor */ +static void +index_add_arg (name) + char *name; +{ + int which; + char *index_entry; + INDEX_ALIST *tem; + + tem = find_index (name); + + which = tem ? tem->write_index : -1; + + if (macro_expansion_output_stream && !executing_string) + append_to_expansion_output (input_text_offset + 1); + + get_rest_of_line (0, &index_entry); + ignore_blank_line (); + + if (macro_expansion_output_stream && !executing_string) + { + char *index_line = xmalloc (strlen (index_entry) + 2); + sprintf (index_line, "%s\n", index_entry); + me_execute_string_keep_state (index_line, NULL); + free (index_line); + } + + if (which < 0) + { + line_error (_("Unknown index `%s'"), name); + free (index_entry); + } + else + { + INDEX_ELT *new = xmalloc (sizeof (INDEX_ELT)); + new->next = the_indices[which]; + new->entry_text = index_entry; + new->entry = NULL; + new->node = current_node ? current_node : xstrdup (""); + new->code = tem->code; + new->defining_line = line_number - 1; + /* We need to make a copy since input_filename may point to + something that goes away, for example, inside a macro. + (see the findexerr test). */ + new->defining_file = xstrdup (input_filename); + the_indices[which] = new; + } +} + +/* The function which user defined index commands call. */ +static void +gen_index () +{ + char *name = xstrdup (command); + if (strlen (name) >= strlen ("index")) + name[strlen (name) - strlen ("index")] = 0; + index_add_arg (name); + free (name); +} + +/* Define an index known as NAME. We assign the slot number. + If CODE is nonzero, make this a code index. */ +static void +defindex (name, code) + char *name; + int code; +{ + int i, slot; + + /* If it already exists, flush it. */ + undefindex (name); + + /* Try to find an empty slot. */ + slot = -1; + for (i = 0; i < defined_indices; i++) + if (!name_index_alist[i]) + { + slot = i; + break; + } + + if (slot < 0) + { /* No such luck. Make space for another index. */ + slot = defined_indices; + defined_indices++; + + name_index_alist = (INDEX_ALIST **) + xrealloc (name_index_alist, (1 + defined_indices) + * sizeof (INDEX_ALIST *)); + the_indices = (INDEX_ELT **) + xrealloc (the_indices, (1 + defined_indices) * sizeof (INDEX_ELT *)); + } + + /* We have a slot. Start assigning. */ + name_index_alist[slot] = xmalloc (sizeof (INDEX_ALIST)); + name_index_alist[slot]->name = xstrdup (name); + name_index_alist[slot]->read_index = slot; + name_index_alist[slot]->write_index = slot; + name_index_alist[slot]->code = code; + + the_indices[slot] = NULL; +} + +/* Define an index NAME, implicitly @code if CODE is nonzero. */ +static void +top_defindex (name, code) + char *name; + int code; +{ + char *temp; + + temp = xmalloc (1 + strlen (name) + strlen ("index")); + sprintf (temp, "%sindex", name); + define_user_command (temp, gen_index, 0); + defindex (name, code); + free (temp); +} + +/* Set up predefined indices. */ +void +init_indices () +{ + int i; + + /* Create the default data structures. */ + + /* Initialize data space. */ + if (!the_indices) + { + the_indices = xmalloc ((1 + defined_indices) * sizeof (INDEX_ELT *)); + the_indices[defined_indices] = NULL; + + name_index_alist = xmalloc ((1 + defined_indices) + * sizeof (INDEX_ALIST *)); + name_index_alist[defined_indices] = NULL; + } + + /* If there were existing indices, get rid of them now. */ + for (i = 0; i < defined_indices; i++) + { + undefindex (name_index_alist[i]->name); + if (name_index_alist[i]) + { /* Suppose we're called with two input files, and the first + does a @synindex pg cp. Then, when we get here to start + the second file, the "pg" element won't get freed by + undefindex (because it's pointing to "cp"). So free it + here; otherwise, when we try to define the pg index again + just below, it will still point to cp. */ + free (name_index_alist[i]->name); + free (name_index_alist[i]); + name_index_alist[i] = NULL; + } + } + + /* Add the default indices. */ + top_defindex ("cp", 0); /* cp is the only non-code index. */ + top_defindex ("fn", 1); + top_defindex ("ky", 1); + top_defindex ("pg", 1); + top_defindex ("tp", 1); + top_defindex ("vr", 1); +} + +/* Given an index name, return the offset in the_indices of this index, + or -1 if there is no such index. */ +int +translate_index (name) + char *name; +{ + INDEX_ALIST *which = find_index (name); + + if (which) + return which->read_index; + else + return -1; +} + +/* Return the index list which belongs to NAME. */ +INDEX_ELT * +index_list (name) + char *name; +{ + int which = translate_index (name); + if (which < 0) + return (INDEX_ELT *) -1; + else + return the_indices[which]; +} + +/* Define a new index command. Arg is name of index. */ +static void +gen_defindex (code) + int code; +{ + char *name; + get_rest_of_line (0, &name); + + if (find_index (name)) + { + line_error (_("Index `%s' already exists"), name); + } + else + { + char *temp = xmalloc (strlen (name) + sizeof ("index")); + sprintf (temp, "%sindex", name); + define_user_command (temp, gen_index, 0); + defindex (name, code); + free (temp); + } + + free (name); +} + +void +cm_defindex () +{ + gen_defindex (0); +} + +void +cm_defcodeindex () +{ + gen_defindex (1); +} + +/* Expects 2 args, on the same line. Both are index abbreviations. + Make the first one be a synonym for the second one, i.e. make the + first one have the same index as the second one. */ +void +cm_synindex () +{ + int source, target; + char *abbrev1, *abbrev2; + + skip_whitespace (); + get_until_in_line (0, " ", &abbrev1); + target = find_index_offset (abbrev1); + skip_whitespace (); + get_until_in_line (0, " ", &abbrev2); + source = find_index_offset (abbrev2); + if (source < 0 || target < 0) + { + line_error (_("Unknown index `%s' and/or `%s' in @synindex"), + abbrev1, abbrev2); + } + else + { + name_index_alist[target]->write_index + = name_index_alist[source]->write_index; + } + + free (abbrev1); + free (abbrev2); +} + +void +cm_pindex () /* Pinhead index. */ +{ + index_add_arg ("pg"); +} + +void +cm_vindex () /* Variable index. */ +{ + index_add_arg ("vr"); +} + +void +cm_kindex () /* Key index. */ +{ + index_add_arg ("ky"); +} + +void +cm_cindex () /* Concept index. */ +{ + index_add_arg ("cp"); +} + +void +cm_findex () /* Function index. */ +{ + index_add_arg ("fn"); +} + +void +cm_tindex () /* Data Type index. */ +{ + index_add_arg ("tp"); +} + +int +index_element_compare (element1, element2) + INDEX_ELT **element1, **element2; +{ + return index_compare_fn ((*element1)->entry, (*element2)->entry); +} + +/* Force all index entries to be unique. */ +void +make_index_entries_unique (array, count) + INDEX_ELT **array; + int count; +{ + int i, j; + INDEX_ELT **copy; + int counter = 1; + + copy = xmalloc ((1 + count) * sizeof (INDEX_ELT *)); + + for (i = 0, j = 0; i < count; i++) + { + if (i == (count - 1) + || array[i]->node != array[i + 1]->node + || !STREQ (array[i]->entry, array[i + 1]->entry)) + copy[j++] = array[i]; + else + { + free (array[i]->entry); + free (array[i]->entry_text); + free (array[i]); + } + } + copy[j] = NULL; + + /* Now COPY contains only unique entries. Duplicated entries in the + original array have been freed. Replace the current array with + the copy, fixing the NEXT pointers. */ + for (i = 0; copy[i]; i++) + { + copy[i]->next = copy[i + 1]; + + /* Fix entry names which are the same. They point to different nodes, + so we make the entry name unique. */ + if (copy[i+1] + && STREQ (copy[i]->entry, copy[i + 1]->entry) + && !html) + { + char *new_entry_name; + + new_entry_name = xmalloc (10 + strlen (copy[i]->entry)); + sprintf (new_entry_name, "%s <%d>", copy[i]->entry, counter); + free (copy[i]->entry); + copy[i]->entry = new_entry_name; + counter++; + } + else + counter = 1; + + array[i] = copy[i]; + } + array[i] = NULL; + + /* Free the storage used only by COPY. */ + free (copy); +} + +/* Sort the index passed in INDEX, returning an array of + pointers to elements. The array is terminated with a NULL + pointer. We call qsort because it's supposed to be fast. + I think this looks bad. */ +INDEX_ELT ** +sort_index (index) + INDEX_ELT *index; +{ + INDEX_ELT **array; + INDEX_ELT *temp = index; + int count = 0; + int save_line_number = line_number; + char *save_input_filename = input_filename; + int save_html = html; + + /* Pretend we are in non-HTML mode, for the purpose of getting the + expanded index entry that lacks any markup and other HTML escape + characters which could produce a wrong sort order. */ + /* fixme: html: this still causes some markup, such as non-ASCII + characters @AE{} etc., to sort incorrectly. */ + html = 0; + + while (temp) + { + count++; + temp = temp->next; + } + + /* We have the length. Make an array. */ + + array = xmalloc ((count + 1) * sizeof (INDEX_ELT *)); + count = 0; + temp = index; + + while (temp) + { + array[count++] = temp; + + /* Set line number and input filename to the source line for this + index entry, as this expansion finds any errors. */ + line_number = array[count - 1]->defining_line; + input_filename = array[count - 1]->defining_file; + + /* If this particular entry should be printed as a "code" index, + then expand it as @code{entry}, i.e. as in fixed-width font. */ + array[count-1]->entry = expansion (temp->entry_text, + array[count-1]->code); + + temp = temp->next; + } + array[count] = NULL; /* terminate the array. */ + line_number = save_line_number; + input_filename = save_input_filename; + html = save_html; + +#ifdef HAVE_STRCOLL + /* This is not perfect. We should set (then restore) the locale to the + documentlanguage, so strcoll operates according to the document's + locale, not the user's. For now, I'm just going to assume that + those few new documents which use @documentlanguage will be + processed in the appropriate locale. In any case, don't use + strcoll in the C (aka POSIX) locale, that is the ASCII ordering. */ + if (language_code != en) + { + char *lang_env = getenv ("LANG"); + if (lang_env && !STREQ (lang_env, "C") && !STREQ (lang_env, "POSIX")) + index_compare_fn = strcoll; + } +#endif /* HAVE_STRCOLL */ + + /* Sort the array. */ + qsort (array, count, sizeof (INDEX_ELT *), index_element_compare); + make_index_entries_unique (array, count); + return array; +} + +/* Nonzero means that we are in the middle of printing an index. */ +int printing_index = 0; + +/* Takes one arg, a short name of an index to print. + Outputs a menu of the sorted elements of the index. */ +void +cm_printindex () +{ + int item; + INDEX_ELT *index; + INDEX_ELT *last_index = 0; + INDEX_ELT **array; + char *index_name; + unsigned line_length; + char *line; + int saved_inhibit_paragraph_indentation = inhibit_paragraph_indentation; + int saved_filling_enabled = filling_enabled; + int saved_line_number = line_number; + char *saved_input_filename = input_filename; + + close_paragraph (); + get_rest_of_line (0, &index_name); + + index = index_list (index_name); + if (index == (INDEX_ELT *)-1) + { + line_error (_("Unknown index `%s' in @printindex"), index_name); + free (index_name); + return; + } + + /* Do this before sorting, so execute_string in index_element_compare + will give the same results as when we actually print. */ + printing_index = 1; + filling_enabled = 0; + inhibit_paragraph_indentation = 1; + array = sort_index (index); + + close_paragraph (); + if (html) + add_word ("<ul compact>"); + else if (!no_headers) + add_word ("* Menu:\n\n"); + + me_inhibit_expansion++; + + /* This will probably be enough. */ + line_length = 100; + line = xmalloc (line_length); + + for (item = 0; (index = array[item]); item++) + { + /* A pathological document might have an index entry outside of any + node. Don't crash; try using the section name instead. */ + char *index_node = index->node; + + line_number = index->defining_line; + input_filename = index->defining_file; + + if ((!index_node || !*index_node) && html) + index_node = toc_find_section_of_node (index_node); + + if (!index_node || !*index_node) + { + line_error (_("Entry for index `%s' outside of any node"), + index_name); + if (html || !no_headers) + index_node = _("(outside of any node)"); + } + + if (html) + /* fixme: html: we should use specific index anchors pointing + to the actual location of the indexed position (but then we + have to find something to wrap the anchor around). */ + { + if (last_index + && STREQ (last_index->entry_text, index->entry_text)) + add_word (", "); /* Don't repeat the previous entry. */ + else + { + /* In the HTML case, the expanded index entry is not + good for us, since it was expanded for non-HTML mode + inside sort_index. So we need to HTML-escape and + expand the original entry text here. */ + char *escaped_entry = xstrdup (index->entry_text); + char *expanded_entry; + + /* expansion() doesn't HTML-escape the argument, so need + to do it separately. */ + escaped_entry = escape_string (escaped_entry); + expanded_entry = expansion (escaped_entry, index->code); + add_word_args ("\n<li>%s: ", expanded_entry); + free (escaped_entry); + free (expanded_entry); + } + add_word ("<a href=\""); + if (index->node && *index->node) + { + /* Make sure any non-macros in the node name are expanded. */ + in_fixed_width_font++; + index_node = expansion (index_node, 0); + in_fixed_width_font--; + add_anchor_name (index_node, 1); + add_word_args ("\">%s</a>", index_node); + free (index_node); + } + else if (STREQ (index_node, _("(outside of any node)"))) + { + add_anchor_name (index_node, 1); + add_word_args ("\">%s</a>", index_node); + } + else + /* If we use the section instead of the (missing) node, then + index_node already includes all we need except the #. */ + add_word_args ("#%s</a>", index_node); + } + else + { + unsigned new_length = strlen (index->entry); + + if (new_length < 50) /* minimum length used below */ + new_length = 50; + new_length += strlen (index_node) + 7; /* * : .\n\0 */ + + if (new_length > line_length) + { + line_length = new_length; + line = xrealloc (line, line_length); + } + /* Print the entry, nicely formatted. We've already + expanded any commands in index->entry, including any + implicit @code. Thus, can't call execute_string, since + @@ has turned into @. */ + if (!no_headers) + { + sprintf (line, "* %-37s ", index->entry); + line[2 + strlen (index->entry)] = ':'; + insert_string (line); + /* Make sure any non-macros in the node name are expanded. */ + in_fixed_width_font++; + execute_string ("%s.\n", index_node); + in_fixed_width_font--; + } + else + { + /* With --no-headers, the @node lines are gone, so + there's little sense in referring to them in the + index. Instead, output the number or name of the + section that corresponds to that node. */ + char *section_name = toc_find_section_of_node (index_node); + + sprintf (line, "%-*s ", number_sections ? 50 : 1, index->entry); + line[strlen (index->entry)] = ':'; + insert_string (line); + if (section_name) + { + int idx = 0; + unsigned ref_len = strlen (section_name) + 30; + + if (ref_len > line_length) + { + line_length = ref_len; + line = xrealloc (line, line_length); + } + + if (number_sections) + { + while (section_name[idx] + && (isdigit (section_name[idx]) + || (idx && section_name[idx] == '.'))) + idx++; + } + if (idx) + sprintf (line, " See %.*s.\n", idx, section_name); + else + sprintf (line, "\n See ``%s''.\n", section_name); + insert_string (line); + } + else + { + insert_string (" "); /* force a blank */ + execute_string ("See node %s.\n", index_node); + } + } + } + + /* Prevent `output_paragraph' from growing to the size of the + whole index. */ + flush_output (); + last_index = index; + } + + free (line); + free (index_name); + + me_inhibit_expansion--; + + printing_index = 0; + free (array); + close_single_paragraph (); + filling_enabled = saved_filling_enabled; + inhibit_paragraph_indentation = saved_inhibit_paragraph_indentation; + input_filename = saved_input_filename; + line_number = saved_line_number; + + if (html) + add_word ("</ul>"); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/index.h b/gnu/usr.bin/texinfo/makeinfo/index.h new file mode 100644 index 00000000000..0d155125310 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/index.h @@ -0,0 +1,36 @@ +/* index.h -- declarations for index.c. + $Id: index.h,v 1.1.1.1 2000/02/09 01:25:16 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef INDEX_H +#define INDEX_H + +#include "makeinfo.h" +#include "cmds.h" + +/* User commands are only new indices. (Macros are handled separately.) */ +extern COMMAND **user_command_array; +extern int user_command_array_len; + +/* Initialize all indices. */ +extern void init_indices (); + +/* Function to compare index entries for sorting. */ +extern int (*index_compare_fn) (); + +#endif /* !INDEX_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/insertion.c b/gnu/usr.bin/texinfo/makeinfo/insertion.c new file mode 100644 index 00000000000..218b892ffa7 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/insertion.c @@ -0,0 +1,1368 @@ +/* insertion.c -- insertions for Texinfo. + $Id: insertion.c,v 1.1 2000/02/09 01:25:19 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "cmds.h" +#include "defun.h" +#include "insertion.h" +#include "macro.h" +#include "makeinfo.h" + +/* Must match list in insertion.h. */ +static char *insertion_type_names[] = +{ + "cartouche", "defcv", "deffn", "defivar", "defmac", "defmethod", + "defop", "defopt", "defspec", "deftp", "deftypefn", "deftypefun", + "deftypeivar", "deftypemethod", "deftypeop", "deftypevar", + "deftypevr", "defun", "defvar", "defvr", "detailmenu", "direntry", + "display", "enumerate", "example", "flushleft", "flushright", + "format", "ftable", "group", "ifclear", "ifhtml", "ifinfo", + "ifnothtml", "ifnotinfo", "ifnottex", "ifset", "iftex", "itemize", + "lisp", "menu", "multitable", "quotation", "rawhtml", "rawtex", + "smalldisplay", "smallexample", "smallformat", "smalllisp", "table", + "tex", "vtable", "bad_type" +}; + +/* All nested environments. */ +INSERTION_ELT *insertion_stack = NULL; + +/* How deeply we're nested. */ +int insertion_level = 0; + +/* Whether to examine menu lines. */ +int in_menu = 0; + +/* How to examine menu lines. */ +int in_detailmenu = 0; + +/* Set to 1 if we've processed (commentary) text in a @menu that + wasn't part of a menu item. */ +int had_menu_commentary; + +/* Set to 1 if <p> is written in normal context. + Used for menu and itemize. */ +int in_paragraph = 0; + +static const char dl_tag[] = "<dl>\n"; + +void +init_insertion_stack () +{ + insertion_stack = NULL; +} + +/* Return the type of the current insertion. */ +static enum insertion_type +current_insertion_type () +{ + return insertion_level ? insertion_stack->insertion : bad_type; +} + +/* Return the string which is the function to wrap around items, or NULL + if we're not in an environment where @item is ok. */ +static char * +current_item_function () +{ + int done = 0; + INSERTION_ELT *elt = insertion_stack; + + /* Skip down through the stack until we find an insertion with an + itemize function defined, i.e., skip conditionals, @cartouche, etc. */ + while (!done && elt) + { + switch (elt->insertion) + { + /* This list should match the one in cm_item. */ + case ifclear: + case ifhtml: + case ifinfo: + case ifnothtml: + case ifnotinfo: + case ifnottex: + case ifset: + case iftex: + case rawhtml: + case rawtex: + case tex: + case cartouche: + elt = elt->next; + break; + + default: + done = 1; + } + } + + /* item_function usually gets assigned the empty string. */ + return done && (*elt->item_function) ? elt->item_function : NULL; +} + +/* Parse the item marker function off the input. If result is just "@", + change it to "@ ", since "@" by itself is not a command. This makes + "@ ", "@\t", and "@\n" all the same, but their default meanings are + the same anyway, and let's not worry about supporting redefining them. */ +char * +get_item_function () +{ + char *item_function; + get_rest_of_line (0, &item_function); + + /* If we hit the end of text in get_rest_of_line, backing up + input pointer will cause the last character of the last line + be pushed back onto the input, which is wrong. */ + if (input_text_offset < input_text_length) + backup_input_pointer (); + + if (STREQ (item_function, "@")) + { + free (item_function); + item_function = xstrdup ("@ "); + } + + return item_function; +} + + /* Push the state of the current insertion on the stack. */ +void +push_insertion (type, item_function) + enum insertion_type type; + char *item_function; +{ + INSERTION_ELT *new = xmalloc (sizeof (INSERTION_ELT)); + + new->item_function = item_function; + new->filling_enabled = filling_enabled; + new->indented_fill = indented_fill; + new->insertion = type; + new->line_number = line_number; + new->filename = xstrdup (input_filename); + new->inhibited = inhibit_paragraph_indentation; + new->in_fixed_width_font = in_fixed_width_font; + new->next = insertion_stack; + insertion_stack = new; + insertion_level++; +} + + /* Pop the value on top of the insertion stack into the + global variables. */ +void +pop_insertion () +{ + INSERTION_ELT *temp = insertion_stack; + + if (temp == NULL) + return; + + in_fixed_width_font = temp->in_fixed_width_font; + inhibit_paragraph_indentation = temp->inhibited; + filling_enabled = temp->filling_enabled; + indented_fill = temp->indented_fill; + free_and_clear (&(temp->item_function)); + free_and_clear (&(temp->filename)); + insertion_stack = insertion_stack->next; + free (temp); + insertion_level--; +} + + /* Return a pointer to the print name of this + enumerated type. */ +char * +insertion_type_pname (type) + enum insertion_type type; +{ + if ((int) type < (int) bad_type) + return insertion_type_names[(int) type]; + else + return _("Broken-Type in insertion_type_pname"); +} + +/* Return the insertion_type associated with NAME. + If the type is not one of the known ones, return BAD_TYPE. */ +enum insertion_type +find_type_from_name (name) + char *name; +{ + int index = 0; + while (index < (int) bad_type) + { + if (STREQ (name, insertion_type_names[index])) + return (enum insertion_type) index; + if (index == rawhtml && STREQ (name, "html")) + return rawhtml; + if (index == rawtex && STREQ (name, "tex")) + return rawtex; + index++; + } + return bad_type; +} + +int +defun_insertion (type) + enum insertion_type type; +{ + return 0 + || (type == defcv) + || (type == deffn) + || (type == defivar) + || (type == defmac) + || (type == defmethod) + || (type == defop) + || (type == defopt) + || (type == defspec) + || (type == deftp) + || (type == deftypefn) + || (type == deftypefun) + || (type == deftypeivar) + || (type == deftypemethod) + || (type == deftypeop) + || (type == deftypevar) + || (type == deftypevr) + || (type == defun) + || (type == defvar) + || (type == defvr) + ; +} + +/* MAX_NS is the maximum nesting level for enumerations. I picked 100 + which seemed reasonable. This doesn't control the number of items, + just the number of nested lists. */ +#define max_stack_depth 100 +#define ENUM_DIGITS 1 +#define ENUM_ALPHA 2 +typedef struct { + int enumtype; + int enumval; +} DIGIT_ALPHA; + +DIGIT_ALPHA enumstack[max_stack_depth]; +int enumstack_offset = 0; +int current_enumval = 1; +int current_enumtype = ENUM_DIGITS; +char *enumeration_arg = NULL; + +void +start_enumerating (at, type) + int at, type; +{ + if ((enumstack_offset + 1) == max_stack_depth) + { + line_error (_("Enumeration stack overflow")); + return; + } + enumstack[enumstack_offset].enumtype = current_enumtype; + enumstack[enumstack_offset].enumval = current_enumval; + enumstack_offset++; + current_enumval = at; + current_enumtype = type; +} + +void +stop_enumerating () +{ + --enumstack_offset; + if (enumstack_offset < 0) + enumstack_offset = 0; + + current_enumval = enumstack[enumstack_offset].enumval; + current_enumtype = enumstack[enumstack_offset].enumtype; +} + +/* Place a letter or digits into the output stream. */ +void +enumerate_item () +{ + char temp[10]; + + if (current_enumtype == ENUM_ALPHA) + { + if (current_enumval == ('z' + 1) || current_enumval == ('Z' + 1)) + { + current_enumval = ((current_enumval - 1) == 'z' ? 'a' : 'A'); + warning (_("lettering overflow, restarting at %c"), current_enumval); + } + sprintf (temp, "%c. ", current_enumval); + } + else + sprintf (temp, "%d. ", current_enumval); + + indent (output_column += (current_indent - strlen (temp))); + add_word (temp); + current_enumval++; +} + +static void +enum_html () +{ + char type; + int start; + + if (isdigit (*enumeration_arg)) + { + type = '1'; + start = atoi (enumeration_arg); + } + else if (isupper (*enumeration_arg)) + { + type = 'A'; + start = *enumeration_arg - 'A' + 1; + } + else + { + type = 'a'; + start = *enumeration_arg - 'a' + 1; + } + + add_word_args ("<ol type=%c start=%d>\n", type, start); +} + +/* Conditionally parse based on the current command name. */ +void +command_name_condition () +{ + char *discarder = xmalloc (8 + strlen (command)); + + sprintf (discarder, "\n%cend %s", COMMAND_PREFIX, command); + discard_until (discarder); + discard_until ("\n"); + + free (discarder); +} + +/* This is where the work for all the "insertion" style + commands is done. A huge switch statement handles the + various setups, and generic code is on both sides. */ +void +begin_insertion (type) + enum insertion_type type; +{ + int no_discard = 0; + + if (defun_insertion (type)) + { + push_insertion (type, xstrdup ("")); + no_discard++; + } + else + push_insertion (type, get_item_function ()); + + switch (type) + { + case menu: + if (!no_headers) + close_paragraph (); + + filling_enabled = no_indent = 0; + inhibit_paragraph_indentation = 1; + + if (html) + { + had_menu_commentary = 1; + } + else if (!no_headers) + add_word ("* Menu:\n"); + + in_menu++; + in_fixed_width_font++; + no_discard++; + break; + + case detailmenu: + if (!in_menu) + { + if (!no_headers) + close_paragraph (); + + filling_enabled = no_indent = 0; + inhibit_paragraph_indentation = 1; + + no_discard++; + } + + in_fixed_width_font++; + in_detailmenu++; + break; + + case direntry: + if (html) + command_name_condition (); + else + { + close_single_paragraph (); + filling_enabled = no_indent = 0; + inhibit_paragraph_indentation = 1; + insert_string ("START-INFO-DIR-ENTRY\n"); + } + break; + + case quotation: + /* @quotation does filling (@display doesn't). */ + if (html) + add_word ("<blockquote>\n"); + else + { + close_single_paragraph (); + last_char_was_newline = no_indent = 0; + indented_fill = filling_enabled = 1; + inhibit_paragraph_indentation = 1; + } + current_indent += default_indentation_increment; + break; + + case display: + case smalldisplay: + case example: + case smallexample: + case lisp: + case smalllisp: + /* Like @display but without indentation. */ + case smallformat: + case format: + close_single_paragraph (); + inhibit_paragraph_indentation = 1; + in_fixed_width_font++; + filling_enabled = 0; + last_char_was_newline = 0; + + if (html) + /* Kludge alert: if <pre> is followed by a newline, IE3 + renders an extra blank line before the pre-formatted block. + Other browsers seem to not mind one way or the other. */ + add_word ("<pre>"); + + if (type != format && type != smallformat) + current_indent += default_indentation_increment; + break; + + case multitable: + do_multitable (); + break; + + case table: + case ftable: + case vtable: + case itemize: + close_single_paragraph (); + current_indent += default_indentation_increment; + filling_enabled = indented_fill = 1; +#if defined (INDENT_PARAGRAPHS_IN_TABLE) + inhibit_paragraph_indentation = 0; +#else + inhibit_paragraph_indentation = 1; +#endif /* !INDENT_PARAGRAPHS_IN_TABLE */ + + /* Make things work for losers who forget the itemize syntax. */ + if (type == itemize) + { + if (!(*insertion_stack->item_function)) + { + free (insertion_stack->item_function); + insertion_stack->item_function = xstrdup ("@bullet"); + } + } + + if (!*insertion_stack->item_function) + { + line_error (_("%s requires an argument: the formatter for %citem"), + insertion_type_pname (type), COMMAND_PREFIX); + } + + if (html) + { + if (type == itemize) + { + add_word ("<ul>\n"); + in_paragraph = 0; + } + else + add_word (dl_tag); + } + break; + + case enumerate: + close_single_paragraph (); + no_indent = 0; +#if defined (INDENT_PARAGRAPHS_IN_TABLE) + inhibit_paragraph_indentation = 0; +#else + inhibit_paragraph_indentation = 1; +#endif /* !INDENT_PARAGRAPHS_IN_TABLE */ + + current_indent += default_indentation_increment; + filling_enabled = indented_fill = 1; + + if (html) + enum_html (); + + if (isdigit (*enumeration_arg)) + start_enumerating (atoi (enumeration_arg), ENUM_DIGITS); + else + start_enumerating (*enumeration_arg, ENUM_ALPHA); + break; + + /* @group does nothing special in makeinfo. */ + case group: + /* Only close the paragraph if we are not inside of an + @example-like environment. */ + if (!insertion_stack->next + || (insertion_stack->next->insertion != display + && insertion_stack->next->insertion != smalldisplay + && insertion_stack->next->insertion != example + && insertion_stack->next->insertion != smallexample + && insertion_stack->next->insertion != lisp + && insertion_stack->next->insertion != smalllisp + && insertion_stack->next->insertion != format + && insertion_stack->next->insertion != smallformat + && insertion_stack->next->insertion != flushleft + && insertion_stack->next->insertion != flushright)) + close_single_paragraph (); + break; + + /* Insertions that are no-ops in info, but do something in TeX. */ + case cartouche: + case ifclear: + case ifhtml: + case ifinfo: + case ifnothtml: + case ifnotinfo: + case ifnottex: + case ifset: + case iftex: + case rawtex: + if (in_menu) + no_discard++; + break; + + case rawhtml: + escape_html = 0; + break; + + case defcv: + case deffn: + case defivar: + case defmac: + case defmethod: + case defop: + case defopt: + case defspec: + case deftp: + case deftypefn: + case deftypefun: + case deftypeivar: + case deftypemethod: + case deftypeop: + case deftypevar: + case deftypevr: + case defun: + case defvar: + case defvr: + inhibit_paragraph_indentation = 1; + filling_enabled = indented_fill = 1; + current_indent += default_indentation_increment; + no_indent = 0; + break; + + case flushleft: + close_single_paragraph (); + inhibit_paragraph_indentation = 1; + filling_enabled = indented_fill = no_indent = 0; + break; + + case flushright: + close_single_paragraph (); + filling_enabled = indented_fill = no_indent = 0; + inhibit_paragraph_indentation = 1; + force_flush_right++; + break; + + default: + line_error ("begin_insertion internal error: type=%d", type); + + } + + if (!no_discard) + discard_until ("\n"); +} + +/* Try to end the insertion with the specified TYPE. With a value of + `bad_type', TYPE gets translated to match the value currently on top + of the stack. Otherwise, if TYPE doesn't match the top of the + insertion stack, give error. */ +void +end_insertion (type) + enum insertion_type type; +{ + enum insertion_type temp_type; + + if (!insertion_level) + return; + + temp_type = current_insertion_type (); + + if (type == bad_type) + type = temp_type; + + if (type != temp_type) + { + line_error + (_("`@end' expected `%s', but saw `%s'"), + insertion_type_pname (temp_type), insertion_type_pname (type)); + return; + } + + pop_insertion (); + + switch (type) + { + /* Insertions which have no effect on paragraph formatting. */ + case ifclear: + case ifhtml: + case ifinfo: + case ifnothtml: + case ifnotinfo: + case ifnottex: + case ifset: + case iftex: + case rawtex: + break; + + case rawhtml: + escape_html = 1; + break; + + case direntry: /* Eaten if html. */ + insert_string ("END-INFO-DIR-ENTRY\n\n"); + close_insertion_paragraph (); + break; + + case detailmenu: + in_detailmenu--; /* No longer hacking menus. */ + if (!in_menu) + { + if (!no_headers) + close_insertion_paragraph (); + } + break; + + case menu: + in_menu--; /* No longer hacking menus. */ + if (html) + add_word ("</ul>\n"); + else if (!no_headers) + close_insertion_paragraph (); + break; + + case multitable: + end_multitable (); + break; + + case enumerate: + stop_enumerating (); + close_insertion_paragraph (); + current_indent -= default_indentation_increment; + if (html) + add_word ("</ol>\n"); + break; + + case flushleft: + case group: + case cartouche: + close_insertion_paragraph (); + break; + + case format: + case smallformat: + case display: + case smalldisplay: + case example: + case smallexample: + case lisp: + case smalllisp: + case quotation: + /* @format and @smallformat are the only fixed_width insertion + without a change in indentation. */ + if (type != format && type != smallformat) + current_indent -= default_indentation_increment; + + if (html) + add_word (type == quotation ? "</blockquote>\n" : "</pre>\n"); + + /* The ending of one of these insertions always marks the + start of a new paragraph. */ + close_insertion_paragraph (); + break; + + case table: + case ftable: + case vtable: + current_indent -= default_indentation_increment; + if (html) + add_word ("</dl>\n"); + break; + + case itemize: + current_indent -= default_indentation_increment; + if (html) + add_word ("</ul>\n"); + close_insertion_paragraph (); + break; + + case flushright: + force_flush_right--; + close_insertion_paragraph (); + break; + + /* Handle the @defun insertions with this default clause. */ + default: + { + enum insertion_type base_type; + + if (type < defcv || type > defvr) + line_error ("end_insertion internal error: type=%d", type); + + base_type = get_base_type (type); + switch (base_type) + { + case deffn: + case defvr: + case deftp: + case deftypefn: + case deftypevr: + case defcv: + case defop: + case deftypemethod: + case deftypeop: + case deftypeivar: + if (html) + /* close the tables which has been opened in defun.c */ + add_word ("</TD></TR>\n</TABLE>\n"); + break; + } /* switch (base_type)... */ + + current_indent -= default_indentation_increment; + close_insertion_paragraph (); + } + break; + + } + + if (current_indent < 0) + line_error ("end_insertion internal error: current indent=%d", + current_indent); +} + +/* Insertions cannot cross certain boundaries, such as node beginnings. In + code that creates such boundaries, you should call `discard_insertions' + before doing anything else. It prints the errors for you, and cleans up + the insertion stack. + + With nonzero SPECIALS_OK argument, allows unmatched + @if... conditionals, otherwise not. This is because conditionals can + cross node boundaries. Always happens with the @top node, for example. */ +void +discard_insertions (specials_ok) + int specials_ok; +{ + int real_line_number = line_number; + while (insertion_stack) + { + if (specials_ok + && ((ifclear <= insertion_stack->insertion + && insertion_stack->insertion <= iftex) + || insertion_stack->insertion == rawhtml + || insertion_stack->insertion == rawtex)) + break; + else + { + char *offender = insertion_type_pname (insertion_stack->insertion); + char *current_filename = input_filename; + + input_filename = insertion_stack->filename; + line_number = insertion_stack->line_number; + line_error (_("No matching `%cend %s'"), COMMAND_PREFIX, offender); + input_filename = current_filename; + pop_insertion (); + } + } + line_number = real_line_number; +} + +/* Insertion (environment) commands. */ + +void +cm_quotation () +{ + begin_insertion (quotation); +} + +void +cm_example () +{ + begin_insertion (example); +} + +void +cm_smallexample () +{ + begin_insertion (smallexample); +} + +void +cm_lisp () +{ + begin_insertion (lisp); +} + +void +cm_smalllisp () +{ + begin_insertion (smalllisp); +} + +/* @cartouche/@end cartouche draws box with rounded corners in + TeX output. Right now, just a no-op insertion. */ +void +cm_cartouche () +{ + begin_insertion (cartouche); +} + +void +cm_format () +{ + begin_insertion (format); +} + +void +cm_smallformat () +{ + begin_insertion (smallformat); +} + +void +cm_display () +{ + begin_insertion (display); +} + +void +cm_smalldisplay () +{ + begin_insertion (smalldisplay); +} + +void +cm_direntry () +{ + if (no_headers || html) + command_name_condition (); + else + begin_insertion (direntry); +} + +void +cm_itemize () +{ + begin_insertion (itemize); +} + +/* Start an enumeration insertion of type TYPE. If the user supplied + no argument on the line, then use DEFAULT_STRING as the initial string. */ +static void +do_enumeration (type, default_string) + int type; + char *default_string; +{ + get_until_in_line (0, ".", &enumeration_arg); + canon_white (enumeration_arg); + + if (!*enumeration_arg) + { + free (enumeration_arg); + enumeration_arg = xstrdup (default_string); + } + + if (!isdigit (*enumeration_arg) && !isletter (*enumeration_arg)) + { + warning (_("%s requires letter or digit"), insertion_type_pname (type)); + + switch (type) + { + case enumerate: + default_string = "1"; + break; + } + enumeration_arg = xstrdup (default_string); + } + begin_insertion (type); +} + +void +cm_enumerate () +{ + do_enumeration (enumerate, "1"); +} + +void +cm_table () +{ + begin_insertion (table); +} + +void +cm_multitable () +{ + begin_insertion (multitable); /* @@ */ +} + +void +cm_ftable () +{ + begin_insertion (ftable); +} + +void +cm_vtable () +{ + begin_insertion (vtable); +} + +void +cm_group () +{ + begin_insertion (group); +} + +void +cm_ifinfo () +{ + if (process_info) + begin_insertion (ifinfo); + else + command_name_condition (); +} + +void +cm_ifnotinfo () +{ + if (!process_info) + begin_insertion (ifnotinfo); + else + command_name_condition (); +} + + +/* Insert raw HTML (no escaping of `<' etc.). */ +void +cm_html () +{ + if (process_html) + begin_insertion (rawhtml); + else + command_name_condition (); +} + +void +cm_ifhtml () +{ + if (process_html) + begin_insertion (ifhtml); + else + command_name_condition (); +} + +void +cm_ifnothtml () +{ + if (!process_html) + begin_insertion (ifnothtml); + else + command_name_condition (); +} + + +void +cm_tex () +{ + if (process_tex) + begin_insertion (rawtex); + else + command_name_condition (); +} + +void +cm_iftex () +{ + if (process_tex) + begin_insertion (iftex); + else + command_name_condition (); +} + +void +cm_ifnottex () +{ + if (!process_tex) + begin_insertion (ifnottex); + else + command_name_condition (); +} + +/* Begin an insertion where the lines are not filled or indented. */ +void +cm_flushleft () +{ + begin_insertion (flushleft); +} + +/* Begin an insertion where the lines are not filled, and each line is + forced to the right-hand side of the page. */ +void +cm_flushright () +{ + begin_insertion (flushright); +} + +void +cm_menu () +{ + if (current_node == NULL) + { + warning (_("@menu seen before first @node, creating `Top' node")); + warning (_("perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?")); + /* Include @top command so we can construct the implicit node tree. */ + execute_string ("@node top\n@top Top\n"); + } + begin_insertion (menu); +} + +void +cm_detailmenu () +{ + if (current_node == NULL) + { /* Problems anyway, @detailmenu should always be inside @menu. */ + warning (_("@detailmenu seen before first node, creating `Top' node")); + execute_string ("@node top\n@top Top\n"); + } + begin_insertion (detailmenu); +} + +/* End existing insertion block. */ +void +cm_end () +{ + char *temp; + enum insertion_type type; + + if (!insertion_level) + { + line_error (_("Unmatched `%c%s'"), COMMAND_PREFIX, command); + return; + } + + get_rest_of_line (0, &temp); + + if (temp[0] == 0) + line_error (_("`%c%s' needs something after it"), COMMAND_PREFIX, command); + + type = find_type_from_name (temp); + + if (type == bad_type) + { + line_error (_("Bad argument to `%s', `%s', using `%s'"), + command, temp, insertion_type_pname (current_insertion_type ())); + } + end_insertion (type); + free (temp); +} + +/* @itemx, @item. */ + +static int itemx_flag = 0; + +/* Return whether CMD takes a brace-delimited {arg}. */ +static int +command_needs_braces (cmd) + char *cmd; +{ + int i; + for (i = 0; command_table[i].name; i++) + { + if (STREQ (command_table[i].name, cmd)) + return command_table[i].argument_in_braces == BRACE_ARGS; + } + + return 0; /* macro or alias */ +} + + +void +cm_item () +{ + char *rest_of_line, *item_func; + + /* Can only hack "@item" while inside of an insertion. */ + if (insertion_level) + { + INSERTION_ELT *stack = insertion_stack; + int original_input_text_offset; + + skip_whitespace (); + original_input_text_offset = input_text_offset; + + get_rest_of_line (0, &rest_of_line); + item_func = current_item_function (); + + /* Do the right thing depending on which insertion function is active. */ + switch_top: + switch (stack->insertion) + { + case multitable: + multitable_item (); + /* Support text directly after the @item. */ + if (*rest_of_line) + { + line_number--; + input_text_offset = original_input_text_offset; + } + break; + + case ifclear: + case ifhtml: + case ifinfo: + case ifnothtml: + case ifnotinfo: + case ifnottex: + case ifset: + case iftex: + case rawhtml: + case rawtex: + case tex: + case cartouche: + stack = stack->next; + if (!stack) + goto no_insertion; + else + goto switch_top; + break; + + case menu: + case quotation: + case example: + case smallexample: + case lisp: + case smalllisp: + case format: + case smallformat: + case display: + case smalldisplay: + case group: + line_error (_("@%s not meaningful inside `@%s' block"), + command, + insertion_type_pname (current_insertion_type ())); + break; + + case itemize: + case enumerate: + if (itemx_flag) + { + line_error (_("@itemx not meaningful inside `%s' block"), + insertion_type_pname (current_insertion_type ())); + } + else + { + if (html) + { + if (in_paragraph) + { + add_word ("</p>"); + in_paragraph = 0; + } + add_word ("<li>"); + } + else + { + start_paragraph (); + kill_self_indent (-1); + filling_enabled = indented_fill = 1; + + if (current_item_function ()) + { + output_column = current_indent - 2; + indent (output_column); + + /* The item marker can be given with or without + braces -- @bullet and @bullet{} are both ok. + Or it might be something that doesn't take + braces at all, such as "o" or "#" or "@ ". + Thus, only supply braces if the item marker is + a command, they haven't supplied braces + themselves, and we know it needs them. */ + if (item_func && *item_func) + { + if (*item_func == COMMAND_PREFIX + && item_func[strlen (item_func) - 1] != '}' + && command_needs_braces (item_func + 1)) + execute_string ("%s{}", item_func); + else + execute_string ("%s", item_func); + } + insert (' '); + output_column++; + } + else + enumerate_item (); + + /* Special hack. This makes `close_paragraph' a no-op until + `start_paragraph' has been called. */ + must_start_paragraph = 1; + } + + /* Handle text directly after the @item. */ + if (*rest_of_line) + { + line_number--; + input_text_offset = original_input_text_offset; + } + } + break; + + case table: + case ftable: + case vtable: + if (html) + { + static int last_html_output_position = 0; + + /* If nothing has been output since the last <dd>, + remove the empty <dd> element. Some browsers render + an extra empty line for <dd><dt>, which makes @itemx + conversion look ugly. */ + if (last_html_output_position == output_position + && strncmp ((char *) output_paragraph, "<dd>", + output_paragraph_offset) == 0) + output_paragraph_offset = 0; + + /* Force the browser to render one blank line before + each new @item in a table. But don't do that unless + this is the first <dt> after the <dl>, or if we are + converting @itemx. + + Note that there are some browsers which ignore <br> + in this context, but I cannot find any way to force + them all render exactly one blank line. */ + if (!itemx_flag + && strncmp ((char *) output_paragraph + + output_paragraph_offset - sizeof (dl_tag) + 1, + dl_tag, sizeof (dl_tag) - 1) != 0) + add_word ("<br>"); + + add_word ("<dt>"); + if (item_func && *item_func) + execute_string ("%s{%s}", item_func, rest_of_line); + else + execute_string ("%s", rest_of_line); + + if (current_insertion_type () == ftable) + execute_string ("%cfindex %s\n", COMMAND_PREFIX, rest_of_line); + + if (current_insertion_type () == vtable) + execute_string ("%cvindex %s\n", COMMAND_PREFIX, rest_of_line); + /* Make sure output_position is updated, so we could + remember it. */ + close_single_paragraph (); + last_html_output_position = output_position; + add_word ("<dd>"); + } + else + { + /* We need this to determine if we have two @item's in a row + (see test just below). */ + static int last_item_output_position = 0; + + /* Get rid of extra characters. */ + kill_self_indent (-1); + + /* If we have one @item followed directly by another @item, + we need to insert a blank line. This is not true for + @itemx, though. */ + if (!itemx_flag && last_item_output_position == output_position) + insert ('\n'); + + /* `close_paragraph' almost does what we want. The problem + is when paragraph_is_open, and last_char_was_newline, and + the last newline has been turned into a space, because + filling_enabled. I handle it here. */ + if (last_char_was_newline && filling_enabled && + paragraph_is_open) + insert ('\n'); + close_paragraph (); + +#if defined (INDENT_PARAGRAPHS_IN_TABLE) + /* Indent on a new line, but back up one indentation level. */ + { + int save = inhibit_paragraph_indentation; + inhibit_paragraph_indentation = 1; + /* At this point, inserting any non-whitespace character will + force the existing indentation to be output. */ + add_char ('i'); + inhibit_paragraph_indentation = save; + } +#else /* !INDENT_PARAGRAPHS_IN_TABLE */ + add_char ('i'); +#endif /* !INDENT_PARAGRAPHS_IN_TABLE */ + + output_paragraph_offset--; + kill_self_indent (default_indentation_increment + 1); + + /* Add item's argument to the line. */ + filling_enabled = 0; + if (item_func && *item_func) + execute_string ("%s{%s}", item_func, rest_of_line); + else + execute_string ("%s", rest_of_line); + + if (current_insertion_type () == ftable) + execute_string ("%cfindex %s\n", COMMAND_PREFIX, rest_of_line); + else if (current_insertion_type () == vtable) + execute_string ("%cvindex %s\n", COMMAND_PREFIX, rest_of_line); + + /* Start a new line, and let start_paragraph () + do the indenting of it for you. */ + close_single_paragraph (); + indented_fill = filling_enabled = 1; + last_item_output_position = output_position; + } + } + free (rest_of_line); + } + else + { + no_insertion: + line_error (_("%c%s found outside of an insertion block"), + COMMAND_PREFIX, command); + } +} + +void +cm_itemx () +{ + itemx_flag++; + cm_item (); + itemx_flag--; +} diff --git a/gnu/usr.bin/texinfo/makeinfo/insertion.h b/gnu/usr.bin/texinfo/makeinfo/insertion.h new file mode 100644 index 00000000000..a926e71c839 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/insertion.h @@ -0,0 +1,61 @@ +/* insertion.h -- declarations for insertion.c. + $Id: insertion.h,v 1.1.1.1 2000/02/09 01:25:20 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef INSERTION_H +#define INSERTION_H + +/* Must match list in insertion.c. */ +enum insertion_type +{ + cartouche, defcv, deffn, defivar, defmac, defmethod, defop, defopt, + defspec, deftp, deftypefn, deftypefun, deftypeivar, deftypemethod, + deftypeop, deftypevar, deftypevr, defun, defvar, defvr, detailmenu, + direntry, display, enumerate, example, flushleft, flushright, format, + ftable, group, ifclear, ifhtml, ifinfo, ifnothtml, ifnotinfo, + ifnottex, ifset, iftex, itemize, lisp, menu, multitable, quotation, + rawhtml, rawtex, smalldisplay, smallexample, smallformat, smalllisp, + table, tex, vtable, bad_type +}; + +typedef struct istack_elt +{ + struct istack_elt *next; + char *item_function; + char *filename; + int line_number; + int filling_enabled; + int indented_fill; + enum insertion_type insertion; + int inhibited; + int in_fixed_width_font; +} INSERTION_ELT; + + +extern int insertion_level; +extern INSERTION_ELT *insertion_stack; +extern int in_menu; +extern int in_detailmenu; +extern int had_menu_commentary; +extern int in_paragraph; + +extern void command_name_condition (); +extern void cm_ifnothtml (), cm_ifhtml(), cm_html (); +extern void cm_ifinfo (), cm_ifnotinfo (); +extern void cm_ifnottex (), cm_iftex (), cm_tex (); +#endif /* !INSERTION_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/lang.c b/gnu/usr.bin/texinfo/makeinfo/lang.c new file mode 100644 index 00000000000..44c84262669 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/lang.c @@ -0,0 +1,415 @@ +/* lang.c -- language depend behaviour (startpoint) + $Id: lang.c,v 1.1.1.1 2000/02/09 01:25:20 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#include "system.h" +#include "cmds.h" +#include "lang.h" +#include "makeinfo.h" + +/* Current document encoding. */ +char *document_encoding = NULL; + +/* Current language code; default is English. */ +language_code_type language_code = en; + +language_struct language_table[] = { + { aa, "aa", "Afar" }, + { ab, "ab", "Abkhazian" }, + { af, "af", "Afrikaans" }, + { am, "am", "Amharic" }, + { ar, "ar", "Arabic" }, + { as, "as", "Assamese" }, + { ay, "ay", "Aymara" }, + { az, "az", "Azerbaijani" }, + { ba, "ba", "Bashkir" }, + { be, "be", "Byelorussian" }, + { bg, "bg", "Bulgarian" }, + { bh, "bh", "Bihari" }, + { bi, "bi", "Bislama" }, + { bn, "bn", "Bengali; Bangla" }, + { bo, "bo", "Tibetan" }, + { br, "br", "Breton" }, + { ca, "ca", "Catalan" }, + { co, "co", "Corsican" }, + { cs, "cs", "Czech" }, + { cy, "cy", "Welsh" }, + { da, "da", "Danish" }, + { de, "de", "German" }, + { dz, "dz", "Bhutani" }, + { el, "el", "Greek" }, + { en, "en", "English" }, + { eo, "eo", "Esperanto" }, + { es, "es", "Spanish" }, + { et, "et", "Estonian" }, + { eu, "eu", "Basque" }, + { fa, "fa", "Persian" }, + { fi, "fi", "Finnish" }, + { fj, "fj", "Fiji" }, + { fo, "fo", "Faroese" }, + { fr, "fr", "French" }, + { fy, "fy", "Frisian" }, + { ga, "ga", "Irish" }, + { gd, "gd", "Scots Gaelic" }, + { gl, "gl", "Galician" }, + { gn, "gn", "Guarani" }, + { gu, "gu", "Gujarati" }, + { ha, "ha", "Hausa" }, + { he, "he", "Hebrew" } /* (formerly iw) */, + { hi, "hi", "Hindi" }, + { hr, "hr", "Croatian" }, + { hu, "hu", "Hungarian" }, + { hy, "hy", "Armenian" }, + { ia, "ia", "Interlingua" }, + { id, "id", "Indonesian" } /* (formerly in) */, + { ie, "ie", "Interlingue" }, + { ik, "ik", "Inupiak" }, + { is, "is", "Icelandic" }, + { it, "it", "Italian" }, + { iu, "iu", "Inuktitut" }, + { ja, "ja", "Japanese" }, + { jw, "jw", "Javanese" }, + { ka, "ka", "Georgian" }, + { kk, "kk", "Kazakh" }, + { kl, "kl", "Greenlandic" }, + { km, "km", "Cambodian" }, + { kn, "kn", "Kannada" }, + { ko, "ko", "Korean" }, + { ks, "ks", "Kashmiri" }, + { ku, "ku", "Kurdish" }, + { ky, "ky", "Kirghiz" }, + { la, "la", "Latin" }, + { ln, "ln", "Lingala" }, + { lo, "lo", "Laothian" }, + { lt, "lt", "Lithuanian" }, + { lv, "lv", "Latvian, Lettish" }, + { mg, "mg", "Malagasy" }, + { mi, "mi", "Maori" }, + { mk, "mk", "Macedonian" }, + { ml, "ml", "Malayalam" }, + { mn, "mn", "Mongolian" }, + { mo, "mo", "Moldavian" }, + { mr, "mr", "Marathi" }, + { ms, "ms", "Malay" }, + { mt, "mt", "Maltese" }, + { my, "my", "Burmese" }, + { na, "na", "Nauru" }, + { ne, "ne", "Nepali" }, + { nl, "nl", "Dutch" }, + { no, "no", "Norwegian" }, + { oc, "oc", "Occitan" }, + { om, "om", "(Afan) Oromo" }, + { or, "or", "Oriya" }, + { pa, "pa", "Punjabi" }, + { pl, "pl", "Polish" }, + { ps, "ps", "Pashto, Pushto" }, + { pt, "pt", "Portuguese" }, + { qu, "qu", "Quechua" }, + { rm, "rm", "Rhaeto-Romance" }, + { rn, "rn", "Kirundi" }, + { ro, "ro", "Romanian" }, + { ru, "ru", "Russian" }, + { rw, "rw", "Kinyarwanda" }, + { sa, "sa", "Sanskrit" }, + { sd, "sd", "Sindhi" }, + { sg, "sg", "Sangro" }, + { sh, "sh", "Serbo-Croatian" }, + { si, "si", "Sinhalese" }, + { sk, "sk", "Slovak" }, + { sl, "sl", "Slovenian" }, + { sm, "sm", "Samoan" }, + { sn, "sn", "Shona" }, + { so, "so", "Somali" }, + { sq, "sq", "Albanian" }, + { sr, "sr", "Serbian" }, + { ss, "ss", "Siswati" }, + { st, "st", "Sesotho" }, + { su, "su", "Sundanese" }, + { sv, "sv", "Swedish" }, + { sw, "sw", "Swahili" }, + { ta, "ta", "Tamil" }, + { te, "te", "Telugu" }, + { tg, "tg", "Tajik" }, + { th, "th", "Thai" }, + { ti, "ti", "Tigrinya" }, + { tk, "tk", "Turkmen" }, + { tl, "tl", "Tagalog" }, + { tn, "tn", "Setswana" }, + { to, "to", "Tonga" }, + { tr, "tr", "Turkish" }, + { ts, "ts", "Tsonga" }, + { tt, "tt", "Tatar" }, + { tw, "tw", "Twi" }, + { ug, "ug", "Uighur" }, + { uk, "uk", "Ukrainian" }, + { ur, "ur", "Urdu" }, + { uz, "uz", "Uzbek" }, + { vi, "vi", "Vietnamese" }, + { vo, "vo", "Volapuk" }, + { wo, "wo", "Wolof" }, + { xh, "xh", "Xhosa" }, + { yi, "yi", "Yiddish" } /* (formerly ji) */, + { yo, "yo", "Yoruba" }, + { za, "za", "Zhuang" }, + { zh, "zh", "Chinese" }, + { zu, "zu", "Zulu" }, + { last_language_code, NULL, NULL } +}; + +/* @documentlanguage. Maybe we'll do something useful with this in the + future. For now, we just recognize it. */ +void +cm_documentlanguage () +{ + language_code_type c; + char *lang_arg; + + /* Read the line with the language code on it. */ + get_rest_of_line (1, &lang_arg); + + /* Linear search is fine these days. */ + for (c = aa; c != last_language_code; c++) + { + if (strcmp (lang_arg, language_table[c].abbrev) == 0) + { /* Set current language code. */ + language_code = c; + break; + } + } + + /* If we didn't find this code, complain. */ + if (c == last_language_code) + warning (_("%s is not a valid ISO 639 language code"), lang_arg); + + free (lang_arg); +} + + + +/* @documentencoding. Set global. */ +void +cm_documentencoding () +{ + get_rest_of_line (1, &document_encoding); +} + + + +/* Accent commands that take explicit arguments and don't have any + special HTML support. */ + +void +cm_accent (arg) + int arg; +{ + if (arg == START) + { + /* Must come first to avoid ambiguity with overdot. */ + if (strcmp (command, "udotaccent") == 0) /* underdot */ + add_char ('.'); + } + else if (arg == END) + { + if (strcmp (command, "=") == 0) /* macron */ + add_word (html ? "¯" : "="); + else if (strcmp (command, "H") == 0) /* Hungarian umlaut */ + add_word ("''"); + else if (strcmp (command, "dotaccent") == 0) /* overdot */ + add_meta_char ('.'); + else if (strcmp (command, "ringaccent") == 0) /* ring */ + add_char ('*'); + else if (strcmp (command, "tieaccent") == 0) /* long tie */ + add_char ('['); + else if (strcmp (command, "u") == 0) /* breve */ + add_char ('('); + else if (strcmp (command, "ubaraccent") == 0) /* underbar */ + add_char ('_'); + else if (strcmp (command, "v") == 0) /* hacek/check */ + add_word (html ? "<" : "<"); + } +} + +/* Common routine for the accent characters that have support in HTML. + If the character being accented is in the HTML_SUPPORTED set, then + produce &CHTML_SOLO;, for example, Ä for an A-umlaut. If not in + HTML_SUPPORTED, just produce &HTML_SOLO;X for the best we can do with + at an X-umlaut. Finally, if not producing HTML, just use SINGLE, a + character such as " which is the best plain text representation we + can manage. If HTML_SOLO_STANDALONE is zero the given HTML_SOLO + does not exist as valid standalone character in HTML. */ + +static void +cm_accent_generic (arg, start, end, html_supported, single, + html_solo_standalone, html_solo) + int arg, start, end; + char *html_supported; + int single; + int html_solo_standalone; + char *html_solo; +{ + if (html) + { + static int valid_html_accent; + + if (arg == START) + { /* If HTML has good support for this character, use it. */ + if (strchr (html_supported, curchar ())) + { /* Yes; start with an ampersand. The character itself + will be added later in read_command (makeinfo.c). */ + add_char ('&'); + valid_html_accent = 1; + } + else + { /* No special HTML support, so produce standalone char. */ + valid_html_accent = 0; + if (html_solo_standalone) + { + add_char ('&'); + add_word (html_solo); + add_char (';'); + } + else + /* If the html_solo does not exist as standalone character + (namely ˆ ` ˜), then we use + the single character version instead. */ + add_char (single); + } + } + else if (arg == END) + { /* Only if we saw a valid_html_accent can we use the full + HTML accent (umlaut, grave ...). */ + if (valid_html_accent) + { + add_word (html_solo); + add_char (';'); + } + } + } + else if (arg == END) + { /* Not producing HTML, so just use the normal character. */ + add_char (single); + } +} + +void +cm_accent_umlaut (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "aouAOUEeIiy", '"', 1, "uml"); +} + +void +cm_accent_acute (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "AEIOUYaeiouy", '\'', 1, "acute"); +} + +void +cm_accent_cedilla (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "Cc", ',', 1, "cedil"); +} + +void +cm_accent_hat (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "AEIOUaeiou", '^', 0, "circ"); +} + +void +cm_accent_grave (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "AEIOUaeiou", '`', 0, "grave"); +} + +void +cm_accent_tilde (arg, start, end) + int arg, start, end; +{ + cm_accent_generic (arg, start, end, "AOano", '~', 0, "tilde"); +} + + + +/* Non-English letters/characters that don't insert themselves. */ +void +cm_special_char (arg) +{ + if (arg == START) + { + if ((*command == 'L' || *command == 'l' + || *command == 'O' || *command == 'o') + && command[1] == 0) + { /* Lslash lslash Oslash oslash. + Lslash and lslash aren't supported in HTML. */ + if (html && (command[0] == 'O' || command[0] == 'o')) + add_word_args ("&%cslash;", command[0]); + else + add_word_args ("/%c", command[0]); + } + else if (strcmp (command, "exclamdown") == 0) + add_word (html ? "¡" : "!"); + else if (strcmp (command, "pounds") == 0) + add_word (html ? "£" : "#"); + else if (strcmp (command, "questiondown") == 0) + add_word (html ? "¿" : "?"); + else if (strcmp (command, "AE") == 0) + add_word (html ? "Æ" : command); + else if (strcmp (command, "ae") == 0) + add_word (html ? "æ" : command); + else if (strcmp (command, "OE") == 0) + add_word (html ? "Œ" : command); + else if (strcmp (command, "oe") == 0) + add_word (html ? "œ" : command); + else if (strcmp (command, "AA") == 0) + add_word (html ? "Å" : command); + else if (strcmp (command, "aa") == 0) + add_word (html ? "å" : command); + else if (strcmp (command, "ss") == 0) + add_word (html ? "ß" : command); + else + line_error ("cm_special_char internal error: command=@%s", command); + } +} + +/* Dotless i or j. */ +void +cm_dotless (arg, start, end) + int arg, start, end; +{ + if (arg == END) + { + if (output_paragraph[start] != 'i' && output_paragraph[start] != 'j') + /* This error message isn't perfect if the argument is multiple + characters, but it doesn't seem worth getting right. */ + line_error (_("%c%s expects `i' or `j' as argument, not `%c'"), + COMMAND_PREFIX, command, output_paragraph[start]); + + else if (end - start != 1) + line_error (_("%c%s expects a single character `i' or `j' as argument"), + COMMAND_PREFIX, command); + + /* We've already inserted the `i' or `j', so nothing to do. */ + } +} diff --git a/gnu/usr.bin/texinfo/makeinfo/lang.h b/gnu/usr.bin/texinfo/makeinfo/lang.h new file mode 100644 index 00000000000..40c48aca98d --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/lang.h @@ -0,0 +1,86 @@ +/* lang.h -- declarations for language codes etc. + $Id: lang.h,v 1.1.1.1 2000/02/09 01:25:20 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#ifndef LANG_H +#define LANG_H + +/* The langauge code which can be changed through @documentlanguage + * Actualy Info does not support this (may be in the future) ;-) + * Default for language code is en (english!) kama + * These code should ISO 639 two letter codes. + */ +typedef enum +{ + aa, ab, af, am, ar, as, ay, az, + ba, be, bg, bh, bi, bn, bo, br, + ca, co, cs, cy, + da, de, dz, + el, en, eo, es, et, eu, + fa, fi, fj, fo, fr, fy, + ga, gd, gl, gn, gu, + ha, he, hi, hr, hu, hy, + ia, id, ie, ik, is, it, iu, + ja, jw, + ka, kk, kl, km, kn, ko, ks, ku, ky, + la, ln, lo, lt, lv, + mg, mi, mk, ml, mn, mo, mr, ms, mt, my, + na, ne, nl, no, + oc, om, or, + pa, pl, ps, pt, + qu, + rm, rn, ro, ru, rw, + sa, sd, sg, sh, si, sk, sl, sm, sn, so, sq, sr, ss, st, su, sv, sw, + ta, te, tg, th, ti, tk, tl, tn, to, tr, ts, tt, tw, + ug, uk, ur, uz, + vi, vo, + wo, + xh, + yi, yo, + za, zh, zu, + last_language_code +} language_code_type; + +/* The current language code. */ +extern language_code_type language_code; + +/* Information about all valid languages. */ +typedef struct +{ + language_code_type lc; /* language code as enum type */ + char *abbrev; /* two letter language code */ + char *desc; /* full name for language code */ +} language_struct; +extern language_struct language_table[]; + +/* The encoding, or null if not set. */ +extern char *document_encoding; + + +/* The commands. */ +extern void cm_documentlanguage (), cm_documentencoding (); + +/* Accents, other non-English characters. */ +void cm_accent (), cm_special_char (), cm_dotless (); + +extern void cm_accent_umlaut (), cm_accent_acute (), cm_accent_cedilla (), + cm_accent_hat (), cm_accent_grave (), cm_accent_tilde (); + +#endif /* not LANG_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/macro.c b/gnu/usr.bin/texinfo/makeinfo/macro.c new file mode 100644 index 00000000000..82821b9fe86 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/macro.c @@ -0,0 +1,1114 @@ +/* macro.c -- user-defined macros for Texinfo. + $Id: macro.c,v 1.1.1.1 2000/02/09 01:25:23 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "cmds.h" +#include "macro.h" +#include "makeinfo.h" +#include "insertion.h" + +/* If non-NULL, this is an output stream to write the full macro expansion + of the input text to. The result is another texinfo file, but + missing @include, @infoinclude, @macro, and macro invocations. Instead, + all of the text is placed within the file. */ +FILE *macro_expansion_output_stream = NULL; + +/* Output file for -E. */ +char *macro_expansion_filename; + +/* Nonzero means a macro string is in execution, as opposed to a file. */ +int me_executing_string = 0; + +/* Nonzero means we want only to expand macros and + leave everything else intact. */ +int only_macro_expansion = 0; + +static ITEXT **itext_info = NULL; +static int itext_size = 0; + +/* Return the arglist on the current line. This can behave in two different + ways, depending on the variable BRACES_REQUIRED_FOR_MACRO_ARGS. */ +int braces_required_for_macro_args = 0; + +/* Array of macros and definitions. */ +MACRO_DEF **macro_list = NULL; + +int macro_list_len = 0; /* Number of elements. */ +int macro_list_size = 0; /* Number of slots in total. */ + +/* Return the length of the array in ARRAY. */ +int +array_len (array) + char **array; +{ + int i = 0; + + if (array) + for (i = 0; array[i]; i++); + + return i; +} + +void +free_array (array) + char **array; +{ + if (array) + { + int i; + for (i = 0; array[i]; i++) + free (array[i]); + + free (array); + } +} + +/* Return the macro definition of NAME or NULL if NAME is not defined. */ +MACRO_DEF * +find_macro (name) + char *name; +{ + int i; + MACRO_DEF *def; + + def = NULL; + for (i = 0; macro_list && (def = macro_list[i]); i++) + { + if ((!def->inhibited) && (strcmp (def->name, name) == 0)) + break; + } + return def; +} + +/* Add the macro NAME with ARGLIST and BODY to the list of defined macros. + SOURCE_FILE is the name of the file where this definition can be found, + and SOURCE_LINENO is the line number within that file. If a macro already + exists with NAME, then a warning is produced, and that previous + definition is overwritten. */ +void +add_macro (name, arglist, body, source_file, source_lineno, flags) + char *name; + char **arglist; + char *body; + char *source_file; + int source_lineno, flags; +{ + MACRO_DEF *def; + + def = find_macro (name); + + if (!def) + { + if (macro_list_len + 2 >= macro_list_size) + macro_list = xrealloc + (macro_list, ((macro_list_size += 10) * sizeof (MACRO_DEF *))); + + macro_list[macro_list_len] = xmalloc (sizeof (MACRO_DEF)); + macro_list[macro_list_len + 1] = NULL; + + def = macro_list[macro_list_len]; + macro_list_len += 1; + def->name = name; + } + else + { + char *temp_filename = input_filename; + int temp_line = line_number; + + warning (_("macro `%s' previously defined"), name); + + input_filename = def->source_file; + line_number = def->source_lineno; + warning (_("here is the previous definition of `%s'"), name); + + input_filename = temp_filename; + line_number = temp_line; + + if (def->arglist) + { + int i; + + for (i = 0; def->arglist[i]; i++) + free (def->arglist[i]); + + free (def->arglist); + } + free (def->source_file); + free (def->body); + } + + def->source_file = xstrdup (source_file); + def->source_lineno = source_lineno; + def->body = body; + def->arglist = arglist; + def->inhibited = 0; + def->flags = flags; +} + + +char ** +get_brace_args (quote_single) + int quote_single; +{ + char **arglist, *word; + int arglist_index, arglist_size; + int character, escape_seen, start; + int depth = 1; + + /* There is an arglist in braces here, so gather the args inside of it. */ + skip_whitespace_and_newlines (); + input_text_offset++; + arglist = NULL; + arglist_index = arglist_size = 0; + + get_arg: + skip_whitespace_and_newlines (); + start = input_text_offset; + escape_seen = 0; + + while ((character = curchar ())) + { + if (character == '\\') + { + input_text_offset += 2; + escape_seen = 1; + } + else if (character == '{') + { + depth++; + input_text_offset++; + } + else if ((character == ',' && !quote_single) || + ((character == '}') && depth == 1)) + { + int len = input_text_offset - start; + + if (len || (character != '}')) + { + word = xmalloc (1 + len); + memcpy (word, input_text + start, len); + word[len] = 0; + + /* Clean up escaped characters. */ + if (escape_seen) + { + int i; + for (i = 0; word[i]; i++) + if (word[i] == '\\') + memmove (word + i, word + i + 1, + 1 + strlen (word + i + 1)); + } + + if (arglist_index + 2 >= arglist_size) + arglist = xrealloc + (arglist, (arglist_size += 10) * sizeof (char *)); + + arglist[arglist_index++] = word; + arglist[arglist_index] = NULL; + } + + input_text_offset++; + if (character == '}') + break; + else + goto get_arg; + } + else if (character == '}') + { + depth--; + input_text_offset++; + } + else + { + input_text_offset++; + if (character == '\n') line_number++; + } + } + return arglist; +} + +char ** +get_macro_args (def) + MACRO_DEF *def; +{ + int i; + char *word; + + /* Quickly check to see if this macro has been invoked with any arguments. + If not, then don't skip any of the following whitespace. */ + for (i = input_text_offset; i < input_text_length; i++) + if (!cr_or_whitespace (input_text[i])) + break; + + if (input_text[i] != '{') + { + if (braces_required_for_macro_args) + { + return NULL; + } + else + { + /* Braces are not required to fill out the macro arguments. If + this macro takes one argument, it is considered to be the + remainder of the line, sans whitespace. */ + if (def->arglist && def->arglist[0] && !def->arglist[1]) + { + char **arglist; + + get_rest_of_line (0, &word); + if (input_text[input_text_offset - 1] == '\n') + { + input_text_offset--; + line_number--; + } + /* canon_white (word); */ + arglist = xmalloc (2 * sizeof (char *)); + arglist[0] = word; + arglist[1] = NULL; + return arglist; + } + else + { + /* The macro either took no arguments, or took more than + one argument. In that case, it must be invoked with + arguments surrounded by braces. */ + return NULL; + } + } + } + return get_brace_args (def->flags & ME_QUOTE_ARG); +} + +/* Substitute actual parameters for named parameters in body. + The named parameters which appear in BODY must by surrounded + reverse slashes, as in \foo\. */ +char * +apply (named, actuals, body) + char **named, **actuals, *body; +{ + int i; + int new_body_index, new_body_size; + char *new_body, *text; + int length_of_actuals; + + length_of_actuals = array_len (actuals); + new_body_size = strlen (body); + new_body = xmalloc (1 + new_body_size); + + /* Copy chars from BODY into NEW_BODY. */ + i = 0; + new_body_index = 0; + + while (body[i]) + { /* Anything but a \ is easy. */ + if (body[i] != '\\') + new_body[new_body_index++] = body[i++]; + else + { /* Snarf parameter name, check against named parameters. */ + char *param; + int param_start, which, len; + + param_start = ++i; + while (body[i] && body[i] != '\\') + i++; + + len = i - param_start; + param = xmalloc (1 + len); + memcpy (param, body + param_start, len); + param[len] = 0; + + if (body[i]) /* move past \ */ + i++; + + /* Now check against named parameters. */ + for (which = 0; named && named[which]; which++) + if (STREQ (named[which], param)) + break; + + if (named && named[which]) + { + text = which < length_of_actuals ? actuals[which] : NULL; + if (!text) + text = ""; + len = strlen (text); + } + else + { /* not a parameter, either it's \\ (if len==0) or an + error. In either case, restore one \ at least. */ + if (len) { + warning (_("\\ in macro expansion followed by `%s' instead of \\ or parameter name"), + param); + } + len++; + text = xmalloc (1 + len); + sprintf (text, "\\%s", param); + } + + if (strlen (param) + 2 < len) + { + new_body_size += len + 1; + new_body = xrealloc (new_body, new_body_size); + } + + free (param); + + strcpy (new_body + new_body_index, text); + new_body_index += len; + + if (!named || !named[which]) + free (text); + } + } + + new_body[new_body_index] = 0; + return new_body; +} + +/* Expand macro passed in DEF, a pointer to a MACRO_DEF, and + return its expansion as a string. */ +char * +expand_macro (def) + MACRO_DEF *def; +{ + char **arglist; + int num_args; + char *execution_string = NULL; + int start_line = line_number; + + /* Find out how many arguments this macro definition takes. */ + num_args = array_len (def->arglist); + + /* Gather the arguments present on the line if there are any. */ + arglist = get_macro_args (def); + + if (num_args < array_len (arglist)) + { + free_array (arglist); + line_error (_("Macro `%s' called on line %d with too many args"), + def->name, start_line); + return execution_string; + } + + if (def->body) + execution_string = apply (def->arglist, arglist, def->body); + + free_array (arglist); + return execution_string; +} + +/* Execute the macro passed in DEF, a pointer to a MACRO_DEF. */ +void +execute_macro (def) + MACRO_DEF *def; +{ + char *execution_string; + int start_line = line_number, end_line; + + if (macro_expansion_output_stream && !executing_string && !me_inhibit_expansion) + me_append_before_this_command (); + + execution_string = expand_macro (def); + if (!execution_string) + return; + + if (def->body) + { + /* Reset the line number to where the macro arguments began. + This makes line numbers reported in error messages correct in + case the macro arguments span several lines and the expanded + arguments invoke other commands. */ + end_line = line_number; + line_number = start_line; + + if (macro_expansion_output_stream && !executing_string && !me_inhibit_expansion) + { + remember_itext (input_text, input_text_offset); + me_execute_string (execution_string); + } + else + execute_string ("%s", execution_string); + + free (execution_string); + line_number = end_line; + } +} + + +/* Read and remember the definition of a macro. If RECURSIVE is set, + set the ME_RECURSE flag. MACTYPE is either "macro" or "rmacro", and + tells us what the matching @end should be. */ +static void +define_macro (mactype, recursive) + char *mactype; + int recursive; +{ + int i; + char *name, **arglist, *body, *line, *last_end; + int body_size, body_index; + int depth = 1; + int defining_line = line_number; + int flags = 0; + + arglist = NULL; + body = NULL; + body_size = 0; + body_index = 0; + + if (macro_expansion_output_stream && !executing_string) + me_append_before_this_command (); + + skip_whitespace (); + + /* Get the name of the macro. This is the set of characters which are + not whitespace and are not `{' immediately following the @macro. */ + { + int start = input_text_offset; + int len; + + for (i = start; + (i < input_text_length) && + (input_text[i] != '{') && + (!cr_or_whitespace (input_text[i])); + i++); + + len = i - start; + name = xmalloc (1 + len); + memcpy (name, input_text + start, len); + name[len] = 0; + input_text_offset = i; + } + + skip_whitespace (); + + /* It is not required that the definition of a macro includes an arglist. + If not, don't try to get the named parameters, just use a null list. */ + if (curchar () == '{') + { + int character; + int arglist_index = 0, arglist_size = 0; + int gathering_words = 1; + char *word = NULL; + + /* Read the words inside of the braces which determine the arglist. + These words will be replaced within the body of the macro at + execution time. */ + + input_text_offset++; + skip_whitespace_and_newlines (); + + while (gathering_words) + { + int len; + + for (i = input_text_offset; + (character = input_text[i]); + i++) + { + switch (character) + { + case '\n': + line_number++; + case ' ': + case '\t': + case ',': + case '}': + /* Found the end of the current arglist word. Save it. */ + len = i - input_text_offset; + word = xmalloc (1 + len); + memcpy (word, input_text + input_text_offset, len); + word[len] = 0; + input_text_offset = i; + + /* Advance to the comma or close-brace that signified + the end of the argument. */ + while ((character = curchar ()) + && character != ',' + && character != '}') + { + input_text_offset++; + if (character == '\n') + line_number++; + } + + /* Add the word to our list of words. */ + if (arglist_index + 2 >= arglist_size) + { + arglist_size += 10; + arglist = xrealloc (arglist, + arglist_size * sizeof (char *)); + } + + arglist[arglist_index++] = word; + arglist[arglist_index] = NULL; + break; + } + + if (character == '}') + { + input_text_offset++; + gathering_words = 0; + break; + } + + if (character == ',') + { + input_text_offset++; + skip_whitespace_and_newlines (); + i = input_text_offset - 1; + } + } + } + + /* If we have exactly one argument, do @quote-arg implicitly. Not + only does this match TeX's behavior (which can't feasibly be + changed), but it's a good idea. */ + if (arglist_index == 1) + flags |= ME_QUOTE_ARG; + } + + /* Read the text carefully until we find an "@end macro" which + matches this one. The text in between is the body of the macro. */ + skip_whitespace_and_newlines (); + + while (depth) + { + if ((input_text_offset + 9) > input_text_length) + { + int temp_line = line_number; + line_number = defining_line; + line_error (_("%cend macro not found"), COMMAND_PREFIX); + line_number = temp_line; + return; + } + + get_rest_of_line (0, &line); + + /* Handle commands only meaningful within a macro. */ + if ((*line == COMMAND_PREFIX) && (depth == 1) && + (strncmp (line + 1, "allow-recursion", 15) == 0) && + (line[16] == 0 || whitespace (line[16]))) + { + for (i = 16; whitespace (line[i]); i++); + strcpy (line, line + i); + flags |= ME_RECURSE; + if (!*line) + { + free (line); + continue; + } + } + + if ((*line == COMMAND_PREFIX) && (depth == 1) && + (strncmp (line + 1, "quote-arg", 9) == 0) && + (line[10] == 0 || whitespace (line[10]))) + { + for (i = 10; whitespace (line[i]); i++); + strcpy (line, line + i); + + if (arglist && arglist[0] && !arglist[1]) + { + flags |= ME_QUOTE_ARG; + if (!*line) + { + free (line); + continue; + } + } + else + line_error (_("@quote-arg only useful for single-argument macros")); + } + + if (*line == COMMAND_PREFIX + && (strncmp (line + 1, "macro ", 6) == 0 + || strncmp (line + 1, "rmacro ", 7) == 0)) + depth++; + + /* Incorrect implementation of nesting -- just check that the last + @end matches what we started with. Since nested macros don't + work in TeX anyway, this isn't worth the trouble to get right. */ + if (*line == COMMAND_PREFIX && strncmp (line + 1, "end macro", 9) == 0) + { + depth--; + last_end = "macro"; + } + if (*line == COMMAND_PREFIX && strncmp (line + 1, "end rmacro", 9) == 0) + { + depth--; + last_end = "rmacro"; + } + + if (depth) + { + if ((body_index + strlen (line) + 3) >= body_size) + body = xrealloc (body, body_size += 3 + strlen (line)); + strcpy (body + body_index, line); + body_index += strlen (line); + body[body_index++] = '\n'; + body[body_index] = 0; + } + free (line); + } + + /* Check that @end matched the macro command. */ + if (!STREQ (last_end, mactype)) + warning (_("mismatched @end %s with @%s"), last_end, mactype); + + /* If it was an empty macro like + @macro foo + @end macro + create an empty body. (Otherwise, the macro is not expanded.) */ + if (!body) + { + body = (char *)malloc(1); + *body = 0; + } + + /* We now have the name, the arglist, and the body. However, BODY + includes the final newline which preceded the `@end macro' text. + Delete it. */ + if (body && strlen (body)) + body[strlen (body) - 1] = 0; + + if (recursive) + flags |= ME_RECURSE; + + add_macro (name, arglist, body, input_filename, defining_line, flags); + + if (macro_expansion_output_stream && !executing_string) + remember_itext (input_text, input_text_offset); +} + +void +cm_macro () +{ + define_macro ("macro", 0); +} + +void +cm_rmacro () +{ + define_macro ("rmacro", 1); +} + +/* Delete the macro with name NAME. The macro is deleted from the list, + but it is also returned. If there was no macro defined, NULL is + returned. */ + +static MACRO_DEF * +delete_macro (name) + char *name; +{ + int i; + MACRO_DEF *def; + + def = NULL; + + for (i = 0; macro_list && (def = macro_list[i]); i++) + if (strcmp (def->name, name) == 0) + { + memmove (macro_list + i, macro_list + i + 1, + ((macro_list_len + 1) - i) * sizeof (MACRO_DEF *)); + macro_list_len--; + break; + } + return def; +} + +void +cm_unmacro () +{ + int i; + char *line, *name; + MACRO_DEF *def; + + if (macro_expansion_output_stream && !executing_string) + me_append_before_this_command (); + + get_rest_of_line (0, &line); + + for (i = 0; line[i] && !whitespace (line[i]); i++); + name = xmalloc (i + 1); + memcpy (name, line, i); + name[i] = 0; + + def = delete_macro (name); + + if (def) + { + free (def->source_file); + free (def->name); + free (def->body); + + if (def->arglist) + { + int i; + + for (i = 0; def->arglist[i]; i++) + free (def->arglist[i]); + + free (def->arglist); + } + + free (def); + } + + free (line); + free (name); + + if (macro_expansion_output_stream && !executing_string) + remember_itext (input_text, input_text_offset); +} + +/* How to output sections of the input file verbatim. */ + +/* Set the value of POINTER's offset to OFFSET. */ +ITEXT * +remember_itext (pointer, offset) + char *pointer; + int offset; +{ + int i; + ITEXT *itext = NULL; + + /* If we have no info, initialize a blank list. */ + if (!itext_info) + { + itext_info = xmalloc ((itext_size = 10) * sizeof (ITEXT *)); + for (i = 0; i < itext_size; i++) + itext_info[i] = NULL; + } + + /* If the pointer is already present in the list, then set the offset. */ + for (i = 0; i < itext_size; i++) + if ((itext_info[i]) && + (itext_info[i]->pointer == pointer)) + { + itext = itext_info[i]; + itext_info[i]->offset = offset; + break; + } + + if (i == itext_size) + { + /* Find a blank slot (or create a new one), and remember the + pointer and offset. */ + for (i = 0; i < itext_size; i++) + if (itext_info[i] == NULL) + break; + + /* If not found, then add some slots. */ + if (i == itext_size) + { + int j; + + itext_info = xrealloc + (itext_info, (itext_size += 10) * sizeof (ITEXT *)); + + for (j = i; j < itext_size; j++) + itext_info[j] = NULL; + } + + /* Now add the pointer and the offset. */ + itext_info[i] = xmalloc (sizeof (ITEXT)); + itext_info[i]->pointer = pointer; + itext_info[i]->offset = offset; + itext = itext_info[i]; + } + return itext; +} + +/* Forget the input text associated with POINTER. */ +void +forget_itext (pointer) + char *pointer; +{ + int i; + + for (i = 0; i < itext_size; i++) + if (itext_info[i] && (itext_info[i]->pointer == pointer)) + { + free (itext_info[i]); + itext_info[i] = NULL; + break; + } +} + +/* Append the text which appeared in input_text from the last offset to + the character just before the command that we are currently executing. */ +void +me_append_before_this_command () +{ + int i; + + for (i = input_text_offset; i && (input_text[i] != COMMAND_PREFIX); i--) + ; + maybe_write_itext (input_text, i); +} + +/* Similar to execute_string, but only takes a single string argument, + and remembers the input text location, etc. */ +void +me_execute_string (execution_string) + char *execution_string; +{ + int saved_escape_html = escape_html; + int saved_in_paragraph = in_paragraph; + escape_html = me_executing_string == 0; + in_paragraph = 0; + + pushfile (); + input_text_offset = 0; + /* The following xstrdup is so we can relocate input_text at will. */ + input_text = xstrdup (execution_string); + input_filename = xstrdup (input_filename); + input_text_length = strlen (execution_string); + + remember_itext (input_text, 0); + + me_executing_string++; + reader_loop (); + free (input_text); + free (input_filename); + popfile (); + me_executing_string--; + + in_paragraph = saved_in_paragraph; + escape_html = saved_escape_html; +} + +/* A wrapper around me_execute_string which saves and restores + variables important for output generation. This is called + when we need to produce macro-expanded output for input which + leaves no traces in the Info output. */ +void +me_execute_string_keep_state (execution_string, append_string) + char *execution_string, *append_string; +{ + int op_orig, opcol_orig, popen_orig; + int fill_orig, newline_orig, indent_orig, meta_pos_orig; + + remember_itext (input_text, input_text_offset); + op_orig = output_paragraph_offset; + meta_pos_orig = meta_char_pos; + opcol_orig = output_column; + popen_orig = paragraph_is_open; + fill_orig = filling_enabled; + newline_orig = last_char_was_newline; + filling_enabled = 0; + indent_orig = no_indent; + no_indent = 1; + me_execute_string (execution_string); + if (append_string) + write_region_to_macro_output (append_string, 0, strlen (append_string)); + output_paragraph_offset = op_orig; + meta_char_pos = meta_pos_orig; + output_column = opcol_orig; + paragraph_is_open = popen_orig; + filling_enabled = fill_orig; + last_char_was_newline = newline_orig; + no_indent = indent_orig; +} + +/* Append the text which appears in input_text from the last offset to + the current OFFSET. */ +void +append_to_expansion_output (offset) + int offset; +{ + int i; + ITEXT *itext = NULL; + + for (i = 0; i < itext_size; i++) + if (itext_info[i] && itext_info[i]->pointer == input_text) + { + itext = itext_info[i]; + break; + } + + if (!itext) + return; + + if (offset > itext->offset) + { + write_region_to_macro_output (input_text, itext->offset, offset); + remember_itext (input_text, offset); + } +} + +/* Only write this input text iff it appears in our itext list. */ +void +maybe_write_itext (pointer, offset) + char *pointer; + int offset; +{ + int i; + ITEXT *itext = NULL; + + for (i = 0; i < itext_size; i++) + if (itext_info[i] && (itext_info[i]->pointer == pointer)) + { + itext = itext_info[i]; + break; + } + + if (itext && (itext->offset < offset)) + { + write_region_to_macro_output (itext->pointer, itext->offset, offset); + remember_itext (pointer, offset); + } +} + +void +write_region_to_macro_output (string, start, end) + char *string; + int start, end; +{ + if (macro_expansion_output_stream) + fwrite (string + start, 1, end - start, macro_expansion_output_stream); +} + +/* Aliases. */ + +typedef struct alias_struct +{ + char *alias; + char *mapto; + struct alias_struct *next; +} alias_type; + +static alias_type *aliases; + +/* @alias */ +void +cm_alias () +{ + alias_type *a = xmalloc (sizeof (alias_type)); + + skip_whitespace (); + get_until_in_line (1, "=", &(a->alias)); + discard_until ("="); + skip_whitespace (); + get_until_in_line (0, " ", &(a->mapto)); + + a->next = aliases; + aliases = a; +} + +/* Perform an alias expansion. Called from read_command. */ +char * +alias_expand (tok) + char *tok; +{ + alias_type *findit = aliases; + + while (findit) + if (strcmp (findit->alias, tok) == 0) + { + free (tok); + return alias_expand (xstrdup (findit->mapto)); + } + else + findit = findit->next; + + return tok; +} + +/* definfoenclose implementation. */ + +/* This structure is used to track enclosure macros. When an enclosure + macro is recognized, a pointer to the enclosure block corresponding + to its name is saved in the brace element for its argument. */ +typedef struct enclose_struct +{ + char *enclose; + char *before; + char *after; + struct enclose_struct *next; +} enclosure_type; + +static enclosure_type *enclosures; + +typedef struct enclosure_stack_struct +{ + enclosure_type *current; + struct enclosure_stack_struct *next; +} enclosure_stack_type; + +static enclosure_stack_type *enclosure_stack; + +/* @definfoenclose */ +void +cm_definfoenclose () +{ + enclosure_type *e = xmalloc (sizeof (enclosure_type)); + + skip_whitespace (); + get_until_in_line (1, ",", &(e->enclose)); + discard_until (","); + get_until_in_line (0, ",", &(e->before)); + discard_until (","); + get_until_in_line (0, "\n", &(e->after)); + + e->next = enclosures; + enclosures = e; +} + +/* If TOK is an enclosure command, push it on the enclosure stack and + return 1. Else return 0. */ + +int +enclosure_command (tok) + char *tok; +{ + enclosure_type *findit = enclosures; + + while (findit) + if (strcmp (findit->enclose, tok) == 0) + { + enclosure_stack_type *new = xmalloc (sizeof (enclosure_stack_type)); + new->current = findit; + new->next = enclosure_stack; + enclosure_stack = new; + + return 1; + } + else + findit = findit->next; + + return 0; +} + +/* actually perform the enclosure expansion */ +void +enclosure_expand (arg, start, end) + int arg, start, end; +{ + if (arg == START) + add_word (enclosure_stack->current->before); + else + { + enclosure_stack_type *temp; + + add_word (enclosure_stack->current->after); + + temp = enclosure_stack; + enclosure_stack = enclosure_stack->next; + free (temp); + } +} diff --git a/gnu/usr.bin/texinfo/makeinfo/macro.h b/gnu/usr.bin/texinfo/makeinfo/macro.h new file mode 100644 index 00000000000..4fac46b268d --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/macro.h @@ -0,0 +1,71 @@ +/* macro.h -- declarations for macro.c. + $Id: macro.h,v 1.1.1.1 2000/02/09 01:25:23 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef MACRO_H +#define MACRO_H + +extern FILE *macro_expansion_output_stream; +extern char *macro_expansion_filename; +extern int me_executing_string; +extern int only_macro_expansion; + +/* Here is a structure used to remember input text strings and offsets + within them. */ +typedef struct { + char *pointer; /* Pointer to the input text. */ + int offset; /* Offset of the last character output. */ +} ITEXT; + +/* Macro definitions for user-defined commands. */ +typedef struct { + char *name; /* Name of the macro. */ + char **arglist; /* Args to replace when executing. */ + char *body; /* Macro body. */ + char *source_file; /* File where this macro is defined. */ + int source_lineno; /* Line number within FILENAME. */ + int inhibited; /* Nonzero means make find_macro () fail. */ + int flags; /* ME_RECURSE, ME_QUOTE_ARG, etc. */ +} MACRO_DEF; + +/* flags for MACRO_DEF */ +#define ME_RECURSE 0x01 +#define ME_QUOTE_ARG 0x02 + +extern void execute_macro (); +extern MACRO_DEF *find_macro (); +extern char *expand_macro (); + +extern ITEXT *remember_itext (); +extern void forget_itext (); +extern void maybe_write_itext (); +extern void write_region_to_macro_output (); +extern void append_to_expansion_output (); +extern void me_append_before_this_command (); +extern void me_execute_string (); + +extern char *alias_expand (); +extern int enclosure_command (); +extern void enclosure_expand (); + +/* The @commands. */ +extern void cm_macro (), cm_rmacro (), cm_unmacro (); +extern void cm_alias (), cm_definfoenclose (); + +#endif /* not MACRO_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/node.c b/gnu/usr.bin/texinfo/makeinfo/node.c new file mode 100644 index 00000000000..bb649d3f098 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/node.c @@ -0,0 +1,1568 @@ +/* node.c -- nodes for Texinfo. + $Id: node.c,v 1.1 2000/02/09 01:25:30 espie Exp $ + + Copyright (C) 1998, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "system.h" +#include "cmds.h" +#include "files.h" +#include "footnote.h" +#include "macro.h" +#include "makeinfo.h" +#include "node.h" +#include "sectioning.h" +#include "insertion.h" + + +/* See comments in node.h. */ +NODE_REF *node_references = NULL; +NODE_REF *node_node_references = NULL; +TAG_ENTRY *tag_table = NULL; +int node_number = -1; +int current_section = 0; +int outstanding_node = 0; + +/* Adding nodes, and making tags. */ + +/* Start a new tag table. */ +void +init_tag_table () +{ + while (tag_table) + { + TAG_ENTRY *temp = tag_table; + free (temp->node); + free (temp->prev); + free (temp->next); + free (temp->up); + tag_table = tag_table->next_ent; + free (temp); + } +} + +/* Write out the contents of the existing tag table. + INDIRECT_P says how to format the output (it depends on whether the + table is direct or indirect). */ +static void +write_tag_table_internal (indirect_p) + int indirect_p; +{ + TAG_ENTRY *node; + int old_indent = no_indent; + + no_indent = 1; + filling_enabled = 0; + must_start_paragraph = 0; + close_paragraph (); + + if (!indirect_p) + { + no_indent = 1; + insert ('\n'); + } + + add_word_args ("\037\nTag Table:\n%s", indirect_p ? "(Indirect)\n" : ""); + + /* Do not collapse -- to -, etc., in node names. */ + in_fixed_width_font++; + + for (node = tag_table; node; node = node->next_ent) + { + if (node->flags & TAG_FLAG_ANCHOR) + { /* This reference is to an anchor. */ + execute_string ("Ref: %s", node->node); + } + else + { /* This reference is to a node. */ + execute_string ("Node: %s", node->node); + } + add_word_args ("\177%d\n", node->position); + } + + add_word ("\037\nEnd Tag Table\n"); + + /* Do not collapse -- to -, etc., in node names. */ + in_fixed_width_font--; + + flush_output (); + no_indent = old_indent; +} + +void +write_tag_table () +{ + write_tag_table_internal (0); /* Not indirect. */ +} + +void +write_tag_table_indirect () +{ + write_tag_table_internal (1); +} + +/* Convert "top" and friends into "Top". */ +static void +normalize_node_name (string) + char *string; +{ + if (strcasecmp (string, "Top") == 0) + strcpy (string, "Top"); +} + +char * +get_node_token (expand) + int expand; +{ + char *string; + + get_until_in_line (expand, ",", &string); + + if (curchar () == ',') + input_text_offset++; + + fix_whitespace (string); + + /* Force all versions of "top" to be "Top". */ + normalize_node_name (string); + + return string; +} + +/* Expand any macros and other directives in a node name, and + return the expanded name as an malloc'ed string. */ +char * +expand_node_name (node) + char *node; +{ + char *result = node; + + if (node) + { + /* Don't expand --, `` etc., in case somebody will want + to print the result. */ + in_fixed_width_font++; + result = expansion (node, 0); + in_fixed_width_font--; + fix_whitespace (result); + normalize_node_name (result); + } + return result; +} + +/* Look up NAME in the tag table, and return the associated + tag_entry. If the node is not in the table return NULL. */ +TAG_ENTRY * +find_node (name) + char *name; +{ + TAG_ENTRY *tag = tag_table; + char *expanded_name; + char n1 = name[0]; + + while (tag) + { + if (tag->node[0] == n1 && strcmp (tag->node, name) == 0) + return tag; + tag = tag->next_ent; + } + + if (!expensive_validation) + return NULL; + + /* Try harder. Maybe TAG_TABLE has the expanded NAME, or maybe NAME + is expanded while TAG_TABLE has its unexpanded form. This may + slow down the search, but if they want this feature, let them + pay! If they want it fast, they should write every node name + consistently (either always expanded or always unexpaned). */ + expanded_name = expand_node_name (name); + for (tag = tag_table; tag; tag = tag->next_ent) + { + if (STREQ (tag->node, expanded_name)) + break; + /* If the tag name doesn't have the command prefix, there's no + chance it could expand into anything but itself. */ + if (strchr (tag->node, COMMAND_PREFIX)) + { + char *expanded_node = expand_node_name (tag->node); + + if (STREQ (expanded_node, expanded_name)) + { + free (expanded_node); + break; + } + free (expanded_node); + } + } + free (expanded_name); + return tag; +} + +/* Similarly for next etc. references in a @node command, where we + don't care about most of the entries. */ +static void +remember_node_node_reference (node) + char *node; +{ + NODE_REF *temp = xmalloc (sizeof (NODE_REF)); + int number; + + if (!node) return; + temp->next = node_node_references; + temp->node = xstrdup (node); + temp->type = followed_reference; + number = number_of_node (node); + if (number) + temp->number = number; /* Already assigned. */ + else + { + node_number++; + temp->number = node_number; + } + node_node_references = temp; +} + +/* Remember NODE and associates. */ +void +remember_node (node, prev, next, up, position, line_no, flags) + char *node, *prev, *next, *up; + int position, line_no, flags; +{ + /* Check for existence of this tag already. */ + if (validating) + { + TAG_ENTRY *tag = find_node (node); + if (tag) + { + line_error (_("Node `%s' previously defined at line %d"), + node, tag->line_no); + return; + } + } + + if (!(flags & TAG_FLAG_ANCHOR)) + { + /* Make this the current node. */ + current_node = node; + } + + /* Add it to the list. */ + { + int number = number_of_node (node); + + TAG_ENTRY *new = xmalloc (sizeof (TAG_ENTRY)); + new->node = node; + new->prev = prev; + new->next = next; + new->up = up; + new->position = position; + new->line_no = line_no; + new->filename = node_filename; + new->touched = 0; + new->flags = flags; + if (number) + new->number = number; /* Already assigned. */ + else + { + node_number++; + new->number = node_number; + } + new->next_ent = tag_table; + tag_table = new; + } + + if (html) + { /* Note the references to the next etc. nodes too. */ + remember_node_node_reference (next); + remember_node_node_reference (prev); + remember_node_node_reference (up); + } +} + +/* Remember this node name for later validation use. This is used to + remember menu references while reading the input file. After the + output file has been written, if validation is on, then we use the + contents of `node_references' as a list of nodes to validate. */ +void +remember_node_reference (node, line, type) + char *node; + int line; + enum reftype type; +{ + NODE_REF *temp = xmalloc (sizeof (NODE_REF)); + int number = number_of_node (node); + + temp->next = node_references; + temp->node = xstrdup (node); + temp->line_no = line; + temp->section = current_section; + temp->type = type; + temp->containing_node = xstrdup (current_node ? current_node : ""); + temp->filename = node_filename; + if (number) + temp->number = number; /* Already assigned. */ + else + { + node_number++; + temp->number = node_number; + } + + node_references = temp; +} + +static void +isolate_nodename (nodename) + char *nodename; +{ + int i, c; + int paren_seen, paren; + + if (!nodename) + return; + + canon_white (nodename); + paren_seen = paren = i = 0; + + if (*nodename == '.' || !*nodename) + { + *nodename = 0; + return; + } + + if (*nodename == '(') + { + paren++; + paren_seen++; + i++; + } + + for (; (c = nodename[i]); i++) + { + if (paren) + { + if (c == '(') + paren++; + else if (c == ')') + paren--; + + continue; + } + + /* If the character following the close paren is a space, then this + node has no more characters associated with it. */ + if (c == '\t' || + c == '\n' || + c == ',' || + ((paren_seen && nodename[i - 1] == ')') && + (c == ' ' || c == '.')) || + (c == '.' && + ((!nodename[i + 1] || + (cr_or_whitespace (nodename[i + 1])) || + (nodename[i + 1] == ')'))))) + break; + } + nodename[i] = 0; +} + +/* This function gets called at the start of every line while inside a + menu. It checks to see if the line starts with "* ", and if so and + REMEMBER_REF is nonzero, remembers the node reference as type + REF_TYPE that this menu refers to. input_text_offset is at the \n + just before the menu line. If REMEMBER_REF is zero, REF_TYPE is unused. */ +#define MENU_STARTER "* " +char * +glean_node_from_menu (remember_ref, ref_type) + int remember_ref; + enum reftype ref_type; +{ + int i, orig_offset = input_text_offset; + char *nodename; + char *line, *expanded_line; + char *old_input = input_text; + size_t old_size = input_text_length; + + if (strncmp (&input_text[input_text_offset + 1], + MENU_STARTER, + strlen (MENU_STARTER)) != 0) + return NULL; + else + input_text_offset += strlen (MENU_STARTER) + 1; + + /* The menu entry might include macro calls, so we need to expand them. */ + get_until ("\n", &line); + only_macro_expansion++; /* only expand macros in menu entries */ + expanded_line = expansion (line, 0); + only_macro_expansion--; + free (line); + input_text = expanded_line; + input_text_offset = 0; + input_text_length = strlen (expanded_line); + + get_until_in_line (0, ":", &nodename); + if (curchar () == ':') + input_text_offset++; + + if (curchar () != ':') + { + free (nodename); + get_until_in_line (0, "\n", &nodename); + isolate_nodename (nodename); + } + + input_text = old_input; + input_text_offset = orig_offset; + input_text_length = old_size; + free (expanded_line); + fix_whitespace (nodename); + normalize_node_name (nodename); + i = strlen (nodename); + if (i && nodename[i - 1] == ':') + nodename[i - 1] = 0; + + if (remember_ref) + remember_node_reference (nodename, line_number, ref_type); + + return nodename; +} + +/* Set the name of the current output file. */ +void +set_current_output_filename (fname) + const char *fname; +{ + if (current_output_filename) + free (current_output_filename); + current_output_filename = xstrdup (fname); +} + +/* The order is: nodename, nextnode, prevnode, upnode. + If all of the NEXT, PREV, and UP fields are empty, they are defaulted. + You must follow a node command which has those fields defaulted + with a sectioning command (e.g. @chapter) giving the "level" of that node. + It is an error not to do so. + The defaults come from the menu in this node's parent. */ +void +cm_node () +{ + char *node, *prev, *next, *up; + int new_node_pos, defaulting, this_section; + int no_warn = 0; + + if (strcmp (command, "nwnode") == 0) + no_warn = TAG_FLAG_NO_WARN; + + /* Get rid of unmatched brace arguments from previous commands. */ + discard_braces (); + + /* There also might be insertions left lying around that haven't been + ended yet. Do that also. */ + discard_insertions (1); + + if (!html && !already_outputting_pending_notes) + { + close_paragraph (); + output_pending_notes (); + } + + if (html && splitting && top_node_seen) + { + /* End the current split output file. */ + close_paragraph (); + output_pending_notes (); + start_paragraph (); + /* Fixme: html: need a navigation bar here. */ + add_word ("</body></html>\n"); + close_paragraph (); + fclose (output_stream); + output_stream = NULL; + } + + filling_enabled = indented_fill = 0; + new_node_pos = output_position; + if (!html || (html && splitting)) + current_footnote_number = 1; + + if (macro_expansion_output_stream && !executing_string) + append_to_expansion_output (input_text_offset + 1); + + /* Do not collapse -- to -, etc., in node names. */ + in_fixed_width_font++; + + /* While expanding the @node line, leave any non-macros + intact, so that the macro-expanded output includes them. */ + only_macro_expansion++; + node = get_node_token (1); + only_macro_expansion--; + next = get_node_token (0); + prev = get_node_token (0); + up = get_node_token (0); + + if (verbose_mode) + printf (_("Formatting node %s...\n"), node); + + if (macro_expansion_output_stream && !executing_string) + remember_itext (input_text, input_text_offset); + + no_indent = 1; + if (!no_headers && !html) + { + add_word_args ("\037\nFile: %s, Node: ", pretty_output_filename); + + if (macro_expansion_output_stream && !executing_string) + me_execute_string (node); + else + execute_string ("%s", node); + filling_enabled = indented_fill = 0; + } + + /* Check for defaulting of this node's next, prev, and up fields. */ + defaulting = (*next == 0 && *prev == 0 && *up == 0); + + this_section = what_section (input_text + input_text_offset); + + /* If we are defaulting, then look at the immediately following + sectioning command (error if none) to determine the node's + level. Find the node that contains the menu mentioning this node + that is one level up (error if not found). That node is the "Up" + of this node. Default the "Next" and "Prev" from the menu. */ + if (defaulting) + { + NODE_REF *last_ref = NULL; + NODE_REF *ref = node_references; + + if (this_section < 0 && !STREQ (node, "Top")) + { + char *polite_section_name = "top"; + int i; + + for (i = 0; section_alist[i].name; i++) + if (section_alist[i].level == current_section + 1) + { + polite_section_name = section_alist[i].name; + break; + } + + line_error + (_("Node `%s' requires a sectioning command (e.g. %c%s)"), + node, COMMAND_PREFIX, polite_section_name); + } + else + { + if (strcmp (node, "Top") == 0) + { + /* Default the NEXT pointer to be the first menu item in + this node, if there is a menu in this node. We have to + try very hard to find the menu, as it may be obscured + by execution_strings which are on the filestack. For + every member of the filestack which has a FILENAME + member which is identical to the current INPUT_FILENAME, + search forward from that offset. */ + int saved_input_text_offset = input_text_offset; + int saved_input_text_length = input_text_length; + char *saved_input_text = input_text; + FSTACK *next_file = filestack; + + int orig_offset, orig_size; + + /* No matter what, make this file point back at `(dir)'. */ + free (up); + up = xstrdup ("(dir)"); /* html fixxme */ + + while (1) + { + orig_offset = input_text_offset; + orig_size = + search_forward (node_search_string, orig_offset); + + if (orig_size < 0) + orig_size = input_text_length; + + input_text_offset = search_forward ("\n@menu", orig_offset); + if (input_text_offset > -1 + && cr_or_whitespace (input_text[input_text_offset + 6])) + { + char *nodename_from_menu = NULL; + + input_text_offset = + search_forward ("\n* ", input_text_offset); + + if (input_text_offset != -1) + nodename_from_menu = glean_node_from_menu (0, 0); + + if (nodename_from_menu) + { + free (next); + next = nodename_from_menu; + break; + } + } + + /* We got here, so it hasn't been found yet. Try + the next file on the filestack if there is one. */ + if (next_file + && FILENAME_CMP (next_file->filename, input_filename) + == 0) + { + input_text = next_file->text; + input_text_offset = next_file->offset; + input_text_length = next_file->size; + next_file = next_file->next; + } + else + { /* No more input files to check. */ + break; + } + } + + input_text = saved_input_text; + input_text_offset = saved_input_text_offset; + input_text_length = saved_input_text_length; + } + } + + /* Fix the level of the menu references in the Top node, iff it + was declared with @top, and no subsequent reference was found. */ + if (top_node_seen && !non_top_node_seen) + { + /* Then this is the first non-@top node seen. */ + int level; + + level = set_top_section_level (this_section - 1); + non_top_node_seen = 1; + + while (ref) + { + if (ref->section == level) + ref->section = this_section - 1; + ref = ref->next; + } + + ref = node_references; + } + + while (ref) + { + if (ref->section == (this_section - 1) + && ref->type == menu_reference + && strcmp (ref->node, node) == 0) + { + char *containing_node = ref->containing_node; + + free (up); + up = xstrdup (containing_node); + + if (last_ref + && last_ref->type == menu_reference + && strcmp (last_ref->containing_node, containing_node) == 0) + { + free (next); + next = xstrdup (last_ref->node); + } + + while (ref->section == this_section - 1 + && ref->next + && ref->next->type != menu_reference) + ref = ref->next; + + if (ref->next && ref->type == menu_reference + && strcmp (ref->next->containing_node, containing_node) == 0) + { + free (prev); + prev = xstrdup (ref->next->node); + } + else if (!ref->next + && strcasecmp (ref->containing_node, "Top") == 0) + { + free (prev); + prev = xstrdup (ref->containing_node); + } + break; + } + last_ref = ref; + ref = ref->next; + } + } + + /* Insert the correct args if we are expanding macros, and the node's + pointers weren't defaulted. */ + if (macro_expansion_output_stream && !executing_string && !defaulting) + { + char *temp; + int op_orig = output_paragraph_offset; + int meta_pos_orig = meta_char_pos; + int extra = html ? strlen (node) : 0; + + temp = xmalloc (7 + extra + strlen (next) + strlen (prev) + strlen (up)); + sprintf (temp, "%s, %s, %s, %s", html ? node : "", next, prev, up); + me_execute_string (temp); + free (temp); + + output_paragraph_offset = op_orig; + meta_char_pos = meta_pos_orig; + } + + if (!*node) + { + line_error (_("No node name specified for `%c%s' command"), + COMMAND_PREFIX, command); + free (node); + free (next); next = NULL; + free (prev); prev= NULL; + free (up); up = NULL; + node_number++; /* else it doesn't get bumped */ + } + else + { + if (!*next) { free (next); next = NULL; } + if (!*prev) { free (prev); prev = NULL; } + if (!*up) { free (up); up = NULL; } + remember_node (node, prev, next, up, new_node_pos, line_number, no_warn); + outstanding_node = 1; + } + + if (html) + { + char *tem; + + if (splitting) + { /* this code not operational, we do not currently split html */ + char filename[20]; + + sprintf (filename, "node%d.html", number_of_node (node)); + output_stream = fopen (filename, "w"); + if (output_stream == NULL) + { + fs_error (filename); + xexit (1); + } + set_current_output_filename (filename); + /* FIXME: when this code is operational, we will need to + expand node, next, prev, and up before output. */ + add_word_args ("<html><head><title>%s</title>", node); + if (next) add_link (next, "rel=next"); + if (prev) add_link (prev, "rel=previous"); + if (up) add_link (up, "rel=up"); + add_word ("</head>\n<body>\n"); + } + + if (!splitting && no_headers) + { /* cross refs need a name="#anchor" even if we're not writing headers*/ + add_word ("<a name=\""); + tem = expand_node_name (node); + add_anchor_name (tem, 0); + add_word ("\"></a>"); + free (tem); + } + + if (splitting || !no_headers) + { /* Navigation bar. The <p> avoids the links area running + on with old Lynxen. */ + add_word_args ("<p>%s\n", splitting ? "" : "<hr>"); + add_word_args ("%s<a name=\"", _("Node:")); + tem = expand_node_name (node); + add_anchor_name (tem, 0); + add_word_args ("\">%s</a>", tem); + free (tem); + + if (next) + { + add_word (",\n"); + add_word (_("Next:")); + add_word ("<a rel=next href=\""); + tem = expansion (next, 0); + add_anchor_name (tem, 1); + add_word_args ("\">%s</a>", tem); + free (tem); + } + if (prev) + { + add_word (",\n"); + add_word (_("Previous:")); + add_word ("<a rel=previous href=\""); + tem = expansion (prev, 0); + add_anchor_name (tem, 1); + add_word_args ("\">%s</a>", tem); + free (tem); + } + if (up) + { + add_word (",\n"); + add_word (_("Up:")); + add_word ("<a rel=up href=\""); + tem = expansion (up, 0); + add_anchor_name (tem, 1); + add_word_args ("\">%s</a>", tem); + free (tem); + } + /* html fixxme: we want a `top' or `contents' link here. */ + + add_word_args ("\n%s<br>\n", splitting ? "<hr>" : ""); + } + } + + else if (!no_headers) + { + if (macro_expansion_output_stream) + me_inhibit_expansion++; + + /* These strings are not translatable. */ + if (next) + { + execute_string (", Next: %s", next); + filling_enabled = indented_fill = 0; + } + if (prev) + { + execute_string (", Prev: %s", prev); + filling_enabled = indented_fill = 0; + } + if (up) + { + execute_string (", Up: %s", up); + filling_enabled = indented_fill = 0; + } + if (macro_expansion_output_stream) + me_inhibit_expansion--; + } + + close_paragraph (); + no_indent = 0; + + /* Change the section only if there was a sectioning command. */ + if (this_section >= 0) + current_section = this_section; + + if (current_node && STREQ (current_node, "Top")) + top_node_seen = 1; + + filling_enabled = 1; + in_fixed_width_font--; +} + +/* Cross-reference target at an arbitrary spot. */ +void +cm_anchor (arg) + int arg; +{ + char *anchor; + + if (arg == END) + return; + + /* Parse the anchor text. */ + anchor = get_xref_token (1); + + /* In HTML mode, need to actually produce some output. */ + if (html) + { + /* If this anchor is at the beginning of a new paragraph, make + sure a new paragraph is indeed started. */ + if (!paragraph_is_open) + { + start_paragraph (); + if (!in_fixed_width_font || in_menu || in_detailmenu) + { + insert_string ("<p>"); + in_paragraph = 1; + } + } + add_word ("<a name=\""); + add_anchor_name (anchor, 0); + add_word ("\"></a>"); + } + + /* Save it in the tag table. */ + remember_node (anchor, NULL, NULL, NULL, output_position + output_column, + line_number, TAG_FLAG_ANCHOR); +} + +/* Find NODE in REF_LIST. */ +static NODE_REF * +find_node_reference (node, ref_list) + char *node; + NODE_REF *ref_list; +{ + NODE_REF *orig_ref_list = ref_list; + char *expanded_node; + + while (ref_list) + { + if (strcmp (node, ref_list->node) == 0) + break; + ref_list = ref_list->next; + } + + if (ref_list || !expensive_validation) + return ref_list; + + /* Maybe NODE is not expanded yet. This may be SLOW. */ + expanded_node = expand_node_name (node); + for (ref_list = orig_ref_list; ref_list; ref_list = ref_list->next) + { + if (STREQ (expanded_node, ref_list->node)) + break; + if (strchr (ref_list->node, COMMAND_PREFIX)) + { + char *expanded_ref = expand_node_name (ref_list->node); + + if (STREQ (expanded_node, expanded_ref)) + { + free (expanded_ref); + break; + } + free (expanded_ref); + } + } + free (expanded_node); + return ref_list; +} + +void +free_node_references () +{ + NODE_REF *list, *temp; + + list = node_references; + + while (list) + { + temp = list; + free (list->node); + free (list->containing_node); + list = list->next; + free (temp); + } + node_references = NULL; +} + +void +free_node_node_references () +{ + NODE_REF *list, *temp; + + list = node_references; + + while (list) + { + temp = list; + free (list->node); + list = list->next; + free (temp); + } + node_node_references = NULL; +} + +/* Return the number assigned to a named node in either the tag_table + or node_references list or zero if no number has been assigned. */ +int +number_of_node (node) + char *node; +{ + NODE_REF *temp_ref; + TAG_ENTRY *temp_node = find_node (node); + + if (temp_node) + return temp_node->number; + else if ((temp_ref = find_node_reference (node, node_references))) + return temp_ref->number; + else if ((temp_ref = find_node_reference (node, node_node_references))) + return temp_ref->number; + else + return 0; +} + +/* validation */ + +/* Return 1 if TAG (at LINE) correctly validated, or 0 if not. + LABEL is the (translated) description of the type of reference -- + Menu, Cross, Next, etc. */ + +static int +validate (tag, line, label) + char *tag; + int line; + char *label; +{ + TAG_ENTRY *result; + + /* If there isn't a tag to verify, or if the tag is in another file, + then it must be okay. */ + if (!tag || !*tag || *tag == '(') + return 1; + + /* Otherwise, the tag must exist. */ + result = find_node (tag); + + if (!result) + { + line_number = line; + line_error (_("%s reference to nonexistent node `%s'"), label, tag); + return 0; + } + result->touched++; + return 1; +} + +/* The strings here are followed in the message by `reference to...' in + the `validate' routine. They are only used in messages, thus are + translated. */ +static char * +reftype_type_string (type) + enum reftype type; +{ + switch (type) + { + case menu_reference: + return _("Menu"); + case followed_reference: + return _("Cross"); + default: + return "Internal-bad-reference-type"; + } +} + +static void +validate_other_references (ref_list) + NODE_REF *ref_list; +{ + char *old_input_filename = input_filename; + + while (ref_list) + { + input_filename = ref_list->filename; + validate (ref_list->node, ref_list->line_no, + reftype_type_string (ref_list->type)); + ref_list = ref_list->next; + } + input_filename = old_input_filename; +} + +/* Validation of an info file. + Scan through the list of tag entries touching the Prev, Next, and Up + elements of each. It is an error not to be able to touch one of them, + except in the case of external node references, such as "(DIR)". + + If the Prev is different from the Up, + then the Prev node must have a Next pointing at this node. + + Every node except Top must have an Up. + The Up node must contain some sort of reference, other than a Next, + to this node. + + If the Next is different from the Next of the Up, + then the Next node must have a Prev pointing at this node. */ +void +validate_file (tag_table) + TAG_ENTRY *tag_table; +{ + char *old_input_filename = input_filename; + TAG_ENTRY *tags = tag_table; + + while (tags) + { + TAG_ENTRY *temp_tag; + char *tem1, *tem2; + + input_filename = tags->filename; + line_number = tags->line_no; + + /* If this is a "no warn" node, don't validate it in any way. */ + if (tags->flags & TAG_FLAG_NO_WARN) + { + tags = tags->next_ent; + continue; + } + + /* If this node has a Next, then make sure that the Next exists. */ + if (tags->next) + { + validate (tags->next, tags->line_no, _("Next")); + + /* If the Next node exists, and there is no Up, then make sure + that the Prev of the Next points back. But do nothing if + we aren't supposed to issue warnings about this node. */ + temp_tag = find_node (tags->next); + if (temp_tag && !(temp_tag->flags & TAG_FLAG_NO_WARN)) + { + char *prev = temp_tag->prev; + int you_lose = !prev || !STREQ (prev, tags->node); + + if (you_lose && expensive_validation) + { + tem1 = expand_node_name (prev); + tem2 = expand_node_name (tags->node); + + if (STREQ (tem1, tem2)) + you_lose = 0; + free (tem1); + free (tem2); + } + if (you_lose) + { + line_error (_("Next field of node `%s' not pointed to"), + tags->node); + line_number = temp_tag->line_no; + input_filename = temp_tag->filename; + line_error (_("This node (%s) has the bad Prev"), + temp_tag->node); + input_filename = tags->filename; + line_number = tags->line_no; + temp_tag->flags |= TAG_FLAG_PREV_ERROR; + } + } + } + + /* Validate the Prev field if there is one, and we haven't already + complained about it in some way. You don't have to have a Prev + field at this stage. */ + if (!(tags->flags & TAG_FLAG_PREV_ERROR) && tags->prev) + { + int valid_p = validate (tags->prev, tags->line_no, _("Prev")); + + if (!valid_p) + tags->flags |= TAG_FLAG_PREV_ERROR; + else + { /* If the Prev field is not the same as the Up field, + then the node pointed to by the Prev field must have + a Next field which points to this node. */ + int prev_equals_up = !tags->up || STREQ (tags->prev, tags->up); + + if (!prev_equals_up && expensive_validation) + { + tem1 = expand_node_name (tags->prev); + tem2 = expand_node_name (tags->up); + prev_equals_up = STREQ (tem1, tem2); + free (tem1); + free (tem2); + } + if (!prev_equals_up) + { + temp_tag = find_node (tags->prev); + + /* If we aren't supposed to issue warnings about the + target node, do nothing. */ + if (!temp_tag || (temp_tag->flags & TAG_FLAG_NO_WARN)) + /* Do nothing. */ ; + else + { + int you_lose = !temp_tag->next + || !STREQ (temp_tag->next, tags->node); + + if (temp_tag->next && you_lose && expensive_validation) + { + tem1 = expand_node_name (temp_tag->next); + tem2 = expand_node_name (tags->node); + if (STREQ (tem1, tem2)) + you_lose = 0; + free (tem1); + free (tem2); + } + if (you_lose) + { + line_error + (_("Prev field of node `%s' not pointed to"), + tags->node); + line_number = temp_tag->line_no; + input_filename = temp_tag->filename; + line_error (_("This node (%s) has the bad Next"), + temp_tag->node); + input_filename = tags->filename; + line_number = tags->line_no; + temp_tag->flags |= TAG_FLAG_NEXT_ERROR; + } + } + } + } + } + + if (!tags->up + && !(tags->flags & TAG_FLAG_ANCHOR) + && strcasecmp (tags->node, "Top") != 0) + line_error (_("`%s' has no Up field"), tags->node); + else if (tags->up) + { + int valid_p = validate (tags->up, tags->line_no, _("Up")); + + /* If node X has Up: Y, then warn if Y fails to have a menu item + or note pointing at X, if Y isn't of the form "(Y)". */ + if (valid_p && *tags->up != '(') + { + NODE_REF *nref; + NODE_REF *tref = NULL; + NODE_REF *list = node_references; + + for (;;) + { + nref = find_node_reference (tags->node, list); + if (!nref) + break; + + if (strcmp (nref->containing_node, tags->up) == 0) + { + if (nref->type != menu_reference) + { + tref = nref; + list = nref->next; + } + else + break; + } + list = nref->next; + } + + if (!nref) + { + if (!tref && expensive_validation) + { + /* Sigh... This might be AWFULLY slow, but if + they want this feature, they'll have to pay! + We do all the loop again expanding each + containing_node reference as we go. */ + char *tags_up = expand_node_name (tags->up); + char *tem; + + list = node_references; + + for (;;) + { + nref = find_node_reference (tags->node, list); + if (!nref) + break; + tem = expand_node_name (nref->containing_node); + if (STREQ (tem, tags_up)) + { + if (nref->type != menu_reference) + tref = nref; + else + { + free (tem); + break; + } + } + free (tem); + list = nref->next; + } + } + if (!nref && !tref) + { + temp_tag = find_node (tags->up); + line_number = temp_tag->line_no; + input_filename = temp_tag->filename; + line_error ( + _("Node `%s' lacks menu item for `%s' despite being its Up target"), + tags->up, tags->node); + line_number = tags->line_no; + input_filename = tags->filename; + } + } + } + } + tags = tags->next_ent; + } + + validate_other_references (node_references); + /* We have told the user about the references which didn't exist. + Now tell him about the nodes which aren't referenced. */ + + for (tags = tag_table; tags; tags = tags->next_ent) + { + /* If this node is a "no warn" node, do nothing. */ + if (tags->flags & TAG_FLAG_NO_WARN) + { + tags = tags->next_ent; + continue; + } + + /* Special hack. If the node in question appears to have + been referenced more than REFERENCE_WARNING_LIMIT times, + give a warning. */ + if (tags->touched > reference_warning_limit) + { + input_filename = tags->filename; + line_number = tags->line_no; + warning (_("node `%s' has been referenced %d times"), + tags->node, tags->touched); + } + + if (tags->touched == 0) + { + input_filename = tags->filename; + line_number = tags->line_no; + + /* Notice that the node "Top" is special, and doesn't have to + be referenced. Anchors don't have to be referenced + either, you might define them for another document. */ + if (strcasecmp (tags->node, "Top") != 0 + && !(tags->flags & TAG_FLAG_ANCHOR)) + warning (_("unreferenced node `%s'"), tags->node); + } + } + input_filename = old_input_filename; +} + + +/* Splitting */ + +/* Return true if the tag entry pointed to by TAGS is the last node. + This means only anchors follow. */ + +static int +last_node_p (tags) + TAG_ENTRY *tags; +{ + int last = 1; + while (tags->next_ent) { + tags = tags->next_ent; + if (tags->flags & TAG_FLAG_ANCHOR) + ; + else + { + last = 0; + break; + } + } + + return last; +} + + +/* Split large output files into a series of smaller files. Each file + is pointed to in the tag table, which then gets written out as the + original file. The new files have the same name as the original file + with a "-num" attached. SIZE is the largest number of bytes to allow + in any single split file. */ +void +split_file (filename, size) + char *filename; + int size; +{ + char *root_filename, *root_pathname; + char *the_file, *filename_part (); + struct stat fileinfo; + long file_size; + char *the_header; + int header_size; + int dos_file_names = 0; /* if nonzero, don't exceed 8+3 limits */ + + /* Can only do this to files with tag tables. */ + if (!tag_table) + return; + + if (size == 0) + size = DEFAULT_SPLIT_SIZE; + + if ((stat (filename, &fileinfo) != 0) || + (((long) fileinfo.st_size) < SPLIT_SIZE_THRESHOLD)) + return; + file_size = (long) fileinfo.st_size; + + the_file = find_and_load (filename); + if (!the_file) + return; + + root_filename = filename_part (filename); + root_pathname = pathname_part (filename); + + /* Do we need to generate names of subfiles which don't exceed 8+3 limits? */ + dos_file_names = !HAVE_LONG_FILENAMES (root_pathname ? root_pathname : "."); + + if (!root_pathname) + root_pathname = xstrdup (""); + + /* Start splitting the file. Walk along the tag table + outputting sections of the file. When we have written + all of the nodes in the tag table, make the top-level + pointer file, which contains indirect pointers and + tags for the nodes. */ + { + int which_file = 1; + TAG_ENTRY *tags = tag_table; + char *indirect_info = NULL; + + /* Remember the `header' of this file. The first tag in the file is + the bottom of the header; the top of the file is the start. */ + the_header = xmalloc (1 + (header_size = tags->position)); + memcpy (the_header, the_file, header_size); + + while (tags) + { + int file_top, file_bot, limit; + + /* Have to include the Control-_. */ + file_top = file_bot = tags->position; + limit = file_top + size; + + /* If the rest of this file is only one node, then + that is the entire subfile. */ + if (last_node_p (tags)) + { + int i = tags->position + 1; + char last_char = the_file[i]; + + while (i < file_size) + { + if ((the_file[i] == '\037') && + ((last_char == '\n') || + (last_char == '\014'))) + break; + else + last_char = the_file[i]; + i++; + } + file_bot = i; + tags = tags->next_ent; + goto write_region; + } + + /* Otherwise, find the largest number of nodes that can fit in + this subfile. */ + for (; tags; tags = tags->next_ent) + { + if (last_node_p (tags)) + { + /* This entry is the last node. Search forward for the end + of this node, and that is the end of this file. */ + int i = tags->position + 1; + char last_char = the_file[i]; + + while (i < file_size) + { + if ((the_file[i] == '\037') && + ((last_char == '\n') || + (last_char == '\014'))) + break; + else + last_char = the_file[i]; + i++; + } + file_bot = i; + + if (file_bot < limit) + { + tags = tags->next_ent; + goto write_region; + } + else + { + /* Here we want to write out everything before the last + node, and then write the last node out in a file + by itself. */ + file_bot = tags->position; + goto write_region; + } + } + + /* Write region only if this was a node, not an anchor. */ + if (tags->next_ent->position > limit + && !(tags->flags & TAG_FLAG_ANCHOR)) + { + if (tags->position == file_top) + tags = tags->next_ent; + + file_bot = tags->position; + + write_region: + { + int fd; + char *split_filename, *split_basename; + unsigned root_len = strlen (root_filename); + + split_filename = xmalloc (10 + strlen (root_pathname) + + root_len); + split_basename = xmalloc (10 + root_len); + sprintf (split_basename, "%s-%d", root_filename, which_file); + if (dos_file_names) + { + char *dot = strchr (split_basename, '.'); + unsigned base_len = strlen (split_basename); + + if (dot) + { /* Make foobar.i1, .., foobar.i99, foobar.100, ... */ + dot[1] = 'i'; + memmove (which_file <= 99 ? dot + 2 : dot + 1, + split_basename + root_len + 1, + strlen (split_basename + root_len + 1) + 1); + } + else if (base_len > 8) + { + /* Make foobar-1, .., fooba-10, .., foob-100, ... */ + unsigned numlen = base_len - root_len; + + memmove (split_basename + 8 - numlen, + split_basename + root_len, numlen + 1); + } + } + sprintf (split_filename, "%s%s", root_pathname, + split_basename); + + fd = open (split_filename, O_WRONLY|O_TRUNC|O_CREAT, 0666); + if (fd < 0 + || write (fd, the_header, header_size) != header_size + || write (fd, the_file + file_top, file_bot - file_top) + != (file_bot - file_top) + || (close (fd)) < 0) + { + perror (split_filename); + if (fd != -1) + close (fd); + xexit (1); + } + + if (!indirect_info) + { + indirect_info = the_file + file_top; + sprintf (indirect_info, "\037\nIndirect:\n"); + indirect_info += strlen (indirect_info); + } + + sprintf (indirect_info, "%s: %d\n", + split_basename, file_top); + + free (split_basename); + free (split_filename); + indirect_info += strlen (indirect_info); + which_file++; + break; + } + } + } + } + + /* We have sucessfully created the subfiles. Now write out the + original again. We must use `output_stream', or + write_tag_table_indirect () won't know where to place the output. */ + output_stream = fopen (filename, "w"); + if (!output_stream) + { + perror (filename); + xexit (1); + } + + { + int distance = indirect_info - the_file; + fwrite (the_file, 1, distance, output_stream); + + /* Inhibit newlines. */ + paragraph_is_open = 0; + + write_tag_table_indirect (); + fclose (output_stream); + free (the_header); + free (the_file); + return; + } + } +} diff --git a/gnu/usr.bin/texinfo/makeinfo/node.h b/gnu/usr.bin/texinfo/makeinfo/node.h new file mode 100644 index 00000000000..3539f88f480 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/node.h @@ -0,0 +1,111 @@ +/* node.h -- declarations for Node. + $Id: node.h,v 1.1.1.1 2000/02/09 01:25:30 espie Exp $ + + Copyright (C) 1996, 97, 98, 99 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Brian Fox (bfox@ai.mit.edu). */ + +#ifndef NODE_H +#define NODE_H + +/* The various references that we know about. */ +/* What we remember for each node. */ +typedef struct tentry +{ + struct tentry *next_ent; + char *node; /* Name of this node. */ + char *prev; /* Name of "Prev:" for this node. */ + char *next; /* Name of "Next:" for this node. */ + char *up; /* Name of "Up:" for this node. */ + int position; /* Output file position of this node. */ + int line_no; /* Defining line in source file. */ + char *filename; /* The file that this node was found in. */ + int touched; /* Nonzero means this node has been referenced. */ + int flags; + int number; /* Number for this node, relevant for HTML + splitting -- from use+define order, not just + define. */ +} TAG_ENTRY; + +/* If node-a has a "Next" for node-b, but node-b has no "Prev" for node-a, + we turn on this flag bit in node-b's tag entry. This means that when + it is time to validate node-b, we don't report an additional error + if there was no "Prev" field. */ +#define TAG_FLAG_PREV_ERROR 1 +#define TAG_FLAG_NEXT_ERROR 2 +#define TAG_FLAG_UP_ERROR 4 +#define TAG_FLAG_NO_WARN 8 +#define TAG_FLAG_IS_TOP 16 +#define TAG_FLAG_ANCHOR 32 + +/* Menu reference, *note reference, and validation hacking. */ + +/* A structure to remember references with. A reference to a node is + either an entry in a menu, or a cross-reference made with [px]ref. */ +typedef struct node_ref +{ + struct node_ref *next; + char *node; /* Name of node referred to. */ + char *containing_node; /* Name of node containing this reference. */ + int line_no; /* Line number where the reference occurs. */ + int section; /* Section level where the reference occurs. */ + char *filename; /* Name of file where the reference occurs. */ + enum reftype type; /* Type of reference, either menu or note. */ + int number; /* Number for this node, relevant for + HTML splitting -- from use+define + order, not just define. */ +} NODE_REF; + +/* The linked list of such structures. */ +extern NODE_REF *node_references; + +/* A similar list for references occuring in @node next + and similar references, needed for HTML. */ +extern NODE_REF *node_node_references; + +/* List of all nodes. */ +extern TAG_ENTRY *tag_table; + +/* Counter for setting node_ref.number; zero is Top. */ +extern int node_number; + +/* The current node's section level. */ +extern int current_section; + +/* Nonzero when the next sectioning command should generate an anchor + corresponding to the current node in HTML mode. */ +extern int outstanding_node; + +extern TAG_ENTRY *find_node (); + +/* A search string which is used to find a line defining a node. */ +DECLARE (char *, node_search_string, "\n@node "); + +/* Extract node name from a menu item. */ +extern char *glean_node_from_menu (); + +/* Remember a node for later validation. */ +extern void remember_node_reference (); + +/* Remember the name of the current output file. */ +extern void set_current_output_filename (); + +/* Expand macros and commands in the node name and canonicalize + whitespace in the resulting expansion. */ +extern char *expand_node_name (); + +#endif /* NODE_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/sectioning.c b/gnu/usr.bin/texinfo/makeinfo/sectioning.c new file mode 100644 index 00000000000..5ec18dfd5b0 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/sectioning.c @@ -0,0 +1,691 @@ +/* sectioning.c -- all related stuff @chapter, @section... @contents + $Id: sectioning.c,v 1.1.1.1 2000/02/09 01:25:31 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#include "system.h" +#include "cmds.h" +#include "macro.h" +#include "makeinfo.h" +#include "node.h" +#include "toc.h" +#include "sectioning.h" + +/* See comment in sectioning.h. */ +section_alist_type section_alist[] = { + { "unnumberedsubsubsec", 5, ENUM_SECT_NO, TOC_YES }, + { "unnumberedsubsec", 4, ENUM_SECT_NO, TOC_YES }, + { "unnumberedsec", 3, ENUM_SECT_NO, TOC_YES }, + { "unnumbered", 2, ENUM_SECT_NO, TOC_YES }, + + { "appendixsubsubsec", 5, ENUM_SECT_APP, TOC_YES }, /* numbered like A.X.X.X */ + { "appendixsubsec", 4, ENUM_SECT_APP, TOC_YES }, + { "appendixsec", 3, ENUM_SECT_APP, TOC_YES }, + { "appendixsection", 3, ENUM_SECT_APP, TOC_YES }, + { "appendix", 2, ENUM_SECT_APP, TOC_YES }, + + { "subsubsec", 5, ENUM_SECT_YES, TOC_YES }, + { "subsubsection", 5, ENUM_SECT_YES, TOC_YES }, + { "subsection", 4, ENUM_SECT_YES, TOC_YES }, + { "section", 3, ENUM_SECT_YES, TOC_YES }, + { "chapter", 2, ENUM_SECT_YES, TOC_YES }, + + { "subsubheading", 5, ENUM_SECT_NO, TOC_NO }, + { "subheading", 4, ENUM_SECT_NO, TOC_NO }, + { "heading", 3, ENUM_SECT_NO, TOC_NO }, + { "chapheading", 2, ENUM_SECT_NO, TOC_NO }, + { "majorheading", 2, ENUM_SECT_NO, TOC_NO }, + + { "top", 1, ENUM_SECT_NO, TOC_YES }, + { NULL, 0, 0, 0 } +}; + +/* The argument of @settitle, used for HTML. */ +char *title = NULL; + + +#define APPENDIX_MAGIC 1024 +#define UNNUMBERED_MAGIC 2048 + +/* Number memory for every level @chapter, @section, + @subsection, @subsubsection. */ +static int numbers [] = { 0, 0, 0, 0 }; + +/* enum_marker == APPENDIX_MAGIC then we are counting appendencies + enum_marker == UNNUMBERED_MAGIC then we are within unnumbered area. + Handling situations like this: + @unnumbered .. + @section ... */ +static int enum_marker = 0; + +/* Organized by level commands. That is, "*" == chapter, "=" == section. */ +static char *scoring_characters = "*=-."; + +/* Amount to offset the name of sectioning commands to levels by. */ +static int section_alist_offset = 0; + + +/* num == ENUM_SECT_NO means unnumbered (should never call this) + num == ENUM_SECT_YES means numbered + num == ENUM_SECT_APP means numbered like A.1 and so on */ +char * +get_sectioning_number (level, num) + int level; + int num; +{ + static char s[100]; /* should ever be enough for 99.99.99.99 + Appendix A.1 */ + + char *p; + int i; + + s[0] = 0; + + /* create enumeration in front of chapter, section, subsection and so on. */ + for (i = 0; i < level; i++) + { + p = s + strlen (s); + if ((i == 0) && (enum_marker == APPENDIX_MAGIC)) + sprintf (p, "%c.", numbers[i] + 64); /* Should be changed to + be more portable */ + else + sprintf (p, "%d.", numbers[i]); + } + + /* the last number is never followed by a dot */ + p = s + strlen (s); + if ((num == ENUM_SECT_APP) + && (i == 0) + && (enum_marker == APPENDIX_MAGIC)) + sprintf (p, _("Appendix %c "), numbers[i] + 64); + else + sprintf (p, "%d ", numbers[i]); + + return s; +} + + +/* Set the level of @top to LEVEL. Return the old level of @top. */ +int +set_top_section_level (level) + int level; +{ + int i, result = -1; + + for (i = 0; section_alist[i].name; i++) + if (strcmp (section_alist[i].name, "top") == 0) + { + result = section_alist[i].level; + section_alist[i].level = level; + break; + } + return result; +} + + +/* return the index of the given sectioning command in section_alist */ +int +search_sectioning (text) + char *text; +{ + int i; + char *t; + + /* ignore the optional command prefix */ + if (text[0] == COMMAND_PREFIX) + text++; + + for (i = 0; (t = section_alist[i].name); i++) + { + if (strcmp (t, text) == 0) + { + return i; + } + } + return -1; +} + +/* Return an integer which identifies the type section present in TEXT. */ +int +what_section (text) + char *text; +{ + int index, j; + char *temp; + int return_val; + + find_section_command: + for (j = 0; text[j] && cr_or_whitespace (text[j]); j++); + if (text[j] != COMMAND_PREFIX) + return -1; + + text = text + j + 1; + + /* We skip @c, @comment, and @?index commands. */ + if ((strncmp (text, "comment", strlen ("comment")) == 0) || + (text[0] == 'c' && cr_or_whitespace (text[1])) || + (strcmp (text + 1, "index") == 0)) + { + while (*text++ != '\n'); + goto find_section_command; + } + + /* Handle italicized sectioning commands. */ + if (*text == 'i') + text++; + + for (j = 0; text[j] && !cr_or_whitespace (text[j]); j++); + + temp = xmalloc (1 + j); + strncpy (temp, text, j); + temp[j] = 0; + + index = search_sectioning (temp); + free (temp); + if (index >= 0) + { + return_val = section_alist[index].level + section_alist_offset; + if (return_val < 0) + return_val = 0; + else if (return_val > 5) + return_val = 5; + return return_val; + } + return -1; +} + + +void +sectioning_underscore (cmd) + char *cmd; +{ + char character; + char *temp; + int level; + + temp = xmalloc (2 + strlen (cmd)); + temp[0] = COMMAND_PREFIX; + strcpy (&temp[1], cmd); + level = what_section (temp); + free (temp); + level -= 2; + + if (level < 0) + level = 0; + + if (html) + sectioning_html (level, cmd); + else + { + character = scoring_characters[level]; + insert_and_underscore (level, character, cmd); + } +} + +/* insert_and_underscore and sectioning_html are the + only functions which call this. + I have created this, because it was exactly the same + code in both functions. */ +static char * +handle_enum_increment (level, index) + int level; + int index; +{ + /* special for unnumbered */ + if (number_sections && section_alist[index].num == ENUM_SECT_NO) + { + if (level == 0 + && enum_marker != UNNUMBERED_MAGIC) + enum_marker = UNNUMBERED_MAGIC; + } + /* enumerate only things which are allowed */ + if (number_sections && section_alist[index].num) + { + /* reset the marker if we get into enumerated areas */ + if (section_alist[index].num == ENUM_SECT_YES + && level == 0 + && enum_marker == UNNUMBERED_MAGIC) + enum_marker = 0; + /* This is special for appendix; if we got the first + time an appendix command then we are entering appendix. + Thats the point we have to start countint with A, B and so on. */ + if (section_alist[index].num == ENUM_SECT_APP + && level == 0 + && enum_marker != APPENDIX_MAGIC) + { + enum_marker = APPENDIX_MAGIC; + numbers [0] = 0; /* this means we start with Appendix A */ + } + + /* only increment counters if we are not in unnumbered + area. This handles situations like this: + @unnumbered .... This sets enum_marker to UNNUMBERED_MAGIC + @section .... */ + if (enum_marker != UNNUMBERED_MAGIC) + { + int i; + + /* reset all counters which are one level deeper */ + for (i = level; i < 3; i++) + numbers [i + 1] = 0; + + numbers[level]++; + return xstrdup + (get_sectioning_number (level, section_alist[index].num)); + } + } /* if (number_sections)... */ + + return xstrdup (""); +} + + +/* Insert the text following input_text_offset up to the end of the line + in a new, separate paragraph. Directly underneath it, insert a + line of WITH_CHAR, the same length of the inserted text. */ +void +insert_and_underscore (level, with_char, cmd) + int level; + int with_char; + char *cmd; +{ + int i, len; + int index; + int old_no_indent; + unsigned char *starting_pos, *ending_pos; + char *temp; + + close_paragraph (); + filling_enabled = indented_fill = 0; + old_no_indent = no_indent; + no_indent = 1; + + if (macro_expansion_output_stream && !executing_string) + append_to_expansion_output (input_text_offset + 1); + + get_rest_of_line (0, &temp); + starting_pos = output_paragraph + output_paragraph_offset; + + index = search_sectioning (cmd); + if (index < 0) + { + /* should never happen, but a poor guy, named Murphy ... */ + warning (_("Internal error (search_sectioning) \"%s\"!"), cmd); + return; + } + + /* This is a bit tricky: we must produce "X.Y SECTION-NAME" in the + Info output and in TOC, but only SECTION-NAME in the macro-expanded + output. */ + + /* Step 1: produce "X.Y" and add it to Info output. */ + add_word (handle_enum_increment (level, index)); + + /* Step 2: add "SECTION-NAME" to both Info and macro-expanded output. */ + if (macro_expansion_output_stream && !executing_string) + { + char *temp1 = xmalloc (2 + strlen (temp)); + sprintf (temp1, "%s\n", temp); + remember_itext (input_text, input_text_offset); + me_execute_string (temp1); + free (temp1); + } + else + execute_string ("%s\n", temp); + + /* Step 3: pluck "X.Y SECTION-NAME" from the output buffer and + insert it into the TOC. */ + ending_pos = output_paragraph + output_paragraph_offset; + if (section_alist[index].toc == TOC_YES) + toc_add_entry (substring (starting_pos, ending_pos - 1), + level, current_node, NULL); + + free (temp); + + len = (ending_pos - starting_pos) - 1; + for (i = 0; i < len; i++) + add_char (with_char); + insert ('\n'); + close_paragraph (); + filling_enabled = 1; + no_indent = old_no_indent; +} + +/* Insert the text following input_text_offset up to the end of the + line as an HTML heading element of the appropriate `level' and + tagged as an anchor for the current node.. */ +void +sectioning_html (level, cmd) + int level; + char *cmd; +{ + static int toc_ref_count = 0; + int index; + int old_no_indent; + unsigned char *starting_pos, *ending_pos; + char *temp, *toc_anchor = NULL; + + close_paragraph (); + filling_enabled = indented_fill = 0; + old_no_indent = no_indent; + no_indent = 1; + + add_word_args ("<h%d>", level + 1); /* level 0 is <h1> */ + + /* If we are outside of any node, produce an anchor that + the TOC could refer to. */ + if (!current_node || !*current_node) + { + starting_pos = output_paragraph + output_paragraph_offset; + add_word_args ("<a name=\"TOC%d\">", toc_ref_count++); + toc_anchor = substring (starting_pos + 9, + output_paragraph + output_paragraph_offset); + } + starting_pos = output_paragraph + output_paragraph_offset; + + if (macro_expansion_output_stream && !executing_string) + append_to_expansion_output (input_text_offset + 1); + + get_rest_of_line (0, &temp); + + index = search_sectioning (cmd); + if (index < 0) + { + /* should never happen, but a poor guy, named Murphy ... */ + warning (_("Internal error (search_sectioning) \"%s\"!"), cmd); + return; + } + + /* Produce "X.Y" and add it to HTML output. */ + add_word (handle_enum_increment (level, index)); + + /* add the section name to both HTML and macro-expanded output. */ + if (macro_expansion_output_stream && !executing_string) + { + remember_itext (input_text, input_text_offset); + me_execute_string (temp); + write_region_to_macro_output ("\n", 0, 1); + } + else + execute_string ("%s", temp); + + ending_pos = output_paragraph + output_paragraph_offset; + + /* Pluck ``X.Y SECTION-NAME'' from the output buffer and insert it + into the TOC. */ + if (section_alist[index].toc == TOC_YES) + toc_add_entry (substring (starting_pos, ending_pos), + level, current_node, toc_anchor); + + free (temp); + + if (outstanding_node) + outstanding_node = 0; + + add_word_args ("</h%d>", level+1); + close_paragraph(); + filling_enabled = 1; + no_indent = old_no_indent; +} + + +/* Shift the meaning of @section to @chapter. */ +void +cm_raisesections () +{ + discard_until ("\n"); + section_alist_offset--; +} + +/* Shift the meaning of @chapter to @section. */ +void +cm_lowersections () +{ + discard_until ("\n"); + section_alist_offset++; +} + +/* The command still works, but prints a warning message in addition. */ +void +cm_ideprecated (arg, start, end) + int arg, start, end; +{ + warning (_("%c%s is obsolete; use %c%s instead"), + COMMAND_PREFIX, command, COMMAND_PREFIX, command + 1); + sectioning_underscore (command + 1); +} + + +/* Treat this just like @unnumbered. The only difference is + in node defaulting. */ +void +cm_top () +{ + /* It is an error to have more than one @top. */ + if (top_node_seen && strcmp (current_node, "Top") != 0) + { + TAG_ENTRY *tag = tag_table; + + line_error (_("Node with %ctop as a section already exists"), + COMMAND_PREFIX); + + while (tag) + { + if (tag->flags & TAG_FLAG_IS_TOP) + { + int old_line_number = line_number; + char *old_input_filename = input_filename; + + line_number = tag->line_no; + input_filename = tag->filename; + line_error (_("Here is the %ctop node"), COMMAND_PREFIX); + input_filename = old_input_filename; + line_number = old_line_number; + return; + } + tag = tag->next_ent; + } + } + else + { + TAG_ENTRY *top_node = find_node ("Top"); + top_node_seen = 1; + + /* It is an error to use @top before you have used @node. */ + if (!tag_table) + { + char *top_name; + + get_rest_of_line (0, &top_name); + line_error (_("%ctop used before %cnode, defaulting to %s"), + COMMAND_PREFIX, COMMAND_PREFIX, top_name); + execute_string ("@node Top, , (dir), (dir)\n@top %s\n", top_name); + free (top_name); + return; + } + else if (html && splitting) + { + char *next = top_node ? top_node->next : NULL; + + add_word ("<p>"); + if (next) + { + add_word (_("Next:")); + add_word ("<a rel=next href=\""); + add_anchor_name (next, 1); + add_word ("\">"); + execute_string (next); + add_word ("</a>\n"); + } + } + + cm_unnumbered (); + + /* The most recently defined node is the top node. */ + tag_table->flags |= TAG_FLAG_IS_TOP; + + /* Now set the logical hierarchical level of the Top node. */ + { + int orig_offset = input_text_offset; + + input_text_offset = search_forward (node_search_string, orig_offset); + + if (input_text_offset > 0) + { + int this_section; + + /* We have encountered a non-top node, so mark that one exists. */ + non_top_node_seen = 1; + + /* Move to the end of this line, and find out what the + sectioning command is here. */ + while (input_text[input_text_offset] != '\n') + input_text_offset++; + + if (input_text_offset < input_text_length) + input_text_offset++; + + this_section = what_section (input_text + input_text_offset); + + /* If we found a sectioning command, then give the top section + a level of this section - 1. */ + if (this_section != -1) + set_top_section_level (this_section - 1); + } + input_text_offset = orig_offset; + } + } +} + +/* The remainder of the text on this line is a chapter heading. */ +void +cm_chapter () +{ + sectioning_underscore ("chapter"); +} + +/* The remainder of the text on this line is a section heading. */ +void +cm_section () +{ + sectioning_underscore ("section"); +} + +/* The remainder of the text on this line is a subsection heading. */ +void +cm_subsection () +{ + sectioning_underscore ("subsection"); +} + +/* The remainder of the text on this line is a subsubsection heading. */ +void +cm_subsubsection () +{ + sectioning_underscore ("subsubsection"); +} + +/* The remainder of the text on this line is an unnumbered heading. */ +void +cm_unnumbered () +{ + sectioning_underscore ("unnumbered"); +} + +/* The remainder of the text on this line is an unnumbered section heading. */ +void +cm_unnumberedsec () +{ + sectioning_underscore ("unnumberedsec"); +} + +/* The remainder of the text on this line is an unnumbered + subsection heading. */ +void +cm_unnumberedsubsec () +{ + sectioning_underscore ("unnumberedsubsec"); +} + +/* The remainder of the text on this line is an unnumbered + subsubsection heading. */ +void +cm_unnumberedsubsubsec () +{ + sectioning_underscore ("unnumberedsubsubsec"); +} + +/* The remainder of the text on this line is an appendix heading. */ +void +cm_appendix () +{ + sectioning_underscore ("appendix"); +} + +/* The remainder of the text on this line is an appendix section heading. */ +void +cm_appendixsec () +{ + sectioning_underscore ("appendixsec"); +} + +/* The remainder of the text on this line is an appendix subsection heading. */ +void +cm_appendixsubsec () +{ + sectioning_underscore ("appendixsubsec"); +} + +/* The remainder of the text on this line is an appendix + subsubsection heading. */ +void +cm_appendixsubsubsec () +{ + sectioning_underscore ("appendixsubsubsec"); +} + +/* Compatibility functions substitute for chapter, section, etc. */ +void +cm_majorheading () +{ + sectioning_underscore ("majorheading"); +} + +void +cm_chapheading () +{ + sectioning_underscore ("chapheading"); +} + +void +cm_heading () +{ + sectioning_underscore ("heading"); +} + +void +cm_subheading () +{ + sectioning_underscore ("subheading"); +} + +void +cm_subsubheading () +{ + sectioning_underscore ("subsubheading"); +} diff --git a/gnu/usr.bin/texinfo/makeinfo/sectioning.h b/gnu/usr.bin/texinfo/makeinfo/sectioning.h new file mode 100644 index 00000000000..2941088f1f3 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/sectioning.h @@ -0,0 +1,80 @@ +/* sectioning.h -- all related stuff @chapter, @section... @contents + $Id: sectioning.h,v 1.1.1.1 2000/02/09 01:25:31 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#ifndef SECTIONING_H +#define SECTIONING_H + +/* Sectioning. */ +extern void + cm_chapter (), cm_unnumbered (), cm_appendix (), cm_top (), + cm_section (), cm_unnumberedsec (), cm_appendixsec (), + cm_subsection (), cm_unnumberedsubsec (), cm_appendixsubsec (), + cm_subsubsection (), cm_unnumberedsubsubsec (), cm_appendixsubsubsec (), + cm_heading (), cm_chapheading (), cm_subheading (), cm_subsubheading (), + cm_majorheading (), cm_raisesections (), cm_lowersections (), + + cm_ideprecated (); + +extern void + sectioning_underscore (), insert_and_underscore (); + +extern int what_section (); + + + +/* is needed in node.c */ +extern int set_top_section_level (); + +extern void sectioning_html (); +extern int what_section (); + +/* The argument of @settitle, used for HTML. */ +extern char *title; + + +/* Here is a structure which associates sectioning commands with + an integer that reflects the depth of the current section. */ +typedef struct +{ + char *name; + int level; /* I can't replace the levels with defines + because it is changed during run */ + int num; /* ENUM_SECT_NO means no enumeration... + ENUM_SECT_YES means enumerated version + ENUM_SECT_APP appendix (Character enumerated + at first position */ + int toc; /* TOC_NO means do not enter in toc; + TOC_YES means enter it in toc */ +} section_alist_type; + +extern section_alist_type section_alist[]; + +/* enumerate sections */ +#define ENUM_SECT_NO 0 +#define ENUM_SECT_YES 1 +#define ENUM_SECT_APP 2 + +/* make entries into toc no/yes */ +#define TOC_NO 0 +#define TOC_YES 1 + + +#endif /* not SECTIONING_H */ diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.am b/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.am new file mode 100644 index 00000000000..3e502ed4f32 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.am @@ -0,0 +1,18 @@ +## Makefile.am for texinfo/tests/makeinfo. +## Run automake in ../.. to produce Makefile.in from this. + +TESTS = cond \ + html-extrali html-min html-manuals html-para html-title \ + menu-whitespace \ + no-headers \ + node-expand node-value node-whitespace \ + top top2 + +noinst_SCRIPTS = $(TESTS) + +EXTRA_DIST = $(noinst_SCRIPTS) \ + cond.txi \ + html-extrali.txi html-min.txi html-para.txi html-title.txi \ + menu-whitespace.txi \ + node-expand.txi node-value.txi node-whitespace.txi \ + top.txi top2.txi diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.in b/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.in new file mode 100644 index 00000000000..50dedc8403c --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/Makefile.in @@ -0,0 +1,223 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +TERMLIBS = @TERMLIBS@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +l = @l@ + +TESTS = cond html-extrali html-min html-manuals html-para html-title menu-whitespace no-headers node-expand node-value node-whitespace top top2 + + +noinst_SCRIPTS = $(TESTS) + +EXTRA_DIST = $(noinst_SCRIPTS) cond.txi html-extrali.txi html-min.txi html-para.txi html-title.txi menu-whitespace.txi node-expand.txi node-value.txi node-whitespace.txi top.txi top2.txi + +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../../config.h +CONFIG_CLEAN_FILES = +SCRIPTS = $(noinst_SCRIPTS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps makeinfo/tests/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = makeinfo/tests + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +check-TESTS: $(TESTS) + @failed=0; all=0; \ + srcdir=$(srcdir); export srcdir; \ + for tst in $(TESTS); do \ + if test -f $$tst; then dir=.; \ + else dir="$(srcdir)"; fi; \ + if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \ + all=`expr $$all + 1`; \ + echo "PASS: $$tst"; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="$$failed of $$all tests failed"; \ + fi; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0 +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(SCRIPTS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: tags distdir check-TESTS info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/cond b/gnu/usr.bin/texinfo/makeinfo/tests/cond new file mode 100644 index 00000000000..30c28bdd25a --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/cond @@ -0,0 +1,32 @@ +#!/bin/sh +# Test conditional text. + +: ${srcdir=.} + +# Default Info output. +../makeinfo -o cond.out $srcdir/cond.txi || exit 1 +egrep 'This is (ifnothtml|ifinfo|ifnottex) text' cond.out >/dev/null \ + || exit 2 +test `fgrep ' text.' cond.out | wc -l` -eq 3 || exit 3 + +# Default HTML output. +../makeinfo --html -o cond.out $srcdir/cond.txi || exit 1 +egrep 'This is (html|ifhtml|ifnotinfo|ifnottex) text' cond.out >/dev/null \ + || exit 2 +test `fgrep ' text.' cond.out | wc -l` -eq 4 || exit 3 + +# --ifhtml off, --ifinfo off, --iftex off. +../makeinfo --no-ifhtml --no-ifinfo --no-iftex -o cond.out $srcdir/cond.txi || exit 1 +egrep 'This is ifnot(html|info|tex) text' cond.out >/dev/null \ + || exit 2 +test `fgrep ' text.' cond.out | wc -l` -eq 3 || exit 3 + +# Do we really need to test all the other permutations? + +# --ifhtml on, --ifinfo on, --iftex on. +../makeinfo --ifhtml --ifinfo --iftex -o cond.out $srcdir/cond.txi || exit 1 +egrep 'This is (html|ifhtml|ifinfo|tex|iftex) text' cond.out >/dev/null \ + || exit 2 +test `fgrep ' text.' cond.out | wc -l` -eq 5 || exit 3 + +rm -f cond.out cond.info diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/cond.txi b/gnu/usr.bin/texinfo/makeinfo/tests/cond.txi new file mode 100644 index 00000000000..b60242322dc --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/cond.txi @@ -0,0 +1,40 @@ +\input texinfo +@setfilename cond.info + +@node Top + +@html +This is html text. +@end html + +@ifhtml +This is ifhtml text. +@end ifhtml + +@ifnothtml +This is ifnothtml text. +@end ifnothtml + + +@ifinfo +This is ifinfo text. +@end ifinfo + +@ifnotinfo +This is ifnotinfo text. +@end ifnotinfo + + +@tex +This is tex text. +@end tex + +@iftex +This is iftex text. +@end iftex + +@ifnottex +This is ifnottex text. +@end ifnottex + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali b/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali new file mode 100644 index 00000000000..22ecd896ad7 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali @@ -0,0 +1,13 @@ +#!/bin/sh +# Test no extra <li> from @menu. + +li_count=`../makeinfo --html -o - ${srcdir-.}/html-extrali.txi 2>/dev/null \ +| grep '<li>' \ +| wc -l` + +if test "$li_count" -ne 1; then + echo "$li_count <li>s instead of one." >&2 + exit 1 +else + exit 0 +fi diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali.txi b/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali.txi new file mode 100644 index 00000000000..281aa7b3193 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-extrali.txi @@ -0,0 +1,11 @@ +\input texinfo +@setfilename menuli.info + +@c extra <li> generated after <menu> +@c From: Marius Groeger <mag@sysgo.de>, 13nov98. + +@menu +* entry1:: +@end menu + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-manuals b/gnu/usr.bin/texinfo/makeinfo/tests/html-manuals new file mode 100644 index 00000000000..5e9523c820e --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-manuals @@ -0,0 +1,12 @@ +#!/bin/sh +# Test that all the distribution manuals can be converted to HTML. + +: ${srcdir=.} + +for manual in info.texi info-stnd.texi texinfo.txi; do + base=`echo $manual | sed 's/\.te*xi$//'` + ../makeinfo --html -I$srcdir/../../doc --no-split \ + $srcdir/../../doc/$manual -o $base.html \ + || exit 1 + rm -f $base.html +done diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-min b/gnu/usr.bin/texinfo/makeinfo/tests/html-min new file mode 100644 index 00000000000..e5971530afc --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-min @@ -0,0 +1,8 @@ +#!/bin/sh +# Test that a minimal Texinfo file can be converted to HTML. + +../makeinfo --html ${srcdir-.}/html-min.txi +exit_status=$? + +rm -f html-min.html +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-min.txi b/gnu/usr.bin/texinfo/makeinfo/tests/html-min.txi new file mode 100644 index 00000000000..116519e0611 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-min.txi @@ -0,0 +1,12 @@ +\input texinfo +@setfilename html-min.info +@settitle HTML min test + +@node Top +@top Top of HTML min test + +Top. + +Second paragraph. + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-para b/gnu/usr.bin/texinfo/makeinfo/tests/html-para new file mode 100644 index 00000000000..ba3191bf18f --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-para @@ -0,0 +1,8 @@ +#!/bin/sh +# Test that paragraph beginnings in HTML work ok. + +../makeinfo --html ${srcdir-.}/html-para.txi +exit_status=$? + +rm -f html-para.html +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-para.txi b/gnu/usr.bin/texinfo/makeinfo/tests/html-para.txi new file mode 100644 index 00000000000..c6e34fd2513 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-para.txi @@ -0,0 +1,24 @@ +\input texinfo +@setfilename html-para.info +@settitle HTML paragraph beginning test + +@c <p> is emitted at paragraph beginning, which makes the text +@c between START and END not exactly what some cm_xxx functions +@c expect, when they are called by pop_and_call_brace. + +@set val @@value@{@} +@definfoenclose foo,\\,// + +@node Top +@top Top of HTML paragraph test + +@value{val} should work at the beginning of a new paragraph. + +@dotless{i} dotless should not trigger error messages at the beginning +of a new paragraph. + +@sc{small-caps} should work at the beginning of a new paragraph. + +@foo{@@definfoenclose} should work at the beginning of a new paragraph. + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-title b/gnu/usr.bin/texinfo/makeinfo/tests/html-title new file mode 100644 index 00000000000..425226155dd --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-title @@ -0,0 +1,13 @@ +#!/bin/sh +# Test that titles with @ commands don't produce markup in the <title>. +# (And that the @ commands get expanded.) + +if ../makeinfo --html ${srcdir-.}/html-title.txi; then + grep '^<title>@[^<>]*</title>$' html-title.html >/dev/null + exit_status=$? +else + exit_status=1 +fi + +#rm -f html-title.html +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/html-title.txi b/gnu/usr.bin/texinfo/makeinfo/tests/html-title.txi new file mode 100644 index 00000000000..2e2f25c579f --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/html-title.txi @@ -0,0 +1,12 @@ +\input texinfo +@setfilename html-title.info +@settitle @@title @sc{html} @code{test} + +@node Top +@top Top of @@title @sc{html} @code{test} + +Top. + +Second paragraph. + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace b/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace new file mode 100644 index 00000000000..d512fc1bcb9 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace @@ -0,0 +1,71 @@ +#!/bin/sh +# Test that a minimal Texinfo file can be converted to HTML. + +: ${srcdir=.} +input=`basename $0`.txi + +../makeinfo -o /dev/null $srcdir/$input +exit $? + +Date: 07 Dec 1998 11:23:44 +0100 +From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +To: bug-texinfo@gnu.org +Subject: Makeinfo mishandles defaulted node links + +The following example demonstrates a bug in makeinfo: + +$ cat top.texi +@setfilename top.info + +@node Top +@top Top + +@menu +* first:: +@end menu + +@node first +@chapter first + +@menu @c +* second:: +@end menu + +@node second +@section second +$ makeinfo top.texi +Making info file `top.info' from `top.texi'. +./top.texi:3: Next field of node `Top' not pointed to. +./top.texi:17: This node (second) has the bad Prev. +makeinfo: Removing output file `/home/as/test/top.info' due to errors; use --force to preserve. + +Makeinfo is being confused by the whitespace after @menu, or rather by its +absence. + + +1998-12-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * makeinfo/node.c (cm_node): When searching for @menu don't + require a space after it. + +--- texinfo-3.12b/makeinfo/node.c.~1~ Mon Oct 26 23:14:59 1998 ++++ texinfo-3.12b/makeinfo/node.c Sun Dec 6 00:23:59 1998 +@@ -523,9 +523,10 @@ + orig_size = size_of_input_text; + + input_text_offset = +- search_forward ("\n@menu ", orig_offset); ++ search_forward ("\n@menu", orig_offset); + +- if (input_text_offset > -1) ++ if (input_text_offset > -1 ++ && cr_or_whitespace (input_text[input_text_offset + 6])) + { + char *nodename_from_menu = NULL; + + +-- +Andreas Schwab "And now for something +schwab@issan.cs.uni-dortmund.de completely different" +schwab@gnu.org + diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace.txi b/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace.txi new file mode 100644 index 00000000000..fd1c39f7ebf --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/menu-whitespace.txi @@ -0,0 +1,18 @@ +@setfilename top.info + +@node Top +@top Top + +@menu +* first:: +@end menu + +@node first +@chapter first + +@menu @c +* second:: +@end menu + +@node second +@section second diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/no-headers b/gnu/usr.bin/texinfo/makeinfo/tests/no-headers new file mode 100644 index 00000000000..17570bb6f48 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/no-headers @@ -0,0 +1,8 @@ +#!/bin/sh +# Test that info.texi works with --no-headers (this includes node +# pointer defaulting). + +: ${srcdir=.} +docdir=$srcdir/../../doc + +../makeinfo --no-headers -o /dev/null -I$docdir info.texi diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-expand b/gnu/usr.bin/texinfo/makeinfo/tests/node-expand new file mode 100644 index 00000000000..12a67a43f82 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-expand @@ -0,0 +1,11 @@ +#!/bin/sh +# Test command expansion in node names. + +: ${srcdir=.} + +../makeinfo --commands-in-node-names $srcdir/node-expand.txi +test -s node-expand.info +exit_status=$? + +rm -f node-expand.info +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-expand.txi b/gnu/usr.bin/texinfo/makeinfo/tests/node-expand.txi new file mode 100644 index 00000000000..42cb614d308 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-expand.txi @@ -0,0 +1,64 @@ +\input texinfo.tex @c -*-texinfo-*- + +@setfilename node-expand.info + +@c Makeinfo should expand non-macros such as @@ and @value +@c in node names and node references, including menus. +@c This file deliberately references "Node 1" both via +@c @value and directly; this should not trigger any errors, +@c as long as --commands-in-node-names is used. +@c Index entries should all be expanded as well. + +@set node1 Node 1 + +@ifnottex + +@node Top, (dir), (dir), (dir) +@top + +@end ifnottex + +@menu +* @value{node1} :: +* @@node `2':: +* ``node'' with---tricks:: +@end menu + +@xref{@@node `2'}. + +@node @value{node1}, @@node `2', Top, Top +@chapter Chapter 1 + +@cindex entry for chapter 1 +This is chapter 1. +@xref{@@node `2'}. + +@set sec1 Section 1.1 + +@menu +* @value{sec1}:: +@end menu + +@node Section 1.1, , Node 1, Node 1 +@comment node-name, next, previous, up + +@cindex entry for section 1.1 +This is section 1.1. + +@node @@node `2', ``node'' with---tricks, @value{node1}, Top +@comment node-name, next, previous, up +@chapter Node 2 + +@cindex entry for chapter 2 +This is chapter 2. +@xref{@value{node1}}. @xref{Node 1}. +@xref{``node'' with---tricks, Node with some tricks}. + +@node ``node'' with---tricks, , @@node `2', Top + +@cindex tricks +Another node. + +@printindex cp + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-value b/gnu/usr.bin/texinfo/makeinfo/tests/node-value new file mode 100644 index 00000000000..90c250bc17b --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-value @@ -0,0 +1,11 @@ +#!/bin/sh +# Test @value expansion in node names. + +: ${srcdir=.} + +../makeinfo $srcdir/node-value.txi +grep -v "No Value" node-value.info >/dev/null +exit_status=$? + +rm -f node-value.info +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-value.txi b/gnu/usr.bin/texinfo/makeinfo/tests/node-value.txi new file mode 100644 index 00000000000..ba1173f9a89 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-value.txi @@ -0,0 +1,15 @@ +\input texinfo +@setfilename node-value.info +@set a--foo bar + +@node Top, @value{a--foo}, (dir), (dir) +@top Var @value{a--foo} +@value{a--foo} + +@node @value{a--foo}, BarFoo, Top, (dir) +@chapter BarFoo + +@node BarFoo, , @value{a--foo}, (dir) +@chapter bar + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace b/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace new file mode 100644 index 00000000000..7cb568554dc --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace @@ -0,0 +1,11 @@ +#!/bin/sh +# Test whitespace collapse in node names. + +: ${srcdir=.} + +../makeinfo $srcdir/node-whitespace.txi +test -s node-whitespace.info +exit_status=$? + +rm -f node-whitespace.info +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace.txi b/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace.txi new file mode 100644 index 00000000000..df1253fc507 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/node-whitespace.txi @@ -0,0 +1,30 @@ +\input texinfo.tex @c -*-texinfo-*- + +@setfilename node-whitespace.info + +@c Makeinfo should collapse whitespace in node names. + +@ifnottex + +@node Top +@top + +@end ifnottex + +@menu +* Chap 1.3 :: +* Chap 1.4 :Chap 1.4. +@end menu + +@node Chap 1.3 +@chapter Chap 1.3 + +Can I reach here? + +@node Chap 1.4 +@chapter Another space test + +How about here? +@xref{Chap 1.3}. + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/top b/gnu/usr.bin/texinfo/makeinfo/tests/top new file mode 100644 index 00000000000..852194a71cd --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/top @@ -0,0 +1,10 @@ +#!/bin/sh +# Test that a top node can be ignored. + +: ${srcdir=.} +../makeinfo $srcdir/top.txi || exit 1 + +# Expected warnings due to use of @ifinfo instead of @ifnottex. +../makeinfo --no-split --no-warn --html $srcdir/top.txi -o top.html || exit 1 + +rm -f top*.html top.info diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/top.txi b/gnu/usr.bin/texinfo/makeinfo/tests/top.txi new file mode 100644 index 00000000000..e8c3cbbc078 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/top.txi @@ -0,0 +1,25 @@ +\input texinfo +@setfilename top.info +@settitle top test + +@c This traditional top node uses @ifinfo for testing. +@c Therefore there will be warnings when processing with --html. +@c The solution is to use @ifnottex instead. + +@ifinfo +@node Top +@top Top test + +Typical top node. +@end ifinfo + +@menu +* Subnode:: +@end menu + +@node Subnode +@chapter Subnode + +Subnode. + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/top2 b/gnu/usr.bin/texinfo/makeinfo/tests/top2 new file mode 100644 index 00000000000..d38984654d5 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/top2 @@ -0,0 +1,11 @@ +#!/bin/sh +# Test that a bare top node does not crash with --html. + +: ${srcdir=.} + +# But this input file is erroneous, so throw away errors. +../makeinfo --force -o top2.html --html $srcdir/top2.txi 2>/dev/null +test -s top2.html +exit_status=$? +rm -f top2.html +exit $exit_status diff --git a/gnu/usr.bin/texinfo/makeinfo/tests/top2.txi b/gnu/usr.bin/texinfo/makeinfo/tests/top2.txi new file mode 100644 index 00000000000..ade7214b0c2 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/tests/top2.txi @@ -0,0 +1,7 @@ +\input texinfo +@setfilename top.info + +@node start +@top + +@bye diff --git a/gnu/usr.bin/texinfo/makeinfo/toc.c b/gnu/usr.bin/texinfo/makeinfo/toc.c new file mode 100644 index 00000000000..447ad5d0388 --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/toc.c @@ -0,0 +1,476 @@ +/* toc.c -- table of contents handling. + $Id: toc.c,v 1.1.1.1 2000/02/09 01:25:31 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#include "system.h" +#include "makeinfo.h" +#include "cmds.h" +#include "files.h" +#include "macro.h" +#include "node.h" +#include "lang.h" +#include "makeinfo.h" +#include "sectioning.h" +#include "toc.h" + + + + +/* array of toc entries */ +static TOC_ENTRY_ELT **toc_entry_alist = NULL; + +/* toc_counter start from 0 ... n for every @chapter, @section ... */ +static int toc_counter = 0; + +/* the file where we found the @contents directive */ +char *contents_filename; + +/* the file where we found the @shortcontents directive */ +char *shortcontents_filename; + +static const char contents_placebo[] = "\n...Table of Contents...\n"; +static const char shortcontents_placebo[] = "\n...Short Contents...\n"; +static const char lots_of_stars[] = +"***************************************************************************"; + + +/* Routine to add an entry to the table of contents */ +int +toc_add_entry (tocname, level, node_name, anchor) + char *tocname; + int level; + char *node_name; + char *anchor; +{ + char *tocname_and_node, *expanded_node, *s, *d; + + if (!node_name) + node_name = ""; + + /* I assume that xrealloc behaves like xmalloc if toc_entry_alist is + NULL */ + toc_entry_alist = xrealloc (toc_entry_alist, + (toc_counter + 1) * sizeof (TOC_ENTRY_ELT *)); + + toc_entry_alist[toc_counter] = xmalloc (sizeof (TOC_ENTRY_ELT)); + + if (html) + { + /* We need to insert the expanded node name into the TOC, so + that when we eventually output the TOC, its <A REF= link will + point to the <A NAME= tag created by cm_node in the navigation + bar. We cannot expand the containing_node member, for the + reasons explained in the WARNING below. We also cannot wait + with the node name expansion until the TOC is actually output, + since by that time the macro definitions may have been changed. + So instead we store in the tocname member the expanded node + name and the TOC name concatenated together (with the necessary + HTML markup), since that's how they are output. */ + if (!anchor) + s = expanded_node = expand_node_name (node_name); + else + expanded_node = anchor; + /* Sigh... Need to HTML-escape the expanded node name like + add_anchor_name does, except that we are not writing this to + the output, so can't use add_anchor_name... */ + /* The factor 5 in the next allocation is because the maximum + expansion of HTML-escaping is for the & character, which is + output as "&". 2 is for "> that separates node from tocname. */ + d = tocname_and_node = (char *)xmalloc (2 + 5 * strlen (expanded_node) + + strlen (tocname) + 1); + if (!anchor) + { + for (; *s; s++) + { + if (*s == '&') + { + strcpy (d, "&"); + d += 5; + } + else if (! URL_SAFE_CHAR (*s)) + { + sprintf (d, "%%%x", (unsigned char) *s); + /* do this manually since sprintf returns char * on + SunOS 4 and other old systems. */ + while (*d) + d++; + } + else + *d++ = *s; + } + strcpy (d, "\">"); + } + else + /* Section outside any node, they provided explicit anchor. */ + strcpy (d, anchor); + strcat (d, tocname); + free (tocname); /* it was malloc'ed by substring() */ + free (expanded_node); + toc_entry_alist[toc_counter]->name = tocname_and_node; + } + else + toc_entry_alist[toc_counter]->name = tocname; + /* WARNING! The node name saved in containing_node member must + be the node name with _only_ macros expanded (the macros in + the node name are expanded by cm_node when it grabs the name + from the @node directive). Non-macros, like @value, @@ and + other @-commands must NOT be expanded in containing_node, + because toc_find_section_of_node looks up the node name where + they are also unexpanded. You *have* been warned! */ + toc_entry_alist[toc_counter]->containing_node = xstrdup (node_name); + toc_entry_alist[toc_counter]->level = level; + toc_entry_alist[toc_counter]->number = toc_counter; + + /* have to be done at least */ + return toc_counter++; +} + +/* Return the name of a chapter/section/subsection etc. that + corresponds to the node NODE. If the node isn't found, + return NULL. + + WARNING! This function relies on NODE being unexpanded + except for macros (i.e., @value, @@, and other non-macros + should NOT be expanded), because the containing_node member + stores unexpanded node names. + + Note that this function returns the first section whose + containing node is NODE. Thus, they will lose if they use + more than a single chapter structioning command in a node, + or if they have a node without any structuring commands. */ +char * +toc_find_section_of_node (node) + char *node; +{ + int i; + + if (!node) + node = ""; + for (i = 0; i < toc_counter; i++) + if (STREQ (node, toc_entry_alist[i]->containing_node)) + return toc_entry_alist[i]->name; + + return NULL; +} + +/* free up memory used by toc entries */ +void +toc_free () +{ + int i; + + if (toc_counter) + { + for (i = 0; i < toc_counter; i++) + { + free (toc_entry_alist[i]->name); + free (toc_entry_alist[i]->containing_node); + free (toc_entry_alist[i]); + } + + free (toc_entry_alist); + toc_entry_alist = NULL; /* to be sure ;-) */ + toc_counter = 0; /* to be absolutley sure ;-) */ + } +} + + +/* print table of contents in HTML, may be we can produce a standalone + HTML file? */ +static void +contents_update_html (fp) + FILE *fp; +{ + int i; + int k; + int last_level; + + /* does exist any toc? */ + if (!toc_counter) + /* no, so return to sender ;-) */ + return; + + flush_output (); /* in case we are writing stdout */ + + fprintf (fp, "\n<h1>%s</h1>\n<ul>\n", _("Table of Contents")); + + last_level = toc_entry_alist[0]->level; + + for (i = 0; i < toc_counter; i++) + { + if (toc_entry_alist[i]->level > last_level) + { + /* unusual, but it is possible + @chapter ... + @subsubsection ... ? */ + for (k = 0; k < (toc_entry_alist[i]->level-last_level); k++) + fputs ("<ul>\n", fp); + } + else if (toc_entry_alist[i]->level < last_level) + { + /* @subsubsection ... + @chapter ... this IS usual.*/ + for (k = 0; k < (last_level-toc_entry_alist[i]->level); k++) + fputs ("</ul>\n", fp); + } + + fprintf (fp, "<li><a href=\"#%s</a>\n", toc_entry_alist[i]->name); + + last_level = toc_entry_alist[i]->level; + } + + /* Go back to start level. */ + if (toc_entry_alist[0]->level < last_level) + for (k = 0; k < (last_level-toc_entry_alist[0]->level); k++) + fputs ("</ul>\n", fp); + + fputs ("</ul>\n\n", fp); +} + +/* print table of contents in ASCII (--no-headers) + May be we should create a new command line switch --ascii ? */ +static void +contents_update_info (fp) + FILE *fp; +{ + int i; + int k; + + if (!toc_counter) + return; + + flush_output (); /* in case we are writing stdout */ + + fprintf (fp, "%s\n%.*s\n\n", _("Table of Contents"), + (int) strlen (_("Table of Contents")), lots_of_stars); + + for (i = 0; i < toc_counter; i++) + { + if (toc_entry_alist[i]->level == 0) + fputs ("\n", fp); + + /* indention with two spaces per level, should this + changed? */ + for (k = 0; k < toc_entry_alist[i]->level; k++) + fputs (" ", fp); + + fprintf (fp, "%s\n", toc_entry_alist[i]->name); + } + fputs ("\n\n", fp); +} + +/* shortcontents in HTML; Should this produce a standalone file? */ +static void +shortcontents_update_html (fp) + FILE *fp; +{ + int i; + + /* does exist any toc? */ + if (!toc_counter) + return; + + flush_output (); /* in case we are writing stdout */ + + fprintf (fp, "\n<h1>%s</h1>\n<ul>\n", _("Short Contents")); + + for (i = 0; i < toc_counter; i++) + { + if ((toc_entry_alist[i])->level == 0) + { + fputs ("<li>", fp); + fprintf (fp, "<a href=\"#%s\n", toc_entry_alist[i]->name); + } + } + + fputs ("</ul>\n\n", fp); +} + +/* short contents in ASCII (--no-headers). + May be we should create a new command line switch --ascii ? */ +static void +shortcontents_update_info (fp) + FILE *fp; +{ + int i; + + if (!toc_counter) + return; + + flush_output (); /* in case we are writing stdout */ + + fprintf (fp, "%s\n%.*s\n\n", _("Short Contents"), + (int) strlen (_("Short Contents")), lots_of_stars); + + for (i = 0; i < toc_counter; i++) + { + if ((toc_entry_alist[i])->level == 0) + fprintf (fp, "%s\n", toc_entry_alist[i]->name); + } + fputs ("\n\n", fp); +} + + +static FILE *toc_fp; +static char *toc_buf; + +static int +rewrite_top (fname, placebo) + const char *fname, *placebo; +{ + int idx; + + toc_buf = find_and_load (fname); + + if (!toc_buf) + { + /* Can't rewrite standard output. No point in complaining. */ + if (!STREQ (fname, "-")) + fs_error (fname); + return -1; + } + + idx = search_forward (placebo, 0); + + if (idx < 0) + { + error (_("%s: TOC should be here, but it was not found"), fname); + return -1; + } + + toc_fp = fopen (fname, "w"); + if (!toc_fp) + { + fs_error (fname); + return -1; + } + + if (fwrite (toc_buf, 1, idx, toc_fp) != idx) + { + fs_error (fname); + return -1; + } + + return idx + strlen (placebo); +} + +static void +contents_update () +{ + int cont_idx = rewrite_top (contents_filename, contents_placebo); + + if (cont_idx < 0) + return; + + if (html) + contents_update_html (toc_fp); + else + contents_update_info (toc_fp); + + if (fwrite (toc_buf + cont_idx, 1, input_text_length - cont_idx, toc_fp) + != input_text_length - cont_idx + || fclose (toc_fp) != 0) + fs_error (contents_filename); +} + +static void +shortcontents_update () +{ + int cont_idx = rewrite_top (shortcontents_filename, shortcontents_placebo); + + if (cont_idx < 0) + return; + + if (html) + shortcontents_update_html (toc_fp); + else + shortcontents_update_info (toc_fp); + + if (fwrite (toc_buf + cont_idx, 1, input_text_length - cont_idx - 1, toc_fp) + != input_text_length - cont_idx - 1 + || fclose (toc_fp) != 0) + fs_error (shortcontents_filename); +} + +void +toc_update () +{ + if (!html && !no_headers) + return; + + if (contents_filename) + contents_update (); + if (shortcontents_filename) + shortcontents_update (); +} + +void +cm_contents (arg) + int arg; +{ + if ((html || no_headers) && arg == START) + { + if (contents_filename) + { + free (contents_filename); + contents_filename = NULL; + } + + if (contents_filename && STREQ (contents_filename, "-")) + { + if (html) + contents_update_html (stdout); + else + contents_update_info (stdout); + } + else + { + contents_filename = xstrdup (current_output_filename); + insert_string (contents_placebo); /* just mark it, for now */ + } + } +} + +void +cm_shortcontents (arg) + int arg; +{ + if ((html || no_headers) && arg == START) + { + if (shortcontents_filename) + { + free (shortcontents_filename); + shortcontents_filename = NULL; + } + + if (shortcontents_filename && STREQ (shortcontents_filename, "-")) + { + if (html) + shortcontents_update_html (stdout); + else + shortcontents_update_info (stdout); + } + else + { + shortcontents_filename = xstrdup (current_output_filename); + insert_string (shortcontents_placebo); /* just mark it, for now */ + } + } +} diff --git a/gnu/usr.bin/texinfo/makeinfo/toc.h b/gnu/usr.bin/texinfo/makeinfo/toc.h new file mode 100644 index 00000000000..ec99eea335c --- /dev/null +++ b/gnu/usr.bin/texinfo/makeinfo/toc.h @@ -0,0 +1,49 @@ +/* toc.h -- table of contents handling. + $Id: toc.h,v 1.1.1.1 2000/02/09 01:25:31 espie Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Written by Karl Heinz Marbaise <kama@hippo.fido.de>. */ + +#ifndef TOC_H +#define TOC_H + +/* the file where we found the @contents directive */ +extern char *contents_filename; + +/* the file where we found the @shortcontents directive */ +extern char *shortcontents_filename; + +/* Structure to hold one entry for the toc. */ +typedef struct toc_entry_elt { + char *name; + char *containing_node; /* Name of node containing this section. */ + int number; /* counting number from 0...n independent from + chapter/section can be used for anchors or + references to it. */ + int level; /* level: chapter, section, subsection... */ +} TOC_ENTRY_ELT; + +/* all routines which have relationship with TOC should start with + toc_ (this is a kind of name-space) */ +extern int toc_add_entry (); /* return the number for the toc-entry */ +extern void toc_free (); +extern char *toc_find_section_of_node (); + +extern void cm_contents (), cm_shortcontents (); + +#endif /* not TOC_H */ diff --git a/gnu/usr.bin/texinfo/missing b/gnu/usr.bin/texinfo/missing index 79a3e4ed66b..7789652e877 100644 --- a/gnu/usr.bin/texinfo/missing +++ b/gnu/usr.bin/texinfo/missing @@ -41,9 +41,11 @@ Supported PROGRAM values: autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files - bison touch file \`y.tab.c' + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - yacc touch file \`y.tab.c'" + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) @@ -80,15 +82,17 @@ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` - if test -z "$files"; then - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` - test -z "$files" || files="$files.in" - else - files=`echo "$files" | sed -e 's/:/ /g'` - fi - test -z "$files" && files="config.h.in" - touch $files + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files ;; automake) @@ -97,9 +101,9 @@ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." - find . -type f -name Makefile.am -print \ - | sed 's/^\(.*\).am$/touch \1.in/' \ - | sh + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done ;; bison|yacc) @@ -108,7 +112,51 @@ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." - touch y.tab.c + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi ;; makeinfo) diff --git a/gnu/usr.bin/texinfo/po/POTFILES.in b/gnu/usr.bin/texinfo/po/POTFILES.in index 8debb07e931..7f08ea7833e 100644 --- a/gnu/usr.bin/texinfo/po/POTFILES.in +++ b/gnu/usr.bin/texinfo/po/POTFILES.in @@ -11,12 +11,26 @@ info/infodoc.c info/m-x.c info/makedoc.c info/nodemenu.c +info/pcterm.c info/session.c info/tilde.c info/variables.c info/window.c lib/getopt.c +lib/system.h +makeinfo/cmds.c +makeinfo/defun.c +makeinfo/files.c +makeinfo/footnote.c +makeinfo/html.c +makeinfo/index.c +makeinfo/insertion.c +makeinfo/lang.c +makeinfo/macro.c makeinfo/makeinfo.c makeinfo/multi.c +makeinfo/node.c +makeinfo/sectioning.c +makeinfo/toc.c util/install-info.c util/texindex.c diff --git a/gnu/usr.bin/texinfo/po/cs.gmo b/gnu/usr.bin/texinfo/po/cs.gmo Binary files differnew file mode 100644 index 00000000000..64580ada015 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/cs.gmo diff --git a/gnu/usr.bin/texinfo/po/cs.po b/gnu/usr.bin/texinfo/po/cs.po new file mode 100644 index 00000000000..4c6d5ee777c --- /dev/null +++ b/gnu/usr.bin/texinfo/po/cs.po @@ -0,0 +1,2655 @@ +# Czech translations for GNU texinfo +# Copyright (C) 1997 Free Software Foundation, Inc. +# Vladimir Michl <Vladimir.Michl@upol.cz>, 1997. +# +# Notes: 2 untranslated messages, It's ok. +# +msgid "" +msgstr "" +"Project-Id-Version: texinfo 3.12c\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-02-17 02:05+01:00\n" +"Last-Translator: Vladimir Michl <Vladimir.Michl@upol.cz>\n" +"Language-Team: Czech <cs@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "Posun na následující znak" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "Posun na pøedcházející znak" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "Pøesun na zaèátek tohoto øádku" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "Pøesun na konec tohoto øádku" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "Posun na následující slovo" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "Posun na pøedcházející slovo" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "Smazání znaku pod kurzorem" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "Smazání prvního znaku vlevo od kurzoru" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "Zru¹ení nebo pøeru¹ení operace" + +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "Akceptování (nebo vnucené dokonèení) tohoto øádku" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "Vlo¾ení dal¹ího znaku bez interpretace jeho funkce" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "Vlo¾ení tohoto znaku" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "Vlo¾ení tabelátoru" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "Pøemístìní znaku na pozici" + +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "Vlo¾ení toho co bylo naposled smazáno" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "Kruhový buffer smazaných oblastí je prázdný" + +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "Vlo¾ení naposledy smazaného úseku" + +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "Smazání v¹eho od kurzoru a¾ do konce øádku" + +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "Smazání v¹eho od zaèátku øádku do kurzoru" + +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "Smazání slova, od kurzoru do konce slova" + +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "Smazání slova, od zaèátku slova do kurzoru" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "Nekompletní" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "Seznam mo¾ných doplnìní" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "Doplnìní neexistují" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "Jedinné doplnìní" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "Jedno doplnìní:\n" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "%d doplnìní:\n" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "Vlo¾ení doplnìní" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "Hledám doplnìní..." + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "Odrolování obsahu okna s doplnìními" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "Poznámky pod èarou nelze zobrazit" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "" +"Zobrazení poznámek pod èarou, vztahujících se k tomuto uzlu, v jiném oknì" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "Vyhledání øetìzce v rejstøíku tohoto souboru" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "Jsou hledány polo¾ky rejstøíku..." + +#: info/indices.c:212 +msgid "No indices found." +msgstr "®ádný rejstøík nebyl nalezen." + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "Polo¾ka rejstøíku: " + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" +"Posun na dal¹í polo¾ku rejstøíku, odpovídající øetìzci z minulého pøíkazu " +"`\\[index-search]'" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "Není zadán øetìzec, který se má vyhledávat v rejstøíku(cích)." + +#: info/indices.c:349 +msgid "No index entries." +msgstr "Nejsou polo¾ky rejstøíku." + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "Ji¾ není %spolo¾ka rejstøíku, která obsahuje \"%s\"." + +#: info/indices.c:383 +msgid "more " +msgstr "dal¹í " + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "TOTO NELZE VIDÌT" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "Nalezeno \"%s\" v %s. (`\\[next-index-match]' - hledání dal¹í.)" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "Prohledávám tyto rejstøíky \"%s\"..." + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" +"Vyhledání øetìzce ve v¹ech známých rejstøících info souborù a vytvoøení menu" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "Hledat v rejstøíku odkaz na:" + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" +"\n" +"* Menu: Uzly jejich¾ rejstøíky obsahují \"%s\":\n" + +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "Více informací mù¾ete získat pomocí pøepínaèe --help.\n" + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" +" Copyright (C) %s 1996 Free Software Foundation, Inc.\n" +" Toto je volné programové vybavení, které je zcela BEZ ZÁRUKY. Podmínky " +"pro\n" +"kopírování a roz¹iøování naleznete v Obecné veøejné licenci GNU (GNU " +"General\n" +"Public Licence). Více informací získáte ve zdrojových textech v souboru\n" +"COPYING.\n" + +#: info/info.c:461 +#, fuzzy, c-format +msgid "no index entries found for `%s'\n" +msgstr "¾ádné polo¾ky nebyly nalezeny\n" + +#: info/info.c:530 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Pou¾ití: %s [PØEPÍNAÈ]... [INFO-SOUBOR [POLO®KA-MENU...]]\n" +"\n" +" Umo¾òuje èíst dokumentaci v Info formátu. Komplexnìj¹í popis, jak " +"pou¾ívat\n" +"program Info, získáte zadáním `info info options' do pøíkazového øádku.\n" +"\n" +"Pøepínaèe:\n" +"--directory=ADRESÁØ kromì promìnné INFOPATH prohledává i tento\n" +" ADRESÁØ\n" +"--dribble=SOUBOR ulo¾í klávesy, které stiskl u¾ivatel do " +"SOUBORu\n" +"--file=SOUBOR zadání info souboru, který se má prohlí¾et\n" +"--index-search=ØETÌZEC skok na uzel urèený v rejstøíku ØETÌZCEM\n" +"--node=JMÉNO_UZLU zadání uzlù, v prvním nav¹tíveném info " +"souboru\n" +"--output=SOUBOR vypisuje nav¹tívené uzly do SOUBORu\n" +"--restore=SOUBOR klávesy, které mají být automaticky po\n" +" spu¹tení infa stisknuty, ète ze SOUBORu\n" +"--subnodes rekurzivnì vypí¹e polo¾ky menu\n" +"%s--help vypí¹e tuto nápovìdu a skonèí\n" +"--version vypí¹e oznaèení verze a skonèí\n" +"\n" +" První argument, jestli¾e je zadán, je chápán jako jméno info souboru, " +"který\n" +"má být èten. Zbývající argumenty jsou chápány jako jména polo¾ek menu,\n" +"které mají být po spu¹tìní nav¹tíveny. Takto se lze jednodu¹e pøesunout do\n" +"uzlu, který máte zájem si pøeèíst. Napøíklad `info emacs buffers'.\n" +"\n" +" Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze " +"anglicky),\n" +"obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n" +"zasílejte na adresu <cs@li.org> (èesky).\n" + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "Uzel `%s' nelze zru¹it" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "Uzel `%s' nelze zru¹it" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "Permanentní okno nelze smazat" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "Permanentní okno nelze smazat" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "V uzlu \"%s\" není menu." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "V tomto uzlu není køí¾ový odkaz." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "V tomto uzlu není køí¾ový odkaz." + +#: info/info.c:612 +#, fuzzy, c-format +msgid "No `%s' pointer for this node." +msgstr "Není ukazatel na dal¹í uzel." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "Posun na zaèátek tohoto uzlu" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "Posun na zaèátek tohoto uzlu" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +#, fuzzy +msgid "Basic Commands in Info Windows\n" +msgstr "Základní pøíkazy v Info oknech" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "" + +#: info/infodoc.c:48 +#, fuzzy, c-format +msgid " %-10s Quit this help.\n" +msgstr " q Celkové ukonèení Infa." + +#: info/infodoc.c:49 +#, fuzzy, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr " q Celkové ukonèení Infa." + +#: info/infodoc.c:50 +#, fuzzy, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr " h Vyvolání prùvodce Infem." + +#: info/infodoc.c:52 +#, fuzzy +msgid "Moving within a node:\n" +msgstr "Pøesun uvnitø uzlu:" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "" + +#: info/infodoc.c:54 +#, fuzzy, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr " SPC Následující stránka." + +#: info/infodoc.c:55 +#, fuzzy, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr " DEL Pøedchozí stránka." + +#: info/infodoc.c:56 +#, fuzzy, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr " b Pøesun na zaèátek aktuálního uzlu." + +#: info/infodoc.c:57 +#, fuzzy, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr " e Pøesun na konec tohoto uzlu." + +#: info/infodoc.c:58 +#, fuzzy, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr " SPC Následující stránka." + +#: info/infodoc.c:59 +#, fuzzy, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr " DEL Pøedchozí stránka." + +# Udìlat patch na podtr¾ení +#: info/infodoc.c:61 +#, fuzzy +msgid "Selecting other nodes:\n" +msgstr "Výbìr dal¹ích uzlù:" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr " n Pøesun na \"dal¹í\" uzel tohoto uzlu." + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr " p Pøesun na \"pøedchozí\" uzel tohoto uzlu." + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr " u Pøesun \"nahoru\" z aktuálního uzelu." + +#: info/infodoc.c:66 +#, fuzzy, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr " m Vybrání polo¾ky menu zadané pomocí jména." + +#: info/infodoc.c:67 +#, fuzzy +msgid " Picking a menu item causes another node to be selected.\n" +msgstr " Vybírání polo¾ky menu zpùsobí zobrazení tohoto uzlu." + +#: info/infodoc.c:68 +#, fuzzy, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr " f Následování køí¾ového odkazu. Ètení jména odkazu." + +#: info/infodoc.c:69 +#, fuzzy, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr " l Pøesun na poslední zobrazený uzel v tomto oknì." + +#: info/infodoc.c:70 +#, fuzzy, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr " TAB Skok na dal¹í hypertextový odkaz v tomto uzlu." + +#: info/infodoc.c:71 +#, fuzzy, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr " RET Následování hypertextového odkazu pod kurzorem." + +#: info/infodoc.c:72 +#, fuzzy, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr " d Pøesun do `adresáøového' uzlu. Rovnocenné s `g (DIR)'." + +#: info/infodoc.c:73 +#, fuzzy, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr " d Pøesun do `adresáøového' uzlu. Rovnocenné s `g (DIR)'." + +#: info/infodoc.c:75 +#, fuzzy +msgid "Other commands:\n" +msgstr "Dal¹í pøíkazy: " + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "" + +#: info/infodoc.c:77 +#, fuzzy, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr " 1-9 Výbìr první ... deváté polo¾ky menu uzlu." + +#: info/infodoc.c:78 +#, fuzzy, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr " 0 Zobrazení poslední polo¾ky menu uzlu." + +#: info/infodoc.c:79 +#, fuzzy, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr " i Hledání zadaného øetìzce v rejstøíku tohoto Info souboru a výbìr" + +#: info/infodoc.c:80 +#, fuzzy +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr " uzlu, na který ukazuje první nalezená polo¾ka." + +#: info/infodoc.c:81 +#, fuzzy, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr " g Pøesun na uzel zadaný pomocí jména." + +#: info/infodoc.c:82 +#, fuzzy +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr " Také mù¾ete zadat jméno souboru ve tvaru (SOUBOR)UZEL." + +#: info/infodoc.c:83 +#, fuzzy, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr " s Hledání zadaného øetìzce v tomto Info souboru." + +#: info/infodoc.c:84 info/infodoc.c:86 +#, fuzzy +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" +" a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto øetìzce." + +#: info/infodoc.c:85 +#, fuzzy, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr " s Hledání zadaného øetìzce v tomto Info souboru." + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "" + +#: info/infodoc.c:261 +#, fuzzy +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "Základní pøíkazy v Info oknech" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" +"Následující pøíkazy mohou být vykonány pouze pomocí M-x:\n" +"\n" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "" +"--- Pou¾ijte `\\[history-node]' nebo `\\[kill-node]' pro ukonèení ---\n" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "Zobrazení nápovìdy" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "Zobrazení Info uzlu `(info)Help'" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "Zobrazení dokumentace ke KLÁVESE" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "Popis klávesy: %s" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "ESC %s je nedefinováno." + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "%s je nedefinováno." + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "Klávesa %s je definována pro pøíkaz %s." + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "Kde je pøíkaz: " + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "Pøíkaz `%s' není na ¾ádné klávese" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "Pøíkaz %s mù¾e být vyvolán pouze pomocí %s." + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "Pøíkaz %s mù¾e být vyvolán pomocí %s." + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "Funkce `%s' není známa" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "Zadání jména pøíkazu a následné zobrazení jeho popisu" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "Popis pøíkazu: " + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "Zadání jména pøíkazu v zobrazovacím poli a jeho vykonání" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "Pøíkaz zobrazovacího pole nelze vykonat zde." + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "Nastavení vý¹ky obrazovky" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "Vý¹ka obrazovky (%d): " + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" +"Pøi zpracování zdrojového souboru jsou vkládány tyto soubory:\n" +"\n" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "Se souborem %s nelze pracovat.\n" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" +"\n" +"* Menu:\n" +" (Soubor)Uzel Øádkù Velikost Soubor\n" +" ------------ ----- -------- ------" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" +" Zde je seznam uzlù, které jste poslední dobou nav¹tívil. Vyberte jeden\n" +"z tohoto menu, nebo u¾ijte `\\[history-node]' v tomto oknì.\n" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "Vytvoøení okna obsahujícího menu v¹ech aktuálnì nav¹tívených uzlù" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "Zobrazení uzlu, který byl zobrazen pøed tímto" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "Vyberte nav¹tívený uzel: " + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "Odkaz se ztratil! (%s)." + +#: info/session.c:169 +#, fuzzy, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" +" Vítejte v programu Info verze %s. \"\\[get-help-window]\" - nápovìda, " +"\"\\[menu-item]\" - polo¾ka menu." + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "Posun dolù na dal¹í øádek" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "Posun nahoru na pøedchozí øádek" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "Pøesun na konec øádku" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "Pøesun na zaèátek øádku" + +#: info/session.c:884 makeinfo/node.c:1092 +#, fuzzy +msgid "Next" +msgstr "Dal¹í" + +#: info/session.c:887 +#, fuzzy +msgid "Following Next node..." +msgstr "Pøechod na dal¹í uzel..." + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "Zobrazování první polo¾ky menu..." + +#: info/session.c:915 +#, fuzzy +msgid "Selecting Next node..." +msgstr "Zobrazování dal¹ího uzelu..." + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "" + +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "V tomto dokumentu ji¾ nejsou dal¹í uzly." + +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." +msgstr "Pro tento uzel není pøedchozí uzel." + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +#, fuzzy +msgid "Moving Prev in this window." +msgstr "Pøesun na pøedchozí uzel v tomto oknì." + +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "V tomto dokumentu ji¾ není pro tento uzel pøedchozí nebo vy¹¹í uzel." + +#: info/session.c:1053 +#, fuzzy +msgid "Moving Up in this window." +msgstr "Pøesun nahoru v tomto oknì." + +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." +msgstr "Pøesun na poslední polo¾ku menu pøedchozího uzlu." + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "Pøesun na následující uzel nebo na první ni¾¹í v uzlové struktuøe" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "Pøesun na pøedchozí uzel nebo na první vy¹¹í v uzlové struktuøe" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "Posun o stránku dolù v tomto oknì" + +#: info/session.c:1192 +#, fuzzy +msgid "Scroll forward in this window and set default window size" +msgstr "Posun o stránku dolù v tomto oknì" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "Posun o stránku nahoru v tomto oknì" + +#: info/session.c:1244 +#, fuzzy +msgid "Scroll backward in this window and set default window size" +msgstr "Posun o stránku nahoru v tomto oknì" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "Posun na zaèátek tohoto uzlu" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "Posun na konec tohoto uzlu" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "Výbìr následujícího okna" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "Výbìr pøedchozího okna" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "Rozdìlení aktuálního okna" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "Smazání aktuálního okna" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "Permanentní okno nelze smazat" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "Smazání v¹ech ostatních oknen" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "Posun druhého okna o stránku dolù" + +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "Posun druhého okna o stránku zpìt" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "Zmìna velikosti okna" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "Zvìt¹ení nebo zmen¹ení oken na obrazovce tak, aby byla stejnì velká" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "" +"Zmìna stavu zalamování v aktuálním oknì (zapnuto->vypni, vypnuto->zapni)" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +#, fuzzy +msgid "Select the Next node" +msgstr "Zobrazení následujícího uzlu" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +#, fuzzy +msgid "Select the Prev node" +msgstr "Zobrazení pøedchozího uzlu" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +#, fuzzy +msgid "Select the Up node" +msgstr "Zobrazení vy¹¹ího uzlu" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "Zobrazení posledního uzlu v tomto souboru" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "Toto okno nemá více dal¹ích uzlù" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "Zobrazení prvního uzlu v tomto souboru" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "Zobrazení poslední polo¾ky menu tohoto uzlu" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "Zobrazení této polo¾ky menu" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "V tomto menu není %d. polo¾ka" + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "Polo¾ka menu (%s): " + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "Polo¾ka menu: " + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "Následování køí¾ového odkazu (%s): " + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "Následování køí¾ového odkazu: " + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "Zadání jména polo¾ky menu a následné zobrazení" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "" +"Zadání jména poznámky pod èarou nebo køí¾ového odkazu a následné zobrazení" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "Pøesun na zaèátek menu tohoto uzlu" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "" +"Nav¹tívení tolika polo¾ek menu, kolik je mo¾no. Ka¾dá polo¾ka v jiném oknì." + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "Zadání jména uzlu a jeho následné zobrazení" + +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "Pøesun na uzel: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "V uzlu \"%s\" není menu." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "Polo¾ka menu \"%s\" v uzlu \"%s\" není." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "Uzel, na který se \"%s\" odkazuje, nelze v \"%s\" najít." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "Ètení seznamu menu zaèínajíce v adresáøi a pokraèujíce dále" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "Následování menu: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "" + +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "Zadání jména manuálové stránky a následné zobrazení" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "Manuálová stránka: " + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "Zobrazení nejvy¹¹ího uzlu v tomto souboru" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "Zobrazení uzlu `(dir)'" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "Zru¹ení uzlu (%s): " + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "Uzel `%s' nelze zru¹it" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "Poslední uzel nelze zru¹it" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "Zobrazení poslední dobou nejvíce nav¹tìvovaných uzlù" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "Zru¹ení tohoto uzlu" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "Zadání jména souboru a jeho následné zobrazení" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "Nalezení souboru: " + +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." +msgstr "Nemohu najít \"%s\"." + +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." +msgstr "Výstupní soubor \"%s\" nelze vytvoøit." + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "Dokonèeno." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." +msgstr "Zapisuji uzel \"%s\"..." + +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "Poslání obsahu tohoto uzlu pøíkazu INFO_PRINT_COMMAND" + +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." +msgstr "Rouru do \"%s\" nelze otevøít." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." +msgstr "Probíhá tisk uzelu \"%s\"..." + +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." +msgstr "Probíhá hledání podsouboru \"%s\"..." + +#: info/session.c:3516 +#, fuzzy +msgid "Read a string and search for it case-sensitively" +msgstr "Pøeètení øetìzce a jeho vyhledání" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "Pøeètení øetìzce a jeho vyhledání" + +#: info/session.c:3531 +#, fuzzy +msgid "Read a string and search backward for it" +msgstr "Pøeètení øetìzce a jeho vyhledání" + +#: info/session.c:3573 +#, fuzzy, c-format +msgid "%s%sfor string [%s]: " +msgstr "%s øetìzce [%s]: " + +#: info/session.c:3574 +msgid "Search backward" +msgstr "Zpìtné hledání" + +#: info/session.c:3574 +msgid "Search" +msgstr "Hledání" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr "" + +#: info/session.c:3575 +msgid " " +msgstr "" + +#: info/session.c:3615 +msgid "Search failed." +msgstr "Nebylo nalezeno." + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "" + +#: info/session.c:3636 info/session.c:3646 +#, fuzzy +msgid "No previous search string" +msgstr "Není zadán øetìzec, který se má vyhledávat v rejstøíku(cích)." + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "Vyhledávání zadávaného øetìzce hned pøi zadávání" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "zpìtné interaktivní hledání: " + +#: info/session.c:3763 +msgid "I-search: " +msgstr "interaktivní hledání: " + +#: info/session.c:3788 +msgid "Failing " +msgstr "Bezvýsledné " + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "Pøesun na pøedcházející køí¾ový odkaz" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "Pøesun na následující køí¾ový odkaz" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "Zobrazení odkazu nebo polo¾ky menu, která je na tomto øádku" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "Zru¹ení aktuální operace" + +#: info/session.c:4292 +msgid "Quit" +msgstr "Ukonèení operace" + +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" +msgstr "Pøesun kurzoru na zadaný øádek okna" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "Pøekreslení obrazovky" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "Ukonèení Infa" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "Neznámý pøíkaz (%s)." + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "Sekvence kláves \"\" je neplatná" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "Sekvence kláves \"%s\" je neplatná" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "Pøidání této èíslice do aktuálního èíselného argumentu" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "Zaèátek (nebo dìlení ètyømi) aktuálního èíselného argumentu" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "Vnitønì u¾íváno funkcí \\[universal-argument]" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "readline: Nedostatek virtuální pamìti!\n" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "Je-li zapnuto, pak se poznámky pod èarou objevují a mizí automaticky" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "Je-li zapnuto, vytvoøení a smazání okna, mìní velikost ostatních oken" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "Je-li zapnuto, pak místo varovného pípnutí blikne obrazovka" + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "Je-li zapnuto, pak chyby zpùsobí varovné pípnutí" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "" +"Je-li zapnuto, pak Info zapomíná odkomprimovanou èást komprimovaných souborù" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "Je-li zapnuto, pak je hledaný øetìzec v nalezeném výrazu zvýraznìn" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "Øídí co se stane, kdy¾ je po¾adován posun o stranu na konci uzlu" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "" +"Poèet øádkù, o které posunout okno, kdy¾ se kurzor dostane mimo viditelnou " +"èást" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "Je-li zapnuto, pak Info akceptuje a zobrazuje znaky z normy ISO Latin" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "Zobrazení popisu promìnné" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "Popis promìnné: " + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "Nastavení hodnoty Info promìnné" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "Nastavení promìnné: " + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "Nastavení promìnné %s na hodnotu (%d): " + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "Nastavení promìnné %s na hodnotu (%s): " + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "--*** Znaèky jsou zastatalé ***" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "-----Info: (), øádkù ----, " + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "-%s---Info: %s, øádkù: %d --%s--" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "-%s%s-Info: (%s)%s, øádkù: %d --%s--" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr " Podsoubor: %s" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: pøepínaè `%s' není jednoznaèný\n" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: pøepínaè `--%s' musí být zadán bez argumentu\n" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: pøepínaè `%c%s' musí být zadán bez argumentu\n" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: pøepínaè `%s' vy¾aduje argument\n" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: neznámý pøepínaè `--%s'\n" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: neznámý pøepínaè `%c%s'\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: neznámý pøepínaè -- %c\n" + +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: neznámý pøepínaè -- %c\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: pøepínaè vy¾aduje argument -- %c\n" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: pøepínaè `-W %s' není jednoznaèný\n" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: pøepínaè `-W %s' musí být zadán bez argumentu\n" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "" + +#: makeinfo/cmds.c:447 +#, fuzzy +msgid "March" +msgstr "Hledání" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "" + +#: makeinfo/cmds.c:754 +#, fuzzy, c-format +msgid "%c%s is obsolete" +msgstr "%c%s chbìjící uzavírací závorka" + +#: makeinfo/cmds.c:814 +#, fuzzy, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "%c%s po¾aduje jméno" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "asis" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "none" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "" + +#: makeinfo/defun.c:368 +#, fuzzy +msgid "Variable" +msgstr "Nastavení promìnné: " + +#: makeinfo/defun.c:371 +#, fuzzy +msgid "User Option" +msgstr "Vlo¾ení doplnìní" + +#: makeinfo/defun.c:375 +#, fuzzy +msgid "Instance Variable" +msgstr "Popis promìnné: " + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +#, fuzzy +msgid "on" +msgstr "none" + +#: makeinfo/defun.c:656 +#, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "" + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "" + +#: makeinfo/index.c:212 +#, fuzzy, c-format +msgid "Unknown index `%s'" +msgstr "Neznámý pøíkaz `%s'" + +#: makeinfo/index.c:382 +#, fuzzy, c-format +msgid "Index `%s' already exists" +msgstr "polo¾ka menu `%s' ji¾ pro soubor `%s' existuje" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "" + +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "" + +#: makeinfo/insertion.c:481 +#, fuzzy, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s: pøepínaè vy¾aduje argument -- %c\n" + +#: makeinfo/insertion.c:623 +#, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "" + +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "" + +#: makeinfo/insertion.c:1074 +#, fuzzy, c-format +msgid "Unmatched `%c%s'" +msgstr "Nepárová }" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "" + +#: makeinfo/insertion.c:1175 +#, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "" + +#: makeinfo/macro.c:138 +#, fuzzy, c-format +msgid "here is the previous definition of `%s'" +msgstr "Funkce `%s' není známa" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "" + +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "" + +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: varování: " + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "Pøíli¹ mnoho chyb! Konec.\n" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "©patnì umístìný znak %c" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Více informací získáte pøíkazem `%s --help'.\n" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +#: makeinfo/makeinfo.c:391 +#, fuzzy, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +"Pou¾ití: %s [PØEPÍNAÈ]... TEXINFO-SOUBOR...\n" +"\n" +" Pøekládá Texinfový zdrojový soubor to mnoha rùzných formátù:\n" +"Info soubory vhodné pro on-line ètení Emacsem nebo samostatným GNU Info\n" +"prohlí¾eèem (implicitní); èistý text (pøepínaèem --no-headers); nebo HTML\n" +"(pøepínaèem --html).\n" +"\n" +"Pøepínaèe:\n" +"-D PROMÌNNÁ definuje promìnnou, jako pøíkaz @set\n" +"-I ADRESÁØ pøidá ADRESÁØ na konec seznamu adresáøù, ve kterých\n" +"-P ADRESÁØ pøídá ADRESÁØ na zaèátek seznamu adresáøù, ve " +"kterých\n" +" jsou hledány soubory pro @include\n" +"-U PROMÌNNÁ oddefinuje promìnnou, jako pøíkazem @clear\n" +"--error-limit=ÈÍSLO skonèí, kdy¾ se objeví ÈÍSLO chyb (implicitnì %d)\n" +"--fill-column=ÈÍSLO definuje délku øádku ve znacích (implicitnì %d)\n" +"--footnote-style=STYL ve výstupu budou poznámky pod èarou podle " +"STYLu:\\n\"\n" +" `separate' pro umístìní poznámek pod èarou\n" +" do zvlá¹tního uzlu,\n" +" `end' pro umístìní poznámek pod èarou na konec " +"uzlu,\n" +" ve kterém jsou definovány (implicitní).\n" +"--force vypí¹e výstup, i kdy¾ byly nalezeny chyby\n" +"--help vypí¹e tuto nápovìdu a skonèí\n" +"--html zapí¹e výstup v HTML formátu\n" +"--ifhtml zpùsobí zpracování @ifhtml a @html, i kdy¾ není\n" +" výstupem formát HTML\n" +"--ifinfo zpùsobí zpracování @ifinfo, i kdy¾ je výstupem HTML\n" +"--iftex zpùsobí zpracování @iftex a @tex\n" +"--macro-expand=VÝST-SOUBOR, -E VÝST-SOUBOR výstupem bude originální " +"zdrojový\n" +" kód s expandovanými makry do souboru VÝST-SOUBOR \n" +"--no-headers potlaèí oddìlovaèe uzlù a jejich hlavièky\n" +"--no-ifhtml zpùsobí nevykonávání @ifhtml a @html\n" +"--no-ifinfo zpùsobí nevykonávání @ifinfo\n" +"--no-iftex zpùsobí nevykonávání @iftex a @tex\n" +"--no-split potlaèí rozdìlování velkých výstupních info souborù\n" +" nebo generování jednoho HTML souboru na uzel\n" +"--no-validate potlaèí kontrolu køí¾ových odkazù\n" +"--no-warn potlaèí výpis varování (ne v¹ak chyb)\n" +"--output=SOUB, -o SOUB výstup do SOUBoru, ignoruje pøíkaz @setfilename\n" +"--paragraph-indent=HODN odsadí odstavce HODN mezerami (implicitnì %d).\n" +" jestli¾e je HODN `none' neodsazuje; jestli¾e je " +"HODN\n" +" `asis' zanechá ji¾ existující odsazení.\n" +"--reference-limit=ÈÍSLO oznámí, bude-li køí¾ových odkazù více ne¾ ÈÍSLO\n" +" (implicitnì %d).\n" +"-v, --verbose vypisuje bli¾¹í informace o zpracovávání\n" +"--version vypí¹e oznaèení verze a skonèí\n" +"\n" +" Implicitní nastavení pro podmínky @if... zále¾í na výstupním formátu:\n" +"pøi generování HTML je zapnut pøepínaè --ifhtml a ostatní jsou vypnuty;\n" +"pøi generování Info souboru nebo èistého textu je zapnut pøepínaè --ifinfo\n" +"a ostatní jsou vypnuty.\n" +"\n" +" Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze " +"anglicky),\n" +"obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n" +"zasílejte na <cs@li.org> (èesky).\n" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: %s argument musí být èíslo ne `%s'.\n" + +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "Výstup %s pro expanzi makra nelze otevøít" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "Pro expanzi makra nelze zadat více ne¾ jeden výstup" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: argument pro --paragraph-indent musí být èíslo|`none'|`asis', ale ne " +"`%s'.\n" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" +"%s: argument k --footnote-style musí být `separate'|`end', ale ne `%s'.\n" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "%s: chybí argument jména souboru.\n" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "Oèekáváno `%s'" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "Soubor `%s' nenalezen v `%s'" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" +"%s: Vynechávám expanzi makra na stdout a expanze jde jako Info výstup.\n" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "Vytváøím %s soubor `%s' ze souboru `%s'.\n" + +#: makeinfo/makeinfo.c:1358 +#, fuzzy, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "" +"Toto je Info soubor %s, produkován programem Makeinfo verze %s ze souboru " +"%s\n" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: Výstupní soubor maker `%s' byl odstranìn, proto¾e byly nalezeny chyby;\n" +"u¾ijte pøepínaè --force k ponechání souboru.\n" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: Výstupní soubor `%s' byl odstranìn, proto¾e byly nalezeny chyby;\n" +"u¾ijte pøepínaè --force k ponechání souboru.\n" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "Neznámý pøíkaz `%s'" + +#: makeinfo/makeinfo.c:1657 +#, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "Pou¾ijte závorky k zadání pøíkazu jako argumentu @%s" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "%c%s oèekáváno `{...}'" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "Nepárová }" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "Funkce neexistuje!" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "%c%s chbìjící uzavírací závorka" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "" + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "" + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "`.' nebo `,' musí následovat za køí¾ovým odkazem, ale ne za %c" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "®ádný .png nebo .jpg soubor pro `%s'" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "soubor `%s' v pøíkazu @image je neèitelný: %s" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "pøíkaz @image postrádá jméno souboru" + +#: makeinfo/makeinfo.c:3259 +#, fuzzy, c-format +msgid "{No value for `%s'}" +msgstr "{Pro \"%s\" není hodnota}" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "%c%s po¾aduje jméno" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "Vstupní soubor skonèil a pøíkaz `@end %s' nebyl nalezen" + +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "ignoruji zbloudilý text `%s' po pøíkazu @multitable" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "Pøíli¹ mnoho sloupcù v multitabulkové polo¾ce (max %d)" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "sloupec #%d v multitabulce nelze vybrat" + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "pøíkaz `@tab' ignorován, je mimo multitabulku" + +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "** Vícesloupcový výstup z posledního øádku:\n" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* sloupec #%d: výstup = %s\n" + +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "" + +#: makeinfo/node.c:514 +#, fuzzy, c-format +msgid "Formatting node %s...\n" +msgstr "Zapisuji uzel \"%s\"..." + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "" + +#: makeinfo/node.c:774 +#, fuzzy +msgid "Node:" +msgstr "Dal¹í" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +#, fuzzy +msgid "Next:" +msgstr "Dal¹í" + +#: makeinfo/node.c:793 +#, fuzzy +msgid "Previous:" +msgstr "Pøedchozí" + +#: makeinfo/node.c:803 +#, fuzzy +msgid "Up:" +msgstr "Nahoru" + +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "" + +#: makeinfo/node.c:1115 +#, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "" + +#: makeinfo/node.c:1119 +#, c-format +msgid "This node (%s) has the bad Prev" +msgstr "" + +#: makeinfo/node.c:1133 +#, fuzzy +msgid "Prev" +msgstr "Pøedchozí" + +#: makeinfo/node.c:1176 +#, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "" + +#: makeinfo/node.c:1180 +#, c-format +msgid "This node (%s) has the bad Next" +msgstr "" + +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "" + +#: makeinfo/node.c:1197 +#, fuzzy +msgid "Up" +msgstr "Nahoru" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "" + +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "" + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "" + +#: makeinfo/sectioning.c:468 +#, fuzzy, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "%c%s chbìjící uzavírací závorka" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "" + +#: makeinfo/sectioning.c:496 +#, fuzzy, c-format +msgid "Here is the %ctop node" +msgstr "Zobrazení vy¹¹ího uzlu" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "%s: varování: " + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "virtuální pamì» vyèerpána" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr " pro %s" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "Více informací získáte pøíkazem `%s --help'.\n" + +#: util/install-info.c:389 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Pou¾ití: %s [PØEPÍNAÈ]... [INFO-SOUBOR [DIR-SOUBOR]]\n" +"\n" +"Instaluje nebo ma¾e polo¾ky ze souboru INFO-SOUBOR v Info adresáøi " +"DIR-SOUBOR.\n" +"\n" +"Pøepínaèe:\n" +"--delete sma¾e existující polo¾ky INFO-SOUBORu z DIS=SOUBORU;\n" +" nevkládá ¾ádné nové.\n" +"--dir-file=JMÉNO zadání jména adresáøového souboru Infa. Rovnocenné\n" +" s pou¾itím argumentu DIR-SOUBOR.\n" +"--entry=TEXT vlo¾í text jako polo¾ku Info adresáøe. TEXT musí mít " +"formát\n" +" jako øádek polo¾ky Info menu, plus nula nebo více extra\n" +" øádkù zaèínajících mezerou. Jestli¾e zadáte více ne¾ " +"jednu\n" +" polo¾ku, budou pøidány v¹echny. Jestli¾e nezadáte ¾ádnou\n" +" polo¾ku, budou získány z informací v Info souboru.\n" +"--help vypí¹e tuto nápovìdu a skonèí\n" +"--info-file=SOUBOR zadání Info souboru pro instalaci do Info adresáøe.\n" +" Rovnocenné s argumentem INFO-SOUBOR.\n" +"--info-dir=ADRESÁØ stejné jako --dir-file=ADRESÁØ/dir.\n" +"--item=TEXT stejné jako --entry=TEXT.\n" +"--quiet potlaèí varování.\n" +"--remove stejné jako --delete.\n" +"--section=SEKCE vlo¾í polo¾ky adresáøe do sekce SEKCE Info adresáøe.\n" +" Jestli¾e je zadáno více sekcí, jsou v¹echny polo¾ky\n" +" pøidány do v¹ech zadaných sekcí. Jestli¾e nejsou zadány\n" +" ¾ádné sekce, pak jsou sekce získány z Info souboru.\n" +"--version vypí¹e oznaèení verze a skonèí.\n" +"\n" +" Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze " +"anglicky),\n" +"obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky\n" +"k pøekladu zasílejte na <cs@li.org> (èesky).\n" + +#: util/install-info.c:442 +#, fuzzy, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" +" Toto je soubor .../info/dir, který obsahuje nejvy¹¹í uzly hierarchie\n" +"Info dokumentù a je nazýván (dir)Top. Kdy¾ poprvé spustíte Info dostanete\n" +"se do tohoto uzlu.\n" +"^_\n" +"Soubor: dir Uzel: Top Toto je vrchol INFO stromu\n" +"\n" +" Tento (Adresáøový uzel) obsahuje menu hlavních témat.\n" +" Stiskem \"q\" Info ukonèíte, stiskem \"?\" získáte seznam v¹ech Info " +"pøíkazù,\n" +" stiskem \"d\" se vrátíte sem, stiskem \"h\" získáte nápovìdu pro " +"zaèáteèníky,\n" +" napsáním \"mEmacs\" si zobrazíte manuál k Emacsu, ...\n" +"\n" +" Pokud chcete v Emacsu zobrazit obsah polo¾ky menu nebo následovat " +"køí¾ový\n" +" odkaz, mù¾ete to provést kliknutím prostøedním tlaèítkem my¹i.\n" +"\n" +"* Menu:\n" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "%s: %s nelze èíst a %s nelze vytvoøit\n" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY bez odpovídajícího END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY bez pøedchozího START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "%s: Info adresáø zadejte pouze jednou.\n" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "%s: Info soubor zadejte pouze jednou.\n" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "nadbyteèný argument `%s' v pøíkazovém øádku" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "" +"Vstupní soubor nezadán; pou¾itím pøepínaèe --help získáte bli¾¹í informace." + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "" +"Adresáø nebyl zadán; pou¾itím pøepínaèe `--help' získáte bli¾¹í informace" + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "v Info adresáøi `%s' není ¾ádná polo¾ka" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "polo¾ka menu `%s' ji¾ pro soubor `%s' existuje" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "pro `%s' nebyly nalezeny ¾ádné polo¾ky" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "vypí¹e tuto nápovìdu a skonèí" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "zanechá doèasné soubory po ukonèení" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "nezanechá doèasné soubory po ukonèení" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "zapí¹e výstup do SOUBORu" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "vypí¹e oznaèení verze a skonèí" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR...\n" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "Generuje seøazený rejstøík pro ka¾dý TeXovský výstupní SOUBOR.\n" + +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "SOUBOR... je obvykle `foo.%c%c' pro dokument `foo.texi'.\n" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Pøepínaèe:\n" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"\n" +" Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze " +"anglicky),\n" +"obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n" +"zasílejte na <cs@li.org> (èesky).\n" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "%s: není texinfovský rejstøík" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "soubor %s nepovedlo se znovu otevøít" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "" + +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "polo¾ka %s následuje za polo¾kou se sekundárním jménem" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "%s; v souboru `%s'.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]... TEXINFO-FILE...\n" +#~ "\n" +#~ "Translate Texinfo source documentation to various other formats:\n" +#~ "Info files suitable for reading online with Emacs or standalone GNU Info\n" +#~ "(by default); plain text (with --no-headers); or HTML (with --html).\n" +#~ "\n" +#~ "Options:\n" +#~ " -D VAR define a variable, as with @set.\n" +#~ " -I DIR append DIR to the @include search path.\n" +#~ " -P DIR prepend DIR to the @include search path.\n" +#~ " -U VAR undefine a variable, as with @clear.\n" +#~ " --commands-in-node-names allow @ commands in node names.\n" +#~ " --error-limit=NUM quit after NUM errors (default %d).\n" +#~ " --fill-column=NUM break Info lines at NUM characters (default %d).\n" +#~ " --footnote-style=STYLE output footnotes according to STYLE:\n" +#~ " `separate' to place footnotes in their own " +#~ "node,\n" +#~ " `end' to place the footnotes at the end of the\n" +#~ " node in which they are defined (the default).\n" +#~ " --force preserve output even if errors.\n" +#~ " --help display this help and exit.\n" +#~ " --html output HTML rather than Info format;\n" +#~ " implies --no-split.\n" +#~ msgstr "" +#~ "Pou¾ití: %s [PØEPÍNAÈ]... TEXINFO-SOUBOR...\n" +#~ "\n" +#~ " Pøekládá Texinfový zdrojový soubor to mnoha rùzných formátù:\n" +#~ "Info soubory vhodné pro on-line ètení Emacsem nebo samostatným GNU Info\n" +#~ "prohlí¾eèem (implicitní); èistý text (pøepínaèem --no-headers); nebo HTML\n" +#~ "(pøepínaèem --html).\n" +#~ "\n" +#~ "Pøepínaèe:\n" +#~ "-D PROMÌNNÁ definuje promìnnou, jako pøíkaz @set\n" +#~ "-I ADRESÁØ pøidá ADRESÁØ na konec seznamu adresáøù, ve kterých\n" +#~ "-P ADRESÁØ pøídá ADRESÁØ na zaèátek seznamu adresáøù, ve " +#~ "kterých\n" +#~ " jsou hledány soubory pro @include\n" +#~ "-U PROMÌNNÁ oddefinuje promìnnou, jako pøíkazem @clear\n" +#~ "--error-limit=ÈÍSLO skonèí, kdy¾ se objeví ÈÍSLO chyb (implicitnì %d)\n" +#~ "--fill-column=ÈÍSLO definuje délku øádku ve znacích (implicitnì %d)\n" +#~ "--footnote-style=STYL ve výstupu budou poznámky pod èarou podle " +#~ "STYLu:\\n\"\n" +#~ " `separate' pro umístìní poznámek pod èarou\n" +#~ " do zvlá¹tního uzlu,\n" +#~ " `end' pro umístìní poznámek pod èarou na konec " +#~ "uzlu,\n" +#~ " ve kterém jsou definovány (implicitní).\n" +#~ "--force vypí¹e výstup, i kdy¾ byly nalezeny chyby\n" +#~ "--help vypí¹e tuto nápovìdu a skonèí\n" +#~ "--html zapí¹e výstup v HTML formátu\n" +#~ "--ifhtml zpùsobí zpracování @ifhtml a @html, i kdy¾ není\n" +#~ " výstupem formát HTML\n" +#~ "--ifinfo zpùsobí zpracování @ifinfo, i kdy¾ je výstupem HTML\n" +#~ "--iftex zpùsobí zpracování @iftex a @tex\n" +#~ "--macro-expand=VÝST-SOUBOR, -E VÝST-SOUBOR výstupem bude originální " +#~ "zdrojový\n" +#~ " kód s expandovanými makry do souboru VÝST-SOUBOR \n" +#~ "--no-headers potlaèí oddìlovaèe uzlù a jejich hlavièky\n" +#~ "--no-ifhtml zpùsobí nevykonávání @ifhtml a @html\n" +#~ "--no-ifinfo zpùsobí nevykonávání @ifinfo\n" +#~ "--no-iftex zpùsobí nevykonávání @iftex a @tex\n" +#~ "--no-split potlaèí rozdìlování velkých výstupních info souborù\n" +#~ " nebo generování jednoho HTML souboru na uzel\n" +#~ "--no-validate potlaèí kontrolu køí¾ových odkazù\n" +#~ "--no-warn potlaèí výpis varování (ne v¹ak chyb)\n" +#~ "--output=SOUB, -o SOUB výstup do SOUBoru, ignoruje pøíkaz @setfilename\n" +#~ "--paragraph-indent=HODN odsadí odstavce HODN mezerami (implicitnì %d).\n" +#~ " jestli¾e je HODN `none' neodsazuje; jestli¾e je " +#~ "HODN\n" +#~ " `asis' zanechá ji¾ existující odsazení.\n" +#~ "--reference-limit=ÈÍSLO oznámí, bude-li køí¾ových odkazù více ne¾ ÈÍSLO\n" +#~ " (implicitnì %d).\n" +#~ "-v, --verbose vypisuje bli¾¹í informace o zpracovávání\n" +#~ "--version vypí¹e oznaèení verze a skonèí\n" +#~ "\n" +#~ " Implicitní nastavení pro podmínky @if... zále¾í na výstupním formátu:\n" +#~ "pøi generování HTML je zapnut pøepínaè --ifhtml a ostatní jsou vypnuty;\n" +#~ "pøi generování Info souboru nebo èistého textu je zapnut pøepínaè --ifinfo\n" +#~ "a ostatní jsou vypnuty.\n" +#~ "\n" +#~ " Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze " +#~ "anglicky),\n" +#~ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n" +#~ "zasílejte na <cs@li.org> (èesky).\n" + +#, fuzzy +#~ msgid " %-10s Quit this help (that's a zero not an oh).\n" +#~ msgstr " CTRL-x 0 Ukonèení prohlí¾ení nápovìdy." + +#~ msgid "Virtual memory exhausted in %s ()! Needed %d bytes." +#~ msgstr "Virtuální pamì» vyèerpána ve funkci %s ()! %d bajtù je potøebných." + +#~ msgid " times" +#~ msgstr " krát" + +#~ msgid "%d times" +#~ msgstr "%d krát" + +#~ msgid "multitable item not in active multitable" +#~ msgstr "multitabulková polo¾ka není v aktivní multitabulce" diff --git a/gnu/usr.bin/texinfo/po/de.gmo b/gnu/usr.bin/texinfo/po/de.gmo Binary files differindex 5636eb828b2..cba41ab7123 100644 --- a/gnu/usr.bin/texinfo/po/de.gmo +++ b/gnu/usr.bin/texinfo/po/de.gmo diff --git a/gnu/usr.bin/texinfo/po/de.po b/gnu/usr.bin/texinfo/po/de.po index 081cce67a6a..b83c3bc9844 100644 --- a/gnu/usr.bin/texinfo/po/de.po +++ b/gnu/usr.bin/texinfo/po/de.po @@ -1,19 +1,45 @@ # German messages for GNU Texinfo -# Copyright © 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright © 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +# Karl Eichwalder <ke@gnu.franken.de>, 1999. +# Karl Eichwalder <ke@suse.de>, 1997, 1998, 1999. # Karl Eichwalder <ke@ke.Central.DE>, 1996. -# Karl Eichwalder <ke@SuSE.DE>, 1997,1998. +# +# 1999-08-18 07:48:14 CEST +# Update: version 3.12q. +# -ke- +# +# 1999-07-28 08:56:22 CEST +# Update: version 3.12n. +# -ke- +# +# 1999-04-20 21:51:54 CEST +# Update: version 3.12h. +# reuse getopt translations from wget. +# -ke- +# +# 1999-02-06 20:24:24 MET +# Update: version 3.12c. +# -ke- +# +# 1998-05-03 12:25:13 MEST +# Cosmetic changes. +# -ke- +# +# 1998-04-05 18:25:42 MEST +# Hints by "Carl Friedrich Spilcke-Liss" <carl-friedriech.spilcke-liss@ensae.fr>. +# -ke- # # 1998-02-28 14:29:49 MET # Revised for 3.11b -# I refuse to translate getopt.c strings +# I refuse to translate getopt.c strings. # -ke- # msgid "" msgstr "" -"Project-Id-Version: texinfo 3.11\n" -"POT-Creation-Date: 1998-03-03 13:32-0500\n" -"PO-Revision-Date: 1998-02-28 14:32+01:00\n" -"Last-Translator: Karl Eichwalder <ke@SuSE.DE>\n" +"Project-Id-Version: texinfo 3.12q\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-07-28 08:55+02:00\n" +"Last-Translator: Karl Eichwalder <ke@gnu.franken.de>\n" "Language-Team: German <de@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" @@ -24,12 +50,12 @@ msgstr "" #. Echo Area Movement Commands #. #. **************************************************************** -#: info/echo-area.c:283 info/session.c:698 +#: info/echo-area.c:283 info/session.c:711 msgid "Move forward a character" msgstr "Ein Zeichen vorwärts bewegen" #. Move point backward in the node. -#: info/echo-area.c:295 info/session.c:714 +#: info/echo-area.c:295 info/session.c:727 msgid "Move backward a character" msgstr "Ein Zeichen rückwärts bewegen" @@ -42,11 +68,11 @@ msgid "Move to the end of this line" msgstr "Zum Ende dieser Zeile bewegen" #. Move forward a word in the input line. -#: info/echo-area.c:320 info/session.c:732 +#: info/echo-area.c:320 info/session.c:745 msgid "Move forward a word" msgstr "Ein Wort vorwärts bewegen" -#: info/echo-area.c:360 info/session.c:781 +#: info/echo-area.c:360 info/session.c:794 msgid "Move backward a word" msgstr "Ein Wort rückwärts bewegen" @@ -120,14 +146,13 @@ msgstr "Das dem Cursor folgende Wort killen" msgid "Kill the word preceding the cursor" msgstr "Das dem Cursor vorangehende Wort killen" -# checkit #: info/echo-area.c:871 msgid "Not complete" msgstr "Nicht vollständig" #: info/echo-area.c:916 msgid "List possible completions" -msgstr "Mögliche Vervollständigungen listen" +msgstr "Mögliche Vervollständigungen auflisten" #: info/echo-area.c:929 msgid "No completions" @@ -146,11 +171,11 @@ msgstr "Eine Vervollständigung:\n" msgid "%d completions:\n" msgstr "%d Vervollständigungen:\n" -#: info/echo-area.c:1088 +#: info/echo-area.c:1089 msgid "Insert completion" msgstr "Vervollständigung einfügen" -#: info/echo-area.c:1221 +#: info/echo-area.c:1222 msgid "Building completions..." msgstr "Bilde Vervollständigungen..." @@ -158,15 +183,15 @@ msgstr "Bilde Vervollständigungen..." #. Scroll the "other" window. If there is a window showing completions, scroll #. that one, otherwise scroll the window which was active on entering the read #. function. -#: info/echo-area.c:1319 +#: info/echo-area.c:1320 msgid "Scroll the completions window" msgstr "Vervollständigungs-Fenster »scrollen«" -#: info/footnotes.c:206 +#: info/footnotes.c:212 msgid "Footnotes could not be displayed" msgstr "Fußnoten können nicht angezeigt werden" -#: info/footnotes.c:232 +#: info/footnotes.c:238 msgid "Show the footnotes associated with this node in another window" msgstr "Zeige die mit diesem Node verbundenen Fußnoten im anderen Fenster" @@ -225,22 +250,22 @@ msgstr "" "»%s« in %s gefunden. (»\\[next-index-match]« versucht nächsten Eintrag zu " "finden.)" -#: info/indices.c:533 +#: info/indices.c:549 #, c-format msgid "Scanning indices of \"%s\"..." msgstr "Index von »%s« wird durchsucht..." -#: info/indices.c:616 +#: info/indices.c:632 msgid "Grovel all known info file's indices for a string and build a menu" msgstr "" "Durchsuche durch alle bekannten Info-Datei-Indices nach einer Zeichenkette " "und bilde ein Menü" -#: info/indices.c:620 +#: info/indices.c:636 msgid "Index apropos: " msgstr "Index apropos: " -#: info/indices.c:650 +#: info/indices.c:666 #, c-format msgid "" "\n" @@ -249,13 +274,13 @@ msgstr "" "\n" "* Menü: Nodes, deren Indices »%s« beinhalten:\n" -#: info/info.c:212 -msgid "Try --help for more information." -msgstr "»--help« gibt weitere Informationen." +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "»--help« gibt weitere Informationen.\n" # Hier de-Standard-Formulierung einsetzen! -#: info/info.c:231 makeinfo/makeinfo.c:1089 util/install-info.c:530 -#: util/texindex.c:338 +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 #, c-format msgid "" "Copyright (C) %s Free Software Foundation, Inc.\n" @@ -268,149 +293,455 @@ msgstr "" "Kopierbedingung. Es gibt KEINERLEI Garantie, nicht einmal für die\n" "TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK.\n" -#: info/info.c:363 -msgid "no entries found\n" -msgstr "Keine Einträge gefunden\n" - -#: info/info.c:406 -msgid "There is no menu in this node." -msgstr "Es gibt kein Menü in diesem Node." - -#: info/info.c:437 -#, c-format -msgid "There is no menu item \"%s\" in this node." -msgstr "Es gibt keinen Menüpunkt »%s« in diesem Node." - -#: info/info.c:501 +#: info/info.c:461 #, c-format -msgid "Unable to find the node referenced by \"%s\"." -msgstr "Kann keinen von »%s« referenzierten Node finden." +msgid "no index entries found for `%s'\n" +msgstr "Keine Einträge für »%s« gefunden\n" -#: info/info.c:602 -#, c-format +# Die "." am Zeilenende habe ich entfernt. -ke- +#: info/info.c:530 +#, fuzzy, c-format msgid "" -"Usage: %s [OPTION]... [INFO-FILE [MENU-ITEM...]]\n" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" "\n" "Read documentation in Info format.\n" -"For more complete documentation on how to use Info, run `info info " -"options'.\n" "\n" "Options:\n" -"--directory DIR add DIR to INFOPATH.\n" -"--dribble FILENAME remember user keystrokes in FILENAME.\n" -"--file FILENAME specify Info file to visit.\n" -"--node NODENAME specify nodes in first visited Info file.\n" -"--output FILENAME output selected nodes to FILENAME.\n" -"--restore FILENAME read initial keystrokes from FILENAME.\n" -"--subnodes recursively output menu items.\n" -"--help display this help and exit.\n" -"--version display version information and exit.\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" "\n" -"The first argument, if present, is the name of the Info file to read.\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" "Any remaining arguments are treated as the names of menu\n" -"items in the initial node visited. For example, `info emacs buffers'\n" -"moves to the node `buffers' in the info file `emacs'.\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" "\n" -"Email bug reports to bug-texinfo@gnu.org." +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" msgstr "" "Syntax: %s [OPTION]... [INFO-DATEI [MENU-EINTRAG...]]\n" "\n" -"Um Dokumentation zu lesen, die im Info-Format vorliegt.\n" -"Für eine ausführlichere Anleitung, wie Info zu benutzen ist, »info info\n" -"options« eingeben.\n" +"Dokumentation lesen, die im Info-Format vorliegt.\n" "\n" "Optionen:\n" -" --directory VERZ VERZ zu INFOPATH hinzufügen\n" -" --dribble DATEI Tasteneingaben des Benutzers in DATEI merken\n" -" --file DATEI zu besuchende Info-DATEI angeben\n" -" --node KNOTEN Knoten in der ersten zu besuchenden Info-Datei " +" --directory=VERZ VERZ dem INFOPATH hinzufügen\n" +" --dribble=DATEI Tasteneingaben des Benutzers in DATEI merken\n" +" --file=DATEI zu besuchende Info-DATEI angeben\n" +" --help diese Hilfe anzeigen\n" +" --index-search=Kette zu einem Knoten gehen, auf den der Indexeintrag " +"KETTE\n" +" zeigt\n" +" --node=KNOTEN Knoten in der ersten zu besuchenden Info-Datei " "angeben\n" -" --output DATEI ausgewählte Knoten nach DATEI ausgeben\n" -" --restore DATEI die beginnenden Tasteneingaben von DATEI lesen\n" -" --subnodes Menüpunkte rekursiv ausgeben\n" -" --help diese Hilfe anzeigen\n" -" --version Programmversion anzeigen\n" +" --output=DATEI ausgewählte Knoten nach DATEI ausgeben\n" +" --restore=DATEI die beginnenden Tasteneingaben von DATEI lesen\n" +" --show-options, --usage\n" +" zum Knoten mit den Optionen für den Befehlsaufruf " +"gehen\n" +" --subnodes Menüpunkte rekursiv ausgeben\n" +"%s --vi-keys vi- und less-artige Tastenbindungen benutzen\n" +" --version Programmversion anzeigen\n" "\n" -"Verbleibende Parameter werden als Namen von Menüpunkten des zuerst " +"Der erste Parameter, der keine Option ist, ist der Menüeintrag, von dem aus\n" +"gestartet werden soll; nach diesem Menüeintrag wird in allen »dir«-Datei\n" +"gemäß dem INFOPATH gesucht.\n" +"Wenn kein Menüeintrag angegeben wird, packt info alle »dir«-Dateien " +"zusammen\n" +"und zeigt das Ergebnis an.\n" +"Verbleibende Parameter werden als Namen von Menüeinträgen des zuerst " "besuchten\n" -"Knotens angesehen. Man kann sich einfach zum gewünschten Knoten bewegen,\n" -"indem man die Namen der Menüpunkte angibt, die den Weg dorthin bezeichnen;\n" -"z. B. »info emacs buffers«.\n" +"Knotens angesehen.\n" "\n" -"Fehler (\"bugs\") bitte an <bug-texinfo@gnu.org> melden.<\n" +"Beispiele:\n" +" info Das oberste »dir«-Menü anzeigen\n" +" info emacs Beim emacs-Knoten im obersten »dir«-Menü " +"beginnen\n" +" info emacs buffers Beim buffers-Knoten im emacs-Manual beginnen\n" +" info --show-options emacs Beim Knoten mit den " +"emacs-Kommandozeilen-Optionen\n" +" beginnen\n" +" info -f ./foo.info Datei ./foo.info anzeigen\n" "\n" -"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig." +"Fehler (\"Bugs\") bitte an <bug-texinfo@gnu.org> melden,\n" +"allgemeine Fragen und Gedankenaustausch an <help-texinfo@gnu.org>.\n" +"\n" +"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig.\n" + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "Kann Knoten »%s« nicht killen" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "Kann Knoten »%s« nicht killen" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "Ein permanentes Fenster kann nicht gelöscht werden" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "Ein permanentes Fenster kann nicht gelöscht werden" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "Kein Menü im Knoten »%s«." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "Keine Querverweise in diesem Knoten." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "Keine Querverweise in diesem Knoten." + +#: info/info.c:612 +#, fuzzy, c-format +msgid "No `%s' pointer for this node." +msgstr "Kein »Next«-Verweis bei diesem Knoten." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "Zum Anfang dieses Knotens bewegen" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "Zum Anfang dieses Knotens bewegen" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "Grundbefehle in Info-Fenstern\n" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "*****************************\n" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr " %-10s Diese Hilfe beenden.\n" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr " %-10s Info gänzlich beenden.\n" #: info/infodoc.c:50 -msgid "Basic Commands in Info Windows" -msgstr "Grundbefehle in Info-Fenstern" +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr " %-10s Das Info-Tutorial aufrufen.\n" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "Innerhalb eines Knotens bewegen:\n" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "----------------------\n" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr " %-10s Eine Seite vorwärts blättern.\n" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr " %-10s Eine Seite rückwärts blättern.\n" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr " %-10s Zum Beginn dieses Knotens gehen.\n" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr " %-10s Zum Ende dieses Knotens gehen.\n" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr " %-10s Eine Seite vorwärts blättern.\n" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr " %-10s Eine Seite rückwärts blättern.\n" + +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "Andere Knoten auswählen:\n" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "----------------------\n" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr " %-10s Zum \"nächsten\" Knoten dieses Knotens bewegen.\n" + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr " %-10s Zum \"vorangehenden\" Knoten dieses Knotens bewegen.\n" + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr " %-10s \"hinauf\" von diesem Knoten bewegen.\n" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr " %-10s Menüpunkt mit Namensangabe wählen.\n" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" +" Auswahl eines Menüpunkts wird einen anderen Knoten auswählen.\n" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr " %-10s Einem Querverweis folgen. Namen eines Verweises lesen.\n" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr "" +" %-10s Zum letzten Knoten bewegen, der in diesem Fenster sichtbar war.\n" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr " %-10s Zum nächsten Hypertext-Link dieses Knotens springen.\n" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr " %-10s Dem Hypertext-Link unter dem Cursor folgen.\n" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr "" +" %-10s Zum »directory«-Knoten bewegen. Gleichbedeutend mit »g (DIR)«.\n" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr "" +" %-10s Zum »directory«-Knoten bewegen. Gleichbedeutend mit »g (DIR)«.\n" + +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "Andere Befehle:\n" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "---------------\n" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr "" +" %-10s Ersten ... neunten Punkt des Menüs dieses Knotens auswählen.\n" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr " %-10s Letzten Punkt des Menüs dieses Knotens auswählen.\n" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" +" %-10s Nach einer Zeichenkette in den Indexeinträgen dieser Info-Datei\n" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" +" suchen und den Knoten auswählen, bezeichnet vom ersten gefundenen " +"Eintrag.\n" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr " %-10s Zum Knoten mit Namensangabe bewegen.\n" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr "" +" Ein Dateiname kann dabei sein, wie bei (DATEINAME)KNOTEN.\n" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr "" +" %-10s Diese Info-Datei nach einer angegebenen Zeichenkette durchsuchen\n" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" +" und den Knoten auswählen, in dem das nächste Vorkommen gefunden " +"wurde.\n" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr "" +" %-10s Diese Info-Datei nach einer angegebenen Zeichenkette durchsuchen\n" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "Der momentane Suchpfa ist:\n" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" +"Befehle, die in Info-Fenstern verfügbar sind:\n" +"\n" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" +"Befehle, die in der Echo-Area verfügbar sind:\n" +"\n" -#: info/infodoc.c:211 +#: info/infodoc.c:280 msgid "" "The following commands can only be invoked via M-x:\n" "\n" msgstr "Die folgenden Befehle können nur via M-x aufgerufen werden:\n" -#: info/infodoc.c:228 +#: info/infodoc.c:301 msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" msgstr "" "--- »\\[history-node]« oder »\\[kill-node]« benutzen, um zu beenden ---\n" #. Create or move to the help window. -#: info/infodoc.c:328 +#: info/infodoc.c:411 msgid "Display help message" msgstr "Diesen Hilfe-Text anzeigen" #. Show the Info help node. This means that the "info" file is installed #. where it can easily be found on your system. -#: info/infodoc.c:346 +#: info/infodoc.c:429 msgid "Visit Info node `(info)Help'" msgstr "Info-Node »(info)Help« besuchen" -#: info/infodoc.c:470 +#: info/infodoc.c:555 msgid "Print documentation for KEY" msgstr "Dokumentation für KEY ausgeben" -#: info/infodoc.c:483 +#: info/infodoc.c:568 #, c-format msgid "Describe key: %s" msgstr "Beschreibe Taste: %s" -#: info/infodoc.c:492 +#: info/infodoc.c:577 #, c-format msgid "ESC %s is undefined." msgstr "ESC %s ist nicht definiert." -#: info/infodoc.c:509 +#: info/infodoc.c:594 #, c-format msgid "%s is undefined." msgstr "%s ist nicht definiert." -#: info/infodoc.c:535 +#: info/infodoc.c:620 #, c-format msgid "%s is defined to %s." msgstr "%s ist definiert als %s." -#: info/infodoc.c:731 +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "Anzeigen, was einzugeben ist, um einen gegebenen Befehl auszuführen" + +#: info/infodoc.c:816 msgid "Where is command: " msgstr "Wo ist der Befehl: " -#: info/infodoc.c:753 +#: info/infodoc.c:838 #, c-format msgid "`%s' is not on any keys" msgstr "»%s« liegt auf keiner Taste" -#: info/infodoc.c:759 +#: info/infodoc.c:844 #, c-format msgid "%s can only be invoked via %s." msgstr "%s kann nur via %s aufgerufen werden." -#: info/infodoc.c:762 +#: info/infodoc.c:847 #, c-format msgid "%s can be invoked via %s." msgstr "%s kann via %s aufgerufen werden." -#: info/infodoc.c:766 +#: info/infodoc.c:851 #, c-format msgid "There is no function named `%s'" msgstr "Es gibt keine Funktion mit Namen »%s«" @@ -442,7 +773,7 @@ msgid "Set screen height to (%d): " msgstr "Bildschirm-Höhe auf (%d) setzen: " # checkit -#: info/makedoc.c:126 +#: info/makedoc.c:132 msgid "" " Source files groveled to make this file include:\n" "\n" @@ -450,7 +781,7 @@ msgstr "" " Quelldatei \"groveled\", damit diese Datei enthält:\n" "\n" -#: info/makedoc.c:450 +#: info/makedoc.c:465 #, c-format msgid "Couldn't manipulate the file %s.\n" msgstr "Datei »%s« ist nicht zu verändern.\n" @@ -467,7 +798,7 @@ msgstr "" " (Datei)Knoten Zeilen Größe Beinhaltet Datei\n" " ------------- ------ ----- ----------------" -#: info/nodemenu.c:197 +#: info/nodemenu.c:199 msgid "" "Here is the menu of nodes you have recently visited.\n" "Select one from this menu, or use `\\[history-node]' in another window.\n" @@ -476,174 +807,181 @@ msgstr "" "Einen von diesem Menü auswählen oder »\\[history-node]« im anderen Fenster\n" "benutzen.\n" -#: info/nodemenu.c:217 +#: info/nodemenu.c:219 msgid "Make a window containing a menu of all of the currently visited nodes" msgstr "" "Veranlassen, dass ein Fenster ein Menü aller aktuell besuchten Knoten enthält" -#: info/nodemenu.c:297 +#: info/nodemenu.c:299 msgid "Select a node which has been previously visited in a visible window" msgstr "" "Einen Knoten auswählen, der zuvor in einem sichtbaren Fenster besucht wurde" -#: info/nodemenu.c:309 +#: info/nodemenu.c:311 msgid "Select visited node: " msgstr "Besuchten Knoten auswählen: " -#: info/nodemenu.c:329 info/session.c:1996 +#: info/nodemenu.c:331 info/session.c:2146 #, c-format msgid "The reference disappeared! (%s)." msgstr "Der Verweispunkt ist verschwunden! (%s)." -#: info/session.c:162 -#, c-format +#: info/session.c:169 +#, fuzzy, c-format msgid "" -"Welcome to Info version %s. \"\\[get-help-window]\" for help, " -"\"\\[menu-item]\" for menu item." +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." msgstr "" "Willkommen bei Info Version %s. \"\\[get-help-window]\" um Hilfe zu " "bekommen,\n" "mit \"\\[menu-item]\" Menüpunkt anzeigen." #. Move WINDOW's point down to the next line if possible. -#: info/session.c:629 +#: info/session.c:642 msgid "Move down to the next line" msgstr "Eine Zeile nach unten bewegen" #. Move WINDOW's point up to the previous line if possible. -#: info/session.c:644 +#: info/session.c:657 msgid "Move up to the previous line" msgstr "Eine Zeile nach oben bewegen" #. Move WINDOW's point to the end of the true line. -#: info/session.c:659 +#: info/session.c:672 msgid "Move to the end of the line" msgstr "Zum Ende dieser Zeile bewegen" #. Move WINDOW's point to the beginning of the true line. -#: info/session.c:679 +#: info/session.c:692 msgid "Move to the start of the line" msgstr "Zum Anfang der Zeile bewegen" -#: info/session.c:855 -msgid " times" -msgstr "mal" - -#: info/session.c:857 -#, c-format -msgid "%d times" -msgstr "%d mal" - -#: info/session.c:895 -msgid "No \"Next\" pointer for this node." -msgstr "Kein »Next«-Verweis bei diesem Knoten." - -#: info/session.c:898 -msgid "Following \"Next\" node..." -msgstr "»Next«-Knoten folgend..." - -# checkit -# üs? -ke- -#: info/session.c:899 info/session.c:927 info/session.c:999 -#: info/session.c:1717 +#: info/session.c:884 makeinfo/node.c:1092 msgid "Next" msgstr "" -#: info/session.c:915 +#: info/session.c:887 +msgid "Following Next node..." +msgstr "Folge »Next«-Knoten..." + +#: info/session.c:904 msgid "Selecting first menu item..." -msgstr "Ersten Menüpunkt auswählen..." +msgstr "Wähle ersten Menüpunkt aus..." -# checkit -#: info/session.c:926 -msgid "Selecting \"Next\" node..." -msgstr "Den Knoten \"Next\" auswählen..." +#: info/session.c:915 +msgid "Selecting Next node..." +msgstr "Wähle »Next«-Knoten aus..." -# checkit -# üs? -ke- -#: info/session.c:950 info/session.c:1063 info/session.c:1733 -msgid "Up" -msgstr "" +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "%d mal aufwärts bewegen (»Up«), dann der Nächste (»Next«)." -#: info/session.c:1020 -msgid "No more nodes." -msgstr "Keine \"Nodes\" mehr" +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "Keine weiteren Knoten in diesem Dokument." -#: info/session.c:1044 -msgid "No \"Prev\" for this node." +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." msgstr "Kein »Prev« bei diesem Knoten." # checkit #. Move to the previous node. If this node now contains a menu, #. and we have not inhibited movement to it, move to the node #. corresponding to the last menu item. -#: info/session.c:1047 info/session.c:1100 -msgid "Moving \"Prev\" in this window." -msgstr "Nach »Prev« in diesem Fenster bewegen." +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." +msgstr "Zum nächsten (»Prev«) in diesem Fenster bewegen." -# checkit -# üs? -ke- -#: info/session.c:1048 info/session.c:1101 info/session.c:1725 -msgid "Prev" -msgstr "" +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "Kein »Prev« oder »Up« für diesen Knoten innerhalb dieses Dokuments." -#: info/session.c:1059 -msgid "No \"Prev\" or \"Up\" for this node." -msgstr "Kein »Prev« oder »Up« bei diesem Knoten." - -#: info/session.c:1062 -msgid "Moving \"Up\" in this window." +#: info/session.c:1053 +msgid "Moving Up in this window." msgstr "Nach »Up« in diesem Fenster bewegen." -#: info/session.c:1110 -msgid "Moving to \"Prev\"'s last menu item." +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." msgstr "Nach dem letzten Menüpunkt von »Prev« bewegen." -#: info/session.c:1121 +#: info/session.c:1112 msgid "Move forwards or down through node structure" msgstr "Vorwärts oder abwärts durch die Knotenstruktur bewegen" -#: info/session.c:1137 +#: info/session.c:1128 msgid "Move backwards or up through node structure" msgstr "Zurück oder aufwärts durch die Knotenstruktur bewegen" #. Show the next screen of WINDOW's node. -#: info/session.c:1152 +#: info/session.c:1143 msgid "Scroll forward in this window" msgstr "In diesem Fenster vorwärts »scrollen«" +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "" +"In diesem Fenster vorwärts »scrollen« und die Standard-Fenstergröße setzen" + #. Show the previous screen of WINDOW's node. -#: info/session.c:1197 +#: info/session.c:1200 msgid "Scroll backward in this window" msgstr "In diesem Fenster rückwärts »scrollen«" +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "" +"In diesem Fenster rückwärts »scrollen« und die Standard-Fenstergröße setzen" + #. Move to the beginning of the node. -#: info/session.c:1237 +#: info/session.c:1252 msgid "Move to the start of this node" msgstr "Zum Anfang dieses Knotens bewegen" #. Move to the end of the node. -#: info/session.c:1244 +#: info/session.c:1259 msgid "Move to the end of this node" msgstr "Zum Ende dieses Knotens bewegen" +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "Zeilenweise abwärts scrollen" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "Zeilenweise zurück scrollen" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "Einen halben Bildschirm abwärts scrollen" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "Einen halben Bildschirm zurück scrollen" + #. **************************************************************** #. #. Commands for Manipulating Windows #. #. **************************************************************** #. Make the next window in the chain be the active window. -#: info/session.c:1257 +#: info/session.c:1356 msgid "Select the next window" msgstr "Das nächste Fenster auswählen" #. Make the previous window in the chain be the active window. -#: info/session.c:1296 +#: info/session.c:1395 msgid "Select the previous window" msgstr "Das vorige Fenster auswählen" #. Split WINDOW into two windows, both showing the same node. If we #. are automatically tiling windows, re-tile after the split. -#: info/session.c:1347 +#: info/session.c:1446 msgid "Split the current window" msgstr "Aktuelles Fenster unterteilen" @@ -651,287 +989,335 @@ msgstr "Aktuelles Fenster unterteilen" #. automatically displaying footnotes, show or remove the footnotes #. window. If we are automatically tiling windows, re-tile after the #. deletion. -#: info/session.c:1428 +#: info/session.c:1527 msgid "Delete the current window" msgstr "Aktuelles Fenster löschen" -#: info/session.c:1436 +#: info/session.c:1535 msgid "Cannot delete a permanent window" msgstr "Ein permanentes Fenster kann nicht gelöscht werden" #. Just keep WINDOW, deleting all others. -#: info/session.c:1469 +#: info/session.c:1568 msgid "Delete all other windows" msgstr "Alle anderen Fenster löschen" #. Scroll the "other" window of WINDOW. -#: info/session.c:1515 +#: info/session.c:1614 msgid "Scroll the other window" msgstr "Das andere Fenster »scrollen«" +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "Das andere Fenster rückwärts blättern" + #. Change the size of WINDOW by AMOUNT. -#: info/session.c:1535 +#: info/session.c:1641 msgid "Grow (or shrink) this window" msgstr "Aktuelles Fenster vergrößern (oder verkleinern)" -#: info/session.c:1546 +#: info/session.c:1652 msgid "Divide the available screen space among the visible windows" msgstr "" "Den vorhandenen Bildschirmplatz unter allen sichtbaren Fenstern aufteilen" -#: info/session.c:1553 +#: info/session.c:1659 msgid "Toggle the state of line wrapping in the current window" msgstr "Den Status des Zeilenumbruchs im aktuellen Fenster umschalten" #. Make WINDOW display the "Next:" node of the node currently being #. displayed. -#: info/session.c:1714 -msgid "Select the `Next' node" +#: info/session.c:1838 +msgid "Select the Next node" msgstr "Den »Next«-Knoten auswählen" #. Make WINDOW display the "Prev:" node of the node currently being #. displayed. -#: info/session.c:1722 -msgid "Select the `Prev' node" +#: info/session.c:1846 +msgid "Select the Prev node" msgstr "Den »Prev«-Knoten auswählen" #. Make WINDOW display the "Up:" node of the node currently being #. displayed. -#: info/session.c:1730 -msgid "Select the `Up' node" -msgstr "Den »Up«-Knoten auswählen" +#: info/session.c:1854 +msgid "Select the Up node" +msgstr "Den übergeordneten Knoten auswählen (»Up«)" #. Make WINDOW display the last node of this info file. -#: info/session.c:1737 +#: info/session.c:1861 msgid "Select the last node in this file" msgstr "Den letzten Knoten dieser Datei auswählen" # checkit -#: info/session.c:1750 info/session.c:1768 +#: info/session.c:1888 info/session.c:1921 msgid "This window has no additional nodes" msgstr "Dies Fenster hat keine weiteren Knoten" #. Make WINDOW display the first node of this info file. -#: info/session.c:1759 +#: info/session.c:1894 msgid "Select the first node in this file" msgstr "Den ersten Knoten dieser Datei auswählen" -#: info/session.c:1778 +#: info/session.c:1928 msgid "Select the last item in this node's menu" msgstr "Den letzten Punkt des Menüs dieses Knotens auswählen" #. Use KEY (a digit) to select the Nth menu item in WINDOW->node. -#: info/session.c:1784 +#: info/session.c:1934 msgid "Select this menu item" msgstr "Diesen Menüpunkt auswählen" -#: info/session.c:1813 +#: info/session.c:1963 #, c-format msgid "There aren't %d items in this menu." msgstr "Es sind keine %d Punkte in diesem Menü." -#: info/session.c:1944 +#: info/session.c:2094 #, c-format msgid "Menu item (%s): " msgstr "Menüpunkt (%s): " -#: info/session.c:1946 +#: info/session.c:2096 msgid "Menu item: " msgstr "Menüpunkt: " -#: info/session.c:1951 +#: info/session.c:2101 #, c-format msgid "Follow xref (%s): " msgstr "Folge xref (%s): " -#: info/session.c:1953 +#: info/session.c:2103 msgid "Follow xref: " msgstr "Folge xref: " #. Read a line (with completion) which is the name of a menu item, #. and select that item. -#: info/session.c:2042 +#: info/session.c:2191 msgid "Read a menu item and select its node" msgstr "Einen Menüpunkt lesen und seinen Knoten auswählen" -#: info/session.c:2050 +#: info/session.c:2199 msgid "Read a footnote or cross reference and select its node" msgstr "Fußnote oder Querverweis lesen und den Konote auswählen" #. Position the cursor at the start of this node's menu. -#: info/session.c:2056 +#: info/session.c:2205 msgid "Move to the start of this node's menu" msgstr "Zum Anfang des Menüs dieses Knotens bewegen" -#: info/session.c:2080 +#: info/session.c:2229 msgid "Visit as many menu items at once as possible" msgstr "So viele Menüpunkte wie möglich auf einmal besuchen" #. Read a line of input which is a node name, and go to that node. -#: info/session.c:2108 +#: info/session.c:2257 msgid "Read a node name and select it" msgstr "Den Namen eines Knotens lesen und diesen auswählen" -#: info/session.c:2169 info/session.c:2173 -msgid "Goto Node: " -msgstr "Gehe nach Knoten: " +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "Gehe zu Knoten: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "Kein Menü im Knoten »%s«." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "Kein Menüpunkt »%s« im Knoten »%s«." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "" +"Unmöglich, einen Knoten zu finden, der von »%s« in »%s« referenziert wird." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "Menüliste lesen; bei »dir« beginnen und ihnen folgen" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "Menüs folgen: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "Den Knoten finden, der den Programm-Aufruf beschreibt" -#: info/session.c:2194 +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "Finden den Aufruf-Knoten von [%s]: " + +#: info/session.c:2743 msgid "Read a manpage reference and select it" msgstr "Einen Verweis auf eine Manpage lesen und diese auswählen" -#: info/session.c:2198 +#: info/session.c:2747 msgid "Get Manpage: " msgstr "Hole Manpage: " #. Move to the "Top" node in this file. -#: info/session.c:2228 +#: info/session.c:2777 msgid "Select the node `Top' in this file" msgstr "Den Knoten »Top« dieser Datei auswählen" -#. Notice that the node "Top" is special, and doesn't have to -#. be referenced. -#: info/session.c:2230 makeinfo/makeinfo.c:5145 makeinfo/makeinfo.c:5228 -msgid "Top" -msgstr "Top" - #. Move to the node "(dir)Top". -#: info/session.c:2234 +#: info/session.c:2783 msgid "Select the node `(dir)'" msgstr "Den Knoten »(dir)« auswählen" -#: info/session.c:2254 +#: info/session.c:2803 #, c-format msgid "Kill node (%s): " msgstr "Kille Knoten (%s): " -#: info/session.c:2307 +#: info/session.c:2857 #, c-format msgid "Cannot kill node `%s'" msgstr "Kann Knoten »%s« nicht killen" -#: info/session.c:2317 +#: info/session.c:2867 msgid "Cannot kill the last node" msgstr "Der letzte Knoten kann nicht gekillt werden" -#: info/session.c:2401 +#: info/session.c:2953 msgid "Select the most recently selected node" msgstr "Den zuletzt gewählten Knoten auswählen" #. Kill named node. -#: info/session.c:2407 +#: info/session.c:2959 msgid "Kill this node" msgstr "Diesen Knoten killen" #. Read the name of a file and select the entire file. -#: info/session.c:2415 +#: info/session.c:2967 msgid "Read the name of a file and select it" msgstr "Den Namen einer Datei lesen und diese auswählen" -#: info/session.c:2419 +#: info/session.c:2971 msgid "Find file: " msgstr "Datei finden: " -#: info/session.c:2436 -#, c-format -msgid "Cannot find \"%s\"." +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." msgstr "Kann »%s« nicht finden." -#: info/session.c:2483 info/session.c:2608 -#, c-format -msgid "Could not create output file \"%s\"." +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." msgstr "Ausgabe-Datei »%s« kann nicht angelegt werden." -#: info/session.c:2496 info/session.c:2625 info/session.c:2671 +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 msgid "Done." msgstr "Fertig." -#: info/session.c:2553 -#, c-format -msgid "Writing node \"(%s)%s\"..." -msgstr "Schreibe Knoten (%s)%s" - -#: info/session.c:2556 -#, c-format -msgid "Writing node \"%s\"..." +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." msgstr "Knoten »%s« schreiben..." -#: info/session.c:2634 +#: info/session.c:3180 msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" msgstr "Den Inhalt dieses Knotens durch INFO_PRINT_COMMAND pipen" -#: info/session.c:2654 -#, c-format -msgid "Cannot open pipe to \"%s\"." +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." msgstr "Kann nicht nach »%s« pipen." -#: info/session.c:2661 -#, c-format -msgid "Printing node \"(%s)%s\"..." -msgstr "Drucke Knoten »(%s)%s«..." - -#: info/session.c:2664 -#, c-format -msgid "Printing node \"%s\"..." +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." msgstr "Drucke Knoten »%s«..." -#: info/session.c:2896 -#, c-format -msgid "Searching subfile \"%s\"..." +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." msgstr "Unterdatei »%s« wird durchsucht..." -#: info/session.c:2946 +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" +msgstr "" +"Eine Zeichenkette einlesen und danach gemäß Groß-/Kleinschreibung suchen" + +#: info/session.c:3523 msgid "Read a string and search for it" msgstr "Eine Zeichenkette einlesen und danach suchen" +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "Eine Zeichenkette einlesen und danach rückwärts suchen" + # checkit -#: info/session.c:2966 +#: info/session.c:3573 #, c-format -msgid "%s for string [%s]: " -msgstr "%s nach Zeichenkette [%s]: " +msgid "%s%sfor string [%s]: " +msgstr "%s%s nach Zeichenkette [%s]: " -#: info/session.c:2967 +#: info/session.c:3574 msgid "Search backward" msgstr "Suche rückwärts" -#: info/session.c:2967 +#: info/session.c:3574 msgid "Search" msgstr "Suche" -#: info/session.c:2994 +#: info/session.c:3575 +msgid " case-sensitively " +msgstr "gemäß Groß-/Kleinschreibung" + +#: info/session.c:3575 +msgid " " +msgstr " " + +#: info/session.c:3615 msgid "Search failed." msgstr "Suche fehlgeschlagen." -#: info/session.c:3020 info/session.c:3026 +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "Letzte Suche in der gleichen Richtung wiederholen" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "Keine vorherige Such-Zeichenkette." + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "Letzte Suche in der entgegengesetzten Richtung wiederholen" + +#: info/session.c:3661 info/session.c:3667 msgid "Search interactively for a string as you type it" msgstr "Interaktiv nach einer Zeichenkette während der Eingabe suchen" -#: info/session.c:3120 +#: info/session.c:3761 msgid "I-search backward: " msgstr "Interactive Suche rückwarts: " -#: info/session.c:3122 +#: info/session.c:3763 msgid "I-search: " -msgstr "Interactive Suche" +msgstr "Interaktive Suche" # checkit -#: info/session.c:3147 +#: info/session.c:3788 msgid "Failing " msgstr "Fehlgeschlagen " -#: info/session.c:3512 -msgid "No cross references in this node." -msgstr "Keine Querverweise in diesem Knoten." - -#: info/session.c:3579 +#: info/session.c:4244 msgid "Move to the previous cross reference" msgstr "Zum vorigen Querverweis bewegen" -#: info/session.c:3588 +#: info/session.c:4253 msgid "Move to the next cross reference" msgstr "Zum nächsten Querverweis bewegen" -#: info/session.c:3598 +#: info/session.c:4263 msgid "Select reference or menu item appearing on this line" msgstr "Verweis oder Menüpunkt auswählen, der auf dieser Zeile erscheint" @@ -942,57 +1328,57 @@ msgstr "Verweis oder Menüpunkt auswählen, der auf dieser Zeile erscheint" #. #. **************************************************************** #. What to do when C-g is pressed in a window. -#: info/session.c:3620 +#: info/session.c:4285 msgid "Cancel current operation" msgstr "Momentane Operation abbrechen" -#: info/session.c:3627 +#: info/session.c:4292 msgid "Quit" msgstr "Ende" -#: info/session.c:3636 -msgid "Move to the cursor to a specific line of the window" +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" msgstr "Den Cursor nach einer bestimmten Zeile des Fensters bewegen" #. Clear the screen and redraw its contents. Given a numeric argument, #. move the line the cursor is on to the COUNT'th line of the window. -#: info/session.c:3668 +#: info/session.c:4333 msgid "Redraw the display" msgstr "Anzeige erneut darstellen" #. This command does nothing. It is the fact that a key is bound to it #. that has meaning. See the code at the top of info_session (). -#: info/session.c:3705 +#: info/session.c:4370 msgid "Quit using Info" msgstr "Info beenden" -#: info/session.c:3728 +#: info/session.c:4393 #, c-format msgid "Unknown command (%s)." msgstr "Unbekannter Befehl (%s)." -#: info/session.c:3733 +#: info/session.c:4396 msgid "\"\" is invalid" -msgstr "\"\" ist ungültig" +msgstr "»« ist ungültig" -#: info/session.c:3735 +#: info/session.c:4397 #, c-format msgid "\"%s\" is invalid" -msgstr "\"%s\" ist ungültig" +msgstr "»%s« ist ungültig" -#: info/session.c:3958 +#: info/session.c:4620 msgid "Add this digit to the current numeric argument" msgstr "Diese Zahl dem aktuellen numerischen Argument hinzufügen" -#: info/session.c:3967 +#: info/session.c:4629 msgid "Start (or multiply by 4) the current numeric argument" msgstr "Beginne (oder multipliziere mit 4) das aktuelle nummerische Argument" -#: info/session.c:3982 +#: info/session.c:4644 msgid "Internally used by \\[universal-argument]" msgstr "Intern gebraucht von \\[universal-argument]" -#: info/tilde.c:362 +#: info/tilde.c:344 msgid "readline: Out of virtual memory!\n" msgstr "readline: Kein Speicher mehr!\n" @@ -1068,861 +1454,1032 @@ msgstr "Setze %s auf den Wert (%d): " msgid "Set %s to value (%s): " msgstr "Setze %s auf den Wert (%s): " -#: info/window.c:1102 +#: info/window.c:1101 msgid "--*** Tags out of Date ***" msgstr "--*** Tags veraltet ***" #. strlen (location_indicator). #. 10 for the decimal representation of the number of lines in this #. node, and the remainder of the text that can appear in the line. -#: info/window.c:1113 +#: info/window.c:1112 msgid "-----Info: (), lines ----, " msgstr "-----Info: (), Zeilen ----, " -#: info/window.c:1120 +#: info/window.c:1119 #, c-format msgid "-%s---Info: %s, %d lines --%s--" msgstr "-%s---Info: %s, %d Zeilen --%s--" -#: info/window.c:1124 +#: info/window.c:1123 #, c-format msgid "-%s%s-Info: (%s)%s, %d lines --%s--" msgstr "-%s%s-Info: (%s)%s, %d Zeilen --%s--" -#: info/window.c:1131 +#: info/window.c:1130 #, c-format msgid " Subfile: %s" msgstr " Unterdatei: %s" -#: lib/getopt.c:672 +#: lib/getopt.c:680 #, c-format msgid "%s: option `%s' is ambiguous\n" -msgstr "" +msgstr "%s: Option `%s' ist zweideutig\n" -#: lib/getopt.c:696 +#: lib/getopt.c:704 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "" +msgstr "%s: Option `--%s' erlaubt kein Argument\n" -#: lib/getopt.c:701 +#: lib/getopt.c:709 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "" +msgstr "%s: Option `%c%s' erlaubt kein Argument\n" -#: lib/getopt.c:718 lib/getopt.c:891 +#: lib/getopt.c:726 lib/getopt.c:899 #, c-format msgid "%s: option `%s' requires an argument\n" -msgstr "" +msgstr "%s: Option `%s' benötigt kein Argument\n" #. --option -#: lib/getopt.c:747 +#: lib/getopt.c:755 #, c-format msgid "%s: unrecognized option `--%s'\n" -msgstr "" +msgstr "%s: nicht erkannte Option `--%s'\n" #. +option or -option -#: lib/getopt.c:751 +#: lib/getopt.c:759 #, c-format msgid "%s: unrecognized option `%c%s'\n" -msgstr "" +msgstr "%s: nicht erkannte Option `%c%s'\n" #. 1003.2 specifies the format of this message. -#: lib/getopt.c:777 +#: lib/getopt.c:785 #, c-format msgid "%s: illegal option -- %c\n" -msgstr "" +msgstr "%s: ungültige Option -- %c\n" -#: lib/getopt.c:780 +#: lib/getopt.c:788 #, c-format msgid "%s: invalid option -- %c\n" -msgstr "" +msgstr "%s: ungültige Option -- %c\n" #. 1003.2 specifies the format of this message. -#: lib/getopt.c:810 lib/getopt.c:940 +#: lib/getopt.c:818 lib/getopt.c:948 #, c-format msgid "%s: option requires an argument -- %c\n" -msgstr "" +msgstr "%s: Option verlangt ein Argument -- %c\n" -#: lib/getopt.c:857 +#: lib/getopt.c:865 #, c-format msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" +msgstr "%s: Option `-W %s' ist zweideutig\n" -#: lib/getopt.c:875 +#: lib/getopt.c:883 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" +msgstr "%s: Option `-W %s' erlaubt kein Argument\n" -#: makeinfo/makeinfo.c:893 -#, c-format -msgid "%s:%d: warning: " -msgstr "%s:%d: Warnung: " +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "Januar" -#: makeinfo/makeinfo.c:916 -msgid "Too many errors! Gave up.\n" -msgstr "Zu viele Fehler! Abbruch.\n" +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "Februar" -#: makeinfo/makeinfo.c:975 makeinfo/makeinfo.c:1000 makeinfo/makeinfo.c:1068 -#, c-format -msgid "%s: %s arg must be numeric, not `%s'.\n" -msgstr "%s: %s Argument muss numerisch sein, nicht »%s«.\n" +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "März" -# checkit -#: makeinfo/makeinfo.c:989 -#, c-format -msgid "Couldn't open macro expansion output `%s'" -msgstr "Die Macro-Auflösung für »%s« kann nicht geöffnet werden" +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "April" -#: makeinfo/makeinfo.c:992 -msgid "Cannot specify more than one macro expansion output" -msgstr "Mehr als eine Ausgabedatei darf nicht angegeben werden" +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "Mai" -#: makeinfo/makeinfo.c:1036 -#, c-format -msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" -msgstr "" -"%s: Arg für --paragraph-indent muss numerisch/»none«/»asis« sein, nicht " -"»%s«.\n" +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "Juni" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "Juli" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "August" -#: makeinfo/makeinfo.c:1079 +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "September" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "Oktober" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "November" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "Dezember" + +#: makeinfo/cmds.c:571 #, c-format -msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" -msgstr "" -"%s: Argument für --footnote-style muss »separate« oder »end« sein, nicht " -"»%s«.\n" +msgid "unlikely character %c in @var" +msgstr "ungutes Zeichen %c in @var" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "@sc Argument durchweg in Großbuchstaben, somit keine Wirkung" -#: makeinfo/makeinfo.c:1110 +#: makeinfo/cmds.c:754 #, c-format -msgid "%s: missing file argument.\n" -msgstr "%s: Datei-Angabe fehlt.\n" +msgid "%c%s is obsolete" +msgstr "%c%s ist obsolet" -#: makeinfo/makeinfo.c:1163 +#: makeinfo/cmds.c:814 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "»%s --help« gibt weitere Informationen.\n" +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "@sp erfordert ein positives numerisches Argument, nicht »%s«" -# Die "." am Zeilenende habe ich entfernt. -ke- -#: makeinfo/makeinfo.c:1165 +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 #, c-format -msgid "" -"Usage: %s [OPTION]... TEXINFO-FILE...\n" -"\n" -"Translate Texinfo source documentation to a format suitable for reading\n" -"with GNU Info.\n" -"\n" -"Options:\n" -"-D VAR define a variable, as with @set.\n" -"-E MACRO-OFILE process macros only, output texinfo source.\n" -"-I DIR append DIR to the @include directory search path.\n" -"-P DIR prepend DIR to the @include directory search path.\n" -"-U VAR undefine a variable, as with @clear.\n" -"--error-limit NUM quit after NUM errors (default %d).\n" -"--fill-column NUM break lines at NUM characters (default %d).\n" -"--footnote-style STYLE output footnotes according to STYLE:\n" -" `separate' to place footnotes in their own node,\n" -" `end' to place the footnotes at the end of\n" -" the node in which they are defined (the default).\n" -"--force preserve output even if errors.\n" -"--help display this help and exit.\n" -"--no-validate suppress node cross-reference validation.\n" -"--no-warn suppress warnings (but not errors).\n" -"--no-split suppress splitting of large files.\n" -"--no-headers suppress node separators and Node: Foo headers.\n" -"--output FILE, -o FILE output to FILE, and ignore any @setfilename.\n" -"--paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n" -" if VAL is `none', do not indent; if VAL is `asis',\n" -" preserve any existing indentation.\n" -"--reference-limit NUM complain about at most NUM references (default %d).\n" -"--verbose report about what is being done.\n" -"--version display version information and exit.\n" -"\n" -"Email bug reports to bug-texinfo@gnu.org.\n" +msgid "Bad argument to %c%s" +msgstr "Fehlerhaftes Argument zu %c%s" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "genau" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "kein" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "Fehlende »}« beim @def Argument" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "Funktion" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "Macro" + +# checkit +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "Spezielle Form" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "Variable: " + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "User-Option" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" msgstr "" -"Aufruf: %s [OPTION]... TEXINFO-DATEI...\n" -"\n" -"Texinfo-Quelltext in ein Format übersetzen, das mit GNU Info gelesen werden\n" -"kann.\n" -"\n" -"Optionen:\n" -"-D VAR eine Variable definieren, wie mit @set\n" -"-E MACRO-AUSGABEDATEI nur die Macros auflösen, Texinfo-Quelltext ausgeben\n" -"-I VERZ VERZ in die Verzeichnis-Suchliste für @include " -"aufnehmen\n" -"-P DIR VERZ dem @include Verzeichnis-Suchpfad voranstellen\n" -"-U VAR eine Variable aufheben, wie mit @clear\n" -"--error-limit ZAHL nach ZAHL Fehlern beenden (Standard %d)\n" -"--fill-column ZAHL Zeilen nach ZAHL Zeichen umbrechen (Standard %d)\n" -"--footnote-style STYLE Fußnoten gemäß STYLE ausgeben:\n" -" »separate«: Fußnoten in einen eigenen Knoten " -"plazieren;\n" -" »end«: Fußnoten an das Ende des Knoten setzen, " -"in\n" -" dem sie definiert sind (Standard)\n" -"--force Ausgabe auch bei Fehlern aufbewahren\n" -"--help diese Hilfe zeigen\n" -"--no-validate Überprüfen der \"node\"-Querverweise unterdrücken\n" -"--no-warn Warnungen unterdrücken (aber keine Fehler)\n" -"--no-split Aufteilen langer Dateien unterdrücken\n" -"--no-headers Knoten-Unterteiler und \"Node: Foo\" Kopfzeilen\n" -" unterdrücken\n" -"--output DATEI, -o DATEI\n" -" Ausgabe nach DATEI und @setfilename ignorieren\n" -"--paragraph-indent ZAHL/»none«/»asis«\n" -" Absätze mit ZAHL Leerräumen einziehen (Standard %d);\n" -" »none«: keine Leerräume\n" -" »asis«: keine Veränderung hinsichtlich der Leerräume\n" -"--reference-limit ZAHL bei wenigstens ZAHL Verweise melden (Standard %d)\n" -"--verbose ausführlich die Bearbeitungschritte anzeigen\n" -"--version Programmversion anzeigen\n" -"\n" -"Fehlerberichte (\"bugs\") bitte an <bug-texinfo@gnu.org> schicken.\n" -"\n" -"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig.\n" -#: makeinfo/makeinfo.c:1552 +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "Methde" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "aus" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" +msgstr "ein" + +# checkit +#: makeinfo/defun.c:656 #, c-format -msgid "%s: getwd: %s, %s\n" -msgstr "" +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "Muss in einer »%s«-Einfügung sein, um »%sx« zu benutzen" -#: makeinfo/makeinfo.c:1748 +#: makeinfo/files.c:460 #, c-format -msgid "Expected `%s'" -msgstr "Erwartet »%s«" +msgid "%s: getwd: %s, %s\n" +msgstr "%s: getwd: %s, %s\n" -#: makeinfo/makeinfo.c:2082 +#: makeinfo/footnote.c:149 #, c-format -msgid "No `%s' found in `%s'" -msgstr "Kein »%s« in »%s« gefunden" +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "»%c%s« benötigt ein Argument »{...}«, nicht nur »%s«" -#: makeinfo/makeinfo.c:2132 +#: makeinfo/footnote.c:164 #, c-format -msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" -msgstr "" -"%s: Macro-Auflösung nach der Standard-Ausgabe, da auch die Info-Ausgabe nach " -"dort geht.\n" +msgid "No closing brace for footnote `%s'" +msgstr "Keine schließende Klammer für Fußnote »%s«" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "Fußnote außerhalb eines Elternknotens definiert" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "Fußnoten" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "Ohne Titel" -#: makeinfo/makeinfo.c:2151 +#: makeinfo/index.c:212 #, c-format -msgid "Making %s file `%s' from `%s'.\n" -msgstr "Erzeuge %s Datei »%s« von »%s«.\n" +msgid "Unknown index `%s'" +msgstr "Unbekannter Index »%s«" -#: makeinfo/makeinfo.c:2181 +#: makeinfo/index.c:382 #, c-format -msgid "This is Info file %s, produced by Makeinfo version %d.%d" -msgstr "Dies ist die Info-Datei %s, hergestellt von Makeinfo Version %d.%d" +msgid "Index `%s' already exists" +msgstr "Index »%s« existiert bereits" -#: makeinfo/makeinfo.c:2183 +#: makeinfo/index.c:425 #, c-format -msgid " from the input file %s.\n" -msgstr " aus der Eingabe-Datei %s.\n" +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "Unbekannter Index »%s« und/oder »%s« in @synindex" -#: makeinfo/makeinfo.c:2202 +#: makeinfo/index.c:642 #, c-format -msgid "" -"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" -msgstr "" -"%s: Entferne Macro-Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um " -"diese beizubehalten.\n" +msgid "Unknown index `%s' in @printindex" +msgstr "\"Unbekannter Index »%s« in @printindex" -#. If there were errors, and no --force, remove the output. -#: makeinfo/makeinfo.c:2234 +#: makeinfo/index.c:680 #, c-format -msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgid "Entry for index `%s' outside of any node" +msgstr "Eintrag für Index »%s« außerhalb jeglichen Knotens" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "(außerhalb jeglichen Knotens)" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" msgstr "" -"%s: Entferne Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um diese " -"beizubehalten.\n" -#. Special case. I'm not supposed to see this character by itself. -#. If I do, it means there is a syntax error in the input text. -#. Report the error here, but remember this brace on the stack so -#. you can ignore its partner. -#: makeinfo/makeinfo.c:2374 makeinfo/makeinfo.c:7629 -#, c-format -msgid "Misplaced %c" -msgstr "Fehlplazierte %c" +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "Überlauf bei den Zahlen der Aufzählung" -#: makeinfo/makeinfo.c:2461 +#: makeinfo/insertion.c:297 #, c-format -msgid "Unknown command `%s'" -msgstr "Unbekannter Befehl »%s«" +msgid "lettering overflow, restarting at %c" +msgstr "Überlauf bei den Buchstaben der Aufzählung, Beginn wieder bei %c" -#: makeinfo/makeinfo.c:2481 -msgid "NO_NAME!" -msgstr "" +# checkit +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s benötigt ein Argument: der Formatierer für %citem" -#: makeinfo/makeinfo.c:2495 +#: makeinfo/insertion.c:623 #, c-format -msgid "%c%s expected `{...}'" -msgstr "%c%s erwartete »{...}«" +msgid "`@end' expected `%s', but saw `%s'" +msgstr "»@end« erwartet »%s«, aber bekam »%s«" -#: makeinfo/makeinfo.c:2528 -msgid "Unmatched }" -msgstr "Nicht übereinstimmende }" +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "Kein zutreffendes »%cend %s«" -#: makeinfo/makeinfo.c:2576 +#: makeinfo/insertion.c:902 #, c-format -msgid "%c%s missing close brace" -msgstr "%c%s fehlende schließende Klammer" +msgid "%s requires letter or digit" +msgstr "%s benötigt einen Buchstaben oder eine Zahl" # checkit -# üs? -ke- -#: makeinfo/makeinfo.c:3372 -msgid "Broken-Type in insertion_type_pname" +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "@menu vor dem ersten @node gesehen, »Top«-Knoten wird angelegt" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" msgstr "" +"vielleicht sollte der @top-Knoten eher von @ifnottex als von @ifinfo " +"umschlossen werden?" -#: makeinfo/makeinfo.c:3438 -msgid "Enumeration stack overflow" -msgstr "Nummerierungsstack-Überlauf" +# checkit +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "@detailmenu vor dem ersten Knoten gesehen, »Top«-Knoten wird angelegt" -#: makeinfo/makeinfo.c:3470 +#: makeinfo/insertion.c:1074 #, c-format -msgid "lettering overflow, restarting at %c" -msgstr "Buchstaben-Zählungs-Überlauf, beginne wieder bei %c" +msgid "Unmatched `%c%s'" +msgstr "Nicht übereinstimmendes »%c%s«" -# checkit -# übersetzen? -ke- -#: makeinfo/makeinfo.c:3509 -msgid "* Menu:\n" -msgstr "* Menü:\n" +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "»%c%s« benötigt etwas nachfolgendes" -# checkit -#: makeinfo/makeinfo.c:3593 +#: makeinfo/insertion.c:1087 #, c-format -msgid "%s requires an argument: the formatter for %citem" -msgstr "%s erfordert ein Argument: der Formatierer für %citem" +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "Fehlerhaftes Argument zu »%s«, »%s«, benutze »%s«" -#: makeinfo/makeinfo.c:3697 +#: makeinfo/insertion.c:1175 #, c-format -msgid "`%cend' expected `%s', but saw `%s'" -msgstr "»%cend« erwartete »%s«, aber bekam »%s«" +msgid "@%s not meaningful inside `@%s' block" +msgstr "@%s nicht sinnvoll innerhalb eines »@%s«-Blocks" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "@itemx nicht sinnvoll innerhalb eines »%s«-Blocks" # checkit -#: makeinfo/makeinfo.c:3810 +#: makeinfo/insertion.c:1357 #, c-format -msgid "No matching `%cend %s'" -msgstr "Nicht übereinstimmende »%cend %s«" +msgid "%c%s found outside of an insertion block" +msgstr "%c%s außerhalb eines Einfügungsblocks gefunden" -#: makeinfo/makeinfo.c:3949 +#: makeinfo/lang.c:199 #, c-format -msgid "How did @%s end up in cm_special_char?\n" -msgstr "Zu was führt @%s in cm_special_char?\n" +msgid "%s is not a valid ISO 639 language code" +msgstr "%s ist kein gÚltiger ISO 639 Language Code" #. This error message isn't perfect if the argument is multiple #. characters, but it doesn't seem worth getting right. -#: makeinfo/makeinfo.c:3963 +#: makeinfo/lang.c:406 #, c-format msgid "%c%s expects `i' or `j' as argument, not `%c'" msgstr "%c%s erwartet »i« oder »j« als Argument, nicht »%c«" -#: makeinfo/makeinfo.c:3967 +#: makeinfo/lang.c:410 #, c-format msgid "%c%s expects a single character `i' or `j' as argument" -msgstr "%c%s erwartet einen einzigen Buchstaben »i« oder »j« als Argument" - -#: makeinfo/makeinfo.c:3979 -msgid "January" -msgstr "Januar" - -#: makeinfo/makeinfo.c:3979 -msgid "February" -msgstr "Februar" +msgstr "%c%s erwartet einen einzelnen Buchstaben »i« oder »j» als Argument" -#: makeinfo/makeinfo.c:3979 -msgid "March" -msgstr "März" +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "Macro »%s« früher definiert" -#: makeinfo/makeinfo.c:3979 -msgid "April" -msgstr "April" +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "hier ist die frühere Definition von »%s«" -#: makeinfo/makeinfo.c:3979 -msgid "May" -msgstr "Mai" +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "" +"Dem \\ folgt in der Macro-Erweiterung »%s« anstelle von \\ oder einem " +"Parameternamen" -#: makeinfo/makeinfo.c:3980 -msgid "June" -msgstr "Juni" +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "Macro »%s« in Zeile %d mit zuvielen Argumenten aufgerufen" -#: makeinfo/makeinfo.c:3980 -msgid "July" -msgstr "Juli" +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "%cend Macro nicht gefunden" -#: makeinfo/makeinfo.c:3980 -msgid "August" -msgstr "August" +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "@quote-Argument nur sinnvoll, wenn das Macro nur ein Argument hat" -#: makeinfo/makeinfo.c:3980 -msgid "September" -msgstr "September" +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "@end %s stimmt nicht mit @%s überein" -#: makeinfo/makeinfo.c:3980 -msgid "October" -msgstr "Oktober" +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: Warnung: " -#: makeinfo/makeinfo.c:3981 -msgid "November" -msgstr "November" +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "Zu viele Fehler! Abbruch.\n" -#: makeinfo/makeinfo.c:3981 -msgid "December" -msgstr "Dezember" +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "Fehlplazierte %c" -#: makeinfo/makeinfo.c:4039 +#: makeinfo/makeinfo.c:362 #, c-format -msgid "%c%s expects a single character as an argument" -msgstr "%c%s erwartet einen einzigen Buchstaben als Argument" +msgid "Try `%s --help' for more information.\n" +msgstr "»%s --help« gibt weitere Informationen.\n" -#: makeinfo/makeinfo.c:4153 +#: makeinfo/makeinfo.c:365 #, c-format -msgid "%c%s is obsolete" -msgstr "%c%s ist obsolet" +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" +"Syntax: %s [OPTION]... TEXINFO-DATEI...\n" +"\n" +"Texinfo-Quelltext in verschiedene andere Formate übersetzen:\n" +"In Info-Dateien (Standard), die mit Emacs oder mit GNU Info gelesen werden\n" +"können; reine Textdateien (mit --no-headers) oder HTML (mit --html).\n" +"\n" +"Optionen:\n" +" --commands-in-node-names @-Befehle in Knotennamen zulassen\n" +" -D VAR eine Variable definieren, wie mit @set\n" +" -E, --macro-expand DATEI originalen Quelltext mit expandierten Macros " +"nach\n" +" DATEI ausgeben\n" +" --error-limit=ZAHL nach ZAHL Fehlern beenden (Standard %d)\n" +" --fill-column=ZAHL Zeilen nach ZAHL Zeichen umbrechen (Standard %d)\n" +" --footnote-style=STYLE Fußnoten gemäß STYLE ausgeben:\n" +" »separate«: Fußnoten in einen eigenen Knoten \n" +" plazieren;\n" +" »end«: Fußnoten an das Ende des Knotens " +"setzen,\n" +" in dem sie definiert sind (Standard)\n" +" --force Ausgabedatei auch bei Fehlern nicht löschen\n" +" --help diese Hilfe zeigen\n" +" --html HTML anstelle des Info-Formats ausgeben; " +"impliziert\n" +" --no-splityyy\n" +" -I VERZ VERZ an den Suchpfad für @include anhängen\n" +" --ifhtml @ifhtml- und @html-Text auch bearbeiten, wenn " +"kein\n" +" HTML erzeugt wird\n" +" --ifinfo @ifinfo-Text auch bearbeiten, wenn HTML erzeugt\n" +" wird\n" +" --iftex @iftex und @tex bearbeiten\n" -#: makeinfo/makeinfo.c:4325 +# Die "." am Zeilenende habe ich entfernt. -ke- +#: makeinfo/makeinfo.c:391 #, c-format -msgid "Node with %ctop as a section already exists" -msgstr "Konoten mit %ctop als Abschnitt existiert bereits" +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +" --no-headers Knoten-Unterteiler und »Knoten:« Kopfzeilen\n" +" unterdrücken und ohne --output nach der\n" +" Standards-Ausgabe schreiben\n" +" --no-ifhtml @ifhtml- und @html-Text nicht bearbeiten\n" +" --no-ifinfo @ifinfo-Text nicht bearbeiten\n" +" --no-iftex @iftex- und @tex-Text nicht bearbeiten\n" +" --no-split Aufteilen langer Info-Dateien oder das Erzeugen\n" +" einer HTML-Datei je Knoten unterdrücken\n" +" --no-validate Überprüfen der Knoten-Querverweise unterdrücken\n" +" --no-warn Warnungen (aber keine Fehler) unterdrücken\n" +" --number-sections Kapitel-, Abschnitt- und Anhangzählungen ausgeben\n" +" -o, --output=DATEI Ausgabe nach DATEI und @setfilename ignorieren\n" +" -P VERZ VERZ dem Suchpfad für @include voranstellen\n" +" --paragraph-indent=WERT\n" +" Info-Absätze mit WERT Leerräumen einziehen\n" +" (Standard %d);\n" +" bei WERT gleich »none«: keine Leerräume;\n" +" bei WERT gleich »asis«: existierende Einzüge\n" +" beibehalten\n" +" --reference-limit=ZAHL bei wenigstens ZAHL Verweise melden (Standard %d)\n" +" -U VAR eine Variable aufheben, wie mit @clear\n" +" -v, --verbose ausführlich die Bearbeitungschritte anzeigen\n" +" --version Programmversion anzeigen\n" -#: makeinfo/makeinfo.c:4337 +# Die "." am Zeilenende habe ich entfernt. -ke- +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" +"\n" +"Die Voreinstellungen für die @if...-Bedingungen hängen vom Ausgabeformat " +"ab:\n" +" wenn HTML erzeugt wird, ist --ifhtml aktiviert und die anderen sind\n" +" de-aktiviert;\n" +" wenn Info oder reiner Text erzeugt wird, ist --ifinfo aktiviert\n" +" und die anderen sind de-aktiviert.\n" +"\n" +"Beispiele:\n" +" makeinfo foo.texi Info gemäß @setfilename von foo\n" +" schreiben\n" +" makeinfo --html foo.texi HTML gemäß @setfilename von foo\n" +" schreiben\n" +" makeinfo --no-headers -o - foo.texi reinen Text nach der Standard-\n" +" Ausgabe schreiben\n" +" makeinfo --number-sections foo.texi Info mit nummerierten Abschnitten\n" +" makeinfo --no-split foo.texi eine Info-Datei, sehr voluminös\n" +"\n" +"Fehlerberichte bitte an <bug-texinfo@gnu.org> schicken,\n" +"allgemeine Fragen und Gedankenaustausch an <help-texinfo@gnu.org>.\n" +"\n" +"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig." + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 #, c-format -msgid "Here is the %ctop node" -msgstr "Hier ist der Knoten %ctop" +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: %s Argument muss numerisch sein, nicht »%s«.\n" -#: makeinfo/makeinfo.c:4356 +# checkit +#: makeinfo/makeinfo.c:521 #, c-format -msgid "%ctop used before %cnode, defaulting to %s" -msgstr "%ctop vor %cnode gebraucht, als Standard %s genommen" +msgid "Couldn't open macro expansion output `%s'" +msgstr "Die Macro-Auflösung für »%s« kann nicht geöffnet werden" -#: makeinfo/makeinfo.c:4431 +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "Mehr als eine Ausgabedatei darf nicht angegeben werden" + +#: makeinfo/makeinfo.c:561 #, c-format -msgid "%c%s is obsolete; use %c%s instead" -msgstr "%c%s ist obsolet; stattdessen %c%s benutzen" +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: Arg für --paragraph-indent muss numerisch/»none«/»asis« sein, nicht " +"»%s«.\n" -#: makeinfo/makeinfo.c:4680 +#: makeinfo/makeinfo.c:602 #, c-format -msgid "Node `%s' multiply defined (line %d is first definition at)" -msgstr "Knoten »%s« mehrfach definiert (in Zeile %d ist erste Definition)" +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" +"%s: Argument für --footnote-style muss »separate« oder »end« sein, nicht " +"»%s«.\n" -#: makeinfo/makeinfo.c:4753 +#: makeinfo/makeinfo.c:647 #, c-format -msgid "Formatting node %s...\n" -msgstr "Formatiere Knoten %s...\n" +msgid "%s: missing file argument.\n" +msgstr "%s: Datei-Angabe fehlt.\n" -#: makeinfo/makeinfo.c:4802 +#: makeinfo/makeinfo.c:810 #, c-format -msgid "Node `%s' requires a sectioning command (e.g. %c%s)" -msgstr "Knoten »%s« erfordert eine Abschnitt-Angabe (z.B. %c%s)" +msgid "Expected `%s'" +msgstr "Erwartet »%s«" -#: makeinfo/makeinfo.c:5085 +#: makeinfo/makeinfo.c:1229 #, c-format -msgid "Node `%s''s Next field not pointed back to" -msgstr "\"Next field\" des Knotens »%s« verweist nicht zurück nach" +msgid "No `%s' found in `%s'" +msgstr "Kein »%s« in »%s« gefunden" -# checkit -#: makeinfo/makeinfo.c:5090 +#: makeinfo/makeinfo.c:1306 #, c-format -msgid "This node (`%s') is the one with the bad `Prev'" -msgstr "Dieser Knoten (»%s«) hat schlechten(?) \"Prev\"-Eintrag" +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" +"%s: Macro-Auflösung nach der Standard-Ausgabe, da auch die Info-Ausgabe nach " +"dort geht.\n" -#: makeinfo/makeinfo.c:5130 +#: makeinfo/makeinfo.c:1327 #, c-format -msgid "Node `%s's Prev field not pointed back to" -msgstr "Das \"Prev field\" des Knotens »%s« verweist nicht zurück nach" +msgid "Making %s file `%s' from `%s'.\n" +msgstr "Erzeuge %s Datei »%s« von »%s«.\n" -# checkit -#: makeinfo/makeinfo.c:5134 +#: makeinfo/makeinfo.c:1358 #, c-format -msgid "This node (`%s') has the bad Next" -msgstr "Dieser Knoten (»%s«) hat schlechten(?) \"Next\"-Eintrag" +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "Dies ist %s, hergestellt von Makeinfo Version %s aus %s.\n" -#: makeinfo/makeinfo.c:5146 +#: makeinfo/makeinfo.c:1377 #, c-format -msgid "Node `%s' missing Up field" -msgstr "Dem Knoten »%s« fehlt ein \"Up field\"" +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: Entferne Macro-Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um " +"diese beizubehalten.\n" -#: makeinfo/makeinfo.c:5186 +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 #, c-format -msgid "`%s' has an Up field of `%s', but `%s' has no menu item for `%s'" +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" msgstr "" -"»%s« hat ein \"Up field\" von »%s«, aber »%s« hat keinen Menü-Eintrag für " -"»%s«" +"%s: Entferne Ausgabe-Datei »%s« wegen der Fehler; --force benutzen, um diese " +"beizubehalten.\n" -#: makeinfo/makeinfo.c:5217 +#: makeinfo/makeinfo.c:1635 #, c-format -msgid "node `%s' has been referenced %d times" -msgstr "auf Knoten »%s« wird %d mal verwiesen" +msgid "Unknown command `%s'" +msgstr "Unbekannter Befehl »%s«" -#: makeinfo/makeinfo.c:5229 +#: makeinfo/makeinfo.c:1657 #, c-format -msgid "unreferenced node `%s'" -msgstr "auf Knoten »%s« wird nicht verwiesen" +msgid "Use braces to give a command as an argument to @%s" +msgstr "" +"Geschweifte Klammern verwenden, um einen Befehl als Argument an »@%s« zu " +"geben" -# checkit -#: makeinfo/makeinfo.c:5256 +#: makeinfo/makeinfo.c:1838 #, c-format -msgid "%s reference to nonexistent node `%s'" -msgstr "Verweis %s auf den nicht existierenden Knoten »%s«" +msgid "%c%s expected `{...}'" +msgstr "%c%s erwartete »{...}«" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "Nicht übereinstimmende }" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "Kein_NAME!" -#: makeinfo/makeinfo.c:5668 makeinfo/makeinfo.c:5680 +#: makeinfo/makeinfo.c:1940 #, c-format -msgid "%cmenu seen before first node" -msgstr "%cmenu festgestellt, bevor der erste Knoten definiert wurde" +msgid "%c%s missing close brace" +msgstr "%c%s fehlende schließende Klammer" -#: makeinfo/makeinfo.c:5669 makeinfo/makeinfo.c:5681 -msgid "creating `Top' node" -msgstr "»Top«-Knoten wird angelegt" +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "siehe" + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "Siehe" # checkit -#: makeinfo/makeinfo.c:5794 +#: makeinfo/makeinfo.c:2836 #, c-format msgid "`.' or `,' must follow cross reference, not %c" msgstr "».« or »,« muss einem Querverweis folgen, nicht %c" -#: makeinfo/makeinfo.c:5962 +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "Kein .png oder .jpg für »%s«" + +#: makeinfo/makeinfo.c:3063 #, c-format msgid "@image file `%s' unreadable: %s" msgstr "@image-Datei »%s« nicht lesbar: %s" -#: makeinfo/makeinfo.c:5966 +#: makeinfo/makeinfo.c:3070 msgid "@image missing filename argument" msgstr "@image fehlt als Argument ein Dateiname" -#: makeinfo/makeinfo.c:6067 -#, c-format -msgid "%s requires letter or digit" -msgstr "%s erfordert einen Buchstaben oder eine Zahl" - -#: makeinfo/makeinfo.c:6152 -#, c-format -msgid "Unmatched `%c%s'" -msgstr "Nicht übereinstimmende »%c%s«" - -#: makeinfo/makeinfo.c:6159 -#, c-format -msgid "`%c%s' needs something after it" -msgstr "»%c%s« braucht etwas Nachfolgendes" - # checkit -#: makeinfo/makeinfo.c:6165 +#: makeinfo/makeinfo.c:3259 #, c-format -msgid "Bad argument to `%s', `%s', using `%s'" -msgstr "Falsches Argument für »%s«, »%s«, wenn »%s« benutzt wird" +msgid "{No value for `%s'}" +msgstr "{Kein Wert für »%s«}" -# checkit -#: makeinfo/makeinfo.c:6338 -#, c-format -msgid "{No Value For \"%s\"}" -msgstr "{Kein Wert Für »%s«}" - -#: makeinfo/makeinfo.c:6388 +#: makeinfo/makeinfo.c:3313 #, c-format msgid "%c%s requires a name" msgstr "%c%s erfordert einen Namen" -#: makeinfo/makeinfo.c:6496 +#: makeinfo/makeinfo.c:3421 #, c-format msgid "Reached eof before matching @end %s" msgstr "Das Ende der Datei vor dem erforderlichen @end %s erreicht" -#: makeinfo/makeinfo.c:6722 -#, c-format -msgid "The `%c%s' command is meaningless within a `@%s' block" -msgstr "Der »%c%s«-Befehl ist sinnlos innerhalb eines »@%s«-Blocks" +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "Fehlende »}« beim @multitable-Template" -#: makeinfo/makeinfo.c:6731 +#: makeinfo/multi.c:284 #, c-format -msgid "%citemx is not meaningful inside of a `%s' block" -msgstr "%citemx ist nicht sinnvoll innerhalb eines »@%s«-Blocks" +msgid "ignoring stray text `%s' after @multitable" +msgstr "irriger Text »%s« nach @multitable wird ignoriert" -# checkit -#: makeinfo/makeinfo.c:6844 +#: makeinfo/multi.c:357 #, c-format -msgid "%c%s found outside of an insertion block" -msgstr "%c%s außerhalb eines Einfügungsblocks gefunden" +msgid "Too many columns in multitable item (max %d)" +msgstr "zu viele Spalten im \"multitable\"-Eintrag (maximal %d)" -# checkit -#: makeinfo/makeinfo.c:6935 +#: makeinfo/multi.c:401 #, c-format -msgid "Missing `}' in %cdef arg" -msgstr "Fehlende »}« in »%cdef«-Argument" - -#: makeinfo/makeinfo.c:7144 makeinfo/makeinfo.c:7164 -msgid "Function" -msgstr "" - -#: makeinfo/makeinfo.c:7148 -msgid "Macro" -msgstr "" +msgid "Cannot select column #%d in multitable" +msgstr "Spalte #%d kann in der \"multitable\" nicht ausgewählt werden" -#: makeinfo/makeinfo.c:7152 -msgid "Special Form" -msgstr "" +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "@tab außerhalb der \"multitable\" wird übergangen" -#: makeinfo/makeinfo.c:7156 makeinfo/makeinfo.c:7168 -msgid "Variable" -msgstr "" +# checkit +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "** Mehrspalten-Ausgabe von der letzten Zeile:\n" -#: makeinfo/makeinfo.c:7160 -msgid "User Option" -msgstr "Benutzer-Option" +# checkit +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* Spalte #%d: Ausgabe = %s\n" -#: makeinfo/makeinfo.c:7172 -msgid "Instance Variable" -msgstr "" +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "Knoten »%s« bereits zuvor in Zeile %d definiert" -#: makeinfo/makeinfo.c:7176 makeinfo/makeinfo.c:7180 -msgid "Method" -msgstr "" +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "Formatiere Knoten »%s«...\n" -# checkit -#: makeinfo/makeinfo.c:7335 +#: makeinfo/node.c:559 #, c-format -msgid "Must be in a `%s' insertion in order to use `%s'x" -msgstr "Muss in einer »%s«-Einfügung sein, wenn »%s«x benutzt werden soll" +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "Knoten »%s« benötigt einen Abschnittsbefehl (z.B. %c%s)" -# checkit -#: makeinfo/makeinfo.c:7407 +#: makeinfo/node.c:719 #, c-format -msgid "%csp requires a positive numeric argument" -msgstr "»%csp« erfordert ein positives numerisches Argument" +msgid "No node name specified for `%c%s' command" +msgstr "Kein Knotenname für den Befehl »%c%s« angegeben" -#: makeinfo/makeinfo.c:7650 -msgid "asis" -msgstr "genau" +#: makeinfo/node.c:774 +msgid "Node:" +msgstr "Knoten:" -#: makeinfo/makeinfo.c:7652 -msgid "none" -msgstr "kein" +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" +msgstr "Nächster:" -#: makeinfo/makeinfo.c:7674 -#, c-format -msgid "Bad argument to %c%s" -msgstr "Falsches Argument für »%c%s«" +#: makeinfo/node.c:793 +msgid "Previous:" +msgstr "Vorheriger:" -#: makeinfo/makeinfo.c:7966 -#, c-format -msgid "Unknown index `%s'" -msgstr "Unbekannter Index »%s«" +#: makeinfo/node.c:803 +msgid "Up:" +msgstr "Aufwärts:" -#: makeinfo/makeinfo.c:8031 +#: makeinfo/node.c:1012 #, c-format -msgid "Index `%s' already exists" -msgstr "Index »%s« ist schon vorhanden" +msgid "%s reference to nonexistent node `%s'" +msgstr "%s Verweis auf den nicht existierenden Knoten »%s«" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "" -#: makeinfo/makeinfo.c:8062 +#: makeinfo/node.c:1115 #, c-format -msgid "Unknown index `%s' and/or `%s' in @synindex" -msgstr "Unbekannter Index »%s« und /oder unbekannter »%s« in @synindex" +msgid "Next field of node `%s' not pointed to" +msgstr "Das Feld »nächstes« (Next) des Knotens »%s« verweist nicht auf" -#: makeinfo/makeinfo.c:8251 +#: makeinfo/node.c:1119 #, c-format -msgid "Unknown index `%s' in @printindex" -msgstr "Unbekannter Index »%s« in @printindex" +msgid "This node (%s) has the bad Prev" +msgstr "" +"Dieser Knoten (%s) hat einen fehlerhaften Eintrag im Feld »voriges« (Prev)" -# übersetzen? -ke- -#: makeinfo/makeinfo.c:8266 -msgid "" -"* Menu:\n" -"\n" +#: makeinfo/node.c:1133 +msgid "Prev" msgstr "" -"* Menü:\n" -"\n" -#: makeinfo/makeinfo.c:8453 +#: makeinfo/node.c:1176 #, c-format -msgid "`%c%s' needs an argument `{...}', not just `%s'" -msgstr "»%c%s« braucht das Argument in der Form »{...}«, nicht nur »%s«" +msgid "Prev field of node `%s' not pointed to" +msgstr "Das Feld »voriges« (Prev) des Knotens »%s« verweist nicht auf" -#: makeinfo/makeinfo.c:8468 +#: makeinfo/node.c:1180 #, c-format -msgid "No closing brace for footnote `%s'" -msgstr "Keine schließende Klammer für Fußnote »%s«" - -# checkit -#: makeinfo/makeinfo.c:8507 -msgid "Footnote defined without parent node" -msgstr "Fußnote definiert ohne einen Eltern-\"node\"" +msgid "This node (%s) has the bad Next" +msgstr "" +"Dieser Knoten (%s) hat einen fehlerhaften Eintrag im Feld »nächstes« (Next)" -#: makeinfo/makeinfo.c:8539 -msgid "-Footnotes" -msgstr "-Fußnoten" +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "»%s« hat kein »Up«-Feld" -#: makeinfo/makeinfo.c:8594 -msgid "" -"---------- Footnotes ----------\n" -"\n" +#: makeinfo/node.c:1197 +msgid "Up" msgstr "" -"----------- Fußnoten -----------\n" -"\n" -#: makeinfo/makeinfo.c:8690 +#: makeinfo/node.c:1265 #, c-format -msgid "macro `%s' previously defined" -msgstr "Macro »%s« ist bereits definiert" +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "" +"Dem Knoten »%s« fehlt ein Menüeintrag für »%s« obwohl er dessen " +"übergeordnetes Ziel ist" -#: makeinfo/makeinfo.c:8694 +#: makeinfo/node.c:1296 #, c-format -msgid "here is the previous definition of `%s'" -msgstr "Hier ist die vorangehende Definition von »%s«" +msgid "node `%s' has been referenced %d times" +msgstr "Knoten »%s« wurde %d mal referenziert" -#: makeinfo/makeinfo.c:8908 +#: makeinfo/node.c:1310 #, c-format -msgid "Macro `%s' called with too many args" -msgstr "Macro »%s« mit zu vielen Argumenten aufgerufen" +msgid "unreferenced node `%s'" +msgstr "Nicht referenzierter Knoter »%s«" -#: makeinfo/makeinfo.c:9060 +#: makeinfo/sectioning.c:116 #, c-format -msgid "%cend macro not found" -msgstr "»%cend«-Macro nicht gefunden" +msgid "Appendix %c " +msgstr "Anhang %c " -# checkit -#: makeinfo/makeinfo.c:9100 +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 #, c-format -msgid "%cquote-arg only useful when the macro takes a single argument" -msgstr "" -"»%cquote«-Argument ist nur sinnvoll, wenn das Macro ein einziges Argument hat" +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "Interner Fehler (search_sectioning) »%s«!" -#: makeinfo/multi.c:206 +#: makeinfo/sectioning.c:468 #, c-format -msgid "ignoring stray text `%s' after @multitable" -msgstr "irriger Text »%s« nach @multitable wird ignoriert" +msgid "%c%s is obsolete; use %c%s instead" +msgstr "%c%s ist obsolet; %c%s stattdessen benutzen" -#: makeinfo/multi.c:277 +#: makeinfo/sectioning.c:484 #, c-format -msgid "Too many columns in multitable item (max %d)" -msgstr "zu viele Spalten im \"multitable\"-Eintrag (maximal %d)" +msgid "Node with %ctop as a section already exists" +msgstr "Knoten mit %ctop als ein Abschnitt exisiert bereits" -# checkit -#. impossible, I think. -#: makeinfo/multi.c:304 -msgid "multitable item not in active multitable" -msgstr "\"multitable\"-Eintrag nicht in der aktiven \"multitable\"" +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "Hier ist der %ctop-Knoten" -#: makeinfo/multi.c:313 +#: makeinfo/sectioning.c:515 #, c-format -msgid "Cannot select column #%d in multitable" -msgstr "Spalte #%d kann in der \"multitable\" nicht ausgewählt werden" +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "%ctop vor %cnode benutzt, Voreinstellung %s wird genommen" -#: makeinfo/multi.c:404 -msgid "ignoring @tab outside of multitable" -msgstr "@tab außerhalb der \"multitable\" wird übergangen" +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "Inhaltsverzeichnis" -# checkit -#: makeinfo/multi.c:428 -msgid "** Multicolumn output from last row:\n" -msgstr "** Mehrspalten-Ausgabe von der letzten Zeile:\n" +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "Inhalt in Kurzform" -# checkit -#: makeinfo/multi.c:431 +#: makeinfo/toc.c:354 #, c-format -msgid "* column #%d: output = %s\n" -msgstr "* Spalte #%d: Ausgabe = %s\n" +msgid "%s: TOC should be here, but it was not found" +msgstr "%s: Inhaltsverzeichnis sollte hier sein, jedoch nicht gefunden" -# checkit -#: util/install-info.c:123 util/install-info.c:136 -msgid "virtual memory exhausted" -msgstr "virtual memory exhausted" - -#: util/install-info.c:192 +#: util/install-info.c:151 #, c-format msgid "%s: warning: " msgstr "%s: Warnung: " -#: util/install-info.c:213 +# checkit +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "kein Speicher mehr" + +#: util/install-info.c:232 #, c-format msgid " for %s" msgstr " für %s" -#: util/install-info.c:282 +#: util/install-info.c:381 #, c-format msgid "\tTry `%s --help' for a complete list of options.\n" msgstr "»%s --help« gibt weitere Informationen.\n" -#: util/install-info.c:290 +# Die "." am Zeilenende habe ich entfernt. -ke- +#: util/install-info.c:389 #, c-format msgid "" "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" "\n" -"Install INFO-FILE in the Info directory file DIR-FILE.\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" "\n" "Options:\n" -"--delete Delete existing entries in INFO-FILE;\n" -" don't insert any new entries.\n" -"--dir-file=NAME Specify file name of Info directory file.\n" -" This is equivalent to using the DIR-FILE argument.\n" -"--entry=TEXT Insert TEXT as an Info directory entry.\n" -" TEXT should have the form of an Info menu item line\n" -" plus zero or more extra lines starting with whitespace.\n" -" If you specify more than one entry, they are all added.\n" -" If you don't specify any entries, they are determined\n" -" from information in the Info file itself.\n" -"--help Display this help and exit.\n" -"--info-file=FILE Specify Info file to install in the directory.\n" -" This is equivalent to using the INFO-FILE argument.\n" -"--info-dir=DIR Same as --dir-file=DIR/dir.\n" -"--item=TEXT Same as --entry TEXT.\n" -" An Info directory entry is actually a menu item.\n" -"--quiet Suppress warnings.\n" -"--remove Same as --delete.\n" -"--section=SEC Put this file's entries in section SEC of the directory.\n" -" If you specify more than one section, all the entries\n" -" are added in each of the sections.\n" -" If you don't specify any sections, they are determined\n" -" from information in the Info file itself.\n" -"--version Display version information and exit.\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" "\n" -"Email bug reports to bug-texinfo@gnu.org.\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" msgstr "" "Syntax: %s [OPTION]... [INFO-DATEI [VERZ-DATEI]]\n" "\n" -"Installiere die INFO-DATEI in dem Info-Verzeichnis VERZ-DATEI.\n" +"»dir«-Einträge von der INFO-DATEI in der Info-Verzeichnis-Datei VERZ-DATEI\n" +"installieren oder löschen.\n" "\n" "Optionen:\n" -"--delete entferne vorhandene Einträge aus INFO-DATEI; keine neuen\n" -" Einträge einfügen\n" -"--dir-file=NAME Namen der Info-Verzeichnis-Datei angeben. " +" --delete vorhandene Einträge für INFO-DATEI aus VERZ-DATEI " +"löschen;\n" +" keine neuen Einträge einfügen\n" +" --dir-file=NAME Name der Info-Verzeichnis-Datei angeben. " "Gleichbedeutend\n" -" mit dem VERZ-DATEI-Argument\n" -"--entry=TEXT TEXT als einen Info-Verzeichnis-Eintrag einfügen. TEXT " +" mit dem VERZ-DATEI-Argument\n" +" --entry=TEXT TEXT als einen Info-Verzeichnis-Eintrag einfügen. TEXT " "soll\n" -" die Form einer Zeile eines Info-Menüpunkts haben,\n" -" zuzüglich Null oder mehrerer Extra-Zeilen, die mit " -"Leerraum\n" -" (\"whitespace\") beginnen. Wenn mehr als ein Eintrag " -"angegeben\n" -" wird, werden alle hinzugefügt. Wenn gar kein Eintrag\n" -" angegeben wird, wird der Eintragstext der Info-Datei " -"selbst\n" -" entnommen.\n" -"--help diese Hilfe zeigen\n" -"--info-file=DATEI Info-Datei angeben, die im Verzeichnis zu installieren " +" die Form einer Zeile eines Info-Menüpunkts haben,\n" +" zuzüglich Null oder mehrerer Extra-Zeilen, die mit\n" +" Leerraum (\"whitespace\") beginnen. Wenn mehr als ein\n" +" Eintrag angegeben wird, werden alle hinzugefügt. Wenn " +"gar\n" +" kein Eintrag angegeben wird, wird der Eintragstext der\n" +" Info-Datei selbst entnommen.\n" +" --help diese Hilfe zeigen\n" +" --info-file=DATEI Info-Datei angeben, die im Verzeichnis zu installieren " "ist.\n" -" Gleichbedeutend mit dem INFO-DATEI-Argument\n" -"--info-dir=VERZ wie --dir-file=VERZ/dir.\n" -"--item=TEXT wie --entry TEXT. Ein Info-Verzeichnis-Eintrag ist " -"nämlich\n" -" ein Menüpunkt\n" -"--quiet Warnungen unterdrücken\n" -"--remove wie --delete\n" -"--section=ABSCHN stelle die Einträge dieser Datei in den Abschnitt ABSCHN\n" -" des Verzeichnisses. Wenn mehr als ein --section " +" Gleichbedeutend mit dem INFO-DATEI-Argument\n" +" --info-dir=VERZ wie --dir-file=VERZ/dir.\n" +" --item=TEXT wie --entry TEXT.\n" +" Ein Info-Verzeichnis-Eintrag ist nämlich ein Menüpunkt\n" +" --quiet Warnungen unterdrücken\n" +" --remove wie --delete\n" +" --section=ABSCHN die Einträge dieser Datei in den Abschnitt ABSCHN des\n" +" Verzeichnisses stellen. Wenn mehr als ein Abschnitt\n" +" angegeben wird, werden alle Einträge in jedem der\n" +" Abschnitte hinzugefügt. Wenn gar kein Abschnitt " "angegeben\n" -" wird, werden alle Einträge in jedem der Abschnitte\n" -" hinzugefügt. Wenn gar kein --section angegeben wird, " -"wird\n" -" der Eintragstext der Info-Datei selbst entnommen.\n" -"--version Programmversion anzeigen\n" +" wird, wird der Eintragstext der Info-Datei selbst\n" +" entnommen.\n" +" --version Programmversion anzeigen\n" "\n" -"Fehlerberichte (\"bugs\") bitte an <bug-texinfo@gnu.org> schicken.\n" +"Fehlerberichte bitte an <bug-texinfo@gnu.org> schicken,\n" +"allgemeine Fragen und Gedankenaustausch an <help-texinfo@gnu.org>.\n" "\n" "Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig.\n" -#: util/install-info.c:341 +#: util/install-info.c:442 +#, c-format msgid "" "This is the file .../info/dir, which contains the\n" "topmost node of the Info hierarchy, called (dir)Top.\n" "The first time you invoke Info you start off looking at this node.\n" "\n" -"File: dir,\tNode: Top,\tThis is the top of the INFO tree\n" +"%s\tThis is the top of the INFO tree\n" "\n" " This (the Directory node) gives a menu of major topics.\n" " Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" @@ -1938,7 +2495,7 @@ msgstr "" "Info-Hierarchie enthält, genannt (dir)Top.\n" "Beim ersten Aufruf von Info geht es bei diesem Knoten los.\n" "\n" -"Date: dir Knoten: Top Dies ist »top« des INFO-Baums\n" +"%s\tDies ist der Beginn des INFO-Baums\n" "\n" " Dieser Verzeichnis-Knoten zeigt ein Menü aller Hauptpunkte an.\n" " Beenden mit \"q\", \"?\" listet alle Info-Befehle auf, \"d\" kehrt nach " @@ -1951,98 +2508,104 @@ msgstr "" "\n" "* Menü:\n" -#: util/install-info.c:364 +#: util/install-info.c:465 #, c-format msgid "%s: could not read (%s) and could not create (%s)\n" msgstr "%s: kann nicht gelesen (%s) und kann nicht angelegt werden (%s)\n" -#: util/install-info.c:464 util/install-info.c:474 +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "%s: leere Datei" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY ohne END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY ohne START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 #, c-format msgid "%s: Specify the Info directory only once.\n" msgstr "%s: Info-Verzeichnis nur einmal angeben.\n" -#: util/install-info.c:502 +#: util/install-info.c:1192 #, c-format msgid "%s: Specify the Info file only once.\n" msgstr "%s: Info-Datei nur einmal angeben.\n" # checkit -#: util/install-info.c:550 +#: util/install-info.c:1241 #, c-format msgid "excess command line argument `%s'" msgstr "Kommandozeilen-Argument »%s« wird übergangen" -#: util/install-info.c:554 +#: util/install-info.c:1245 msgid "No input file specified; try --help for more information." msgstr "Keine Eingabe-Datei angegeben; »--help« gibt weitere Informationen." -#: util/install-info.c:556 +#: util/install-info.c:1247 msgid "No dir file specified; try --help for more information." msgstr "Keine dir-Datei angegeben; »--help« gibt weitere Informationen." -#: util/install-info.c:608 util/install-info.c:631 -msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" -msgstr "START-INFO-DIR-ENTRY ohne END-INFO-DIR-ENTRY" - -#: util/install-info.c:627 -msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" -msgstr "END-INFO-DIR-ENTRY ohne START-INFO-DIR-ENTRY" - -#. No need to abort here, the original info file may not have -#. the requisite Texinfo commands. This is not something an -#. installer should have to correct (it's a problem for the -#. maintainer), and there's no need to cause subsequent parts of -#. `make install' to fail. -#: util/install-info.c:641 +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 #, c-format msgid "no info dir entry in `%s'" msgstr "Kein Info-Verzeichnis-Eintrag in »%s«" -#: util/install-info.c:852 +#: util/install-info.c:1384 #, c-format msgid "menu item `%s' already exists, for file `%s'" msgstr "Menüpunkt »%s« bereits vorhanden, für Datei »%s«" -#: util/install-info.c:875 +#: util/install-info.c:1407 #, c-format msgid "no entries found for `%s'; nothing deleted" msgstr "keine Einträge für »%s« gefunden; nichts entfernt" -#: util/texindex.c:253 +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "diese Hilfe anzeigen" + +#: util/texindex.c:246 msgid "keep temporary files around after processing" msgstr "temporäre Dateien bis nach der Verarbeitung aufheben" -#: util/texindex.c:255 +#: util/texindex.c:248 msgid "do not keep temporary files around after processing (default)" msgstr "keine temporäre Dateien bis nach der Verarbeitung aufheben (Standard)" -#: util/texindex.c:257 +#: util/texindex.c:250 msgid "send output to FILE" msgstr "Ausgabe nach DATEI schicken" -#: util/texindex.c:259 +#: util/texindex.c:252 msgid "display version information and exit" msgstr "Programmversion anzeigen" -#: util/texindex.c:261 -msgid "display this help and exit" -msgstr "diese Hilfe anzeigen" - -#: util/texindex.c:272 +#: util/texindex.c:263 #, c-format msgid "Usage: %s [OPTION]... FILE...\n" msgstr "Aufruf: %s [OPTION]... DATEI...\n" -#: util/texindex.c:273 +#: util/texindex.c:264 msgid "Generate a sorted index for each TeX output FILE.\n" msgstr "Erzeuge einen sortierten Index für jede TeX-Ausgabedatei.\n" -#. Avoid trigraph nonsense. -#: util/texindex.c:275 -msgid "Usually FILE... is `foo.??' for a document `foo.texi'.\n" -msgstr "DATEI... ist normalerweise »foo.??« für ein Dokument »foo.texi«.\n" +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "DATEI... ist normalerweise »foo.%c%c« für ein Dokument »foo.texi«.\n" -#: util/texindex.c:276 +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 msgid "" "\n" "Options:\n" @@ -2050,40 +2613,46 @@ msgstr "" "\n" "Optionen:\n" -#: util/texindex.c:290 +#: util/texindex.c:285 msgid "" "\n" -"Email bug reports to bug-texinfo@gnu.org." +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" msgstr "" "\n" -"Fehler (\"bugs\") bitte an <bug-texinfo@gnu.org> melden.\n" -"\n" -"Für die deutsche Übersetzung ist die Mailingliste <de@li.org> zuständig." +"Fehlerberichte per E-Mail an bug-texinfo@gnu.org schicken,\n" +"allgemeine Fragen und Gedankenaustausch an help-texinfo@gnu.org.\n" -#: util/texindex.c:917 util/texindex.c:951 util/texindex.c:1027 -#: util/texindex.c:1055 +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 #, c-format msgid "%s: not a texinfo index file" msgstr "%s: keine Texinfo-Indexdatei" -#: util/texindex.c:1012 +#: util/texindex.c:980 #, c-format msgid "failure reopening %s" msgstr "Fehler beim Wiederöffnen von »%s«" +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "Keine Seitenzahl in %s" + # checkit -#: util/texindex.c:1325 +#: util/texindex.c:1293 #, c-format msgid "entry %s follows an entry with a secondary name" msgstr "Eintrag »%s« folgt einem Eintrag mit einem Zweitnamen" -#: util/texindex.c:1663 +#: util/texindex.c:1631 #, c-format msgid "%s; for file `%s'.\n" msgstr "%s; für Datei »%s«.\n" -# checkit -#: util/texindex.c:1724 -#, c-format -msgid "Virtual memory exhausted in %s ()! Needed %d bytes." -msgstr "Virtual memory exhausted in %s ()! Needed %d bytes." +#~ msgid "" +#~ "---------- Footnotes ----------\n" +#~ "\n" +#~ msgstr "" +#~ "---------- Fußnoten -----------\n" +#~ "\n" diff --git a/gnu/usr.bin/texinfo/po/de_AT.gmo b/gnu/usr.bin/texinfo/po/de_AT.gmo Binary files differnew file mode 100644 index 00000000000..4c5d80f445d --- /dev/null +++ b/gnu/usr.bin/texinfo/po/de_AT.gmo diff --git a/gnu/usr.bin/texinfo/po/de_AT.po b/gnu/usr.bin/texinfo/po/de_AT.po new file mode 100644 index 00000000000..9fd3f3d906d --- /dev/null +++ b/gnu/usr.bin/texinfo/po/de_AT.po @@ -0,0 +1,2314 @@ +# German/autrian messages for GNU Texinfo +# Copyright © 1999 Free Software Foundation, Inc. +# Karl Eichwalder <ke@suse.de>, 1999. +# +# 1999-02-16 21:11:38 MET +# Vorgeschlagen von Guido Flohr <gufl0000@stud.uni-sb.de>. +# +msgid "" +msgstr "" +"Project-Id-Version: texinfo 3.12d\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-02-16 21:14+01:00\n" +"Last-Translator: Karl Eichwalder <ke@suse.de>\n" +"Language-Team: German <de@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "" + +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "" + +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "" + +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "" + +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "" + +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "" + +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "" + +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "" + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "" + +#: info/indices.c:212 +msgid "No indices found." +msgstr "" + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "" + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "" + +#: info/indices.c:349 +msgid "No index entries." +msgstr "" + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "" + +#: info/indices.c:383 +msgid "more " +msgstr "" + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "" + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "" + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" + +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "" + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" + +#: info/info.c:461 +#, c-format +msgid "no index entries found for `%s'\n" +msgstr "" + +#: info/info.c:530 +#, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" + +#: info/info.c:604 +#, c-format +msgid "Cannot find node `%s'." +msgstr "" + +#: info/info.c:605 +#, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "" + +#: info/info.c:606 +msgid "Cannot find a window!" +msgstr "" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +msgid "Cannot delete the last window." +msgstr "" + +#: info/info.c:609 +msgid "No menu in this node." +msgstr "" + +#: info/info.c:610 +msgid "No footnotes in this node." +msgstr "" + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "" + +#: info/info.c:612 +#, c-format +msgid "No `%s' pointer for this node." +msgstr "" + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +msgid "You are already at the last page of this node." +msgstr "" + +#: info/info.c:616 +msgid "You are already at the first page of this node." +msgstr "" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr "" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr "" + +#: info/infodoc.c:50 +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr "" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr "" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr "" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr "" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr "" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr "" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr "" + +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "" + +#: info/infodoc.c:63 +#, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr "" + +#: info/infodoc.c:64 +#, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr "" + +#: info/infodoc.c:65 +#, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr "" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr "" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr "" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr "" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr "" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr "" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr "" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr "" + +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr "" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr "" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr "" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr "" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "" + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "" + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "" + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "" + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "" + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "" + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "" + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "" + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "" + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "" + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "" + +#: info/session.c:169 +#, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "" + +#: info/session.c:884 makeinfo/node.c:1092 +msgid "Next" +msgstr "" + +#: info/session.c:887 +msgid "Following Next node..." +msgstr "" + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "" + +#: info/session.c:915 +msgid "Selecting Next node..." +msgstr "" + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "" + +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "" + +#: info/session.c:1033 +msgid "No `Prev' for this node." +msgstr "" + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." +msgstr "" + +#: info/session.c:1050 +msgid "No `Prev' or `Up' for this node within this document." +msgstr "" + +#: info/session.c:1053 +msgid "Moving Up in this window." +msgstr "" + +#: info/session.c:1101 +msgid "Moving to `Prev's last menu item." +msgstr "" + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "" + +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "" + +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "" + +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +msgid "Select the Next node" +msgstr "" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +msgid "Select the Prev node" +msgstr "" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +msgid "Select the Up node" +msgstr "" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "" + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "" + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "" + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "" + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "" + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "" + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "" + +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "" + +#: info/session.c:2382 +#, c-format +msgid "No menu in node `%s'." +msgstr "" + +#: info/session.c:2422 +#, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "" + +#: info/session.c:2452 +#, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "" + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "" + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "" + +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "" + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "" + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "" + +#: info/session.c:2988 +#, c-format +msgid "Cannot find `%s'." +msgstr "" + +#: info/session.c:3033 info/session.c:3154 +#, c-format +msgid "Could not create output file `%s'." +msgstr "" + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "" + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, c-format +msgid "Writing node %s..." +msgstr "" + +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "" + +#: info/session.c:3216 +#, c-format +msgid "Cannot open pipe to `%s'." +msgstr "" + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, c-format +msgid "Printing node %s..." +msgstr "" + +#: info/session.c:3464 +#, c-format +msgid "Searching subfile %s ..." +msgstr "" + +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" +msgstr "" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "" + +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "" + +#: info/session.c:3573 +#, c-format +msgid "%s%sfor string [%s]: " +msgstr "" + +#: info/session.c:3574 +msgid "Search backward" +msgstr "" + +#: info/session.c:3574 +msgid "Search" +msgstr "" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr "" + +#: info/session.c:3575 +msgid " " +msgstr "" + +#: info/session.c:3615 +msgid "Search failed." +msgstr "" + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "" + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "" + +#: info/session.c:3763 +msgid "I-search: " +msgstr "" + +#: info/session.c:3788 +msgid "Failing " +msgstr "" + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "" + +#: info/session.c:4292 +msgid "Quit" +msgstr "" + +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" +msgstr "" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "" + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "" + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "" + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "" + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "" + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "" + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "" + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr "" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "" + +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "Jänner" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "" + +#: makeinfo/cmds.c:754 +#, c-format +msgid "%c%s is obsolete" +msgstr "" + +#: makeinfo/cmds.c:814 +#, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" +msgstr "" + +#: makeinfo/defun.c:656 +#, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "" + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "" + +#: makeinfo/index.c:212 +#, c-format +msgid "Unknown index `%s'" +msgstr "" + +#: makeinfo/index.c:382 +#, c-format +msgid "Index `%s' already exists" +msgstr "" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "" + +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "" + +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "" + +#: makeinfo/insertion.c:623 +#, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "" + +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "" + +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" +msgstr "" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "" + +#: makeinfo/insertion.c:1175 +#, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "" + +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "" + +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "" + +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "" + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +#: makeinfo/makeinfo.c:391 +#, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "" + +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "" + +#: makeinfo/makeinfo.c:1358 +#, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:1657 +#, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "" + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "" + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "" + +#: makeinfo/makeinfo.c:3259 +#, c-format +msgid "{No value for `%s'}" +msgstr "" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "" + +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "" + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "" + +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "" + +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "" + +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "" + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "" + +#: makeinfo/node.c:774 +msgid "Node:" +msgstr "" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" +msgstr "" + +#: makeinfo/node.c:793 +msgid "Previous:" +msgstr "" + +#: makeinfo/node.c:803 +msgid "Up:" +msgstr "" + +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "" + +#: makeinfo/node.c:1115 +#, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "" + +#: makeinfo/node.c:1119 +#, c-format +msgid "This node (%s) has the bad Prev" +msgstr "" + +#: makeinfo/node.c:1133 +msgid "Prev" +msgstr "" + +#: makeinfo/node.c:1176 +#, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "" + +#: makeinfo/node.c:1180 +#, c-format +msgid "This node (%s) has the bad Next" +msgstr "" + +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "" + +#: makeinfo/node.c:1197 +msgid "Up" +msgstr "" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "" + +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "" + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "" + +#: makeinfo/sectioning.c:468 +#, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "" + +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "" + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr "" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "" + +#: util/install-info.c:389 +#, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" + +#: util/install-info.c:442 +#, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "" + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "" + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "" + +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "" + +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "" diff --git a/gnu/usr.bin/texinfo/po/eo.gmo b/gnu/usr.bin/texinfo/po/eo.gmo Binary files differnew file mode 100644 index 00000000000..f3ab27d4318 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/eo.gmo diff --git a/gnu/usr.bin/texinfo/po/eo.po b/gnu/usr.bin/texinfo/po/eo.po new file mode 100644 index 00000000000..ec180d459f2 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/eo.po @@ -0,0 +1,2552 @@ +# Esperanto translations for GNU Texinfo-3.12. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Sergio Pokrovskij <pok@iis.nsk.su>, 1999 +# +msgid "" +msgstr "" +"Project-Id-Version: texinfo 3.12n\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-07-29 19:47+07:00\n" +"Last-Translator: Sergio Pokrovskij <pok@iis.nsk.su>\n" +"Language-Team: Esperanto <eo@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-3\n" +"Content-Transfer-Encoding: 8-bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "Unu signon antaýen" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "Unu signon malantaýen" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "Al la komenco de æi tiu linio" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "Al la fino de æi tiu linio" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "Unu vorton antaýen" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "Unu vorton malantaýen" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "Forigu la signon subkursoran" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "Forigu la signon ¼us antaý la kursoro" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "Rezigno aý eliro" + +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "Akceptu (aý kompletigu) æi tiun linion" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "Enþovu la tujan signon senþanøe" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "Enþovu tiun signon" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "Enþovu TAB-signon" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "Permutu la signojn æe la kursoro" + +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "Engluu la enhavon de la lasta forviþo" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "Viþringo malplenas" + +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "Regluu antaýan forviþa¼on" + +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "Forviþu ekde la kursoro øis la fino de la linio" + +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "Forviþu ekde la kursoro øis la komenco de la linio" + +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "Forviþu la vorton tuj post la kursoro" + +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "Forviþu la vorton ¼us antaý la kursoro" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "Nekompleta" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "Eligu la eblajn kompletigojn" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "Kompletigo malestas" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "Sola kompletigo" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "Unu kompletigo:\n" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "%d kompletigoj:\n" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "Enþovu la kompletigon" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "Kompletigoj estas seræataj ..." + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "Rulumu la fenestron de kompletigoj" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "La piednotoj ne eligeblas" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "Montru la piednotojn el æi tiu nodo en alia fenestro" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "Seræu æenon en la indekso por æi tiu dosiero" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "Estas seræataj indeksaj artikoloj ..." + +#: info/indices.c:212 +msgid "No indices found." +msgstr "Nenia indekso trovita." + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "Indeksa artikolo: " + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" +"Pasu al la sekva indeksa ero kongrua al la lasta komando \"\\[index-search]\"" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "Malestas antaýa æeno por seræo en indekso." + +#: info/indices.c:349 +msgid "No index entries." +msgstr "Neniu indeksa artikolo." + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "En la indekso ne estas %sartikoloj kun \"%s\"." + +#: info/indices.c:383 +msgid "more " +msgstr "pli da " + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "MALEBLAS VIDI ÆI TION" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "Trovita \"%s\" en %s. (\"\\[next-index-match]\" seræos la sekvan.)" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "Seræo en la indeksoj de \"%s\"..." + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" +"Seræu æenon en æiuj konataj indeksoj de la Info-dosiero kaj faru menuon" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "Seræu en indekso informon pri: " + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" +"\n" +"* Menu: Nodoj kies indices entenas \"%s\":\n" + +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "Por ricevi pli da informoj uzu la opcion \"--help\".\n" + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" +"Copyright (c) %s Free Software Foundation, Inc.\n" +"NENIU garantio estas donita. Vi povas pludoni ekzemplerojn de tiu\n" +"programo laý la kondiæoj de la Øenerala Publika GNU-Rajtigilo.\n" +"Pluaj informoj troveblas en la dosiero COPYING.\n" + +#: info/info.c:461 +#, c-format +msgid "no index entries found for `%s'\n" +msgstr "por \"%s\" ne troviøis indeksa artikolo\n" + +#: info/info.c:530 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Sintakso: %s [OPCIO]... [INFO-DOSIERO [MENUERO...]]\n" +"\n" +"Ebligas legi dokumentaron prezentitan en Info.\n" +"\n" +"Opcioj:\n" +" --directory=UJO Aldonu la dosierUJOn al INFOPATH.\n" +" --dribble=DOSIERO Notu la klavofrapojn de la uzanto en DOSIERO.\n" +" --file=DOSIERO Vizitu la Info-DOSIEROn.\n" +" --help Eligu æi tiun helpeton kaj finu.\n" +" --index-search=ÆENO Vizitu nodon referencatan per indeksa artikolo " +"ÆENO.\n" +" --node=NODO Komencu per NODO.\n" +" --output=DOSIERO Eligu la elektitajn nodojn en DOSIEROn.\n" +" --restore=DOSIERO Legu la klavofrapojn el DOSIERO.\n" +" --show-options, --usage Montru la nodon pri komandliniaj opcioj.\n" +" --subnodes Rekursie eligu la menuerojn.\n" +"%s --vi-keys usu vi-eskan kaj less-eskan klavararanøon\n" +" --version Eligu la version de la programo kaj finu.\n" +"\n" +"La unua neopcia argumento, se donita, estas la nomo de vizitenda\n" +"Info-dosiero, seræota en æiuj \"dir\"-dosieroj troveblaj per INFOPATH.\n" +"Se øi mankas, Info kunfandas æiujn \"dir\"-dosierojn kaj eligas la " +"rezulton.\n" +"La ceteraj argumentoj estas la nomoj de menueroj de la unue vizitenda\n" +"nodo.\n" +"\n" +"Ekzemploj:\n" +" info eligu la menuon de la kataloga nodo\n" +" info emacs komencu per la nodo \"emacs\" el la kataloga " +"nodo\n" +" info emacs buffers komencu per la nodo \"buffers\" el Emaksa " +"manlibro\n" +" info --show-options emacs komencu per la Emaksaj komandliniaj opcioj\n" +" info -f ./um.info eligu la dosieron ./um.info sen atenti \"dir\"\n" +"\n" +"Erarraportojn sendu al <bug-texinfo@gnu.org>; øeneralajn demandojn kaj\n" +"opiniojn al <help-texinfo@gnu.org>. Por la diskutoj pri esperantigo\n" +"uzu la dissendoliston <eo@li.org>.\n" + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "Maleblas forigi la nodon \"%s\"" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "Maleblas forigi la nodon \"%s\"" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "Maleblas forigi fenestron permanentan" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "Maleblas forigi fenestron permanentan" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "En la nodo \"%s\" malestas menuo." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "Neniu referenco en æi tiu nodo." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "Neniu referenco en æi tiu nodo." + +#: info/info.c:612 +#, fuzzy, c-format +msgid "No `%s' pointer for this node." +msgstr "Mankas ligilo \"Next\" por æi tiu nodo." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "Iru al la komenco de æi tiu nodo" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "Iru al la komenco de æi tiu nodo" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "Æefaj komandoj en la Info-fenestroj\n" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "******************************\n" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr " %-10s Forlasu æi tiun helpon.\n" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr " %-10s Forlasu la tutan Info.\n" + +#: info/infodoc.c:50 +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr " %-10s Voku la lernilon pri Info.\n" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "Por movi ene de nodo:\n" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "---------------------\n" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr " %-10s Unu paøon antaýen.\n" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr " %-10s Unu paøon malantaýen.\n" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr " %-10s Iru al la komenco de æi tiu nodo.\n" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr " %-10s Iru al la fino de æi tiu nodo.\n" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr " %-10s Unu paøon antaýen.\n" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr " %-10s Unu paøon malantaýen.\n" + +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "Por elekti aliajn nodojn:\n" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "----------------------\n" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr " %-10s Iru al la tujsekva (\"Next\") nodo de æi tiu nodo.\n" + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr " %-10s Iru al la ¼usantaýa (\"Previous\") nodo de æi tiu nodo.\n" + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr " %-10s Iru al la tujsupra (\"Up\") nodo de æi tiu nodo.\n" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr " %-10s Iru al la tajpota menuero.\n" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr " Elekto de menuero kaýzas transiron en alian nodon.\n" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr " %-10s Sekvu reFerencon (legante la nomon de la referenco).\n" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr " %-10s Revenu al la Lasta nodo vizitita en æi tiu fenestro.\n" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr " %-10s Saltu sur la sekvan hipertekstan ligilon en æi tiu nodo.\n" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr " %-10s Iru laý la subkursora hiperteksta ligo.\n" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr " %-10s Iru al la æefkataloga nodo. Ekvivalentas al \"g (DIR)\".\n" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr " %-10s Iru al la radika nodo. Ekvivalentas al \"g Top\".\n" + +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "Aliaj komandoj:\n" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "---------------\n" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr " %-10s Elektu resp. la unuan ... la naýan eron de æi-noda menuo.\n" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr " %-10s Elektu la lastan eron de æi-noda menuo.\n" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" +" %-10s Seræu indikotan signoæenon en la indeksaj artikoloj de æi tiu " +"Info-\n" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" +" dosiero kaj elektu la nodon referencatan de la unua trovita artikolo.\n" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr " %-10s Vizitu nodon indikotan per la nomo.\n" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr " Ankaý la dosiernomon vi povas inkludi, kiel en (DOSIERO)NODO.\n" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr " %-10s Seræu indikotan signoæenon tra æi tiu Info-dosiero, kaj\n" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr " vizitu la nodon en kiu troviøos la sekva apero.\n" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr " %-10s Seræu indikotan signoæenon tra æi tiu Info-dosiero, kaj\n" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "La kuranta serævojo estas:\n" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" +"Komandoj disponeblaj en Info-fenestroj:\n" +"\n" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" +"Komandoj disponeblaj en la e¶ozono:\n" +"\n" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" +"La sekvaj komandoj vokeblas nur per M-x:\n" +"\n" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "--- Uzu \"\\[history-node]\" aý \"\\[kill-node]\" por eliri ---\n" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "Eligu helpomesaøon" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "Vizitu la Info-nodon \"(info)Help\"" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "Eligu la informon pri KLAVO" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "Priskribu klavon: %s" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "ESC %s estas nedifinita." + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "%s estas nedifinita." + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "%s estas ligita al %s." + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "Montru, kion tajpi por plenumi koncernan komandon" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "Kie estas la komando: " + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "neniu klavo trovita por la komando \"%s\"" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "%s vokeblas nur per %s." + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "%s vokeblas per %s." + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "Malestas funkcio nomata \"%s\"" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "Legu la nomon de Info-komando kaj priskribu øin" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "Priskribu komandon: " + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "Legu en la e¶ozono nomon de komando kaj øin plenumu" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "Maleblas plenumi e¶ozonan (\"echo-area-\") komandon æi tie." + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "Fiksu la alton de la prezentata fenestro" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "Alto de la ekrano estu (%d): " + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" +" La fontodosieroj tralaboritaj por fari æi tiun dosieron:\n" +"\n" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "Maleblas prilabori la dosieron %s.\n" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" +"\n" +"* Menu:\n" +" (Dosiero)Nodo Linioj Longo Entenanta Dosiero\n" +" -------------- ------ ----- -----------------" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" +"Jen la menuo de nodoj kiujn vi lastatempe vizitis.\n" +"Elektu iun el la menuo, aý uzu \"\\[history-node]\" en alia fenestro.\n" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "Faru fenestron entenantan menuon de æiuj nune vizititaj nodoj" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "Elektu nodon jam vizititan en videbla fenestro" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "Elektu vizititan nodon: " + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "La referenco malaperis! (%s)." + +#: info/session.c:169 +#, fuzzy, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" +"Bonvenon al Info, versio %s. \"\\[get-help-window]\" por helpo, " +"\"\\[menu-item]\" por menuero." + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "Malleviøu al la sekva linio" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "Leviøu al la antaýa linio" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "Iru al la fino de la linio" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "Iru al la komenco de la linio" + +#: info/session.c:884 makeinfo/node.c:1092 +msgid "Next" +msgstr "Sekva" + +#: info/session.c:887 +msgid "Following Next node..." +msgstr "Estas legata la nodo \"Next\" ..." + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "La unua menuero estas elektata ..." + +#: info/session.c:915 +msgid "Selecting Next node..." +msgstr "La nodo \"Next\" estas elektata ..." + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "%d-foje supren, poste al la sekva (\"Next\")." + +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "Malestas pluaj referencoj en la dokumento." + +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." +msgstr "Mankas ligilo \"Prev\" por tiu nodo." + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." +msgstr "Iro al la antaýa nodo \"Prev\" en æi tiu fenestro." + +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "En la dokumento mankas ligilo(j) \"Prev\" aý \"Up\" por tiu nodo." + +#: info/session.c:1053 +msgid "Moving Up in this window." +msgstr "Leviøo al la nodo \"Up\" en æi tiu fenestro." + +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." +msgstr "Iro al la lasta menuero de la nodo \"Prev\"." + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "Movu antaýen aý malsupren en la strukturo de nodoj" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "Movu malantaýen aý supren en la strukturo de nodoj" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "Rulumu antaýen en æi tiu fenestro" + +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "Rulumu antaýen en æi tiu fenestro kaj fiksu defaýltan fenestrograndon" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "Rulumu malantaýen en æi tiu fenestro" + +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "" +"Rulumu malantaýen en æi tiu fenestro kaj fiksu defaýltan fenestrograndon" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "Iru al la komenco de æi tiu nodo" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "Iru al la fino de æi tiu nodo" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "Linie rulumu suben" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "Linie rulumu supren" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "Duonekrane rulumu suben" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "Duonekrane rulumu supren" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "Elektu la sekvan fenestron" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "Elektu la antaýan fenestron" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "Disfendu la kurantan fenestron" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "Forigu la kurantan fenestron" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "Maleblas forigi fenestron permanentan" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "Forigu æiujn ceterajn fenestrojn" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "Rulumu la alian fenestron" + +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "Rulumu la alian fenestron malantaýen" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "(Mal)pligrandigu æi tiun fenestron" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "Dispartigu la disponeblan ekranspacon inter la videblaj fenestroj" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "Baskulþaltu la reøimon de linifaldo en la kuranta fenestro" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +msgid "Select the Next node" +msgstr "Elektu la nodon sekvan (\"Next\")" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +msgid "Select the Prev node" +msgstr "Elektu la nodon antaýan (\"Prev\")" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +msgid "Select the Up node" +msgstr "Elektu la nodon supran (\"Up\")" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "Elektu la lastan nodon en æi tiu dosiero" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "Æi tiu fenestro ne havas pluajn nodojn" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "Elektu la unuan nodon en æi tiu dosiero" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "Elektu la lastan eron en la menuo de æi tiu nodo" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "Elektu æi tiun menueron" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "Æi tiu menuo ne havas %d erojn." + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "Menuero (%s): " + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "Menuero: " + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "Sekvu referencon (%s): " + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "Sekvu referencon: " + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "Legu menueron kaj elektu øian nodon" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "Legu piednoton aý referencon kaj elektu øian nodon" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "Iru al la komenco de la menuo de æi tiu nodo" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "" +"Vizitu samtempe kiom eble plej multe da menueroj (æiun en aparta fenestro)" + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "Legu nodnomon kaj elektu la nodon" + +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "Iru al la nodo: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "En la nodo \"%s\" malestas menuo." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "Menuero \"%s\" malestas en la nodo \"%s\"." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "Maleblas trovi nodon referencatan per \"%s\" en \"%s\"." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "Legu liston da menuoj, komencante per dir kaj sekvante ilin" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "Sekvu menuojn: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "Trovu la nodon priskribantan programvokon" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "Trovu la voknodon de [%s]: " + +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "Legu referencon al manlibra paøo kaj øin elektu" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "Manlibran paøon: " + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "Elektu la nodon \"Top\" en æi tiu dosiero" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "Elektu la nodon \"(dir)\"" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "Forviþu la nodon (%s): " + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "Maleblas forigi la nodon \"%s\"" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "Maleblas forigi la lastan nodon" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "Elektu nodon plej ¼use elektitan" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "Forviþu æi tiun nodon" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "Legu la dosiernomon kaj øin elektu" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "Trovu la dosieron: " + +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." +msgstr "Maleblas trovi \"%s\"." + +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." +msgstr "Maleblas krei eligan dosieron \"%s\"." + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "Prete." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." +msgstr "Estas skribata la nodo \"%s\" ..." + +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "La enhavon de æi tiu nodo metu en la dukton per INFO_PRINT_COMMAND" + +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." +msgstr "Maleblas malfermi dukton al \"%s\"." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." +msgstr "Estas printata la nodo \"%s\" ..." + +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." +msgstr "Estas seræata la subdosiero \"%s\" ..." + +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" +msgstr "Legu æenon kaj seræu øin usklecodistinge" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "Legu æenon kaj øin seræu" + +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "Legu æenon kaj øin seræu malantaýen" + +#: info/session.c:3573 +#, c-format +msgid "%s%sfor string [%s]: " +msgstr "%s%spor signoæeno [%s]: " + +#: info/session.c:3574 +msgid "Search backward" +msgstr "Seræu malantaýen" + +#: info/session.c:3574 +msgid "Search" +msgstr "Seræu" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr " usklecodistinge" + +#: info/session.c:3575 +msgid " " +msgstr " " + +#: info/session.c:3615 +msgid "Search failed." +msgstr "Seræo fiaskis." + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "Ripetu la ¼usan seræon samdirekte" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "Malestas pli frua seræoæeno." + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "Ripetu la ¼usan seræon alidirekte" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "Interaktive seræu æenon tajpatan" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "Interaktiva seræo malantaýen: " + +#: info/session.c:3763 +msgid "I-search: " +msgstr "Interaktiva seræo: " + +#: info/session.c:3788 +msgid "Failing " +msgstr "Fiasko " + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "Iru al la antaýa referenco" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "Iru al la sekva referenco" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "Elektu la referencon aý la menueron de æi tiu linio" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "Æesigu la kurantan operacion" + +#: info/session.c:4292 +msgid "Quit" +msgstr "Finu" + +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" +msgstr "Movu la kursoron sur indikitan linion de la fenestro" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "Refreþigi la ekranon" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "Eliru el Info" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "Komando nekonata (%s)." + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "\"\" ne validas" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "\"%s\" ne validas" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "Aldonu tiun ciferon al la kuranta argumento nombra" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "Komencu (aý 4-obligu) la kurantan argumenton nombran" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "Uzata interne de \\[universal-argument]" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "readline: Virtuala memoro elæerpita!\n" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "Æe \"On\", la piednotoj aperas kaj malaperas aýtomate" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "Æe \"On\", kreo aý forigo de fenestro kaýzas rearanøon de la ceteraj" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "Æe \"On\", anstataý bleki fulmetu la ekranon" + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "Æe \"On\", signalu pri eraro per bleko" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "" +"Æe \"On\", Info traktas makulaturon post malpako de kunpremitaj dosieroj" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "Æe \"On\", la peco kongrua al la seræoæeno emfaziøas" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "Determinas la konduton de rulumo fine de nodo" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "" +"La nombro de linioj rulumataj kiam la kursoro moviøas ekster la fenestron" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "Æe \"On\", Info akceptas kaj surekranigas la okbitajn signojn" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "Klarigu la uzon de variablo" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "Priskribu variablon: " + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "Valorizu Info-variablon" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "Valorizu variablon: " + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "Variablo %s ricevu la valoron (%d): " + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "%s ricevu la valoron (%s): " + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "--*** Etikedoj malaktualiøis ***" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "-----Info: (), linioj ----, " + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "-%s---Info: %s, %d linioj --%s--" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "-%s%s-Info: (%s)%s, %d linioj --%s--" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr " Subdosiero: %s" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: opcio \"%s\" estas ambigua\n" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: opcio \"--%s\" ne toleras argumenton\n" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: opcio \"%c%s\" ne toleras argumenton\n" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: opcio \"%s\" bezonas argumenton\n" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: nekonata opcio \"--%s\"\n" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: nekonata opcio \"%c%s\"\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: misa opcio -- %c\n" + +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: nevalida opcio -- %c\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: opcio bezonas argumenton -- %c\n" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: opcio \"-W %s\" estas ambigua\n" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: opcio \"-W %s\" ne toleras argumenton\n" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "januaro" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "februaro" + +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "marto" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "aprilo" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "majo" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "junio" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "julio" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "aýgusto" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "septembro" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "oktobro" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "novembro" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "decembro" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "dubinda signo \"%c\" en @var" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "argumento de @sc tuta majuskla, do neniel þanøiøita" + +#: makeinfo/cmds.c:754 +#, c-format +msgid "%c%s is obsolete" +msgstr "%c%s arkaikiøis" + +#: makeinfo/cmds.c:814 +#, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "@sp bezonas ne \"%s\" sed pozitivan argumenton nombran" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "Misa argumento por %c%s" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "asis" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "none" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "Mankas \"}\" en la argumento de @def" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "Funkcio" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "Makroo" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "Speciala Formo" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "Variablo" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "Uzula opcio" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "Ekzemplera variablo" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "Metodo" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "de" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" +msgstr "sur" + +#: makeinfo/defun.c:656 +#, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "Nur en \"%s\"-enþovo uzeblas \"%s\"x." + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "%s: getwd: %s, %s\n" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "\"%c%s\" bezonas argumenton \"{...}\", ne nuran \"%s\"" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "Mankas \"}\" por la piednoto \"%s\"" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "Piednoto difinita sen patra nodo" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "Piednotoj" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "Sen titolo" + +#: makeinfo/index.c:212 +#, c-format +msgid "Unknown index `%s'" +msgstr "Nekonata indekso \"%s\"" + +#: makeinfo/index.c:382 +#, c-format +msgid "Index `%s' already exists" +msgstr "Jam estas indekso \"%s\"" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "Nekonata indekso \"%s\" kajaý \"%s\" en @synindex" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "Nekonata indekso \"%s\" en @printindex" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "Artikolo por indekso \"%s\" estas ekster iu ajn nodo" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "(ekster iu ajn nodo)" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "Misa tipo en la funkcio insertion_type_pname" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "Troo en la stako de enumeracioj" + +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "mankas sekva enumeracia litero, rekomencite ekde %c" + +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s bezonas argumenton: la aranøilon por %citem" + +#: makeinfo/insertion.c:623 +#, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "\"@end\" atendis \"%s\", sed renkontis \"%s\"" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "Mankas para \"%cend %s\"" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "%s bezonas literon aý ciferon" + +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "@menu jam antaý la unua @nodo; nodo \"Top\" kreitas" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "eble via @top-nodo staru sub @ifnottex anstataý sub @ifinfo?" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "@detailmenu renkontita jam antaý la unua nodo; nodo \"Top\" kreitas" + +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" +msgstr "Mankas para \"%c%s\"" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "\"%c%s\" bezonas post si ion" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "Misa argumento por \"%s\", \"%s\", uzanta \"%s\"" + +#: makeinfo/insertion.c:1175 +#, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "@%s estas sensenca ene de bloko \"@%s\"" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "@itemx estas sensenca ene de bloko \"%s\"" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "%c%s renkontita ekster \"insertion block\"" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "%s ne estas valida lingvokodo laý ISO 639" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "%c%s atendas argumenton \"i\" aý \"j\", ne \"%c\"" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "%c%s akceptas nur solsignan argumenton \"i\" aý \"j\"" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "makroo \"%s\" jam difinita antaýe" + +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "æi tie estas la antaýa difino de \"%s\"" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "en makroo, \\ sekvata de \"%s\" (anstataý de \\ aý nomo de parametro)" + +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "Makroo \"%s\" en la linio %d havas troan argumenton" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "makroo %cend ne troviøis" + +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "@quote-arg utilas nur en sol-argumentaj makrooj" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "misa @end %s por @%s" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: averto: " + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "Tro multe da eraroj! Halt'.\n" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "Misloka %c" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Por pluaj detaloj tajpu \"%s --help\".\n" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +#: makeinfo/makeinfo.c:391 +#, fuzzy, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +" --ifhtml Traktu @ifhtml kaj @html, eæ se HTML ne estas " +"celformo\n" +" --ifinfo Traktu @ifinfo, eæ tradukante al HTML\n" +" --iftex Traktu la pecojn en @iftex kaj @tex\n" +" --macro-expand, -E DRO Metu en eligdosieron DRO la Texinfo-tekston " +"ricevitan\n" +" per makrotraktado\n" +" --no-headers Ne dispartigu en la nodojn, ne faru la liniojn\n" +" \"Node:\"; eligu en la æefeligujon eæ sen " +"--output\n" +" --no-ifhtml Preterigu la tekston sub @ifhtml kaj @html\n" +" --no-ifinfo Preterigu la tekston sub @ifinfo\n" +" --no-iftex Preterigu la tekston sub @iftex kaj @tex\n" +" --no-split Ne disfendu grandan Info-dosieron, nek apartigu\n" +" æiun nodon en apartan HTML-dosieron\n" +" --no-validate Abolu la kontrolon de la internodaj referencoj\n" +" --no-warn Ne eligu la avertojn (ne koncernas la erarmesaøojn)\n" +" --number-sections Generu kun la numeroj de æapitroj, sekcioj ktp \n" +" -o, --output=DOSIERO Skribu en DOSIEROn, malatentante @setfilename\n" +" --paragraph-indent=VAL Alinea enþovo estu VAL spacetoj (defaýlte %d);\n" +" se VAL estas \"none\", ne enþovu;\n" +" se VAL estas \"asis\", obeu ekzistantan enþovon\n" +" --reference-limit N Avertu post pli ol N referencoj (defaýlte %d)\n" +" -v, --verbose Rakontu kio estas farata\n" +" --version Eligu la nomon, la version de la programo kaj eliru\n" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" +"\n" +"La defaýlta konduto de la @if...-frazoj dependas je la celata formo:\n" +"se HTML estas generata, --ifhtml þaltiøas kaj la ceteraj, malþaltiøas;\n" +"se Info aý plata teksto estas generata, --ifinfo þaltiøas kaj la\n" +"ceteraj, malþaltiøas.\n" +"Ekzemploj:\n" +" makeinfo UM.texi konservu Info laý @setfilename de UM\n" +" makeinfo --html UM.texi konservu HTML laý @setfilename de UM\n" +" makeinfo --no-headers -o - UM.texi sendu platan tekston en æefeligujon\n" +" makeinfo --number-sections UM.texi konservu Info kun la sekcinumeroj\n" +" makeinfo --no-split UM.texi faru unu Info-dosieron, kiom ajn " +"grandan\n" +"\n" +"Erarraportojn sendu al <bug-texinfo@gnu.org>; øeneralajn demandojn kaj\n" +"opiniojn al <help-texinfo@gnu.org>. Por la diskutoj pri esperantigo\n" +"uzu la dissendoliston <eo@li.org>." + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: la argumento %s devas esti nombra, ne \"%s\".\n" + +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "Fiaskis malfermo de makrotraktada eligdosiero \"%s\"" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "Ne povas esti pli ol unu makrotraktada eligdosiero" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: argumento de la opcio --paragraph-indent estu nombra, \"none\" aý\n" +"\"asis\", ne \"%s\".\n" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" +"%s: argumento de la opcio --footnote-style estu \"separate\" aý\n" +"\"end\", ne \"%s\".\n" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "%s: mankas dosiera argumento.\n" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "\"%s\" atendatas" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "Neniu \"%s\" trovita en \"%s\"" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "%s: Makrotraktita¼o ne trafos en la æefeligujon æar Info iras tien.\n" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "%s-dosiero \"%s\" estas generata el \"%s\".\n" + +#: makeinfo/makeinfo.c:1358 +#, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "Æi tiun dosieron %s generis Makeinfo-%s el %s.\n" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: La eligdosiero \"%s\" por makrotraktita¼o forigitas æar estis eraroj;\n" +"uzu la opcion --force por øin reteni.\n" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: La eligdosiero \"%s\" forigitas æar estis eraroj;\n" +"uzu la opcion --force por øin reteni.\n" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "Nekonata komando \"%s\"." + +#: makeinfo/makeinfo.c:1657 +#, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "Uzu vinkulojn por pasigi al \"@%s\" komandan argumenton" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "%c%s postulas vinkulojn \"{...}\"" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "Senpara \"}\"" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "SEN_NOMO!" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "%c%s sen \"}\"" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "vidu " + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "Vidu " + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "Referencon devas sekvi punkto aý komo, ne %c" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "Mankas .png or .jpg por \"%s\"" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "dosiero \"%s\" en la komando @image estas nelegebla: %s" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "mankas dosiera argumento en la komando @image" + +#: makeinfo/makeinfo.c:3259 +#, c-format +msgid "{No value for `%s'}" +msgstr "{Mankas Valoro Por \"%s\"}" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "%c%s bezonas nomon" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "Pli frue ol la para @end %s renkontiøis dosierfino" + +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "Mankas \"}\" en la þablono de @multitable" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "la misa teksto \"%s\" post @multitable estas ignorita" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "Tro da kolumnoj en elemento de \"multitable\" (%d maksimume)" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "Maleblas elekti %d-an kolumnon en \"multitable\"." + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "komando @tab ekster \"multitable\"; ignorita" + +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "** Multekolumna eligo el la lasta linio:\n" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* kolumno %d-a: eliga¼o = %s\n" + +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "Nodo \"%s\" jam difinita en la linio %d" + +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "Estas aranøata la nodo \"%s\" ...\n" + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "Nodo \"%s\" bezonas subdividan komandon (e.g. %c%s)" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "Mankas nodnomo por la komando \"%c%s\"" + +#: makeinfo/node.c:774 +msgid "Node:" +msgstr "Nodo:" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" +msgstr "Sekva:" + +#: makeinfo/node.c:793 +msgid "Previous:" +msgstr "Antaýa:" + +#: makeinfo/node.c:803 +msgid "Up:" +msgstr "Supre:" + +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "%s referencas neekzistantan nodon \"%s\"" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "Menuo" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "Referenco" + +#: makeinfo/node.c:1115 +#, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "La kampo \"Next\" de la nodo \"%s\" ne estas reciprokita" + +#: makeinfo/node.c:1119 +#, c-format +msgid "This node (%s) has the bad Prev" +msgstr "Æi tiu nodo (\"%s\") havas eraran kampon \"Prev\"" + +#: makeinfo/node.c:1133 +msgid "Prev" +msgstr "Antaýa" + +#: makeinfo/node.c:1176 +#, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "La kampo \"Prev\" de la nodo \"%s\" ne estas reciprokita" + +#: makeinfo/node.c:1180 +#, c-format +msgid "This node (%s) has the bad Next" +msgstr "Æi tiu nodo (\"%s\") havas eraran kampon \"Next\"" + +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "La nodo \"%s\" malhavas kampon \"Up\"" + +#: makeinfo/node.c:1197 +msgid "Up" +msgstr "Supre" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "En\"%s\" mankas menuero por \"%s\", malgraý ties ligilo \"Up\"\"" + +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "la nodo \"%s\" estis referencita %d fojojn" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "la nodo \"%s\" ne estas referencita" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "Aldono %c" + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "Interna eraro (search_sectioning) \"%s\"!" + +#: makeinfo/sectioning.c:468 +#, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "%c%s arkaikiøis; uzu %c%s anstataýe" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "Jam estas nodo kun sekcio %ctop" + +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "Jen estas la nodo %ctop" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "%ctop aperis pli frue ol %cnode; la defaýlto uzota estas %s" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "Enhavtabelo" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "Maldetala enhavtabelo" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "%s: æi tie mankas enhavtabelo" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "%s: averto: " + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "virtuala memoro elæerpitas" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr " por %s" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "\tPor ricevi kompletan liston da opcioj tajpu \"%s --help\".\n" + +#: util/install-info.c:389 +#, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Sintakso: %s [OPCIO]... [INFO-DOSIERO [DIR-DOSIERO]]\n" +"\n" +"Instalu aý forigu \"dir\"-a¼ojn el INFO-DOSIERO en la Info-katalogo\n" +" DIR-DOSIERO.\n" +"\n" +"Opcioj:\n" +"--delete Forigu la ekzistantajn \"dir\"-a¼ojn pri INFO-DOSIERO;\n" +" ne enþovu iun ajn novan \"dir\"-a¼on.\n" +"--dir-file=NOMO Indiku la dosieran NOMOn de Info-katalogo.\n" +" Samkiel uzi la argumenton DIR-DOSIERO.\n" +"--entry=TEKSTO Enþovu TEKSTOn kiel\"dir\"-a¼ojn por Info-katalogo.\n" +" TEKSTO havu la formon de menuera linio plus nul aý\n" +" pluraj linioj kromaj, komencantaj per blanka spaco.\n" +" Se estas pli ol unu \"dir\"-a¼o, ili æiuj aldoniøos.\n" +" Se estas nenia \"dir\"-a¼o, aldoniøos \"dir\"-a¼oj\n" +" determinitaj el la informoj de la Info-dosiero.\n" +"--help Eligu la helpon.\n" +"--info-file=DOSIERO Indiku Info-DOSIEROn instalendan en la Info-katalogo.\n" +" Samkiel uzi la argumenton INFO-DOSIERO.\n" +"--info-dir=UJO Sinonimo por --dir-file=UJO/dir.\n" +"--item=TEKSTO Sinonimo por --entry=TEKSTO\n" +" Æiu \"dir\"-a¼o fakte estas menuero.\n" +"--quiet Ne eligu avertojn.\n" +"--remove Sinonimo por --delete.\n" +"--section=SEKC Metu la \"dir\"-a¼ojn en sekcion SEKC de la " +"Info-katalogo.\n" +" Se pli ol unu sekcio estas indikitaj, æiuj \"dir\"-a¼oj\n" +" aldoniøas en ilin æiujn. Se neniu sekcio estas " +"indikita,\n" +" ili determiniøos el la informoj de la Info-dosiero.\n" +"--version Eligu la nomon, la version de la programo kaj eliru.\n" +"\n" +"Erarraportojn sendu al <bug-texinfo@gnu.org>; øeneralajn demandojn kaj\n" +"opiniojn al <help-texinfo@gnu.org>. Por la diskutoj pri esperantigo uzu\n" +"dissendoliston <eo@li.org>.\n" + +#: util/install-info.c:442 +#, fuzzy, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" +"Æi tio estas la dosiero .../info/dir, entenanta la pinton de la \n" +"la hierarkio Info -- la æefkatalogan nodon nomatan (dir)Top.\n" +"Unuafoje lanæinte la programon Info, vi trafas en tiun nodon.\n" +"\n" +"File: dir,\tNode: Top,\tLa pinto de la INFO-hierarkio\n" +"\n" +" Æi tie (en la Info-katalogo) estas menuo de la æefaj temoj.\n" +" Tajpu \"q\" por eliri; \"?\" por eligi æiujn komandojn de Info;\n" +" \"d\" por reveni æi tien; \"h\" vokas lernilon por komencantoj;\n" +" \"mEmacs<Return>\" disponigas la manlibron pri Emakso; ktp.\n" +"\n" +" Se vi legas per Emakso, alklaku menueron aý referencon per la 2-a\n" +" musbutono por elekti la temon.\n" +"\n" +"* Menu:\n" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "%s: ne povas legi (%s) kaj ne povas krei (%s)\n" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "%s: malplena dosiero" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY sen para END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY sen para START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "%s: Indiku la Info-katalogon solfoje.\n" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "%s: Indiku la Info-dosieron solfoje.\n" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "troa argumento komandlinia: \"%s\"" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "Mankas enigdosiero; provu --help por pluaj informoj." + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "Mankas dosiero Info-katalogo (dir); provu --help por pluaj informoj." + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "Nenia informo por Info-katalogo troviøis en \"%s\"" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "menuero \"%s\" jam ekzistas (por la dosiero \"%s\")" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "Troviøis nenia informo Info-kataloga pri \"%s\"; nenio iøis forigita" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "eligu æi tiun helpon kaj eliru" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "konservu la labordosierojn post la traktado" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "ne konservu la labordosierojn post la traktado (defaýlto)" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "sendu la eliga¼on en DOSIEROn" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "eligu la uzatan version kaj eliru" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "Uzmaniero: %s [OPCIO]... DOSIERO...\n" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "Generu ordigitan indekson por æiu TeX-a elig-DOSIERO.\n" + +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "Kutime DOSIERO... estas \"umo.%c%c\" por dokumento \"umo.texi\".\n" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opcioj:\n" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"\n" +"Erarraportojn sendu al <bug-texinfo@prep.ai.mit.edu>; øeneralajn\n" +"demandojn kaj opiniojn al <help-texinfo@gnu.org>. Por la diskutoj\n" +"pri Esperanto-traduko uzu la dissendoliston <eo@li.org>.\n" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "%s: ne indeksa dosiero laý Texinfo" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "fiasko æe remalfermo de %s" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "Mankas paønumero en %s" + +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "la artikolo %s sekvas artikolon kun kromnomo" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "%s; por la dosiero \"%s\".\n" + +#~ msgid "" +#~ "---------- Footnotes ----------\n" +#~ "\n" +#~ msgstr "" +#~ "---------- Piednotoj ----------\n" +#~ "\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]... TEXINFO-FILE...\n" +#~ "\n" +#~ "Translate Texinfo source documentation to various other formats:\n" +#~ "Info files suitable for reading online with Emacs or standalone GNU Info\n" +#~ "(by default); plain text (with --no-headers); or HTML (with --html).\n" +#~ "\n" +#~ "Options:\n" +#~ " -D VAR define a variable, as with @set.\n" +#~ " -I DIR append DIR to the @include search path.\n" +#~ " -P DIR prepend DIR to the @include search path.\n" +#~ " -U VAR undefine a variable, as with @clear.\n" +#~ " --commands-in-node-names allow @ commands in node names.\n" +#~ " --error-limit=NUM quit after NUM errors (default %d).\n" +#~ " --fill-column=NUM break Info lines at NUM characters (default %d).\n" +#~ " --footnote-style=STYLE output footnotes according to STYLE:\n" +#~ " `separate' to place footnotes in their own " +#~ "node,\n" +#~ " `end' to place the footnotes at the end of the\n" +#~ " node in which they are defined (the default).\n" +#~ " --force preserve output even if errors.\n" +#~ " --help display this help and exit.\n" +#~ " --html output HTML rather than Info format;\n" +#~ " implies --no-split.\n" +#~ msgstr "" +#~ "Sintakso: %s [OPTION]... TEXINFO-FILE...\n" +#~ "\n" +#~ "Tradukas fontan Texinfo dokumenton en diversajn aliajn formojn:\n" +#~ "Info-dosierojn legeblajn interaktive per Emakso aý per aýtonoma GNU Info\n" +#~ "(la defaýlto); plata teksto (se --no-headers); aý HTML (se --html).\n" +#~ "\n" +#~ "Opcioj:\n" +#~ " -D VAR Difinu variablon, kiel per @set\n" +#~ " -I DIR Alkroæu DIR al la fino de la serævojo por " +#~ "@include\n" +#~ " -P DIR Alkroæu DIR komence de la serævojo por @include\n" +#~ " -U VAR Maldifinu variablon, kiel per @clear\n" +#~ " --commands-in-node-names Permesu @-komandojn en nomoj de nodoj\n" +#~ " --error-limit=N Haltu post N eraroj (defaýlte %d)\n" +#~ " --fill-column=N Aranøu Info-liniojn N signojn longaj (defaýlte " +#~ "%d)\n" +#~ " --footnote-style=STILO Aranøu la piednotojn laý la STILO:\n" +#~ " \"separate\" por loki la notojn en apartan " +#~ "nodon,\n" +#~ " \"end\" por loki ilin fine de la nodo en kiu\n" +#~ " ili estas difinitaj (la defaýlto)\n" +#~ " --force Konservu la eliga¼on eæ post eraroj\n" +#~ " --help Eligu la helpon kaj eliru\n" +#~ " --html Generu en HTML anstataý en Info; implicas " +#~ "--no-split\n" diff --git a/gnu/usr.bin/texinfo/po/nl.gmo b/gnu/usr.bin/texinfo/po/nl.gmo Binary files differnew file mode 100644 index 00000000000..3bca9c1ad9d --- /dev/null +++ b/gnu/usr.bin/texinfo/po/nl.gmo diff --git a/gnu/usr.bin/texinfo/po/nl.po b/gnu/usr.bin/texinfo/po/nl.po new file mode 100644 index 00000000000..ad8acd03480 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/nl.po @@ -0,0 +1,2693 @@ +# Dutch messages for GNU texinfo +# Copyright (C) 1998 Free Software Foundation, Inc. +# Ivo Timmermans <zarq@iname.com>, 1998. +# +msgid "" +msgstr "" +"Project-Id-Version: texinfo 3.12\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1998-04-16 22:35+02:00\n" +"Last-Translator: Ivo Timmermans <zarq@iname.com>\n" +"Language-Team: Dutch <nl@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "Beweeg een teken naar voren" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "Beweeg een teken naar achteren" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "Ga naar het begin van deze regel" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "Ga naar het einde van deze regel" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "Beweeg een woord naar voren" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "Beweeg een woord naar achteren" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "Verwijder het teken onder de cursor" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "Verwijder het teken achter de cursor" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "Annuleer of beëindig operatie" + +# completion? +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "Accepteer (of forceer voltooiïng van) deze regel" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "Voeg volgend teken letterlijk in" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "Voeg dit teken in" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "Voeg een TAB code in" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "Transponeer karakters op een punt" + +# kill? +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "Zet de inhoud van de laatste kill terug" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "Kill ring is leeg" + +# kill? +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "Zet een eerdere kill terug" + +# kill? +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "Verwijder tot aan het einde van de regel" + +# kill? +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "Verwijder tot aan het begin van de regel" + +# kill? +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "Verwijder het woord na de cursor" + +# kill? +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "Verwijder het woord voor de cursor" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "Niet compleet" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "Geef een lijst van mogelijke voltooiïngen" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "Geen voltooiïngen" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "Enige voltooiïng" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "Een voltooiïng:\n" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "%d voltooiïngen:\n" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "Voeg voltooiïng in" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "Voltooiïngen aan het bouwen..." + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "Verschuif het voltooiïngsvenster" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "De voetnoten konden niet weergegeven worden" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "" +"Laat de voetnoten zien die met deze pagina verbonden zijn in een ander " +"venster" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "Zoek een string op in de index voor dit bestand" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "Zoeken naar index ingangen..." + +#: info/indices.c:212 +msgid "No indices found." +msgstr "Geen indices gevonden." + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "Index ingang: " + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" +"Ga naar de volgende overeenkomende index-ingang van het laatste " +"`\\[index-search]' commando" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "Geen eerdere index zoek string." + +#: info/indices.c:349 +msgid "No index entries." +msgstr "Geen index ingangen." + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "Geen index ingangen %sdie \"%s\" bevatten." + +#: info/indices.c:383 +msgid "more " +msgstr "meer " + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "KAN DIT NIET ZIEN" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "" +"\"%s\" gevonden in %s. (`\\[next-index-match]' probeert de volgende te " +"vinden.)" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "Zoeken in indices van \"%s\"..." + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" +"Doorzoek alle bekende indices van info-bestanden voor een string en maak een " +"menu" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "Index apropos: " + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" +"\n" +"* Menu: Pagina's waarvan de indices \"%s\" bevatten:\n" + +#: info/info.c:248 +#, fuzzy +msgid "Try --help for more information.\n" +msgstr "Probeer --help voor meer informatie." + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"Er is GEEN garantie. Je mag deze programmatuur herdistribueren\n" +"onder de voorwaarden van de GNU General Public License.\n" +"Voor meer informatie hierover, zie de bestanden met de naam COPYING.\n" + +#: info/info.c:461 +#, fuzzy, c-format +msgid "no index entries found for `%s'\n" +msgstr "geen ingangen gevonden\n" + +#: info/info.c:530 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Aanroep: %s [OPTIE]... [INFO-BESTAND [MENU-ITEM...]]]\n" +"\n" +"Lees documentatie in Info-formaat\n" +"Voor een meer complete omschrijving van het gebruik van Info, type `info " +"info options'.\n" +"\n" +"Opties:\n" +"--directory DIR Voeg DIR toe aan INFOPAD.\n" +"--dribble BESTAND Onthoud toetsaanslagen in BESTAND.\n" +"--file BESTAND Specificeer te bekijken Info bestand.\n" +"--node PAGINANAAM Specificeer pagina's in het eerste Info " +"bestand.\n" +"--output BESTAND Schrijf de geselecteerde pagina's naar " +"BESTAND.\n" +"--restore BESTAND Lees de eerste toetsaanslagen uit BESTAND.\n" +"--subnodes Geef recursief alle menu-items.\n" +"--help Laat deze helptekst zien en beëindig.\n" +"--version Geef de versie-informatie van Info en " +"beëindig.\n" +"\n" +"Het eerste argument, indien aanwezig, is de naam van het Info-bestand\n" +"dat ingelezen dient te worden. Alle overige argumenten worden\n" +"beschouwd als de namen van menu items in de eerste bezochte pagina. Bij\n" +"voorbeeld, `info emacs buffers' gaat naar de pagina `buffers' in het\n" +"bestand `emacs'.\n" +"\n" +"Meld fouten in het programma aan bug-texinfo@gnu.org;\n" +"meld onjuistheden in de vertaling aan nl@li.org." + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "Kan pagina `%s' niet verwijderen" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "Kan pagina `%s' niet verwijderen" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "Kan een permanent venster niet verwijderen" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "Kan een permanent venster niet verwijderen" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "Er is geen menu op deze pagina." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "Geen verwijzingen in deze pagina." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "Geen verwijzingen in deze pagina." + +#: info/info.c:612 +#, fuzzy, c-format +msgid "No `%s' pointer for this node." +msgstr "Geen \"Volgende\" wijzer voor deze pagina." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "Ga naar het begin van deze pagina" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "Ga naar het begin van deze pagina" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +#, fuzzy +msgid "Basic Commands in Info Windows\n" +msgstr "Basiscommando's in Info Vensters" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "" + +#: info/infodoc.c:48 +#, fuzzy, c-format +msgid " %-10s Quit this help.\n" +msgstr "Geen \"Vorige\" voor deze pagina." + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr "" + +#: info/infodoc.c:50 +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr "" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "" + +#: info/infodoc.c:53 +#, fuzzy +msgid "---------------------\n" +msgstr "" +"---------- Voetnoten ----------\n" +"\n" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr "" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr "" + +# kill? +#: info/infodoc.c:56 +#, fuzzy, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr "Verwijder tot aan het begin van de regel" + +#: info/infodoc.c:57 +#, fuzzy, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr "Ga naar het einde van deze pagina" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr "" + +#: info/infodoc.c:59 +#, fuzzy, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr "Schuif terug in dit venster" + +#: info/infodoc.c:61 +#, fuzzy +msgid "Selecting other nodes:\n" +msgstr "Selecteer de `Vorige' pagina" + +#: info/infodoc.c:62 +#, fuzzy +msgid "----------------------\n" +msgstr "" +"---------- Voetnoten ----------\n" +"\n" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr "Ga naar het einde van deze pagina" + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr "Ga naar het einde van deze pagina" + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr "Geen \"Vorige\" voor deze pagina." + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr "" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr "" + +#: info/infodoc.c:69 +#, fuzzy, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr "Selecteer de laatste pagina in dit bestand" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr "" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr "" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr "" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr "" + +#: info/infodoc.c:75 +#, fuzzy +msgid "Other commands:\n" +msgstr "Waar is het commando: " + +#: info/infodoc.c:76 +#, fuzzy +msgid "---------------\n" +msgstr "" +"---------- Voetnoten ----------\n" +"\n" + +#: info/infodoc.c:77 +#, fuzzy, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr "Selecteer de laatste keuze in het menu van deze pagina" + +#: info/infodoc.c:78 +#, fuzzy, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr "Selecteer de laatste keuze in het menu van deze pagina" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr "" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr "" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "" + +#: info/infodoc.c:261 +#, fuzzy +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "Basiscommando's in Info Vensters" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" +"De volgende commando's kunnen alleen aangeroepen worden via M-x:\n" +"\n" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "" +"--- Gebruik `\\[history-node]' of `\\[kill-node]' om te beëindigen ---\n" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "Geef een help boodschap" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "Ga naar Info pagina `(info)Help'" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "Geef uitleg over KEY" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "Omschrijf toets: %s" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "ESC %s is niet gedefinieerd." + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "%s is niet gedefinieerd." + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "%s is gedefinieerd als %s." + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "Waar is het commando: " + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "`%s' is niet toegekend aan een toets" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "%s kan alleen aangeroepen worden via %s." + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "%s kan aangeroepen worden via %s." + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "Er is geen functie met de naam `%s'" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "Lees de naam van een Info commando en geef een omschrijving" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "Omschrijf commando: " + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "Lees de naam van een commando in de weergeefruimte en voer dat uit" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "Kan hier geen `echo-area' commando uitvoeren." + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "Zet de hoogte van het weergegeven venster" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "Zet schermhoogte op (%d): " + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" +" Bronbestanden veranderd om dit bestand in te voegen:\n" +"\n" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "Kon het bestand %s niet manipuleren.\n" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" +"\n" +"* Menu:\n" +" (Bestand)Pagina Regels Grootte Bevat Bestand\n" +" --------------- ----- ---- ---------------" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" +"Hier is het menu van pagina's die je recentelijk bekeken hebt.\n" +"Selecteer er een uit dit menu, of gebruik `\\[history-node]' in een ander " +"venster.\n" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "Maak een venster met een menu van alle bekeken pagina's" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "Selecteer een pagina die voorheen bekeken is in een zichtbaar venster" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "Selecteer een bezochte pagina: " + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "De verwijzing is verdwenen! (%s)." + +#: info/session.c:169 +#, fuzzy, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" +"Welkom bij Info versie %s. \"\\[get-help-window]\" voor hulp, " +"\"\\[menu-item]\" voor een menukeuze." + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "Ga naar de volgende regel" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "Ga naar de vorige regel" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "Ga naar het einde van de regel" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "Ga naar het begin van de regel" + +#: info/session.c:884 makeinfo/node.c:1092 +#, fuzzy +msgid "Next" +msgstr "Volgende" + +#: info/session.c:887 +#, fuzzy +msgid "Following Next node..." +msgstr "\"Volgende\" pagina aan het volgen..." + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "Ik selecteer de eerste keuze uit het menu..." + +#: info/session.c:915 +#, fuzzy +msgid "Selecting Next node..." +msgstr "Ik selecteer de \"Volgende\" pagina..." + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "" + +#: info/session.c:1009 +#, fuzzy +msgid "No more nodes within this document." +msgstr "Geen verwijzingen in deze pagina." + +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." +msgstr "Geen \"Vorige\" voor deze pagina." + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +#, fuzzy +msgid "Moving Prev in this window." +msgstr "Ik beweeg \"Vorige\" naar dit venster." + +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "Geen \"Vorige\" of \"Omhoog\" voor deze pagina." + +#: info/session.c:1053 +#, fuzzy +msgid "Moving Up in this window." +msgstr "Ik ga \"Omhoog\" in dit venster." + +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." +msgstr "Ik ga naar de laatste keuze van het menu van \"Vorige\"." + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "Beweeg naar voren of beneden door de paginastructuur" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "Beweeg naar achteren of boven door de paginastructuur" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "Schuif verder in dit venster" + +#: info/session.c:1192 +#, fuzzy +msgid "Scroll forward in this window and set default window size" +msgstr "Schuif verder in dit venster" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "Schuif terug in dit venster" + +#: info/session.c:1244 +#, fuzzy +msgid "Scroll backward in this window and set default window size" +msgstr "Schuif terug in dit venster" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "Ga naar het begin van deze pagina" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "Ga naar het einde van deze pagina" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "Selecteer het volgende venster" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "Selecteer het vorige venster" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "Splits het huidige venster" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "Verwijder het huidige venster" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "Kan een permanent venster niet verwijderen" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "Verwijder alle andere vensters" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "Verschuif het andere venster" + +#: info/session.c:1635 +#, fuzzy +msgid "Scroll the other window backward" +msgstr "Verschuif het andere venster" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "Vergroot (of verklein) dit venster" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "Verdeel de beschikbare schermruimte tussen de zichtbare vensters" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "Verander de status van regeldoorlopen in het huidige venster" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +#, fuzzy +msgid "Select the Next node" +msgstr "Selecteer de `Volgende' pagina" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +#, fuzzy +msgid "Select the Prev node" +msgstr "Selecteer de `Vorige' pagina" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +#, fuzzy +msgid "Select the Up node" +msgstr "Selecteer de `Omhoog' pagina" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "Selecteer de laatste pagina in dit bestand" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "Dit venster heeft geen extra pagina's" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "Selecteer de eerste pagina in dit bestand" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "Selecteer de laatste keuze in het menu van deze pagina" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "Selecteer deze menukeuze" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "Er zijn geen %d keuzes in dit menu." + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "Menukeuze (%s): " + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "Menukeuze: " + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "Volg verwijzing (%s): " + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "Volg verwijzing: " + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "Lees een menukeuze en selecteer zijn pagina" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "Lees een voetnoot of verwijzing en selecteer zijn pagina" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "Ga naar het begin van het menu van deze pagina" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "Ga naar zo veel mogelijk menukeuzes tegelijk" + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "Lees de naam van een pagina en selecteer die" + +#: info/session.c:2312 info/session.c:2316 +#, fuzzy +msgid "Goto node: " +msgstr "Ga naar Pagina: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "Geen pagina's meer." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "Er is geen menukeuze \"%s\" op deze pagina." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "Kon de pagina, waarnaar verwezen werd door \"%s\", niet vinden." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "" + +#: info/session.c:2505 +#, fuzzy +msgid "Follow menus: " +msgstr "Volg verwijzing: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "" + +# manpage? +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "Lees een manpagina verwijzing en selecteer die" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "Ga naar manpagina: " + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "Selecteer de `Top' pagina in dit bestand" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "Selecteer de pagina `(dir)'" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "Verwijder pagina (%s): " + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "Kan pagina `%s' niet verwijderen" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "Kan de laatste pagina niet verwijderen" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "Selecteer de laatst geselecteerde pagina" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "Sluit deze pagina" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "Lees de naam van een bestand en selecteer die" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "Vind bestand: " + +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." +msgstr "Kan \"%s\" niet vinden." + +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." +msgstr "Kan uitvoerbestand \"%s\" niet vinden." + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "Klaar." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." +msgstr "Bezig met schrijven van pagina \"%s\"..." + +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "Sluis de inhoud van deze pagina door INFO_PRINT_COMMAND" + +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." +msgstr "Kan pijp naar \"%s\" niet openen." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." +msgstr "Bezig met afdrukken van pagina \"%s\"..." + +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." +msgstr "Bezig met zoeken naar sub-bestand \"%s\"..." + +#: info/session.c:3516 +#, fuzzy +msgid "Read a string and search for it case-sensitively" +msgstr "Lees een tekenreeks en zoek daar naar" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "Lees een tekenreeks en zoek daar naar" + +#: info/session.c:3531 +#, fuzzy +msgid "Read a string and search backward for it" +msgstr "Lees een tekenreeks en zoek daar naar" + +#: info/session.c:3573 +#, fuzzy, c-format +msgid "%s%sfor string [%s]: " +msgstr "%s voor tekenreeks [%s]: " + +#: info/session.c:3574 +msgid "Search backward" +msgstr "Achteruit zoeken" + +#: info/session.c:3574 +msgid "Search" +msgstr "Zoek" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr "" + +#: info/session.c:3575 +msgid " " +msgstr "" + +#: info/session.c:3615 +msgid "Search failed." +msgstr "Niet gevonden." + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "" + +#: info/session.c:3636 info/session.c:3646 +#, fuzzy +msgid "No previous search string" +msgstr "Geen eerdere index zoek string." + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "Zoek interactief naar een string als je het intypt" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "Achteruit I-zoeken: " + +#: info/session.c:3763 +msgid "I-search: " +msgstr "I-zoeken: " + +#: info/session.c:3788 +msgid "Failing " +msgstr "Niet gelukt: " + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "Ga naar de vorige verwijzing" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "Ga naar de volgende verwijzing" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "Selecteer verwijzing of menukeuze van deze regel" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "Annuleer huidige operatie" + +# Zie Cancel current action +#: info/session.c:4292 +msgid "Quit" +msgstr "Afgebroken" + +#: info/session.c:4301 +#, fuzzy +msgid "Move the cursor to a specific line of the window" +msgstr "Beweeg de cursor naar een bepaalde regel van het venster" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "Herschrijf het venster" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "Stop met Info" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "Onbekend commando (%s)." + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "\"\" is ongeldig" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "\"%s\" is ongeldig" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "Voeg dit cijfer toe aan het huidige numerieke argument" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "Begin een nieuw numeriek argument of vermenigvuldig het huidige met 4" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "Intern gebruikt door \\[universeel-argument]" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "readline: Geen virtueel geheugen meer!\n" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "Indien \"Aan\", verschijnen en verdwijnen voetnoten automatisch" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "" +"Indien \"Aan\", verandert het aanmaken of verwijderen van een venster de " +"grootte van andere vensters" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "" +"Indien \"Aan\", laat het scherm flikkeren in plaats van het laten horen van " +"een piep" + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "Indien \"Aan\", zorgen fouten voor een belsignaal" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "" +"Indien \"Aan\", haalt Info rommel weg voor bestanden die gedecomprimeerd " +"moesten worden" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "" +"Indien \"Aan\", wordt het overeenkomende deel van de zoek-tekenreeks " +"opgelicht" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "" +"Stelt in wat er gebeurt als er aan het eind van een node verschoven wordt" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "Het aantal regels dat verschuift als de cursor uit het venster gaat" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "Indien \"Aan\", accepteert Info ISO Latin tekens en laat ze zien" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "Leg het gebruik van een variabele uit" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "Omschrijf variabele: " + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "Zet de waarde van een Info variabele" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "Stel variabele in: " + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "Geef een waarde voor %s (%d): " + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "Geef een waarde voor %s (%s): " + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "--*** Tags zijn verouderd ***" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "-----Info: (), regels ----, " + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "-%s---Info: %s, %d regels --%s--" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "-%s%s-Info: (%s)%s, %d regels --%s--" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr "Sub-bestand: %s" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: optie `%s' is dubbelzinnig\n" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: optie `--%s' staat geen argumenten toe\n" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: optie `%c%s' staat geen argumenten toe\n" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: optie `%s' vereist een argument\n" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: onbekende optie `--%s'\n" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: onbekende optie `%c%s'\n" + +# Dit is de POSIX versie van de volgende melding +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ongeldige optie -- %c\n" + +# Dezelfde tekst als hiervoor +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: ongeldige optie -- %c\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: optie vereist een argument -- %c\n" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: optie `-W %s' is dubbelzinnig\n" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: optie `-W %s' staat geen argumenten toe\n" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "Januari" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "Februari" + +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "Maart" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "April" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "Mei" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "Juni" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "Juli" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "Augustus" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "September" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "Oktober" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "November" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "December" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "" + +#: makeinfo/cmds.c:754 +#, c-format +msgid "%c%s is obsolete" +msgstr "%c%s is verouderd" + +#: makeinfo/cmds.c:814 +#, fuzzy, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "%csp vereist een postief numeriek argument" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "Verkeerd argument voor %c%s" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "asis" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "geen" + +#: makeinfo/defun.c:83 +#, fuzzy +msgid "Missing `}' in @def arg" +msgstr "Ontbrekende `}' in het argument voor %cdef" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "Functie" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "Makro" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "Speciaal Formulier" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "Variabele" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "Gebruikersoptie" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "Instantievariabele" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "Methode" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +#, fuzzy +msgid "on" +msgstr "geen" + +# Is die x een foutje? +#: makeinfo/defun.c:656 +#, fuzzy, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "Moet in een `%s' `insertion' zitten om `%s'x te gebruiken" + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "%s: getwd: %s, %s\n" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "`%c%s' heeft een argument `{...}' nodig, niet slechts `%s'" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "Geen afsluitende accolade voor voetnoot `%s'" + +# mooi vertaald he? +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "Voetnoot gedefinieerd zonder referentie pagina" + +#: makeinfo/footnote.c:278 +#, fuzzy +msgid "Footnotes" +msgstr "-Voetnoten" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "" + +#: makeinfo/index.c:212 +#, c-format +msgid "Unknown index `%s'" +msgstr "Onbekende index `%s'" + +#: makeinfo/index.c:382 +#, c-format +msgid "Index `%s' already exists" +msgstr "Index `%s' bestaat al" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "Onbekende index `%s' en/of `%s' in @synindex" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "Onbekende index `%s' in @printindex" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "Verkeerd-Type in insertion_type_pname" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "Enumeratiestapel overloop" + +# FIXME: hoe vertaal je `lettering'? tegenover enumerating +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "lettering overloop, start opnieuw bij %c" + +# FIXME: formatter? +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s vereist een argument: de formatteerder voor %citem" + +#: makeinfo/insertion.c:623 +#, fuzzy, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "`%cend' verwachtte `%s', maar heb `%s' gezien" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "Geen overeenkomende `%cend %s'" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "%s vereist een letter of cijfer" + +#: makeinfo/insertion.c:1046 +#, fuzzy +msgid "@menu seen before first @node, creating `Top' node" +msgstr "%cmenu gezien voor de eerste pagina" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +#, fuzzy +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "%cmenu gezien voor de eerste pagina" + +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" +msgstr "Niet overeenkomende `%c%s'" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "`%c%s' verwacht er iets na" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "Verkeerd argument voor `%s', `%s', gebruik `%s'" + +#: makeinfo/insertion.c:1175 +#, fuzzy, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "%citemx is zinloos in een `%s' blok" + +#: makeinfo/insertion.c:1184 +#, fuzzy, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "%citemx is zinloos in een `%s' blok" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "%c%s buiten een invoeg-blok gevonden" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "%c%s verwacht `i' of `j' als argument, niet `%c'" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "%c%s verwacht één enkele `i' of `j' als argument" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "makro `%s' al eerder gedefinieerd" + +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "hier is de vorige definitie van `%s'" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "" + +#: makeinfo/macro.c:403 +#, fuzzy, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "Makro `%s' aangeroepen met te veel argumenten" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "%cend makro niet gevonden" + +#: makeinfo/macro.c:634 +#, fuzzy +msgid "@quote-arg only useful for single-argument macros" +msgstr "" +"%cquote-arg is allen nuttig indien de makro slechts een argument verwacht" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: waarschuwing: " + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "Te veel fouten! Ik heb het maar opgegeven.\n" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "Verkeerd geplaatste %c" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Probeer `%s --help' voor meer informatie.\n" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +# tot hier (half af) +#: makeinfo/makeinfo.c:391 +#, fuzzy, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +"Aanroep: %s [OPTIE]... TEXINFO-BESTAND...\n" +"\n" +"Vertaal Texinfo brondocumentatie naar een formaat dat geschikt is om " +"gelezen\n" +"te worden met GNU Info.\n" +"\n" +"Opties:\n" +"-D VAR definieer een variabele, zoals met @set.\n" +"-E MACRO-OFILE behandel alleen makro's, schrijf texinfo broncode.\n" +"-I MAP voeg MAP toe achter het @include mappenzoekpad.\n" +"-P MAP voeg MAP toe voor het @include mappenzoekpad.\n" +"-U VAR ondefinieer een variabele, zoals met @clear.\n" +"--error-limit NUM beëindig na een NUM aantal fouten (standaard %d).\n" +"--fill-column POS breek regels af op positie POS (standaard %d).\n" +"--footnote-style STIJL schrijf voetnoten volgens STIJL:\n" +" `separate' om voetnoten in een eigen pagina te " +"plaatsen,\n" +" `end' om voetnoten aan het einde van de pagina te " +"plaatsen\n" +" waarin ze gedefinieerd zijn (standaard).\n" +"--force bewaar de uitvoer ook bij fouten.\n" +"--help laat deze hulp zien en beëindig.\n" +"--no-validate onderdruk validatie van referenties.\n" +"--no-warn onderdruk waarschuwingen (maar fouten niet).\n" +"--no-split onderdruk het splitsen van grote bestanden.\n" +"--no-headers onderdruk paginascheidingen en Pagina: Foo koppen.\n" +"--output BEST, -o BEST schrijf naar BEST, en negeer een @setfilename.\n" +"--paragraph-indent VAL spring alinea's in met VAL spaties (standaard %d).\n" +" spring niet in indien VAL `none' is; behoud " +"bestaande\n" +" inspringing indien VAL `asis' is.\n" +"--reference-limit NUM klaag over hoogstens NUM verwijzingen (standaard " +"%d).\n" +"--verbose meld wat gedaan wordt.\n" +"--version geef versie-informatie en beëindig.\n" +"\n" +"Meld fouten in het programma aan bug-texinfo@gnu.org;\n" +"meld onjuistheden in de vertaling aan nl@li.org.\n" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: %s argument moet numeriek zijn, niet `%s'.\n" + +# Vanaf hier +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "Kon uitvoer `%s' voor makro-uitbreiding niet openen" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "Je kunt niet meer dan een uitvoer voor makro-uitbreiding geven" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: argument voor --paragraph-indent moet numeriek, `none' of `asis' zijn, " +"niet `%s'.\n" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" +"%s: argument voor --footnote-style moet `separate' of `end' zijn, niet " +"`%s'.\n" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "%s: ontbrekend bestandsargument\n" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "Verwachtte `%s'" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "Geen `%s' gevonden in `%s'" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" +"%s: Makro uitbreiding naar de standaard uitvoer overgeslagen, want de " +"uitvoer\n" +"van Info gaat daar al heen.\n" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "Bezig met het maken van een %s-bestand `%s' van `%s'.\n" + +#: makeinfo/makeinfo.c:1358 +#, fuzzy, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "Dit is Info bestand %s, gemaakt door Makeinfo versie %d.%d" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: makro uitvoer bestand `%s' weggehaald wegens fouten; gebruik --force om " +"te bewaren.\n" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: uitvoer bestand `%s' weggehaald wegens fouten; gebruik --force om te " +"bewaren.\n" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "Onbekend commando `%s'" + +#: makeinfo/makeinfo.c:1657 +#, fuzzy, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "commandoregel-argument `%s' te veel" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "%c%s verwachtte `{...}'" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "Niet-overeenkomende }" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "GEEN_NAAM!" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "%c%s ontbrekende afsluitende accolade" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "" + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "" + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "`.' of `,' moeten op een verwijzing volgen, niet %c" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "@image bestand `%s' onleesbaar: %s" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "ontbrekend bestandsnaam argument voor @image" + +#: makeinfo/makeinfo.c:3259 +#, fuzzy, c-format +msgid "{No value for `%s'}" +msgstr "{Geen waarde voor \"%s\"}" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "%c%s vereist een naam" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "Kwam bestandseinde tegen voor een overeenkomende @end %s" + +#: makeinfo/multi.c:208 +#, fuzzy +msgid "Missing } in @multitable template" +msgstr "Ontbrekende `}' in het argument voor %cdef" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "onbeheerde tekst `%s' na @multitable genegeerd" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "Te veel kolommen in `multitable' item (maximaal %d)" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "Kan kolom #%d niet selecteren in `multitabel'" + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "@tab buiten een `multitable' genegeerd" + +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "** Multikolom uitvoer van laatste regel:\n" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* kolom #%d: uitvoer = %s\n" + +#: makeinfo/node.c:250 +#, fuzzy, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "makro `%s' al eerder gedefinieerd" + +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "Pagina %s wordt geformatteerd...\n" + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "Pagina `%s' vereist een sectiecommando (bijv. %c%s)" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "" + +#: makeinfo/node.c:774 +#, fuzzy +msgid "Node:" +msgstr "Volgende" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +#, fuzzy +msgid "Next:" +msgstr "Volgende" + +#: makeinfo/node.c:793 +#, fuzzy +msgid "Previous:" +msgstr "Vorige" + +#: makeinfo/node.c:803 +#, fuzzy +msgid "Up:" +msgstr "Omhoog" + +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "%s verwijst naar niet-bestaande pagina `%s'" + +#: makeinfo/node.c:1029 +#, fuzzy +msgid "Menu" +msgstr "* Menu:\n" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "" + +# Deze zes meldingen: +# next, prev en up niet vertalen, dit is wat er in de broncode staat. +# Het is duidelijker indien onvertaald. +#: makeinfo/node.c:1115 +#, fuzzy, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "Het `next'-veld van pagina `%s' wijst niet terug op" + +#: makeinfo/node.c:1119 +#, fuzzy, c-format +msgid "This node (%s) has the bad Prev" +msgstr "Deze node (`%s') is degene met het foute `next'-veld" + +#: makeinfo/node.c:1133 +#, fuzzy +msgid "Prev" +msgstr "Vorige" + +#: makeinfo/node.c:1176 +#, fuzzy, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "Het `prev'-veld van node (`%s') wijst niet terug op" + +#: makeinfo/node.c:1180 +#, fuzzy, c-format +msgid "This node (%s) has the bad Next" +msgstr "Deze node (`%s') is degene met het foute `next'-veld" + +#: makeinfo/node.c:1194 +#, fuzzy, c-format +msgid "`%s' has no Up field" +msgstr "Node `%s' heeft geen `up'-veld" + +#: makeinfo/node.c:1197 +#, fuzzy +msgid "Up" +msgstr "Omhoog" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "" + +# Eigenlijk zouden hier de %s en de %d omgedraaid moeten worden: +# `Er wordt %d keer naar %s verwezen' +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "er wordt naar pagina `%s' %d keer verwezen" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "naar pagina `%s' wordt niet verwezen" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "" + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "" + +#: makeinfo/sectioning.c:468 +#, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "%c%s is verouderd; gebruik in plaats daarvan %c%s" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "Pagina met %ctop als sectie bestaat al" + +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "Hier is de %ctop pagina" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "%ctop wordt voor %cnode gebruikt, neem standaard %s aan" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "%s: waarschuwing: " + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "virtuele geheugen vol" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr " voor %s" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "\tProbeer `%s --help' voor een volledige lijst van opties.\n" + +#: util/install-info.c:389 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"%s [OPTIE]... [INFO-BESTAND [INHOUD-BESTAND]]\n" +"\n" +"Installeer INFO-BESTAND in het Info inhoudbestand INHOUD-BESTAND.\n" +"\n" +"Opties:\n" +"--delete Verwijder bestaande ingangen in INFO-BESTAND;\n" +" voeg geen nieuwe ingangen toe.\n" +"--dir-file=NAAM Geef bestandsnaam van het Info inhoudbestand.\n" +" Dit is equivalent aan het argument INDEX-BESTAND.\n" +"--entry=TEKST Voeg TEKST in als een Info inhoudsingang.\n" +" TEKST moet het uiterlijk hebben van een Info menukeuze\n" +" regel met nul of meer extra regels beginnend met een\n" +" leeg teken. Als je meer dan een ingang geeft, worden ze\n" +" allemaal toegevoegd. Als je geen ingangen geeft, worden\n" +" ze uit de informatie uit het Info bestand zelf " +"opgemaakt.\n" +"--help Geef deze hulp en beëindig.\n" +"--info-file=BEST Geef een Info bestand om in de inhoud in op te nemen.\n" +" Dit is gelijkwaardig aan het argument INFO-BESTAND.\n" +"--info-dir=MAP Zelfde als --dir-file=MAP/dir.\n" +"--item=TEKST Zelfde als --entry TEKST.\n" +" Een Info inhoudsingang is eigenlijk een menukeuze.\n" +"--quiet Onderdruk waarschuwingen.\n" +"--remove Zelfde als --delete.\n" +"--section=SEC Zet deze ingangen in sectie SEC van de index.\n" +" Als je meer dan een sectie geeft, worden alle ingangen\n" +" aan alle secties toegevoegd.\n" +" Als je geen ingangen geeft, worden ze uit de informatie\n" +" uit het Info bestand zelf opgemaakt.\n" +"--version Geef versie-informatie en beëindig.\n" +"\n" +"Meld fouten in het programma aan bug-texinfo@gno.org;\n" +"meld onjuistheden in de vertaling aan nl@li.org.\n" + +#: util/install-info.c:442 +#, fuzzy, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" +"Dit is het bestand .../info/dir, dat de bovenste pagina van de Info\n" +"structuur bevat, genaamd (dir)Top. De eerste keer dat je Info start,\n" +"begin je deze pagina te lezen.\n" +"\n" +"Bestand: dir Pagina: Top Dit is de bovenste pagina van de INFO " +"structuur\n" +"\n" +" Deze (Inhoud) pagina geeft een menu van hoofdonderwerpen.\n" +" \"q\" beëindigt, \"?\" geeft een lijst met allen Info commando's, \"d\"\n" +" brengt je hier terug, \"h\" geeft een inleiding voor de eerste keer,\n" +" \"mEmacs<Return>\" gaat naar de Emacs pagina's, etc.\n" +"\n" +" Binnen Emacs kun je met muisknop 2 op een item of verwijzing klikken\n" +" om er heen te gaan.\n" +"\n" +"* Menu:\n" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "%s: niet leesbaar (%s) en het kon ook niet aanmaken (%s)\n" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY zonder overeenkomende END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY zonder overeenkomende START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "%s: Geef de Info inhoud slechts een keer.\n" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "%s: Geef het Info bestand slechts een keer.\n" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "commandoregel-argument `%s' te veel" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "Geen invoerbestand gegeven; probeer --help voor meer informatie." + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "Geen inhoudbestand gegeven; probeer --help voor meer informatie." + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "geen info inhoudsingang in `%s'" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "menukeuze `%s' bestaat al, voor bestand `%s'" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "geen ingangen voor `%s' gevonden; niets verwijderd" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "geef deze hulp en beëindig" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "behoud tijdelijke bestanden na verwerking" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "behoud de tijdelijke bestanden na verwerking niet (standaard)" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "stuur uitvoor naar BESTAND" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "geef versie informatie en beëindig" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "Aanroep: %s [OPTIE]... BESTAND...\n" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "Maak een gesorteerde index voor elk TeX uitvoer BESTAND.\n" + +#: util/texindex.c:267 +#, fuzzy, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "" +"Normaal gesproken is BESTAND... `foo.??' voor een dokument `foo.texi'.\n" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opties:\n" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "%s: geen texinfo inhoudbestand" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "fout bij het heropenen van %s" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "" + +# FIXME: secondary +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "ingang %s volgt op een ingang met een alternatieve naam" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "%s; voor bestand `%s'.\n" + +#~ msgid "" +#~ "---------- Footnotes ----------\n" +#~ "\n" +#~ msgstr "" +#~ "---------- Voetnoten ----------\n" +#~ "\n" + +# tot hier (half af) +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]... TEXINFO-FILE...\n" +#~ "\n" +#~ "Translate Texinfo source documentation to various other formats:\n" +#~ "Info files suitable for reading online with Emacs or standalone GNU Info\n" +#~ "(by default); plain text (with --no-headers); or HTML (with --html).\n" +#~ "\n" +#~ "Options:\n" +#~ " -D VAR define a variable, as with @set.\n" +#~ " -I DIR append DIR to the @include search path.\n" +#~ " -P DIR prepend DIR to the @include search path.\n" +#~ " -U VAR undefine a variable, as with @clear.\n" +#~ " --commands-in-node-names allow @ commands in node names.\n" +#~ " --error-limit=NUM quit after NUM errors (default %d).\n" +#~ " --fill-column=NUM break Info lines at NUM characters (default %d).\n" +#~ " --footnote-style=STYLE output footnotes according to STYLE:\n" +#~ " `separate' to place footnotes in their own " +#~ "node,\n" +#~ " `end' to place the footnotes at the end of the\n" +#~ " node in which they are defined (the default).\n" +#~ " --force preserve output even if errors.\n" +#~ " --help display this help and exit.\n" +#~ " --html output HTML rather than Info format;\n" +#~ " implies --no-split.\n" +#~ msgstr "" +#~ "Aanroep: %s [OPTIE]... TEXINFO-BESTAND...\n" +#~ "\n" +#~ "Vertaal Texinfo brondocumentatie naar een formaat dat geschikt is om " +#~ "gelezen\n" +#~ "te worden met GNU Info.\n" +#~ "\n" +#~ "Opties:\n" +#~ "-D VAR definieer een variabele, zoals met @set.\n" +#~ "-E MACRO-OFILE behandel alleen makro's, schrijf texinfo broncode.\n" +#~ "-I MAP voeg MAP toe achter het @include mappenzoekpad.\n" +#~ "-P MAP voeg MAP toe voor het @include mappenzoekpad.\n" +#~ "-U VAR ondefinieer een variabele, zoals met @clear.\n" +#~ "--error-limit NUM beëindig na een NUM aantal fouten (standaard %d).\n" +#~ "--fill-column POS breek regels af op positie POS (standaard %d).\n" +#~ "--footnote-style STIJL schrijf voetnoten volgens STIJL:\n" +#~ " `separate' om voetnoten in een eigen pagina te " +#~ "plaatsen,\n" +#~ " `end' om voetnoten aan het einde van de pagina te " +#~ "plaatsen\n" +#~ " waarin ze gedefinieerd zijn (standaard).\n" +#~ "--force bewaar de uitvoer ook bij fouten.\n" +#~ "--help laat deze hulp zien en beëindig.\n" +#~ "--no-validate onderdruk validatie van referenties.\n" +#~ "--no-warn onderdruk waarschuwingen (maar fouten niet).\n" +#~ "--no-split onderdruk het splitsen van grote bestanden.\n" +#~ "--no-headers onderdruk paginascheidingen en Pagina: Foo koppen.\n" +#~ "--output BEST, -o BEST schrijf naar BEST, en negeer een @setfilename.\n" +#~ "--paragraph-indent VAL spring alinea's in met VAL spaties (standaard %d).\n" +#~ " spring niet in indien VAL `none' is; behoud " +#~ "bestaande\n" +#~ " inspringing indien VAL `asis' is.\n" +#~ "--reference-limit NUM klaag over hoogstens NUM verwijzingen (standaard " +#~ "%d).\n" +#~ "--verbose meld wat gedaan wordt.\n" +#~ "--version geef versie-informatie en beëindig.\n" +#~ "\n" +#~ "Meld fouten in het programma aan bug-texinfo@gnu.org;\n" +#~ "meld onjuistheden in de vertaling aan nl@li.org.\n" + +#~ msgid "The `%c%s' command is meaningless within a `@%s' block" +#~ msgstr "Het `%c%s' commando is zinloos in een `@%s' blok" + +#~ msgid "Virtual memory exhausted in %s ()! Needed %d bytes." +#~ msgstr "Virtueel geheugen vol in %s ()! Had %d bytes nodig." + +#~ msgid "How did @%s end up in cm_special_char?\n" +#~ msgstr "Hoe kwam @%s in cm_special_char terecht?\n" + +#~ msgid "multitable item not in active multitable" +#~ msgstr "`multitable' item niet in een aktieve `multitable'" + +#, fuzzy +#~ msgid "Up field for `%s' is `%s', but `%s' lacks menu item for `%s'" +#~ msgstr "" +#~ "`%s' heeft `%s' als `up'-veld, maar `%s' heeft geen menukeuze voor `%s'" + +#~ msgid " times" +#~ msgstr " keer" + +#~ msgid "%d times" +#~ msgstr "%d keer" + +#~ msgid "Top" +#~ msgstr "Top" + +#~ msgid "Writing node \"(%s)%s\"..." +#~ msgstr "Bezig met schrijven van pagina \"(%s)%s\"..." + +#~ msgid "Printing node \"(%s)%s\"..." +#~ msgstr "Bezig met afdrukken van pagina \"(%s)%s\"..." + +#~ msgid " from the input file %s.\n" +#~ msgstr " uit het invoerbestand %s.\n" + +#~ msgid "%c%s expects a single character as an argument" +#~ msgstr "%c%s verwacht één enkel teken als argument" + +#~ msgid "Node `%s' multiply defined (line %d is first definition at)" +#~ msgstr "" +#~ "Pagina `%s' meerdere keren gedefinieerd (de eerste definitie is op regel %d)" + +#~ msgid "This node (`%s') is the one with the bad `Prev'" +#~ msgstr "Deze node (`%s') is degene met het foute `prev'-veld" + +#~ msgid "creating `Top' node" +#~ msgstr "`Top' pagina wordt aangemaakt" + +#~ msgid "" +#~ "* Menu:\n" +#~ "\n" +#~ msgstr "" +#~ "* Menu:\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ "Email bug reports to bug-texinfo@gnu.org." +#~ msgstr "" +#~ "\n" +#~ "Meld fouten in het programma aan bug-texinfo@gnu.org;\n" +#~ "meld onjuistheden in de vertaling aan nl@li.org." diff --git a/gnu/usr.bin/texinfo/po/no.gmo b/gnu/usr.bin/texinfo/po/no.gmo Binary files differnew file mode 100644 index 00000000000..23d75930650 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/no.gmo diff --git a/gnu/usr.bin/texinfo/po/no.po b/gnu/usr.bin/texinfo/po/no.po new file mode 100644 index 00000000000..71ac2baf0e0 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/no.po @@ -0,0 +1,2527 @@ +# Norwegian translation of messages for Texinfo 3.12t (bokmål dialect). +# Copyright (C) 1999 Free Software Foundation, Inc. +# Trond Endrestøl <endrestol@hotmail.com>, 1998. +# +msgid "" +msgstr "" +"Project-Id-Version: Texinfo 3.12t\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-09-20 23:27+02:00\n" +"Last-Translator: Trond Endrestøl <endrestol@hotmail.com>\n" +"Language-Team: Norwegian-bokmål <no@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "Flytte forover et tegn" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "Flytte bakover et tegn" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "Flytte til starten av denne linjen" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "Flytte til slutten av denne linjen" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "Flytte forover et ord" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "Flytte tilbake et ord" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "Slette tegnet under markøren" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "Slette tegnet bak markøren" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "Avbryte eller avslutte operasjon" + +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "Godta (eller tvinge fullføring av) denne linjen" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "Sette inn neste tegn ordrett" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "Sette inn dette tegnet" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "Sette inn en tabulator" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "Transponere tegnet ved punktet" + +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "Rykke tilbake innholdet fra forrige felling" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "Fellingsringen er tom" + +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "Rykke tilbake en tidligere felling" + +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "Slette til slutten av linjen" + +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "Slette til begynnelsen av linjen" + +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "Slette ordet etter markøren" + +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "Slette ordet før markøren" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "Ikke fullstendig" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "Liste mulige fullføringer" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "Ingen fullføringer" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "Eneste fullføring" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "En fullføring:\n" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "%d fullføringer:\n" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "Sett inn fullføring" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "Bygger fullføringer..." + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "Rulle fullføringsvinduet" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "Fotnoter kunne ikke vises" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "Vise fotnotene assosiert med denne noden i et annet vindu" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "Lete opp en streng i indeksen til denne filen" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "Finner indeksinnslag..." + +#: info/indices.c:212 +msgid "No indices found." +msgstr "Ingen indekser funnet." + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "Indeksinnslag: " + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" +"Gå til det neste passende indeksinnslaget fra forrige " +"'\\[index-search]'-kommando" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "Ingen tidligere indekssøkestrenger." + +#: info/indices.c:349 +msgid "No index entries." +msgstr "Ingen indeksinnslag." + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "Ingen %sindeksinnslag inneholdende «%s»." + +#: info/indices.c:383 +msgid "more " +msgstr "mer " + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "KAN IKKE SE DETTE" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "Fant «%s» i %s. («\\[next-index-match]» prøver å finne den neste.)" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "Sjekker indekser i «%s»..." + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" +"Kravle gjennom alle kjente infofilers indekser etter en streng og bygge opp " +"en meny" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "Indeksapropos: " + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" +"\n" +"* Menu: Noder med indekser som inneholder «%s»:\n" + +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "Prøv --help for mer informasjon.\n" + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"Det finnes INGEN garanti. Du kan redistribuere denne programvaren\n" +"etter betingelsene i GNU General Public License. For mer informasjon\n" +"om dette, se filen COPYING.\n" + +#: info/info.c:461 +#, c-format +msgid "no index entries found for `%s'\n" +msgstr "ingen innslag funnet for «%s»\n" + +#: info/info.c:530 +#, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Bruksmåte: %s [VALG]... [MENYPUNKT...]\n" +"\n" +"Lese dokumentasjon i Infoformat.\n" +"\n" +"Valg:\n" +" --apropos=EMNE søke etter EMNE i alle indeksene til alle " +"Infofilene.\n" +" --directory=KAT legge til KAT til INFOPATH.\n" +" --dribble=FILNAVN huske brukerens tastetrykk i FILNAVN.\n" +" --file=FILNAVN angi Infofilen som skal besøkes.\n" +" --help vise denne hjelpen og avslutte.\n" +" --index-search=STRENG gå til noden pekt på av indeksoppslaget STRENG.\n" +" --node=NODENAVN angi noder i første besøkte Infofil.\n" +" --output=FILNAVN skrive ut utvalgte noder til FILNAVN.\n" +" --restore=FILNAVN lese innledende tastetrykk fra FILNAVN.\n" +" --show-options, --usage gå til kommandolinje-valg-noden.\n" +" --subnodes rekursivt skrive ut menypunkter.\n" +"%s --vi-keys bruke vi-aktige og less-aktige tastebindinger.\n" +" --version vise programversjon og avslutte.\n" +"\n" +"Det første ikke-valg-argumentet, dersom tilstede, er menypunktet som du\n" +"starter fra; det blir søkt etter i alle «dir»-filer langs med INFOPATH.\n" +"Dersom det ikke er tilstede, vil info flette sammen alle «dir»-filene\n" +"og vise resultatet. Øvrige gjenværende argumenter blir behandlet som\n" +"navnene til menypunktene relativ til den første besøkte noden.\n" +"\n" +"Eksempler:\n" +" info vise toppnivå dirmeny\n" +" info emacs starte ved emacs-noden fra toppnivå dir\n" +" info emacs buffers starte ved buffers-noden i emacs-manualen\n" +" info --show-options emacs starte ved emacs kommandolinjevalg\n" +" info -f ./foo.info vise filen ./foo.info, ikke søke gjennom dir\n" +"\n" +"Send bugrapport til bug-texinfo@gnu.org,\n" +"generelle spørsmål og diskusjoner til help-texinfo@gnu.org.\n" + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "Kan ikke slette noden «%s»" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "Kan ikke slette noden «%s»" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "Kan ikke slette et permanent vindu" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "Kan ikke slette et permanent vindu" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "Ingen meny i noden «%s»." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "Ingen kryssreferanser i denne noden." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "Ingen kryssreferanser i denne noden." + +#: info/info.c:612 +#, c-format +msgid "No `%s' pointer for this node." +msgstr "Ingen «%s»-peker for denne noden." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "Flytte til starten av denne noden" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "Flytte til starten av denne noden" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +# The next translation should match the length of this one +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "Grunnleggende kommandoer i infovinduer\n" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "**************************************\n" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr " %-10s Avslutte denne hjelpen.\n" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr " %-10s Avslutte Info fullstendig.\n" + +#: info/infodoc.c:50 +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr " %-10s Starte Infoopplæring.\n" + +# The next translation should match the length of this one +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "Flytte innen en node:\n" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "---------------------\n" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr " %-10s Rulle forover en side.\n" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr " %-10s Rulle bakover en side.\n" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr " %-10s Gå til begynnelsen av denne noden.\n" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr " %-10s Gå til slutten av denne noden.\n" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr " %-10s Rulle forover 1 linje.\n" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr " %-10s Rulle bakover 1 linje.\n" + +# The next translation should match the length of this one +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "Velger andre noder:\n" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "-------------------\n" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr " %-10s Flytte til «neste»-noden etter denne noden.\n" + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr " %-10s Flytte til «forrige»-noden før denne noden.\n" + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr " %-10s Flytte «up» fra denne noden.\n" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr " %-10s Velge menypunkt spesifisert ved navn.\n" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" +" Valg av menypunkt fører til at en annen node blir valgt.\n" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr " %-10s Følge en kryssreferanse. Leser navnet til referansen.\n" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr " %-10s Flytte til den siste noden sett i dette vinduet.\n" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr " %-10s Flytte til neste hypertekstlenke innen denne noden.\n" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr " %-10s Følge hypertekstlenken under markøren.\n" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr " %-10s Flytte til «katalog»-noden. Det samme som «g (DIR)».\n" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr " %-10s Flytte til «Top»-noden. Det samme som «g Top».\n" + +# The next translation should match the length of this one +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "Andre kommandoer:\n" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "-----------------\n" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr " %-10s Velge første ... niende punkt i nodens meny.\n" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr " %-10s Velge det siste punktet i nodens meny.\n" + +# This translation is connected to the next one +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr " %-10s Søke etter en spesifikk streng i indeksinnslagene i denne\n" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" +" infofil, og velge noden referert av det første oppslaget " +"funnet.\n" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr " %-10s Flytte til noden spesifisert av navn.\n" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr "" +" Du kan like godt inkludere et filnavn, som i " +"(FILNAVN)NODENAVN.\n" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr " %-10s Søke gjennom denne Infofilen for en spesifikk streng,\n" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" +" og velge den noden som i det neste tilfellet blir funnet.\n" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr " %-10s Søke gjennom denne Infofilen for en spesifikk streng,\n" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "Gjeldende søkesti er:\n" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" +"Kommandoer tilgjengelig i Infovinduer:\n" +"\n" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" +"Kommandoer tilgjengelig i ekkoområdet:\n" +"\n" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" +"Følgende kommandoer kan bare bli påkallet via M-x:\n" +"\n" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "--- Bruk «\\[history-node]» eller «\\[kill-node]» for å avslutte ---\n" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "Vise hjelpemelding" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "Vise infonoden «(info)Help»" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "Skrive ut dokumentasjonen for KEY" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "Beskriv tast: %s" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "ESC %s er udefinert." + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "%s er udefinert." + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "%s er definert som %s." + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "Vise hva som må tastes for å utføre en gitt kommando" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "Hvor er kommandoen: " + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "«%s» er ikke på noen taster" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "%s kan bare bli påkallet via %s." + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "%s kan bli påkallet via %s." + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "Det finnes ingen funksjon ved navn «%s»" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "Lese inn navnet på en infokommando og beskrive den" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "Beskriv kommandoen: " + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "Lese et kommandonavn i ekkoområdet og utføre den" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "Kan ikke utføre en «echo-area»-kommando her." + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "Sette høyden på det viste vinduet" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "Sette skjermhøyde til (%d): " + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" +" Kildefiler søkt gjennom for å lage denne filen inkluderer:\n" +"\n" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "Kunne ikke manipulere filen %s.\n" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" +"\n" +"* Menu:\n" +" (Fil)Node Linjer Str. Inneholdene fil\n" +" --------- ------ ---- ---------------" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" +"Her er menyen over nodene du har nylig besøkt.\n" +"Velg en fra denne menyen, eller bruk «\\[history-node]» i et annet vindu.\n" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "Lag et vindu inneholdene en meny over alle de nylig besøkte nodene" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "Velge en node som har blitt tidligere besøkt i et synlig vindu" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "Velg besøkt node: " + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "Referansen forsvant! (%s)." + +#: info/session.c:169 +#, fuzzy, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" +"Velkommen til Info versjon %s. «\\[get-help-window]» for hjelp, " +"«\\[menu-item]» for menypunkt." + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "Flytte ned til neste linje" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "Flytte opp til den forrige linjen" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "Flytte til slutten av linjen" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "Flytte til starten av linjen" + +#: info/session.c:884 makeinfo/node.c:1092 +msgid "Next" +msgstr "neste" + +#: info/session.c:887 +msgid "Following Next node..." +msgstr "Følger nestenoden..." + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "Velger første menypunkt..." + +#: info/session.c:915 +msgid "Selecting Next node..." +msgstr "Velger nestenoden..." + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "Flytter opp %d gang(er), deretter neste." + +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "Ingen flere noder i dette dokumentet." + +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." +msgstr "Ingen «forrige» for denne noden." + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." +msgstr "Flytter til forrige i dette vinduet." + +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "Ingen «forrige» eller «opp» for denne noden i dette dokumentet." + +#: info/session.c:1053 +msgid "Moving Up in this window." +msgstr "Flytter opp i dette vinduet." + +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." +msgstr "Flytter til «forrige»s siste menypunkt." + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "Flytte forover eller ned gjennom nodestrukturen" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "Flytte tilbake eller opp gjennom nodestrukturen" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "Rulle forover i dette vinduet" + +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "Rulle forover i dette vinduet og sette standard vindustørrelse" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "Rulle bakover i dette vinduet" + +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "Rulle bakover i dette vinduet og sette standard vindustørrelse" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "Flytte til starten av denne noden" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "Flytte til slutten av denne noden" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "Rulle ned pr. antall linjer" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "Rulle opp pr. antall linjer" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "Rulle ned en halv side" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "Rulle opp en halv side" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "Velge neste vindu" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "Velge forrige vindu" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "Dele gjeldende vindu" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "Slette den gjeldende vindu" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "Kan ikke slette et permanent vindu" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "Slette alle andre vinduer" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "Rulle det andre vinduet" + +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "Rulle det andre vinduet bakover" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "Øke (eller minke) dette vinduet" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "Dele den tilgjengelige skjermplassen mellom de synlige vinduene" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "Veksle tilstanden til linjebryting i gjeldende vindu" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +msgid "Select the Next node" +msgstr "Velge neste node" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +msgid "Select the Prev node" +msgstr "Velge forrige node" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +msgid "Select the Up node" +msgstr "Velge oppnoden" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "Velge den siste noden i denne filen" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "Dette vinduet har ingen andre noder" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "Velge første node i denne filen" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "Velge det siste punktet i nodens meny" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "Velge dette menypunktet" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "Det er ikke %d punkter i denne menyen." + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "Menypunkt (%s): " + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "Menypunkt: " + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "Følge kryssreferanse (%s): " + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "Følge kryssreferanse: " + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "Lese et menyvalg og velge dens node" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "Lese en fotnote eller kryssreferanse og velge dens node" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "Flytte til starten av denne nodens meny" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "Besøke så mange menypunkter som mulig samtidig" + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "Lese et nodenavn og velge det" + +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "Gå til node: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "Ingen meny i noden «%s»." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "Ingen menypunkt «%s» i noden «%s»." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "Klarte ikke å finne noden referert av «%s» i «%s»." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "Lese en liste over menyer fra dir og følge dem" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "Følge menyer: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "Finne noden som beskriver bruksmåten for programmet" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "Finne Invocation-noden til [%s]: " + +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "Lese en manualside-referanse og velge den" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "Hent manualsiden: " + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "Velge «Top»-noden i denne filen" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "Velge noden «(dir)»" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "Slette noden (%s): " + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "Kan ikke slette noden «%s»" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "Kan ikke slette den forrige noden" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "Velge den sist valgte noden" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "Slette denne noden" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "Lese inn navnet på en fil og velge den" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "Finne fil: " + +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." +msgstr "Kan ikke finne «%s»." + +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." +msgstr "Kunne ikke opprette utskriftsfil «%s»." + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "Ferdig." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." +msgstr "Skriver noden «%s»..." + +# I need a better substitute for the verb «to pipe». +# «Å pipe» sounds no good to me. +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "«Pipe» innholdet av denne noden gjennom INFO_PRINT_COMMAND" + +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." +msgstr "Kan ikke åpne «pipe» til «%s»." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." +msgstr "Skriver ut noden «%s»..." + +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." +msgstr "Søker i delfil «%s»..." + +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" +msgstr "" +"Lese inn en streng og søke etter den med skille på store og små bokstaver" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "Lese inn en streng og søke etter den" + +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "Lese inn en streng og søke bakover etter den" + +#: info/session.c:3573 +#, c-format +msgid "%s%sfor string [%s]: " +msgstr "%s%setter streng [%s]: " + +#: info/session.c:3574 +msgid "Search backward" +msgstr "Søke bakover" + +#: info/session.c:3574 +msgid "Search" +msgstr "Søke" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr " med skille på store og små bokstaver " + +#: info/session.c:3575 +msgid " " +msgstr " " + +#: info/session.c:3615 +msgid "Search failed." +msgstr "Søk mislyktes" + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "Gjenta forrige søk i samme retning" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "Ingen tidligere søkestreng" + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "Gjenta forrige søk i motsatt retning" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "Søke interaktivt for en streng mens du skriver" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "I-søk bakover: " + +#: info/session.c:3763 +msgid "I-search: " +msgstr "I-søk: " + +#: info/session.c:3788 +msgid "Failing " +msgstr "Mislyktes " + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "Flytte til forrige kryssreferanse" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "Flytte til neste kryssreferanse" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "Velge referanse eller menypunkt på denne linjen" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "Avbryte gjeldende operasjon" + +#: info/session.c:4292 +msgid "Quit" +msgstr "Avbrutt" + +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" +msgstr "Flytte markøren til en angitt linje i vinduet" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "Tegne skjermen på nytt" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "Avslutte Info" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "Ukjent kommando (%s)." + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "«» er ugyldig" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "«%s» er ugyldig" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "Legge til dette siffret til det gjeldende numeriske argumentet" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "Starte (eller multiplisere med 4) den gjeldende numeriske argumentet" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "Brukt internt av \\[universal-argument]" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "readline: Tomt for virtuelt minne!\n" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "Når «On», oppstår og forsvinner fotnoter automatisk" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "" +"Når «On», laging eller fjerning av vinduer endrer størrelsen på andre vinduer" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "Når «On», blink skjermen istedet for å ringe i bjellen." + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "Når «On», feil får bjellen til å ringe" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "Når «On», Info søppelhenter filer som måtte dekomprimeres" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "Når «On», den delen av en matchende søkestreng blir uthevet" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "" +"Kontrollerer hva som skjer når rulling er ønsket ved slutten av en node" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "Antall linjer som skal rulles når markøren flyttes utenfor vinduet" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "Når «On», aksepterer og viser Info ISO-Latin-tegn" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "Forklar bruken av en variabel" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "Beskriv variabel: " + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "Sette verdien til en Infovariabel" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "Sett variabel: " + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "Sette %s til verdien (%d): " + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "Sette %s til verdien (%s): " + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "--*** Tagger er ute av synk ***" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "-----Info: (), linjer ----, " + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "-%s---Info: %s, %d linjer --%s--" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "-%s%s-Info: (%s)%s, %d linjer --%s--" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr " Delfil: %s" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: valget «%s» er flertydig\n" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: valget «--%s» tillater ikke et argument\n" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: valget «%c%s» tillater ikke et argument\n" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: valget «%s» krever et argument\n" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: ukjent valg «--%s»\n" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: ukjent valg «%c%s»\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ulovlig valg -- %c\n" + +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: ugyldig valg -- %c\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: valget krever et argument -- %c\n" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: valget «-W %s» er flertydig\n" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: valget «-W %s» tillater ikke et argument\n" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "januar" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "februar" + +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "mars" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "april" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "mai" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "juni" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "juli" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "august" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "september" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "oktober" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "november" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "desember" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "usannsynlig tegn %c i @var" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "@sc-argument med store bokstaver, dermed ingen effekt" + +#: makeinfo/cmds.c:754 +#, c-format +msgid "%c%s is obsolete" +msgstr "%c%s er utgått" + +#: makeinfo/cmds.c:814 +#, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "@sp krever et positivt numerisk argument, ikke `%s'" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "Ugyldig argument til %c%s" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "asis" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "none" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "Manglende «}» i @def-arg" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "Funksjon" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "Makro" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "Spesiell form" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "Variabel" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "Brukervalg" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "Forekomst" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "Metode" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "av" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" +msgstr "på" + +#: makeinfo/defun.c:656 +#, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "Må være i en «%s»-innsetting for å bruke «%sx»" + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "%s: getwd: %s, %s\n" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "«%c%s» trenger et argument «{...}», ikke bare «%s»" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "Ingen avsluttende krøllparentes for fotnoten «%s»" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "Fotnote definert uten foreldrenode" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "Fotnoter" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "Uten navn" + +#: makeinfo/index.c:212 +#, c-format +msgid "Unknown index `%s'" +msgstr "Ukjent indeks «%s»" + +#: makeinfo/index.c:382 +#, c-format +msgid "Index `%s' already exists" +msgstr "Indeksen «%s» eksisterer allerede" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "Ukjent indeks «%s» og/eller «%s» i @synindex" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "Ukjent indeks «%s» i @printindex" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "Innslag for indeksen «%s» utenfor node" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "(utenfor noder)" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "Broken-Type i insertion_type_pname" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "Stakkoverflyt ved oppramsing" + +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "bokstavoverflyt, starter på nytt ved %c" + +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s krever et argument: formattereren for %citem" + +#: makeinfo/insertion.c:623 +#, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "`@end' forventet «%s», men så «%s»" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "Ingen tilsvarende «%cend %s»" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "%s krever en bokstav eller et siffer" + +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "@menu sett før første @node, oppretter «Top»-noden" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "" +"kanskje burde din @top-node bli pakket inn i @ifnottex istedet for @ifinfo?" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "@detailmenu sett før første node, oppretter «Top»-noden" + +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" +msgstr "Umatchet «%c%s»" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "«%c%s» trenger noe etter den" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "Ugyldig argument til «%s», «%s», bruker «%s»" + +#: makeinfo/insertion.c:1175 +#, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "@%s er meningsløs innenfor en «%s»-blokk" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "@itemx er meningsløs innenfor en «%s»-blokk" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "%c%s funnet utenfor en innsettingsblokk" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "%s er ikke en gyldig ISO 639-språkkode" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "%c%s forventer «i» eller «j» som argument, ikke «%c»" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "%c%s forventer et enkelt tegn, «i» eller «j» som argument" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "makroen «%s» er tidligere definert" + +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "her er den tidligere definisjonen av «%s»" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "\\ i makroekspansjon fulgt av «%s» istedet for \\ eller parameternavn" + +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "Makroen «%s» kalt på linje %d med for mange argumenter" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "%cend macro ikke funnet" + +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "@quote-arg bare brukbart når makroen bare tar et argument" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "umatchet @end %s med @%s" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: advarsel: " + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "For mange feil! Ga opp.\n" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "Feilplassert %c" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Prøv «%s --help» for mer informasjon.\n" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" +"Bruksmåte: %s [VALG]... TEXINFOFIL...\n" +"\n" +"Oversette Texinfo-kilde-dokumentasjon til forskjellige andre formater:\n" +"Infofiler laget for lesing online med Emacs eller frittstående GNU Info\n" +"(som standard); ren tekst (med --no-headers); eller HTML (med --html).\n" +"\n" +"Valg:\n" +" --commands-in-node-names tillate @-kommandoer i nodenavn.\n" +" -D VAR definere en variabel, som med @set.\n" +" -E, --macro-expand FIL skrive ut makroekspandert kilde til FIL.\n" +" --error-limit=ANT avbryte etter ANT feil (standard %d).\n" +" --fill-column=ANT bryte Infolinjer ved ANT tegn (standard %d).\n" +" --footnote-style=STIL skrive ut fotnoter i henhold til STIL:\n" +" «separate» for å plassere fotnotene i egne " +"noder,\n" +" «end» for å plassere fotnotene ved slutten av\n" +" noden de er definert i (standard).\n" +" --force bevar utskrift selv med feil.\n" +" --help vise denne hjelpen og avslutte.\n" +" --html skrive ut HTML i stedet for Infoformat;\n" +" -I KAT tilføye KAT til @include-søkelisten.\n" +" --ifhtml behandle @ifhtml og @html-tekst selv når ikke\n" +" HTML genereres.\n" +" --ifinfo behandle @ifinfo-tekst selv når HTML genereres.\n" +" --iftex behandle @iftex og @tex-tekst.\n" +" innebærer --no-split.\n" + +#: makeinfo/makeinfo.c:391 +#, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +" --no-headers undertrykke Infonodeseparatorer og Node:-linjer " +"og\n" +" skrive til standard ut uten --output.\n" +" --no-ifhtml ikke behandle @ifhtml og @html-tekst.\n" +" --no-ifinfo ikke behandle @ifinfo-tekst.\n" +" --no-iftex ikke behandle @iftex og @tex-tekst.\n" +" --no-split undertrykke oppdeling av store Infofiler eller\n" +" generering av en HTML-fil pr. node.\n" +" --no-validate undertrykke kontroll av kryssreferanser.\n" +" --no-warn undertrykke advarsler (men ikke feil).\n" +" --number-sections numerere kapitler, avsnitt, etc. i utskrift.\n" +" -o, --output=FIL skrive ut til FIL, ignorerer enhver " +"@setfilename.\n" +" -P DIR tilføye KAT på starten til @include-søkelisten.\n" +" --paragraph-indent=ANT rykke inn Info-avsnitt med ANT mellomrommer " +"(standard %d).\n" +" dersom ANT er «none», ikke rykk inn;\n" +" dersom ANT er «asis»', bevares eksisterende " +"innrykk.\n" +" --reference-limit=ANT advar på det meste om ANT referanser (standard " +"%d).\n" +" -U VAR udefinere en variabel, som med @clear.\n" +" -v, --verbose forklar hva som blir gjort.\n" +" --version vise programversjon og avslutte.\n" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" +"\n" +"Standardene for @if...-betingelsene avhenger av outputformatet:\n" +"dersom generere HTML, er --ifhtml på og de andre er av;\n" +"dersom generere Info eller ren tekst, er --ifinfo på og de andre av.\n" +"\n" +"Eksempler:\n" +" makeinfo foo.texi skrive Info til foos @setfilename\n" +" makeinfo --html foo.texi skrive HTML til foos @setfilename\n" +" makeinfo --no-headers -o - foo.texi skrive ren tekst til standard ut\n" +" makeinfo --number-sections foo.texi skrive Info med nummererte avsnitt\n" +" makeinfo --no-split foo.texi skrive en Infofil uansett størrelse\n" +"\n" +"Send bugrapporter til bug-texinfo@gnu.org,\n" +"generelle spørsmål og diskusjoner til help-texinfo@gnu.org." + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: %s arg må være numerisk, ikke «%s».\n" + +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "Kunne ikke åpne filen «%s» for utskrift av makroekspansjon" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "Kan ikke angi mer enn en fil for utskrift av makroekspansjon" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: --paragraph-indent arg må være numerisk/«none»/«asis», ikke «%s».\n" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "%s: --footnote-style arg må være «separate» eller «end», ikke «%s».\n" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "%s: mangler filargument.\n" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "Forventet «%s»" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "Ingen «%s» funnet i «%s»" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" +"%s: Hopper over makroekspansjon til stdout siden Info-output også sendes " +"dit.\n" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "Lager %s-filen «%s» fra «%s».\n" + +#: makeinfo/makeinfo.c:1358 +#, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "Dette er %s, produsert av makeinfo versjon %s fra %s.\n" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: Fjerner makroutskriftsfilen «%s» på grunn av feil; bruk --force for å " +"bevare.\n" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: Fjerner utskriftsfilen «%s» på grunn av feil; bruk --force for å " +"bevare.\n" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "Ukjent kommando «%s»" + +#: makeinfo/makeinfo.c:1657 +#, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "Bruk krøllparenteser for å gi en kommando som et argument til @%s" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "%c%s forventet «{...}»" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "Umatchet }" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "INTET_NAVN!" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "%c%s mangler avsluttende krøllparentes" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "se " + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "Se " + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "«.» eller «,» må følge kryssreferanser, ikke %c" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "Ingen .png eller .jpg for «%s»" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "@image-fil «%s» er uleselig: %s" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "@image mangler filnavn" + +#: makeinfo/makeinfo.c:3259 +#, c-format +msgid "{No value for `%s'}" +msgstr "{Ingen verdi for «%s»}" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "%c%s krever et navn" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "Traff slutt-på-filen før matchende @end %s" + +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "Manglende «}» i @multitable-mal" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "ignorerer løs tekst «%s» etter @multitable" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "For mange kolonner i multitabellrad (maks %d)" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "Kan ikke velge kolonne #%d i multitabell" + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "ignorerer @tab utenfor multitabell" + +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "** Multikolonne-output fra siste rad:\n" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* kolonne #%d output = %s\n" + +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "Noden «%s» er tidligere definert ved linje %d" + +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "Skriver noden %s...\n" + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "Noden «%s» krever en inndelingskommando (f.eks. %c%s)" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "Ingen nodenavn spesifisert for «%c%s»-kommandoen" + +#: makeinfo/node.c:774 +msgid "Node:" +msgstr "Node:" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" +msgstr "Neste:" + +#: makeinfo/node.c:793 +msgid "Previous:" +msgstr "Forrige:" + +#: makeinfo/node.c:803 +msgid "Up:" +msgstr "Opp:" + +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "%s referanse til ikke-eksisterende node «%s»" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "Meny" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "Kryss" + +#: makeinfo/node.c:1115 +#, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "Nestefeltet til noden «%s» er ikke pekt på" + +#: makeinfo/node.c:1119 +#, c-format +msgid "This node (%s) has the bad Prev" +msgstr "Denne noden (%s) har den dårlige forrigepekeren" + +#: makeinfo/node.c:1133 +msgid "Prev" +msgstr "forrige" + +#: makeinfo/node.c:1176 +#, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "Forrigefeltet til noden «%s» er ikke pekt på" + +#: makeinfo/node.c:1180 +#, c-format +msgid "This node (%s) has the bad Next" +msgstr "Denne noden (%s) har den dårlige nestepekeren" + +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "«%s» har ikke et oppfelt" + +#: makeinfo/node.c:1197 +msgid "Up" +msgstr "opp" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "Noden «%s» mangler et menypunkt for «%s» selv om den er dens oppmål" + +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "noden «%s» har blitt referert %d ganger" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "ureferert node «%s»" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "Vedlegg %c " + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "Intern feil (search_sectioning) «%s»!" + +#: makeinfo/sectioning.c:468 +#, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "%c%s er avlegs; bruk %c%s i stedet" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "Node med %ctop som en seksjon eksisterer allerede" + +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "Her er %ctop-noden" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "%ctop brukt før %cnode, benytter %s" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "Innholdsfortegnelse" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "Kort innholdsfortegnelse" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "%s: TOC burde være her, men ble ikke funnet" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "%s: advarsel: " + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "virtuelt minne uttømt" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr " for %s" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "\tPrøv «%s --help» for en komplett liste over valg.\n" + +#: util/install-info.c:389 +#, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"Bruksmåte: %s [VALG]... [INFOFIL [DIRFIL]]\n" +"\n" +"Installere eller slette dir-innslag fra INFOFIL i Info-katalogfilen\n" +"DIRFIL.\n" +"\n" +"Valg:\n" +" --delete slette eksisterende innslag for INFOFIL fra DIRFIL;\n" +" ikke sett inn noe nye innslag.\n" +" --dir-file=NAVN angi filnavnet til Info-katalogfilen.\n" +" Dette er det samme som å bruke DIRFIL-argumentet.\n" +" --entry=TEKST sette inn TEKST som en Info-kataloginnslag.\n" +" TEKST bør ha form som et Info-menypunkt\n" +" pluss null eller flere linjer som starter med " +"whitespace.\n" +" Dersom du angir mer enn et innslag, blir alle lagt " +"til.\n" +" Dersom du ikke angir noen innslag, blir de bestemt\n" +" fra informasjon i selve Infofilen.\n" +" --help vise denne hjelpen og avslutte.\n" +" --info-file=FIL angi Infofilen som skal installeres i katalogen.\n" +" Dette er det samme som å bruke INFOFIL-argumentet.\n" +" --info-dir=DIR det samme som --dir-file=DIR/dir.\n" +" --item=TEKST det samme som --entry TEKST.\n" +" Et Info-kataloginnslag er egentlig et menypunkt.\n" +" --quiet undertrykke advarsler.\n" +" --remove det samme som --delete.\n" +" --section=AVS putte denne filens innslag i avsnittet AVS i katalogen.\n" +" Dersom du angir mer enn et avsnitt, blir alle " +"innslagene\n" +" lagt til i hver av avsnittene.\n" +" Dersom du ikke angir noen avsnitt, blir de bestemt\n" +" fra informasjon i selve Infofilen.\n" +" --version vise programversjon og avslutte.\n" +"\n" +"Send bugrapporter til bug-texinfo@gnu.org,\n" +"generelle spørsmål og diskusjoner til help-texinfo@gnu.org.\n" + +#: util/install-info.c:442 +#, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" +"Dette er filen .../info/dir, som inneholder de øverste\n" +"nodene i Info-hierarkiet, kalt (dir)Top.\n" +"Første gangen du starter Info begynner du i denne noden.\n" +"\n" +"%s\tDette er toppen av INFO-treet\n" +"\n" +" Denne katalognoden gir en meny over alle hovedemner.\n" +" Inntasting av «q» avslutter, «?» lister alle Info-kommandoene, «d» " +"returner hit,\n" +" «h» gir en innføring for nybegynnere,\n" +" «mEmacs<Return>» besøker Emacs-manualen, osv.\n" +"\n" +" I Emacs kan du klikke med musknapp 2 på et menypunkt eller kryssreferanse\n" +" for å velge den.\n" +"\n" +"* Menu:\n" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "%s: kunne ikke lese (%s) og kunne ikke opprette (%s)\n" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "%s: tom fil" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY uten tilhørende END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY uten tilhørende START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "%s: Spesifiser infokatalogen bare en gang.\n" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "%s: Spesifiser infofilen bare en gang.\n" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "overflødig argument på kommandolinjen «%s»" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "Ingen innfil angitt; prøv --help for mer informasjon." + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "Ingen dir-fil angitt; prøv --help for mer informasjon." + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "ingen info-dir-oppføring i «%s»" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "menypunktet «%s» eksisterer allerede for filen «%s»" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "fant ingen oppføringer for «%s»; ingenting slettet" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "vise denne hjelpen og avslutte" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "bevar midlertidige filer etter behandling" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "ikke bevar midlertidige filer etter behandling (standard)" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "sende utdata til FILE" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "vise programversjon og avslutte" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "Bruksmåte: %s [VALG]... FIL...\n" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "Generere en sortert indeks for hver TeX-outputfil.\n" + +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "" +"Vanligvis er FIL... angitt som «foo.%c%c» for et dokument «foo.texi».\n" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Valg:\n" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"\n" +"Send bugrapporter til bug-texinfo@gnu.org,\n" +"generelle spørsmål og diskusjoner til help-texinfo@gnu.org.\n" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "%s: ikke en texinfo-indeksfil" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "feil ved gjenåpning av %s" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "Ingen sidenummer i %s" + +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "oppføring %s følger en oppføring med et annet navn" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "%s; for filen «%s».\n" diff --git a/gnu/usr.bin/texinfo/po/ru.gmo b/gnu/usr.bin/texinfo/po/ru.gmo Binary files differnew file mode 100644 index 00000000000..56e0cf45d77 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/ru.gmo diff --git a/gnu/usr.bin/texinfo/po/ru.po b/gnu/usr.bin/texinfo/po/ru.po new file mode 100644 index 00000000000..7ffff57d5d1 --- /dev/null +++ b/gnu/usr.bin/texinfo/po/ru.po @@ -0,0 +1,2589 @@ +# ðÅÒÅ×ÏÄÙ ÓÏÏÂÝÅÎÉÊ ÄÌÑ GNU Texinfo. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Oleg S. Tihonov <tihonov@ffke-campus.mipt.ru>, 1999. +# +msgid "" +msgstr "" +"Project-Id-Version: texinfo 3.12n\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" +"PO-Revision-Date: 1999-08-06 18:21+04:00\n" +"Last-Translator: Oleg S. Tihonov <tihonov@ffke-campus.mipt.ru>\n" +"Language-Team: Russian <ru@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=koi8-r\n" +"Content-Transfer-Encoding: 8bit\n" + +#. **************************************************************** +#. +#. Echo Area Movement Commands +#. +#. **************************************************************** +#: info/echo-area.c:283 info/session.c:711 +msgid "Move forward a character" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÉÍ×ÏÌ ×ÐÅÒÅÄ" + +#. Move point backward in the node. +#: info/echo-area.c:295 info/session.c:727 +msgid "Move backward a character" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÉÍ×ÏÌ ÎÁÚÁÄ" + +#: info/echo-area.c:307 +msgid "Move to the start of this line" +msgstr "óÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÓÔÒÏËÉ" + +#: info/echo-area.c:312 +msgid "Move to the end of this line" +msgstr "óÍÅÓÔÉÔØÓÑ × ËÏÎÅà ÓÔÒÏËÉ" + +#. Move forward a word in the input line. +#: info/echo-area.c:320 info/session.c:745 +msgid "Move forward a word" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÌÏ×Ï ×ÐÅÒÅÄ" + +#: info/echo-area.c:360 info/session.c:794 +msgid "Move backward a word" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÌÏ×Ï ÎÁÚÁÄ" + +#: info/echo-area.c:400 +msgid "Delete the character under the cursor" +msgstr "õÄÁÌÉÔØ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ" + +#: info/echo-area.c:430 +msgid "Delete the character behind the cursor" +msgstr "õÄÁÌÉÔØ ÐÒÅÄÙÄÕÝÉÊ ÓÉÍ×ÏÌ" + +#: info/echo-area.c:451 +msgid "Cancel or quit operation" +msgstr "ïÔÍÅÎÉÔØ ÉÌÉ ÐÒÅÒ×ÁÔØ ÄÅÊÓÔ×ÉÅ" + +#: info/echo-area.c:466 +msgid "Accept (or force completion of) this line" +msgstr "ðÒÉÎÑÔØ (ÉÌÉ ÚÁ×ÅÒÛÉÔØ) ÔÅËÕÝÕÀ ÓÔÒÏËÕ" + +#: info/echo-area.c:471 +msgid "Insert next character verbatim" +msgstr "÷ÓÔÁ×ÉÔØ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ \"ËÁË ÅÓÔØ\"" + +#: info/echo-area.c:479 +msgid "Insert this character" +msgstr "÷ÓÔÁ×ÉÔØ ÜÔÏÔ ÓÉÍ×ÏÌ" + +#: info/echo-area.c:497 +msgid "Insert a TAB character" +msgstr "÷ÓÔÁ×ÉÔØ ÓÉÍ×ÏÌ ÔÁÂÕÌÑÃÉÉ" + +#. Transpose the characters at point. If point is at the end of the line, +#. then transpose the characters before point. +#: info/echo-area.c:504 +msgid "Transpose characters at point" +msgstr "ðÅÒÅÓÔÁ×ÉÔØ ÓÉÍ×ÏÌÙ ×ÏËÒÕÇ ÔÏÞËÉ" + +#: info/echo-area.c:555 +msgid "Yank back the contents of the last kill" +msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ ÐÏÓÌÅÄÎÉÊ ÕÎÉÞÔÏÖÅÎÎÙÊ ÔÅËÓÔ" + +#: info/echo-area.c:562 +msgid "Kill ring is empty" +msgstr "ëÏÌØÃÏ ÕÎÉÞÔÏÖÅÎÉÊ ÐÕÓÔÏ" + +#. If the last command was yank, or yank_pop, and the text just before +#. point is identical to the current kill item, then delete that text +#. from the line, rotate the index down, and yank back some other text. +#: info/echo-area.c:575 +msgid "Yank back a previous kill" +msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ ÐÒÅÄÛÅÓÔ×ÕÀÝÉÊ ÕÎÉÞÔÏÖÅÎÎÙÊ ÔÅËÓÔ" + +#. Delete the text from point to end of line. +#: info/echo-area.c:608 +msgid "Kill to the end of the line" +msgstr "õÎÉÞÔÏÖÉÔØ ÔÅËÓÔ ÄÏ ËÏÎÃÁ ÓÔÒÏËÉ" + +#: info/echo-area.c:621 +msgid "Kill to the beginning of the line" +msgstr "õÎÉÞÔÏÖÉÔØ ÔÅËÓÔ ÄÏ ÎÁÞÁÌÁ ÓÔÒÏËÉ" + +#. Delete from point to the end of the current word. +#: info/echo-area.c:633 +msgid "Kill the word following the cursor" +msgstr "õÎÉÞÔÏÖÉÔØ ÓÌÅÄÕÀÝÅÅ ÓÌÏ×Ï" + +#: info/echo-area.c:652 +msgid "Kill the word preceding the cursor" +msgstr "õÎÉÞÔÏÖÉÔØ ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï" + +#: info/echo-area.c:871 +msgid "Not complete" +msgstr "îÅ ÚÁ×ÅÒÛÅÎÏ" + +#: info/echo-area.c:916 +msgid "List possible completions" +msgstr "ðÏËÁÚÁÔØ ×ÏÚÍÏÖÎÙÅ ÚÁ×ÅÒÛÅÎÉÑ" + +#: info/echo-area.c:929 +msgid "No completions" +msgstr "úÁ×ÅÒÛÅÎÉÊ ÎÅÔ" + +#: info/echo-area.c:933 +msgid "Sole completion" +msgstr "åÄÉÎÓÔ×ÅÎÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ" + +#: info/echo-area.c:942 +msgid "One completion:\n" +msgstr "åÄÉÎÓÔ×ÅÎÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ:\n" + +#: info/echo-area.c:943 +#, c-format +msgid "%d completions:\n" +msgstr "úÁ×ÅÒÛÅÎÉÊ: %d :\n" + +#: info/echo-area.c:1089 +msgid "Insert completion" +msgstr "÷ÓÔÁ×ÉÔØ ÚÁ×ÅÒÛÅÎÉÅ" + +#: info/echo-area.c:1222 +msgid "Building completions..." +msgstr "óÏÓÔÁ×ÌÅÎÉÅ ÚÁ×ÅÒÛÅÎÉÊ..." + +#. Scroll the "other" window. If there is a window showing completions, scroll +#. that one, otherwise scroll the window which was active on entering the read +#. function. +#: info/echo-area.c:1320 +msgid "Scroll the completions window" +msgstr "ðÒÏËÒÕÔÉÔØ ÏËÎÏ ÚÁ×ÅÒÛÅÎÉÊ" + +#: info/footnotes.c:212 +msgid "Footnotes could not be displayed" +msgstr "óÎÏÓËÉ ÎÅ ÍÏÇÕÔ ÂÙÔØ ÐÏËÁÚÁÎÙ" + +#: info/footnotes.c:238 +msgid "Show the footnotes associated with this node in another window" +msgstr "ðÏËÁÚÁÔØ ÓÎÏÓËÉ, Ó×ÑÚÁÎÎÙÅ Ó ÜÔÏÊ ÎÏÄÏÊ, × ÄÒÕÇÏÍ ÏËÎÅ" + +#: info/indices.c:175 +msgid "Look up a string in the index for this file" +msgstr "îÁÊÔÉ ÓÔÒÏËÕ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÄÌÑ ÄÁÎÎÏÇÏ ÆÁÊÌÁ" + +#: info/indices.c:205 +msgid "Finding index entries..." +msgstr "ðÏÉÓË × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ..." + +#: info/indices.c:212 +msgid "No indices found." +msgstr "îÅ ÎÁÊÄÅÎ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ." + +#: info/indices.c:222 +msgid "Index entry: " +msgstr "ðÕÎËÔ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ: " + +#: info/indices.c:332 +msgid "" +"Go to the next matching index item from the last `\\[index-search]' command" +msgstr "" +"ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ ÐÕÎËÔÕ ÁÌÆÁ×ÉÔÎÏÇÏ ÕËÁÚÁÔÅÌÑ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍÕ\n" +"ÐÏÓÌÅÄÎÅÊ ËÏÍÁÎÄÅ `\\[index-search]'" + +#: info/indices.c:342 +msgid "No previous index search string." +msgstr "óÔÒÏËÁ ÐÏÉÓËÁ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÎÅ ÂÙÌÁ ÒÁÎØÛÅ ÚÁÄÁÎÁ." + +#: info/indices.c:349 +msgid "No index entries." +msgstr "îÅ ÎÁÊÄÅÎ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ." + +#: info/indices.c:382 +#, c-format +msgid "No %sindex entries containing \"%s\"." +msgstr "÷ ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ %sÎÅ ÎÁÊÄÅÎÏ ÐÕÎËÔÏ×, ÓÏÄÅÒÖÁÝÉÈ \"%s\"." + +#: info/indices.c:383 +msgid "more " +msgstr "ÂÏÌØÛÅ " + +#: info/indices.c:393 +msgid "CAN'T SEE THIS" +msgstr "üÔÏ ÎÅ×ÉÄÉÍÙÊ ÔÅËÓÔ!" + +#: info/indices.c:429 +#, c-format +msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" +msgstr "" +"îÁÊÄÅÎÁ \"%s\" × %s. (`\\[next-index-match]' ÚÁÐÕÓËÁÅÔ ÐÏ×ÔÏÒÎÙÊ ÐÏÉÓË.)" + +#: info/indices.c:549 +#, c-format +msgid "Scanning indices of \"%s\"..." +msgstr "ðÏÉÓË × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÆÁÊÌÁ \"%s\"..." + +#: info/indices.c:632 +msgid "Grovel all known info file's indices for a string and build a menu" +msgstr "" +"úÁÐÕÓËÁÅÔ ÐÏÉÓË ÓÔÒÏËÉ × ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ ×ÓÅÈ Info-ÆÁÊÌÏ× É ÓÏÚÄÁÅÔ " +"ÍÅÎÀ" + +#: info/indices.c:636 +msgid "Index apropos: " +msgstr "ëÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÄÌÑ ÐÏÉÓËÁ: " + +#: info/indices.c:666 +#, c-format +msgid "" +"\n" +"* Menu: Nodes whoses indices contain \"%s\":\n" +msgstr "" +"\n" +"* Menu: îÏÄÙ, ÞØÉ ÁÌÆÁ×ÉÔÎÙÅ ÕËÁÚÁÔÅÌÉ ÓÏÄÅÒÖÁÔ \"%s\":\n" + +#: info/info.c:248 +msgid "Try --help for more information.\n" +msgstr "ðÏÐÒÏÂÕÊÔÅ --help ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n" + +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 +#, c-format +msgid "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"There is NO warranty. You may redistribute this software\n" +"under the terms of the GNU General Public License.\n" +"For more information about these matters, see the files named COPYING.\n" +msgstr "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"íÙ îå ÐÒÅÄÏÓÔÁ×ÌÑÅÍ ÇÁÒÁÎÔÉÊ. ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÉ ÐÒÏÇÒÁÍÍÙ, ÐÒÉ\n" +"ÓÏÂÌÀÄÅÎÉÉ ÕÓÌÏ×ÉÊ õÎÉ×ÅÒÓÁÌØÎÏÊ ïÂÝÅÓÔ×ÅÎÎÏÊ ìÉÃÅÎÚÉÉ GNU.\n" +"äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÏÚÍÏÖÎÏÓÔÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÓÍÏÔÒÉÔÅ\n" +"ÆÁÊÌ COPYING.\n" + +#: info/info.c:461 +#, c-format +msgid "no index entries found for `%s'\n" +msgstr "ÄÌÑ `%s' ÎÅ ÎÁÊÄÅÎÏ ×ÈÏÖÄÅÎÉÊ × ÉÍÅÎÎÏÍ ÕËÁÚÁÔÅÌÅ\n" + +#: info/info.c:530 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" +"\n" +"Read documentation in Info format.\n" +"\n" +"Options:\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" +"\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" +"Any remaining arguments are treated as the names of menu\n" +"items relative to the initial node visited.\n" +"\n" +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [ðõîëô-íåîà...]\n" +"\n" +"ðÏÚ×ÏÌÑÅÔ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ × ÆÏÒÍÁÔÅ Info.\n" +"\n" +"ëÌÀÞÉ:\n" +"--directory=ëáôáìïç ÄÏÂÁ×ÉÔØ ëáôáìïç Ë INFOPATH.\n" +"--dribble=æáêì ÚÁÐÉÓÁÔØ ××ÏÄÉÍÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÓÉÍ×ÏÌÙ × " +"æáêì.\n" +"--file=æáêì ÐÒÏÓÍÏÔÒÅÔØ ÚÁÄÁÎÎÙÊ æáêì.\n" +"--help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n" +"--index-search=óôòïëá ÐÅÒÅÊÔÉ Ë ÎÏÄÅ, ÎÁ ËÏÔÏÒÕÀ ÓÓÙÌÁÅÔÓÑ ÚÁÄÁÎÎÏÅ\n" +" óôòïëïê ×ÈÏÖÄÅÎÉÅ ÉÍÅÎÎÏÇÏ ÕËÁÚÁÔÅÌÑ.\n" +"--node=îïäá ÎÁÞÁÔØ ÐÒÏÓÍÏÔÒ Ó ÚÁÄÁÎÎÏÊ îïäù.\n" +"--output=æáêì ÚÁÐÉÓÁÔØ ×ÙÂÒÁÎÎÙÅ ÎÏÄÙ × æáêì.\n" +"--restore=æáêì ÓÞÉÔÁÔØ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÎÁÖÁÔÙÈ ËÌÁ×ÉÛ ÉÚ " +"æáêìá.\n" +"--show-options, --usage ÐÅÒÅÊÔÉ Ë ÎÏÄÅ, ÏÐÉÓÙ×ÁÀÝÅÊ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ " +"ÓÔÒÏËÉ.\n" +"--subnodes ÒÅËÕÒÓÉ×ÎÏ ×Ù×ÏÄÉÔØ ÐÕÎËÔÙ ÍÅÎÀ.\n" +"%s --vi-keys ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉ×ÑÚËÉ ËÌÁ×ÉÛ ËÁË × vi É " +"less.\n" +"--version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n" +"\n" +"ðÅÒ×ÙÊ ÁÒÇÕÍÅÎÔ, ÎÅ Ñ×ÌÑÀÝÉÊÓÑ ËÌÀÞÏÍ, ÉÍÑ ÎÁÞÁÌØÎÏÇÏ ÐÕÎËÔÁ ÍÅÎÀ; ÏÎ\n" +"ÉÝÅÔÓÑ ×Ï ×ÓÅÈ ÆÁÊÌÁÈ `dir' × INFOPATH. åÓÌÉ ÏÎ ÎÅ ÎÁÊÄÅÎ, info\n" +"ÏÂßÅÄÉÎÑÅÔ ×ÓÅ ÆÁÊÌÙ `dir' É ÐÏËÁÚÙ×ÁÅÔ ÒÅÚÕÌØÔÁÔ. ÷ÓÅ ÏÓÔÁÌØÎÙÅ\n" +"ÁÒÇÕÍÅÎÔÙ ÒÁÓÓÍÁÔÒÉ×ÁÀÔÓÑ ËÁË ÉÍÅÎÁ ÐÕÎËÔÏ× ÍÅÎÀ ÏÔÎÏÓÉÔÅÌØÎÏ ÐÅÒ×ÏÊ\n" +"ÐÏÓÅÝÅÎÎÏÊ ÎÏÄÙ.\n" +"\n" +"ðÒÉÍÅÒÙ:\n" +" info ÐÏËÁÚÁÔØ ÍÅÎÀ ËÁÔÁÌÏÇÁ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ\n" +" info emacs ÎÁÞÁÔØ Ó ÎÏÄÙ emacs ÉÚ ËÁÔÁÌÏÇÁ ×ÅÒÈÎÅÇÏ " +"ÕÒÏ×ÎÑ\n" +" info emacs buffers ÎÁÞÁÔØ Ó ÎÏÄÙ buffers × ÒÕËÏ×ÏÄÓÔ×Å emacs\n" +" info --show-options emacs ÎÁÞÁÔØ Ó ÎÏÄÙ, ÏÐÉÓÙ×ÁÀÝÅÊ ËÌÀÞÉ emacs\n" +" info -f ./foo.info ÐÏËÁÚÁÔØ ÆÁÊÌ ./foo.info, ÎÅ ÉÓËÁÔØ dir\n" +"\n" +"ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ bug-texinfo@gnu.org,\n" +"ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ help-texinfo@gnu.org.\n" + +#: info/info.c:604 +#, fuzzy, c-format +msgid "Cannot find node `%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÄÕ `%s'" + +#: info/info.c:605 +#, fuzzy, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÄÕ `%s'" + +#: info/info.c:606 +#, fuzzy +msgid "Cannot find a window!" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÏÑÎÎÏÅ ÏËÎÏ" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +#, fuzzy +msgid "Cannot delete the last window." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÏÑÎÎÏÅ ÏËÎÏ" + +#: info/info.c:609 +#, fuzzy +msgid "No menu in this node." +msgstr "÷ ÎÏÄÅ \"%s\" ÎÅÔ ÍÅÎÀ." + +#: info/info.c:610 +#, fuzzy +msgid "No footnotes in this node." +msgstr "îÁ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌÏË." + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "îÁ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌÏË." + +#: info/info.c:612 +#, fuzzy, c-format +msgid "No `%s' pointer for this node." +msgstr "÷ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌËÉ \"óÌÅÄÕÀÝÁÑ\"." + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +#, fuzzy +msgid "You are already at the last page of this node." +msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÎÏÄÙ" + +#: info/info.c:616 +#, fuzzy +msgid "You are already at the first page of this node." +msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÎÏÄÙ" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "ïÓÎÏ×ÎÙÅ ËÏÍÁÎÄÙ × ÏËÎÁÈ Info\n" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr " %-10s ðÏËÉÎÕÔØ ÜÔÕ ÓÐÒÁ×ËÕ.\n" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" +msgstr " %-10s ðÏËÉÎÕÔØ ÔÁËÖÅ Info.\n" + +#: info/infodoc.c:50 +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr " %-10s ÷ÙÚ×ÁÔØ ÏÂÕÞÁÀÝÅÅ ÒÕËÏ×ÏÄÓÔ×Ï.\n" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "ðÅÒÅÍÅÝÅÎÉÅ ×ÎÕÔÒÉ ÎÏÄÙ:\n" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr " %-10s ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr " %-10s ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr " %-10s ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÜÔÏÊ ÎÏÄÙ.\n" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr " %-10s ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅà ÜÔÏÊ ÎÏÄÙ.\n" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr " %-10s ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr " %-10s ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n" + +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "÷ÙÂÏÒ ÄÒÕÇÏÊ ÎÏÄÙ:\n" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "" + +#: info/infodoc.c:63 +#, fuzzy, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë \"ÓÌÅÄÕÀÝÅÊ\" ÎÏÄÅ.\n" + +#: info/infodoc.c:64 +#, fuzzy, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë \"ÐÒÅÄÙÄÕÝÅÊ\" ÎÏÄÅ.\n" + +#: info/infodoc.c:65 +#, fuzzy, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë ÎÏÄÅ \"××ÅÒÈ\".\n" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë ÚÁÄÁÎÎÏÍÕ ÐÕÎËÔÕ ÍÅÎÀ.\n" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" +" ðÒÉ ÐÅÒÅÈÏÄÅ Ë ÚÁÄÁÎÎÏÍÕ ÐÕÎËÔÕ ÍÅÎÀ ×ÙÂÉÒÁÅÔÓÑ ÄÒÕÇÁÑ ÎÏÄÁ.\n" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr " %-10s ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ. óÞÉÔÙ×ÁÅÔ ÉÍÑ ÓÓÙÌËÉ.\n" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr " %-10s ðÅÒÅÊÔÉ ÎÁ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ × ÜÔÏÍ ÏËÎÅ.\n" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr " %-10s ðÅÒÅÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÇÉÐÅÒÓÓÙÌËÅ × ÜÔÏÊ ÎÏÄÅ.\n" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr " %-10s ðÅÒÅÊÔÉ ÐÏ ÇÉÐÅÒÓÓÙÌËÅ ÐÏÄ ËÕÒÓÏÒÏÍ.\n" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë ËÏÒÎÅ×ÏÊ ÎÏÄÅ. üË×É×ÁÌÅÎÔÎÏ `g (DIR)'.\n" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë ÎÏÄÅ Top. üË×É×ÁÌÅÎÔÎÏ `g Top'.\n" + +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "äÒÕÇÉÅ ËÏÍÁÎÄÙ:\n" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr " %-10s ÷ÙÂÒÁÔØ ÐÅÒ×ÙÊ ... ÄÅ×ÑÔÙÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ.\n" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr " %-10s ÷ÙÂÒÁÔØ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ\n" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" +" %-10s ðÒÏÉÚ×ÅÓÔÉ ÐÏÉÓË ÚÁÄÁÎÎÏÊ ÓÔÒÏËÉ ÓÒÅÄÉ ×ÈÏÖÄÅÎÉÊ ÉÍÅÎÎÙÈ ÕËÁÚÁÔÅÌÅÊ " +"ÜÔÏÇÏ\n" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr " Info-ÆÁÊÌÁ É ×ÙÂÒÁÔØ ÎÏÄÕ ÐÏ ÐÅÒ×ÏÊ ÎÁÊÄÅÎÎÏÊ ÓÓÙÌËÅ.\n" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr " %-10s ðÅÒÅÊÔÉ Ë ÚÁÄÁÎÎÏÊ ÎÏÄÅ.\n" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" +msgstr " ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÔÁËÖÅ ÉÍÑ ÆÁÊÌÁ, ÎÁÐÒÉÍÅÒ (æáêì)îïäá.\n" + +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr " %-10s îÁÊÔÉ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ, É ÐÅÒÅÊÔÉ Ë\n" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr " ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr " %-10s îÁÊÔÉ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ, É ÐÅÒÅÊÔÉ Ë\n" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "ôÅËÕÝÉÊ ÐÕÔØ ÐÏÉÓËÁ:\n" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" +"ëÏÍÁÎÄÙ, ÄÏÓÔÕÐÎÙÅ × ÏËÎÁÈ Info:\n" +"\n" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" +"ëÏÍÁÎÄÙ, ÄÏÓÔÕÐÎÙÅ × ÜÈÏ-ÏÂÌÁÓÔÉ:\n" +"\n" + +#: info/infodoc.c:280 +msgid "" +"The following commands can only be invoked via M-x:\n" +"\n" +msgstr "" +"óÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÔÏÌØËÏ Ó ÐÏÍÏÝØÀ M-x:\n" +"\n" + +#: info/infodoc.c:301 +msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" +msgstr "" +"--- éÓÐÏÌØÚÕÊÔÅ `\\[history-node]' ÉÌÉ `\\[kill-node]' ÄÌÑ ×ÙÈÏÄÁ ---\n" + +#. Create or move to the help window. +#: info/infodoc.c:411 +msgid "Display help message" +msgstr "ðÏËÁÚÁÔØ ÓÐÒÁ×ËÕ" + +#. Show the Info help node. This means that the "info" file is installed +#. where it can easily be found on your system. +#: info/infodoc.c:429 +msgid "Visit Info node `(info)Help'" +msgstr "ïÂÒÁÔÉÔØÓÑ Ë Info-ÎÏÄÅ `(info)Help'" + +#: info/infodoc.c:555 +msgid "Print documentation for KEY" +msgstr "ðÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ëìá÷éûå" + +#: info/infodoc.c:568 +#, c-format +msgid "Describe key: %s" +msgstr "ïÐÉÓÁÔØ ËÌÁ×ÉÛÕ: %s" + +#: info/infodoc.c:577 +#, c-format +msgid "ESC %s is undefined." +msgstr "ESC %s ÎÅÏÐÒÅÄÅÌÅÎÏ." + +#: info/infodoc.c:594 +#, c-format +msgid "%s is undefined." +msgstr "%s ÎÅÏÐÒÅÄÅÌÅÎÏ." + +#: info/infodoc.c:620 +#, c-format +msgid "%s is defined to %s." +msgstr "%s ÐÒÉ×ÑÚÁÎÏ Ë %s." + +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "ðÏËÁÚÙ×ÁÅÔ, ÞÔÏ ÎÕÖÎÏ ÎÁÐÅÞÁÔÁÔØ, ÞÔÏÂÙ ×ÙÐÏÌÎÉÔØ ÄÁÎÎÕÀ ËÏÍÁÎÄÕ" + +#: info/infodoc.c:816 +msgid "Where is command: " +msgstr "ëÏÍÁÎÄÁ: " + +#: info/infodoc.c:838 +#, c-format +msgid "`%s' is not on any keys" +msgstr "`%s' ÎÅ ÐÒÉ×ÑÚÁÎÁ ÎÉ Ë ËÁËÉÍ ËÌÁ×ÉÛÁÍ" + +#: info/infodoc.c:844 +#, c-format +msgid "%s can only be invoked via %s." +msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ ÔÏÌØËÏ Ó ÐÏÍÏÝØÀ %s." + +#: info/infodoc.c:847 +#, c-format +msgid "%s can be invoked via %s." +msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ Ó ÐÏÍÏÝØÀ %s." + +#: info/infodoc.c:851 +#, c-format +msgid "There is no function named `%s'" +msgstr "æÕÎËÃÉÉ Ó ÉÍÅÎÅÍ `%s' ÎÅÔ" + +#: info/m-x.c:69 +msgid "Read the name of an Info command and describe it" +msgstr "óÞÉÔÁÔØ ÉÍÑ ËÏÍÁÎÄÙ Info É ÐÏËÁÚÁÔØ ÅÅ ÏÐÉÓÁÎÉÅ" + +#: info/m-x.c:73 +msgid "Describe command: " +msgstr "ïÐÉÓÁÔØ ËÏÍÁÎÄÕ: " + +#: info/m-x.c:96 +msgid "Read a command name in the echo area and execute it" +msgstr "óÞÉÔÁÔØ ÉÍÑ ËÏÍÁÎÄÙ × ÜÈÏ-ÏÂÌÁÓÔÉ É ÉÓÐÏÌÎÉÔØ ÅÅ" + +#: info/m-x.c:134 +msgid "Cannot execute an `echo-area' command here." +msgstr "úÄÅÓØ ÎÅÌØÚÑ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÜÈÏ-ÏÂÌÁÓÔÉ." + +#: info/m-x.c:150 +msgid "Set the height of the displayed window" +msgstr "õÓÔÁÎÏ×ÉÔØ ×ÙÓÏÔÕ ÏÔÏÂÒÁÖÁÅÍÏÇÏ ÏËÎÁ" + +#: info/m-x.c:163 +#, c-format +msgid "Set screen height to (%d): " +msgstr "õÓÔÁÎÏ×ÉÔØ ×ÙÓÏÔÕ ÜËÒÁÎÁ ÒÁ×ÎÏÊ (%d): " + +#: info/makedoc.c:132 +msgid "" +" Source files groveled to make this file include:\n" +"\n" +msgstr "" +" üÔÏÔ ÆÁÊÌ ×ËÌÀÞÁÅÔ:\n" +"\n" + +#: info/makedoc.c:465 +#, c-format +msgid "Couldn't manipulate the file %s.\n" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÂÒÁÂÏÔÁÔØ ÆÁÊÌ %s.\n" + +#: info/nodemenu.c:28 +msgid "" +"\n" +"* Menu:\n" +" (File)Node Lines Size Containing File\n" +" ---------- ----- ---- ---------------" +msgstr "" +"\n" +"* Menu:\n" +" (æÁÊÌ)îÏÄÁ óÔÒÏË òÁÚÍÅÒ æÁÊÌ\n" +" ---------- ----- ------ ----" + +#: info/nodemenu.c:199 +msgid "" +"Here is the menu of nodes you have recently visited.\n" +"Select one from this menu, or use `\\[history-node]' in another window.\n" +msgstr "" +"üÔÏ ÍÅÎÀ ÒÁÎÅÅ ÐÏÓÅÝÅÎÎÙÈ ×ÁÍÉ ÎÏÄ.\n" +"÷ÙÂÅÒÉÔÅ ÏÄÎÕ ÉÚ ÍÅÎÀ ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ `\\[history-node]' × ÄÒÕÇÏÍ ÏËÎÅ.\n" + +#: info/nodemenu.c:219 +msgid "Make a window containing a menu of all of the currently visited nodes" +msgstr "óÏÚÄÁÔØ ÏËÎÏ, ÓÏÄÅÒÖÁÝÅÅ ÍÅÎÀ ÐÏÓÅÝÅÎÎÙÈ ÒÁÎÅÅ ÎÏÄ" + +#: info/nodemenu.c:299 +msgid "Select a node which has been previously visited in a visible window" +msgstr "÷ÙÂÒÁÔØ ÒÁÎÅÅ ÐÏÓÅÝÅÎÎÕÀ ÎÏÄÕ × ×ÉÄÉÍÏÍ ÏËÎÅ" + +#: info/nodemenu.c:311 +msgid "Select visited node: " +msgstr "÷ÙÂÒÁÔØ ÐÏÓÅÝÅÎÎÕÀ ÒÁÎÅÅ ÎÏÄÕ: " + +#: info/nodemenu.c:331 info/session.c:2146 +#, c-format +msgid "The reference disappeared! (%s)." +msgstr "óÓÙÌËÁ ÉÓÞÅÚÌÁ! (%s)." + +#: info/session.c:169 +#, fuzzy, c-format +msgid "" +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." +msgstr "" +"äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × Info ×ÅÒÓÉÉ %s. \"\\[get-help-window]\" -- ÓÐÒÁ×ËÁ, " +"\"\\[menu-item]\" ×ÙÂÉÒÁÅÔ ÐÕÎËÔ ÍÅÎÀ." + +#. Move WINDOW's point down to the next line if possible. +#: info/session.c:642 +msgid "Move down to the next line" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÔÒÏËÕ ÎÉÖÅ" + +#. Move WINDOW's point up to the previous line if possible. +#: info/session.c:657 +msgid "Move up to the previous line" +msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÔÒÏËÕ ×ÙÛÅ" + +#. Move WINDOW's point to the end of the true line. +#: info/session.c:672 +msgid "Move to the end of the line" +msgstr "óÍÅÓÔÉÔØÓÑ × ËÏÎÅà ÓÔÒÏËÉ" + +#. Move WINDOW's point to the beginning of the true line. +#: info/session.c:692 +msgid "Move to the start of the line" +msgstr "óÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÓÔÒÏËÉ" + +#: info/session.c:884 makeinfo/node.c:1092 +msgid "Next" +msgstr "óÌÅÄÕÀÝÁÑ" + +#: info/session.c:887 +msgid "Following Next node..." +msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"óÌÅÄÕÀÝÁÑ\"..." + +#: info/session.c:904 +msgid "Selecting first menu item..." +msgstr "÷ÙÂÉÒÁÅÔÓÑ ÐÅÒ×ÙÊ ÐÕÎËÔ ÍÅÎÀ..." + +#: info/session.c:915 +msgid "Selecting Next node..." +msgstr "÷ÙÂÉÒÁÅÔÓÑ ÎÏÄÁ \"óÌÅÄÕÀÝÁÑ\"..." + +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." +msgstr "ðÅÒÅÍÅÝÅÎÉÅ \"÷×ÅÒÈ\" %d ÒÁÚ(Á), ÚÁÔÅÍ \"óÌÅÄÕÀÝÁÑ\"." + +#: info/session.c:1009 +msgid "No more nodes within this document." +msgstr "÷ ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ÂÏÌØÛÅ ÎÅÔ ÎÏÄ." + +#: info/session.c:1033 +#, fuzzy +msgid "No `Prev' for this node." +msgstr "÷ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌËÉ \"ðÒÅÄÙÄÕÝÁÑ\"." + +#. Move to the previous node. If this node now contains a menu, +#. and we have not inhibited movement to it, move to the node +#. corresponding to the last menu item. +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." +msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"ðÒÅÄÙÄÕÝÁÑ\" × ÜÔÏÍ ÏËÎÅ." + +#: info/session.c:1050 +#, fuzzy +msgid "No `Prev' or `Up' for this node within this document." +msgstr "" +"÷ ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ÎÅÔ ÓÓÙÌËÉ \"ðÒÅÄÙÄÕÝÁÑ\" ÉÌÉ \"÷×ÅÒÈ\" ÄÌÑ ÜÔÏÊ ÎÏÄÙ." + +#: info/session.c:1053 +msgid "Moving Up in this window." +msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"÷×ÅÒÈ\" × ÜÔÏÍ ÏËÎÅ." + +#: info/session.c:1101 +#, fuzzy +msgid "Moving to `Prev's last menu item." +msgstr "ðÅÒÅÈÏÄ ÎÁ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ ÎÏÄÙ \"ðÒÅÄÙÄÕÝÁÑ\"." + +#: info/session.c:1112 +msgid "Move forwards or down through node structure" +msgstr "ðÒÏÄ×ÉÇÁÔØÓÑ ×ÐÅÒÅÄ ÉÌÉ ×ÎÉÚ ÐÏ ÓÔÒÕËÔÕÒÅ ÎÏÄ" + +#: info/session.c:1128 +msgid "Move backwards or up through node structure" +msgstr "ðÒÏÄ×ÉÇÁÔØÓÑ ÎÁÚÁÄ ÉÌÉ ××ÅÒÈ ÐÏ ÓÔÒÕËÔÕÒÅ ÎÏÄ" + +#. Show the next screen of WINDOW's node. +#: info/session.c:1143 +msgid "Scroll forward in this window" +msgstr "ðÒÏËÒÕÔÉÔØ ×ÐÅÒÅÄ ÔÅËÕÝÅÅ ÏËÎÏ" + +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ×ÐÅÒÅÄ É ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ" + +#. Show the previous screen of WINDOW's node. +#: info/session.c:1200 +msgid "Scroll backward in this window" +msgstr "ðÒÏËÒÕÔÉÔØ ÎÁÚÁÄ ÔÅËÕÝÅÅ ÏËÎÏ" + +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ÎÁÚÁÄ É ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ" + +#. Move to the beginning of the node. +#: info/session.c:1252 +msgid "Move to the start of this node" +msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÎÏÄÙ" + +#. Move to the end of the node. +#: info/session.c:1259 +msgid "Move to the end of this node" +msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅà ÎÏÄÙ" + +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ×ÎÉÚ" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ××ÅÒÈ" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÐÏÌÜËÒÁÎÁ ×ÎÉÚ" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÐÏÌÜËÒÁÎÁ ××ÅÒÈ" + +#. **************************************************************** +#. +#. Commands for Manipulating Windows +#. +#. **************************************************************** +#. Make the next window in the chain be the active window. +#: info/session.c:1356 +msgid "Select the next window" +msgstr "÷ÙÂÒÁÔØ ÓÌÅÄÕÀÝÅÅ ÏËÎÏ" + +#. Make the previous window in the chain be the active window. +#: info/session.c:1395 +msgid "Select the previous window" +msgstr "÷ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÅÅ ÏËÎÏ" + +#. Split WINDOW into two windows, both showing the same node. If we +#. are automatically tiling windows, re-tile after the split. +#: info/session.c:1446 +msgid "Split the current window" +msgstr "òÁÚÂÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ" + +#. Delete WINDOW, forgetting the list of last visited nodes. If we are +#. automatically displaying footnotes, show or remove the footnotes +#. window. If we are automatically tiling windows, re-tile after the +#. deletion. +#: info/session.c:1527 +msgid "Delete the current window" +msgstr "õÄÁÌÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ" + +#: info/session.c:1535 +msgid "Cannot delete a permanent window" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÏÑÎÎÏÅ ÏËÎÏ" + +#. Just keep WINDOW, deleting all others. +#: info/session.c:1568 +msgid "Delete all other windows" +msgstr "õÄÁÌÉÔØ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÏËÎÁ" + +#. Scroll the "other" window of WINDOW. +#: info/session.c:1614 +msgid "Scroll the other window" +msgstr "ðÒÏËÒÕÔÉÔØ ÄÒÕÇÏÅ ÏËÎÏ" + +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "ðÒÏËÒÕÔÉÔØ ÄÒÕÇÏÅ ÏËÎÏ ÎÁÚÁÄ" + +#. Change the size of WINDOW by AMOUNT. +#: info/session.c:1641 +msgid "Grow (or shrink) this window" +msgstr "õ×ÅÌÉÞÉÔØ (ÉÌÉ ÕÍÅÎØÛÉÔØ) ÔÅËÕÝÅÅ ÏËÎÏ" + +#: info/session.c:1652 +msgid "Divide the available screen space among the visible windows" +msgstr "òÁÚÄÅÌÉÔØ ÄÏÓÔÕÐÎÏÅ ÍÅÓÔÏ ÎÁ ÜËÒÁÎÅ ÍÅÖÄÕ ×ÉÄÉÍÙÍÉ ÏËÎÁÍÉ" + +#: info/session.c:1659 +msgid "Toggle the state of line wrapping in the current window" +msgstr "ðÅÒÅËÌÀÞÉÔØ ÒÅÖÉÍ ÒÁÚÂÉ×ÁÎÉÑ ÓÔÒÏË × ÔÅËÕÝÅÍ ÏËÎÅ" + +#. Make WINDOW display the "Next:" node of the node currently being +#. displayed. +#: info/session.c:1838 +msgid "Select the Next node" +msgstr "ðÅÒÅÊÔÉ ÎÁ `óÌÅÄÕÀÝÕÀ' ÎÏÄÕ" + +#. Make WINDOW display the "Prev:" node of the node currently being +#. displayed. +#: info/session.c:1846 +msgid "Select the Prev node" +msgstr "ðÅÒÅÊÔÉ ÎÁ `ðÒÅÄÙÄÕÝÕÀ' ÎÏÄÕ" + +#. Make WINDOW display the "Up:" node of the node currently being +#. displayed. +#: info/session.c:1854 +msgid "Select the Up node" +msgstr "ðÅÒÅÊÔÉ ÎÁ `÷ÅÒÈÎÀÀ' ÎÏÄÕ" + +#. Make WINDOW display the last node of this info file. +#: info/session.c:1861 +msgid "Select the last node in this file" +msgstr "ðÅÒÅÊÔÉ ÎÁ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ × ÆÁÊÌÅ" + +#: info/session.c:1888 info/session.c:1921 +msgid "This window has no additional nodes" +msgstr "üÔÏ ÏËÎÏ ÎÅ ÉÍÅÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÎÏÄ" + +#. Make WINDOW display the first node of this info file. +#: info/session.c:1894 +msgid "Select the first node in this file" +msgstr "ðÅÒÅÊÔÉ ÎÁ ÐÅÒ×ÕÀ ÎÏÄÕ × ÆÁÊÌÅ" + +#: info/session.c:1928 +msgid "Select the last item in this node's menu" +msgstr "÷ÙÂÒÁÔØ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ" + +#. Use KEY (a digit) to select the Nth menu item in WINDOW->node. +#: info/session.c:1934 +msgid "Select this menu item" +msgstr "÷ÙÂÒÁÔØ ÚÁÄÁÎÎÙÊ ÐÕÎËÔ ÍÅÎÀ" + +#: info/session.c:1963 +#, c-format +msgid "There aren't %d items in this menu." +msgstr "÷ ÜÔÏÍ ÍÅÎÀ ÎÅÔ %d ÐÕÎËÔÏ×." + +#: info/session.c:2094 +#, c-format +msgid "Menu item (%s): " +msgstr "ðÕÎËÔ ÍÅÎÀ (%s): " + +#: info/session.c:2096 +msgid "Menu item: " +msgstr "ðÕÎËÔ ÍÅÎÀ: " + +#: info/session.c:2101 +#, c-format +msgid "Follow xref (%s): " +msgstr "ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ (%s): " + +#: info/session.c:2103 +msgid "Follow xref: " +msgstr "ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ: " + +#. Read a line (with completion) which is the name of a menu item, +#. and select that item. +#: info/session.c:2191 +msgid "Read a menu item and select its node" +msgstr "óÞÉÔÁÔØ ÉÍÑ ÐÕÎËÔÁ ÍÅÎÀ É ÐÅÒÅÊÔÉ Ë ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÎÏÄÅ" + +#: info/session.c:2199 +msgid "Read a footnote or cross reference and select its node" +msgstr "óÞÉÔÁÔØ ÉÍÑ ÓÓÙÌËÉ ÉÌÉ ÓÎÏÓËÉ É ÐÅÒÅÊÔÉ Ë ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÎÏÄÅ" + +#. Position the cursor at the start of this node's menu. +#: info/session.c:2205 +msgid "Move to the start of this node's menu" +msgstr "óÍÅÓÔÉÔØÓÑ Ë ÎÁÞÁÌÕ ÍÅÎÀ ÔÅËÕÝÅÊ ÎÏÄÙ" + +#: info/session.c:2229 +msgid "Visit as many menu items at once as possible" +msgstr "ðÒÏÓÍÏÔÒÅÔØ ÏÄÎÏ×ÒÅÍÅÎÎÏ ËÁË ÍÏÖÎÏ ÂÏÌØÛÅ ÎÏÄ" + +#. Read a line of input which is a node name, and go to that node. +#: info/session.c:2257 +msgid "Read a node name and select it" +msgstr "óÞÉÔÁÔØ ÉÍÑ ÎÏÄÙ É ÐÅÒÅÊÔÉ Ë ÎÅÊ" + +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "ðÅÒÅÊÔÉ Ë ÎÏÄÅ: " + +#: info/session.c:2382 +#, fuzzy, c-format +msgid "No menu in node `%s'." +msgstr "÷ ÎÏÄÅ \"%s\" ÎÅÔ ÍÅÎÀ." + +#: info/session.c:2422 +#, fuzzy, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "ðÕÎËÔ ÍÅÎÀ \"%s\" ÏÔÓÕÔÓÔ×ÕÅÔ × ÎÏÄÅ \"%s\"." + +#: info/session.c:2452 +#, fuzzy, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÎÏÄÕ ÐÏ ÓÓÙÌËÅ \"%s\" × \"%s\"." + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "óÞÉÔÁÔØ ÓÐÉÓÏË ÍÅÎÀ, ÎÁÞÉÎÁÀÝÉÊÓÑ Ó dir É ÐÒÏÓÌÅÄÏ×ÁÔØ ÐÏ ÎÉÍ" + +#: info/session.c:2505 +msgid "Follow menus: " +msgstr "ðÒÏÓÌÅÄÏ×ÁÔØ ÐÏ ÍÅÎÀ: " + +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "îÁÈÏÄÉÔ ÎÏÄÕ, ÒÁÓÓËÁÚÙ×ÁÀÝÕÀ, ËÁË ×ÙÚÙ×ÁÔØ ÐÒÏÇÒÁÍÍÕ" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "îÁÊÔÉ ÎÏÄÕ Invocation ÄÌÑ [%s]: " + +#: info/session.c:2743 +msgid "Read a manpage reference and select it" +msgstr "óÞÉÔÁÔØ ÉÍÑ manpage É ÐÅÒÅÊÔÉ Ë ÎÅÊ" + +#: info/session.c:2747 +msgid "Get Manpage: " +msgstr "ðÒÏÓÍÏÔÒÅÔØ manpage: " + +#. Move to the "Top" node in this file. +#: info/session.c:2777 +msgid "Select the node `Top' in this file" +msgstr "ðÅÒÅÊÔÉ ÎÁ `ðÅÒ×ÕÀ' ÎÏÄÕ" + +#. Move to the node "(dir)Top". +#: info/session.c:2783 +msgid "Select the node `(dir)'" +msgstr "ðÅÒÅÊÔÉ ÎÁ ÎÏÄÕ `(dir)'" + +#: info/session.c:2803 +#, c-format +msgid "Kill node (%s): " +msgstr "õÄÁÌÉÔØ ÎÏÄÕ (%s): " + +#: info/session.c:2857 +#, c-format +msgid "Cannot kill node `%s'" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÄÕ `%s'" + +#: info/session.c:2867 +msgid "Cannot kill the last node" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ" + +#: info/session.c:2953 +msgid "Select the most recently selected node" +msgstr "ðÅÒÅÊÔÉ Ë ÐÏÓÌÅÄÎÅÊ ×ÙÂÒÁÎÎÏÊ ÎÏÄÅ" + +#. Kill named node. +#: info/session.c:2959 +msgid "Kill this node" +msgstr "õÄÁÌÉÔØ ÔÅËÕÝÕÀ ÎÏÄÕ" + +#. Read the name of a file and select the entire file. +#: info/session.c:2967 +msgid "Read the name of a file and select it" +msgstr "óÞÉÔÁÔØ ÉÍÑ ÆÁÊÌÁ É ÐÅÒÅÊÔÉ Ë ÎÅÍÕ" + +#: info/session.c:2971 +msgid "Find file: " +msgstr "ïÂÒÁÔÉÔØÓÑ Ë ÆÁÊÌÕ: " + +#: info/session.c:2988 +#, fuzzy, c-format +msgid "Cannot find `%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ \"%s\"." + +#: info/session.c:3033 info/session.c:3154 +#, fuzzy, c-format +msgid "Could not create output file `%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ \"%s\"." + +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 +msgid "Done." +msgstr "úÁ×ÅÒÛÅÎÏ." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 +#, fuzzy, c-format +msgid "Writing node %s..." +msgstr "úÁÐÉÓØ ÎÏÄÙ \"%s\"..." + +#: info/session.c:3180 +msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" +msgstr "îÁÐÒÁ×ÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÜÔÏÊ ÎÏÄÙ ÎÁ ×ÈÏÄ ËÏÍÁÎÄÙ INFO_PRINT_COMMAND" + +#: info/session.c:3216 +#, fuzzy, c-format +msgid "Cannot open pipe to `%s'." +msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÎÁÌ Ë \"%s\"." + +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 +#, fuzzy, c-format +msgid "Printing node %s..." +msgstr "ðÅÞÁÔØ ÎÏÄÙ \"%s\"..." + +#: info/session.c:3464 +#, fuzzy, c-format +msgid "Searching subfile %s ..." +msgstr "ðÏÉÓË × ÆÁÊÌÅ \"%s\"..." + +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" +msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÒÅÇÉÓÔÒÏÚÁ×ÉÓÉÍÙÊ ÐÏÉÓË" + +#: info/session.c:3523 +msgid "Read a string and search for it" +msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÐÏÉÓË" + +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÐÏÉÓË × ÏÂÒÁÔÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ" + +#: info/session.c:3573 +#, c-format +msgid "%s%sfor string [%s]: " +msgstr "%s%s ÓÔÒÏËÉ [%s]: " + +#: info/session.c:3574 +msgid "Search backward" +msgstr "ïÂÒÁÔÎÙÊ ÐÏÉÓË" + +#: info/session.c:3574 +msgid "Search" +msgstr "ðÏÉÓË" + +#: info/session.c:3575 +msgid " case-sensitively " +msgstr " c ÕÞÅÔÏÍ ÒÅÇÉÓÔÒÁ " + +#: info/session.c:3575 +msgid " " +msgstr "" + +#: info/session.c:3615 +msgid "Search failed." +msgstr "îÅ ÎÁÊÄÅÎÏ" + +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "ðÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË × ÔÏÍ ÖÅ ÎÁÐÒÁ×ÌÅÎÉÉ" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "îÅÔ ÓÔÒÏËÉ ÐÒÅÄÙÄÕÝÅÇÏ ÐÏÉÓËÁ" + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "ðÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË × ÏÂÒÁÔÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ" + +#: info/session.c:3661 info/session.c:3667 +msgid "Search interactively for a string as you type it" +msgstr "úÁÐÕÓÔÉÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÊ ÎÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË" + +#: info/session.c:3761 +msgid "I-search backward: " +msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÏÂÒÁÔÎÙÊ ÐÏÉÓË: " + +#: info/session.c:3763 +msgid "I-search: " +msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË: " + +#: info/session.c:3788 +msgid "Failing " +msgstr "îÅ ÎÁÊÄÅÎÏ. " + +#: info/session.c:4244 +msgid "Move to the previous cross reference" +msgstr "óÍÅÓÔÉÔØÓÑ Ë ÐÒÅÄÙÄÕÝÅÊ ÓÓÙÌËÅ" + +#: info/session.c:4253 +msgid "Move to the next cross reference" +msgstr "óÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÓÓÙÌËÅ" + +#: info/session.c:4263 +msgid "Select reference or menu item appearing on this line" +msgstr "÷ÙÂÒÁÔØ ÓÓÙÌËÕ ÉÌÉ ÐÕÎËÔ ÍÅÎÀ, ÎÁÈÏÄÑÝÉÊÓÑ ÎÁ ÄÁÎÎÏÊ ÓÔÒÏËÅ" + +#. **************************************************************** +#. +#. Miscellaneous Info Commands +#. +#. **************************************************************** +#. What to do when C-g is pressed in a window. +#: info/session.c:4285 +msgid "Cancel current operation" +msgstr "ïÔÍÅÎÉÔØ ×ÙÐÏÌÎÅÎÉÅ ÔÅËÕÝÅÊ ËÏÍÁÎÄÙ" + +#: info/session.c:4292 +msgid "Quit" +msgstr "÷ÙÈÏÄ" + +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" +msgstr "ðÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ Ë ÚÁÄÁÎÎÏÊ ÓÔÒÏËÅ ÏËÎÁ" + +#. Clear the screen and redraw its contents. Given a numeric argument, +#. move the line the cursor is on to the COUNT'th line of the window. +#: info/session.c:4333 +msgid "Redraw the display" +msgstr "ðÅÒÅÒÉÓÏ×ÁÔØ ÜËÒÁÎ" + +#. This command does nothing. It is the fact that a key is bound to it +#. that has meaning. See the code at the top of info_session (). +#: info/session.c:4370 +msgid "Quit using Info" +msgstr "÷ÙÊÔÉ ÉÚ Info" + +#: info/session.c:4393 +#, c-format +msgid "Unknown command (%s)." +msgstr "îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ (%s)." + +#: info/session.c:4396 +msgid "\"\" is invalid" +msgstr "\"\" ÎÅ×ÅÒÎÁÑ ËÏÍÁÎÄÁ" + +#: info/session.c:4397 +#, c-format +msgid "\"%s\" is invalid" +msgstr "\"%s\" ÎÅ×ÅÒÎÁÑ ËÏÍÁÎÄÁ" + +#: info/session.c:4620 +msgid "Add this digit to the current numeric argument" +msgstr "äÏÂÁ×ÌÑÅÔ ÃÉÆÒÕ Ë ÔÅËÕÝÅÍÕ ÞÉÓÌÏ×ÏÍÕ ÁÒÇÕÍÅÎÔÕ" + +#: info/session.c:4629 +msgid "Start (or multiply by 4) the current numeric argument" +msgstr "îÁÞÁÔØ (ÉÌÉ ÕÍÎÏÖÉÔØ ÎÁ 4) ÔÅËÕÝÉÊ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ" + +#: info/session.c:4644 +msgid "Internally used by \\[universal-argument]" +msgstr "éÓÐÏÌØÚÕÅÔÓÑ ÆÕÎËÃÉÅÊ \\[universal-argument]" + +#: info/tilde.c:344 +msgid "readline: Out of virtual memory!\n" +msgstr "readline: ÷ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ!\n" + +#: info/variables.c:40 +msgid "When \"On\", footnotes appear and disappear automatically" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÓÎÏÓËÉ ÐÏÑ×ÌÑÀÔÓÑ É ÉÓÞÅÚÁÀÔ Á×ÔÏÍÁÔÉÞÅÓËÉ" + +#: info/variables.c:44 +msgid "When \"On\", creating or deleting a window resizes other windows" +msgstr "" +"åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÓÏÚÄÁÎÉÅ ÉÌÉ ÕÄÁÌÅÎÉÅ ÏËÎÁ ÉÚÍÅÎÑÅÔ ÒÁÚÍÅÒ ÄÒÕÇÉÈ " +"ÏËÏÎ" + +#: info/variables.c:48 +msgid "When \"On\", flash the screen instead of ringing the bell" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ×ÍÅÓÔÏ Ú×ÕËÏ×ÏÇÏ ÓÉÇÎÁÌÁ ÍÉÇÁÅÔ ÜËÒÁÎ" + +#: info/variables.c:52 +msgid "When \"On\", errors cause the bell to ring" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÏÛÉÂËÉ ×ÙÚÙ×ÁÀÔ Ú×ÕËÏ×ÏÊ ÓÉÇÎÁÌ" + +#: info/variables.c:56 +msgid "When \"On\", Info garbage collects files which had to be uncompressed" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÐÒÏÉÚ×ÏÄÉÔØ ÓÂÏÒËÕ ÍÕÓÏÒÁ ÄÌÑ ÓÖÁÔÙÈ ÆÁÊÌÏ×" + +#: info/variables.c:59 +msgid "When \"On\", the portion of the matched search string is highlighted" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ×ÙÄÅÌÑÔØ ÐÒÉ ÐÏÉÓËÅ ÓÏ×ÐÁ×ÛÕÀ ÓÔÒÏËÕ" + +#: info/variables.c:63 +msgid "Controls what happens when scrolling is requested at the end of a node" +msgstr "ïÐÒÅÄÅÌÑÅÔ ÐÏ×ÅÄÅÎÉÅ ÐÒÏËÒÕÔËÉ × ËÏÎÃÅ ÎÏÄÙ" + +#: info/variables.c:67 +msgid "The number lines to scroll when the cursor moves out of the window" +msgstr "þÉÓÌÏ ÐÒÏËÒÕÞÉ×ÁÅÍÙÈ ÓÔÒÏË, ËÏÇÄÁ ËÕÒÓÏÒ ÐÅÒÅÍÅÝÁÅÔÓÑ ÚÁ ÐÒÅÄÅÌÙ ÏËÎÁ" + +#: info/variables.c:71 +msgid "When \"On\", Info accepts and displays ISO Latin characters" +msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), Info ÏÔÏÂÒÁÖÁÅÔ ÓÉÍ×ÏÌÙ ISO Latin" + +#: info/variables.c:77 +msgid "Explain the use of a variable" +msgstr "ïÐÉÓÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÅÒÅÍÅÎÎÏÊ" + +#. Get the variable's name. +#: info/variables.c:83 +msgid "Describe variable: " +msgstr "ïÐÉÓÁÔØ ÐÅÒÅÍÅÎÎÕÀ: " + +#: info/variables.c:102 +msgid "Set the value of an Info variable" +msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ" + +#. Get the variable's name and value. +#: info/variables.c:108 +msgid "Set variable: " +msgstr "õÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ: " + +#: info/variables.c:126 +#, c-format +msgid "Set %s to value (%d): " +msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ %s ÒÁ×ÎÙÍ (%d): " + +#: info/variables.c:167 +#, c-format +msgid "Set %s to value (%s): " +msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ %s ÒÁ×ÎÙÍ (%s): " + +#: info/window.c:1101 +msgid "--*** Tags out of Date ***" +msgstr "--*** ôÅÇÉ ÕÓÔÁÒÅÌÉ ***" + +#. strlen (location_indicator). +#. 10 for the decimal representation of the number of lines in this +#. node, and the remainder of the text that can appear in the line. +#: info/window.c:1112 +msgid "-----Info: (), lines ----, " +msgstr "-----Info: (), ÓÔÒÏË ----, " + +#: info/window.c:1119 +#, c-format +msgid "-%s---Info: %s, %d lines --%s--" +msgstr "-%s---Info: %s, ÓÔÒÏË: %d --%s--" + +#: info/window.c:1123 +#, c-format +msgid "-%s%s-Info: (%s)%s, %d lines --%s--" +msgstr "-%s%s-Info: (%s)%s, ÓÔÒÏË: %d --%s--" + +#: info/window.c:1130 +#, c-format +msgid " Subfile: %s" +msgstr " æÁÊÌ: %s" + +#: lib/getopt.c:680 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n" + +#: lib/getopt.c:704 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" + +#: lib/getopt.c:709 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" + +#: lib/getopt.c:726 lib/getopt.c:899 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" + +#. --option +#: lib/getopt.c:755 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n" + +#. +option or -option +#: lib/getopt.c:759 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:785 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n" + +#: lib/getopt.c:788 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n" + +#. 1003.2 specifies the format of this message. +#: lib/getopt.c:818 lib/getopt.c:948 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: ËÌÀÞ %c ÄÏÌÖÅÎ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" + +#: lib/getopt.c:865 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n" + +#: lib/getopt.c:883 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" + +#: makeinfo/cmds.c:447 +msgid "January" +msgstr "ÑÎ×ÁÒÑ" + +#: makeinfo/cmds.c:447 +msgid "February" +msgstr "ÆÅ×ÒÁÌÑ" + +#: makeinfo/cmds.c:447 +msgid "March" +msgstr "ÍÁÒÔÁ" + +#: makeinfo/cmds.c:447 +msgid "April" +msgstr "ÁÐÒÅÌÑ" + +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "ÍÁÑ" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "ÉÀÎÑ" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "ÉÀÌÑ" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "Á×ÇÕÓÔÁ" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "ÓÅÎÔÑÂÒÑ" + +#: makeinfo/cmds.c:448 +msgid "October" +msgstr "ÏËÔÑÂÒÑ" + +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "ÎÏÑÂÒÑ" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "ÄÅËÁÂÒÑ" + +#: makeinfo/cmds.c:571 +#, c-format +msgid "unlikely character %c in @var" +msgstr "ÍÁÌÏ×ÅÒÏÑÔÎÙÊ ÚÎÁË %c × @var" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" +msgstr "×ÅÓØ ÁÒÇÕÍÅÎÔ @sc ÎÁÂÒÁÎ ÚÁÇÌÁ×ÎÙÍÉ ÂÕË×ÁÍÉ, ÒÅÚÕÌØÔÁÔÁ ÎÅ ÂÕÄÅÔ" + +#: makeinfo/cmds.c:754 +#, c-format +msgid "%c%s is obsolete" +msgstr "ëÏÍÁÎÄÁ %c%s ÕÓÔÁÒÅÌÁ É ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ" + +#: makeinfo/cmds.c:814 +#, c-format +msgid "@sp requires a positive numeric argument, not `%s'" +msgstr "ËÏÍÁÎÄÅ @sp ÎÕÖÎÏ ÕËÁÚÁÔØ ÐÏÌÏÖÉÔÅÌØÎÙÊ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ, Á ÎÅ `%s'" + +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 +#, c-format +msgid "Bad argument to %c%s" +msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ %c%s" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "÷ ÁÒÇÕÍÅÎÔÅ @def ÐÒÏÐÕÝÅÎÁ `}'" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "æÕÎËÃÉÑ" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "íÁËÒÏ" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "óÐÅÃÉÁÌØÎÁÑ ÆÏÒÍÁ" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "ðÅÒÅÍÅÎÎÁÑ" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "ðÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ÐÁÒÁÍÅÔÒ" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "ðÅÒÅÍÅÎÎÁÑ ÜËÚÅÍÐÌÑÒÁ" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "íÅÔÏÄ" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "ÉÚ" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" +msgstr "ÎÁÄ" + +#: makeinfo/defun.c:656 +#, c-format +msgid "Must be in `%s' insertion to use `%sx'" +msgstr "ëÏÍÁÎÄÕ `%sx' ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÌØËÏ ×Ï ×ÓÔÁ×ËÅ `%s'" + +#: makeinfo/files.c:460 +#, c-format +msgid "%s: getwd: %s, %s\n" +msgstr "" + +#: makeinfo/footnote.c:149 +#, c-format +msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgstr "`%c%s' ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔ `{...}', Á ÎÅ ÐÒÏÓÔÏ `%s'" + +#: makeinfo/footnote.c:164 +#, c-format +msgid "No closing brace for footnote `%s'" +msgstr "äÌÑ ÓÎÏÓËÉ `%s' ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÊ ÆÉÇÕÒÎÏÊ ÓËÏÂËÉ" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "óÎÏÓËÁ ÏÐÒÅÄÅÌÅÎÁ ÂÅÚ ÒÏÄÉÔÅÌØÓËÏÊ ÎÏÄÙ" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "óÎÏÓËÉ" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" +msgstr "âÅÚ ÚÁÇÏÌÏ×ËÁ" + +#: makeinfo/index.c:212 +#, c-format +msgid "Unknown index `%s'" +msgstr "éÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' ÎÅÉÚ×ÅÓÔÅÎ" + +#: makeinfo/index.c:382 +#, c-format +msgid "Index `%s' already exists" +msgstr "éÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ" + +#: makeinfo/index.c:425 +#, c-format +msgid "Unknown index `%s' and/or `%s' in @synindex" +msgstr "îÅÉÚ×ÅÓÔÅÎ ÉÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' É/ÉÌÉ `%s' × @synindex" + +#: makeinfo/index.c:642 +#, c-format +msgid "Unknown index `%s' in @printindex" +msgstr "îÅÉÚ×ÅÓÔÅÎ ÉÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' × @printindex" + +#: makeinfo/index.c:680 +#, c-format +msgid "Entry for index `%s' outside of any node" +msgstr "÷ÈÏÖÄÅÎÉÅ ÄÌÑ ÉÍÅÎÎÏÇÏ ÕËÁÚÁÔÅÌÑ `%s' ×ÎÅ ÎÏÄÙ" + +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "(×ÎÅ ËÁËÏÊ-ÌÉÂÏ ÎÏÄÙ)" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "Broken-Type × insertion_type_pname" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "ðÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ ÐÅÒÅÞÉÓÌÅÎÉÑ" + +#: makeinfo/insertion.c:297 +#, c-format +msgid "lettering overflow, restarting at %c" +msgstr "ÚÁËÏÎÞÉÌÓÑ ÁÌÆÁ×ÉÔ, ×ÏÚ×ÒÁÔ ÎÁ %c" + +#: makeinfo/insertion.c:481 +#, c-format +msgid "%s requires an argument: the formatter for %citem" +msgstr "%s ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ: ÆÏÒÍÁÔÏÍ ÄÌÑ %citem" + +#: makeinfo/insertion.c:623 +#, c-format +msgid "`@end' expected `%s', but saw `%s'" +msgstr "ÏÖÉÄÁÌÏÓØ `@end' Ó `%s', ×ÓÔÒÅÞÅÎÏ `%s'" + +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" +msgstr "îÅÔ ÐÁÒÎÏÊ `%cend %s'" + +#: makeinfo/insertion.c:902 +#, c-format +msgid "%s requires letter or digit" +msgstr "%s ÔÒÅÂÕÅÔ ÂÕË×Ù ÉÌÉ ÃÉÆÒÙ" + +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" +msgstr "@menu ×ÓÔÒÅÞÅÎÏ ÐÅÒÅÄ ÐÅÒ×ÏÊ @node, ÂÕÄÅÔ ÓÏÚÄÁÎÁ ÎÏÄÁ `Top'" + +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" +msgstr "" +"×ÅÒÏÑÔÎÏ, ×ÁÛÁ ÎÏÄÁ @top ÄÏÌÖÎÁ ÂÙÔØ × ÂÌÏËÅ @ifnottex, Á ÎÅ × @ifinfo?" + +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" +msgstr "@detailmenu ×ÓÔÒÅÞÅÎÏ ÐÅÒÅÄ ÐÅÒ×ÏÊ @node, ÂÕÄÅÔ ÓÏÚÄÁÎÁ ÎÏÄÁ `Top'" + +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" +msgstr "îÅÐÁÒÎÁÑ `%c%s'" + +#: makeinfo/insertion.c:1081 +#, c-format +msgid "`%c%s' needs something after it" +msgstr "ðÏÓÌÅ `%c%s' ÄÏÌÖÎÏ ÞÔÏ-ÔÏ ÉÄÔÉ" + +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" +msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ `%s', `%s', ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ `%s'" + +#: makeinfo/insertion.c:1175 +#, c-format +msgid "@%s not meaningful inside `@%s' block" +msgstr "@%s ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÕÔÒÉ ÂÌÏËÁ `@%s'" + +#: makeinfo/insertion.c:1184 +#, c-format +msgid "@itemx not meaningful inside `%s' block" +msgstr "@itemx ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÕÔÒÉ ÂÌÏËÁ `%s'" + +#: makeinfo/insertion.c:1357 +#, c-format +msgid "%c%s found outside of an insertion block" +msgstr "%c%s ×ÓÔÒÅÞÅÎÁ ×ÎÅ ÂÌÏËÁ ×ÓÔÁ×ËÉ" + +#: makeinfo/lang.c:199 +#, c-format +msgid "%s is not a valid ISO 639 language code" +msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ×ÅÒÎÙÍ ËÏÄÏÍ ÑÚÙËÁ ÉÚ ISO 639" + +#. This error message isn't perfect if the argument is multiple +#. characters, but it doesn't seem worth getting right. +#: makeinfo/lang.c:406 +#, c-format +msgid "%c%s expects `i' or `j' as argument, not `%c'" +msgstr "%c%s ÏÖÉÄÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ `i' ÉÌÉ `j', Á ÎÅ `%c'" + +#: makeinfo/lang.c:410 +#, c-format +msgid "%c%s expects a single character `i' or `j' as argument" +msgstr "%c%s ÏÖÉÄÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÏÄÉÎ ÓÉÍ×ÏÌ `i' ÉÌÉ `j'" + +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" +msgstr "ÍÁËÒÏ `%s' ÂÙÌÏ ÏÐÒÅÄÅÌÅÎÏ ÒÁÎØÛÅ" + +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" +msgstr "ÍÅÓÔÏ ÐÒÅÄÙÄÕÝÅÇÏ ÏÐÒÅÄÅÌÅÎÉÑ `%s'" + +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" +msgstr "ÐÏÓÌÅ \\ × ÒÁÓËÒÙÔÉÉ ÍÁËÒÏ ÓÔÏÉÔ `%s', Á ÎÅ \\ ÉÌÉ ÉÍÑ ÐÁÒÁÍÅÔÒÁ" + +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" +msgstr "íÁËÒÏ `%s' ×ÙÚ×ÁÎÏ ÎÁ ÓÔÒÏËÅ %d Ó ÉÚÌÉÛÎÉÍÉ ÁÒÇÕÍÅÎÔÁÍÉ" + +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" +msgstr "ÎÅ ×ÓÔÒÅÞÅÎÏ %cend macro" + +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" +msgstr "@quote-arg ÐÏÌÅÚÎÁ, ÔÏÌØËÏ ÅÓÌÉ ÍÁËÒÏ ÐÒÉÎÉÍÁÅÔ ÏÄÉÎ ÁÒÇÕÍÅÎÔ" + +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" +msgstr "ÎÅÐÁÒÎÙÅ @end %s É @%s" + +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " +msgstr "%s:%d: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: " + +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" +msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÏÛÉÂÏË! ïÓÔÁÎÏ×ËÁ.\n" + +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" +msgstr "úÄÅÓØ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ %c" + +#: makeinfo/makeinfo.c:362 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n" + +#: makeinfo/makeinfo.c:365 +#, c-format +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +#: makeinfo/makeinfo.c:391 +#, fuzzy, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" +" --ifhtml ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifhtml É " +"@html,\n" +" ÄÁÖÅ ÐÒÉ ×Ù×ÏÄÅ ÎÅ × ÆÏÒÍÁÔÅ HTML.\n" +" --ifinfo ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifinfo, ÄÁÖÅ " +"ÐÒÉ\n" +" ×Ù×ÏÄÅ × ÆÏÒÍÁÔÅ HTML.\n" +" --iftex ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @iftex É @tex.\n" +" --macro-expand, -E æáêì ×Ù×ÅÓÔÉ × æáêì ÐÅÒ×ÏÎÁÞÁÌØÎÙÊ Texinfo-ÆÁÊÌ Ó\n" +" ÒÁÓËÒÙÔÙÍÉ ÍÁËÒÏÓÁÍÉ.\n" +" --no-headers ÎÅ ×Ù×ÏÄÉÔØ ÒÁÚÄÅÌÉÔÅÌÉ ÎÏÄ Info É ÓÔÒÏËÉ Node:;\n" +" ÐÉÓÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ, ÅÓÌÉ ÎÅ ÚÁÄÁÎ " +"ËÌÀÞ\n" +" --output.\n" +" --no-ifhtml ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifhtml É " +"@html.\n" +" --no-ifinfo ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifinfo.\n" +" --no-iftex ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @iftex É " +"@tex.\n" +" --no-split ÐÏÄÁ×ÉÔØ ÒÁÚÂÉÅÎÉÅ ÂÏÌØÛÉÈ Info-ÆÁÊÌÏ× ÉÌÉ " +"ÓÏÚÄÁÎÉÅ\n" +" ÏÄÎÏÇÏ HTML-ÆÁÊÌÁ ÎÁ ËÁÖÄÕÀ ÎÏÄÕ.\n" +" --no-validate ÎÅ ÐÒÏÉÚ×ÏÄÉÔØ ÐÒÏ×ÅÒËÕ ÐÅÒÅËÒÅÓÔÎÙÈ ÓÓÙÌÏË.\n" +" --no-warn ÎÅ ÐÏËÁÚÙ×ÁÔØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ (ÎÏ ÎÅ ÏÛÉÂËÉ).\n" +" --number-sections ×ËÌÀÞÁÔØ × ×Ù×ÏÄ ÎÏÍÅÒÁ ÇÌÁ×, ÒÁÚÄÅÌÏ× É " +"ÐÒÉÌÏÖÅÎÉÊ.\n" +" --output=æáêì, -o æáêì ×Ù×ÏÄÉÔØ × æáêì, ÉÇÎÏÒÉÒÕÑ @setfilename.\n" +" --paragraph-indent=î ÄÅÌÁÔØ ÏÔÓÔÕÐÙ ÛÉÒÉÎÏÊ î ÐÒÏÂÅÌÏ× (ÐÏ ÕÍÏÌÞÁÎÉÀ " +"%d).\n" +" åÓÌÉ î ÒÁ×ÎÏ `none', ÎÅ ÄÅÌÁÔØ ÏÔÓÔÕÐÙ, ÅÓÌÉ\n" +" `asis', ÓÏÈÒÁÎÑÔØ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÏÔÓÔÕÐÙ.\n" +" --reference-limit=î ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÓÙÌÏË, ÎÅ ×ÙÚÙ×ÁÀÝÅÅ\n" +" ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ %d).\n" +" -v, --verbose ÐÏÑÓÎÑÔØ ÄÅÊÓÔ×ÉÑ.\n" +" --version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." +msgstr "" +"\n" +"ðÏ ÕÍÏÌÞÁÎÉÀ ÏÂÒÁÂÏÔËÁ ÕÓÌÏ×ÎÙÈ ËÏÍÁÎÄ @if... ÚÁ×ÉÓÉÔ ÏÔ ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ: " +"ÐÒÉ\n" +"×Ù×ÏÄÅ × ÆÏÒÍÁÔÅ HTML ×ËÌÀÞÅÎ --ifhtml É ×ÙËÌÀÞÅÎÙ ÏÓÔÁÌØÎÙÅ; ÐÒÉ ×Ù×ÏÄÅ ×\n" +"ÆÏÒÍÁÔÅ Info ÉÌÉ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÁ, ×ËÌÀÞÅÎ --ifinfo É ×ÙËÌÀÞÅÎÙ ÏÓÔÁÌØÎÙÅ.\n" +"\n" +"ðÒÉÍÅÒÙ:\n" +" makeinfo foo.texi ÚÁÐÉÓÁÔØ Info × @setfilename ÉÚ foo\n" +" makeinfo --html foo.texi ÚÁÐÉÓÁÔØ HTML × @setfilename ÉÚ foo\n" +" makeinfo --no-headers -o - foo.texi ÚÁÐÉÓÁÔØ ÐÒÏÓÔÏÊ ÔÅËÓÔ ÎÁ " +"ÓÔÁÎÄÁÒÔÎÙÊ\n" +" ×Ù×ÏÄ\n" +" makeinfo --number-sections foo.texi ÚÁÐÉÓÁÔØ Info Ó ÎÕÍÅÒÏ×ÁÎÎÙÍÉ " +"ÒÁÚÄÅÌÁÍÉ\n" +" makeinfo --no-split foo.texi ÚÁÐÉÓÁÔØ ÏÄÉÎ ÂÏÌØÛÏÊ Info\n" +"\n" +"ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ bug-texinfo@gnu.org,\n" +"ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ help-texinfo@gnu.org." + +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 +#, c-format +msgid "%s: %s arg must be numeric, not `%s'.\n" +msgstr "%s: %s ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÞÉÓÌÏ×ÙÍ, ÎÅ `%s'.\n" + +#: makeinfo/makeinfo.c:521 +#, c-format +msgid "Couldn't open macro expansion output `%s'" +msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ `%s'" + +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" +msgstr "íÏÖÎÏ ÚÁÄÁÔØ ÔÏÌØËÏ ÏÄÉÎ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ" + +#: makeinfo/makeinfo.c:561 +#, c-format +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgstr "" +"%s: ÁÒÇÕÍÅÎÔ --paragraph-indent ÄÏÌÖÅÎ ÂÙÔØ ÞÉÓÌÏ×ÙÍ, ÉÌÉ\n" +"`none', ÉÌÉ `asis'; ÎÅ `%s'.\n" + +#: makeinfo/makeinfo.c:602 +#, c-format +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgstr "" +"%s: ÁÒÇÕÍÅÎÔ --footnote-style ÄÏÌÖÅÎ ÂÙÔØ `separate' ÉÌÉ `end'; Á ÎÅ `%s'.\n" + +#: makeinfo/makeinfo.c:647 +#, c-format +msgid "%s: missing file argument.\n" +msgstr "%s: ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ, ÚÁÄÁÀÝÉÊ ÆÁÊÌ.\n" + +#: makeinfo/makeinfo.c:810 +#, c-format +msgid "Expected `%s'" +msgstr "ïÖÉÄÁÅÔÓÑ `%s'" + +#: makeinfo/makeinfo.c:1229 +#, c-format +msgid "No `%s' found in `%s'" +msgstr "`%s' ÎÅ ÎÁÊÄÅÎ × `%s'" + +#: makeinfo/makeinfo.c:1306 +#, c-format +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgstr "" +"%s: òÁÓËÒÙÔÉÅ ÍÁËÒÏÓÏ× × ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ ÎÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ,\n" +"ÔÁË ËÁË ÔÕÄÁ ÎÁÐÒÁ×ÌÅÎ ×Ù×ÏÄ × ÆÏÒÍÁÔÅ Info.\n" + +#: makeinfo/makeinfo.c:1327 +#, c-format +msgid "Making %s file `%s' from `%s'.\n" +msgstr "óÏÚÄÁÎÉÅ %s-ÆÁÊÌÁ `%s' ÉÚ `%s'.\n" + +#: makeinfo/makeinfo.c:1358 +#, c-format +msgid "This is %s, produced by makeinfo version %s from %s.\n" +msgstr "üÔÏ %s, ÓÏÚÄÁÎÎÙÊ makeinfo ×ÅÒÓÉÉ %s ÉÚ %s.\n" + +#: makeinfo/makeinfo.c:1377 +#, c-format +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: õÄÁÌÅÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÊ `%s' -- ÂÙÌÉ ÏÛÉÂËÉ;\n" +"ÉÓÐÏÌØÚÕÊÔÅ --force, ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔÙ.\n" + +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 +#, c-format +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgstr "" +"%s: õÄÁÌÅÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ `%s' -- ÂÙÌÉ ÏÛÉÂËÉ;\n" +"ÉÓÐÏÌØÚÕÊÔÅ --force, ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔÙ.\n" + +#: makeinfo/makeinfo.c:1635 +#, c-format +msgid "Unknown command `%s'" +msgstr "îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ `%s'" + +#: makeinfo/makeinfo.c:1657 +#, c-format +msgid "Use braces to give a command as an argument to @%s" +msgstr "" +"éÓÐÏÌØÚÕÊÔÅ ÆÉÇÕÒÎÙÅ ÓËÏÂËÉ, ÞÔÏÂÙ ÐÅÒÅÄÁÔØ @%s ËÏÍÁÎÄÕ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ" + +#: makeinfo/makeinfo.c:1838 +#, c-format +msgid "%c%s expected `{...}'" +msgstr "%c%s ÐÏÄÒÁÚÕÍÅ×ÁÅÔ `{...}'" + +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" +msgstr "îÅÐÁÒÎÁÑ }" + +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" +msgstr "âåú_éíåîé!" + +#: makeinfo/makeinfo.c:1940 +#, c-format +msgid "%c%s missing close brace" +msgstr "%c%s ÐÒÏÐÕÝÅÎÁ ÚÁËÒÙ×ÁÀÝÁÑ ÓËÏÂËÁ" + +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " +msgstr "ÓÍÏÔÒÉÔÅ " + +#: makeinfo/makeinfo.c:2707 +msgid "See " +msgstr "óÍÏÔÒÉÔÅ " + +#: makeinfo/makeinfo.c:2836 +#, c-format +msgid "`.' or `,' must follow cross reference, not %c" +msgstr "ÐÏÓÌÅ ÓÓÙÌËÉ ÄÏÌÖÎÙ ÓÌÅÄÏ×ÁÔØ `.' ÉÌÉ `,', ×ÓÔÒÅÞÅÎÏ %c" + +#: makeinfo/makeinfo.c:3026 +#, c-format +msgid "No .png or .jpg for `%s'" +msgstr "äÌÑ `%s' ÎÅ ÎÁÊÄÅÎ .png ÉÌÉ .jpg" + +#: makeinfo/makeinfo.c:3063 +#, c-format +msgid "@image file `%s' unreadable: %s" +msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ @image ÆÁÊÌ `%s': %s" + +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" +msgstr "ÐÏÓÌÅ @image ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ ÚÁÄÁÀÝÉÊ ÆÁÊÌ " + +#: makeinfo/makeinfo.c:3259 +#, c-format +msgid "{No value for `%s'}" +msgstr "{úÎÁÞÅÎÉÅ `%s' ÎÅ ÚÁÄÁÎÏ}" + +#: makeinfo/makeinfo.c:3313 +#, c-format +msgid "%c%s requires a name" +msgstr "ËÏÍÁÎÄÅ %c%s ÎÕÖÎÏ ÕËÁÚÁÔØ ÉÍÑ" + +#: makeinfo/makeinfo.c:3421 +#, c-format +msgid "Reached eof before matching @end %s" +msgstr "ëÏÎÅà ÆÁÊÌÁ ÒÁÎØÛÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ËÏÍÁÎÄÙ @end %s" + +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" +msgstr "÷ ÛÁÂÌÏÎÅ @multitable ÐÒÏÐÕÝÅÎÁ `}'" + +#: makeinfo/multi.c:284 +#, c-format +msgid "ignoring stray text `%s' after @multitable" +msgstr "ÔÅËÓÔ `%s' ÐÏÓÌÅ @multitable ÉÇÎÏÒÉÒÏ×ÁÎ" + +#: makeinfo/multi.c:357 +#, c-format +msgid "Too many columns in multitable item (max %d)" +msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ËÏÌÏÎÏË × ÜÌÅÍÅÎÔÅ ÔÁÂÌÉÃÙ (ÍÁËÓÉÍÕÍ %d)" + +#: makeinfo/multi.c:401 +#, c-format +msgid "Cannot select column #%d in multitable" +msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÂÒÁÔØ ËÏÌÏÎËÕ %d × ÔÁÂÌÉÃÅ" + +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" +msgstr "@tab ×ÎÅ ÔÁÂÌÉÃÙ ÉÇÎÏÒÉÒÏ×ÁÎ" + +# ??? +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" +msgstr "á ÚÁÞÅÍ Ñ ÄÏÌÖÅÎ ÜÔÏ ÐÅÒÅ×ÏÄÉÔØ?\n" + +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" +msgstr "* ËÏÌÏÎËÁ %d: ×Ù×ÏÄ = %s\n" + +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" +msgstr "îÏÄÁ `%s' ÂÙÌÁ ÒÁÎÅÅ ÏÐÒÅÄÅÌÅÎÁ × ÓÔÒÏËÅ %d" + +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" +msgstr "æÏÒÍÁÔÉÒÏ×ÁÎÉÅ ÎÏÄÙ %s...\n" + +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgstr "äÌÑ ÎÏÄÙ `%s' ÔÒÅÂÕÅÔÓÑ ËÏÍÁÎÄÁ ÏÐÉÓÁÎÉÑ ÓÔÒÕËÔÕÒÙ ÇÌÁ× (e.g. %c%s)" + +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" +msgstr "äÌÑ ËÏÍÁÎÄÙ `%c%s' ÎÅ ÚÁÄÁÎÏ ÉÍÑ ÎÏÄÙ" + +#: makeinfo/node.c:774 +msgid "Node:" +msgstr "óÌÅÄÕÀÝÁÑ:" + +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" +msgstr "óÌÅÄÕÀÝÁÑ:" + +#: makeinfo/node.c:793 +msgid "Previous:" +msgstr "ðÒÅÄÙÄÕÝÁÑ:" + +#: makeinfo/node.c:803 +msgid "Up:" +msgstr "÷×ÅÒÈ:" + +# ÚÄÅÓØ %s ÍÏÖÅÔ ÂÙÔØ `cross' ÉÌÉ `menu' +#: makeinfo/node.c:1012 +#, c-format +msgid "%s reference to nonexistent node `%s'" +msgstr "%s ÎÁ ÎÅÓÕÝÅÓÔ×ÕÀÝÕÀ ÎÏÄÕ `%s'" + +#: makeinfo/node.c:1029 +msgid "Menu" +msgstr "óÓÙÌËÁ ÉÚ ÍÅÎÀ" + +#: makeinfo/node.c:1031 +msgid "Cross" +msgstr "ðÅÒÅËÒÅÓÔÎÁÑ ÓÓÙÌËÁ" + +#: makeinfo/node.c:1115 +#, c-format +msgid "Next field of node `%s' not pointed to" +msgstr "îÁ ÐÏÌÅ Next ÎÏÄÙ `%s' ÎÅÔ ÓÓÙÌÏË" + +#: makeinfo/node.c:1119 +#, c-format +msgid "This node (%s) has the bad Prev" +msgstr "÷ ÜÔÏÊ ÎÏÄÅ (%s) ÎÅÐÒÁ×ÉÌØÎÙÊ ÕËÁÚÁÔÅÌØ Prev" + +#: makeinfo/node.c:1133 +msgid "Prev" +msgstr "ðÒÅÄÙÄÕÝÁÑ" + +#: makeinfo/node.c:1176 +#, c-format +msgid "Prev field of node `%s' not pointed to" +msgstr "îÁ ÐÏÌÅ Prev ÎÏÄÙ `%s' ÎÅÔ ÓÓÙÌÏË" + +#: makeinfo/node.c:1180 +#, c-format +msgid "This node (%s) has the bad Next" +msgstr "÷ ÜÔÏÊ ÎÏÄÅ (%s) ÎÅÐÒÁ×ÉÌØÎÙÊ ÕËÁÚÁÔÅÌØ Next" + +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" +msgstr "÷ ÎÏÄÅ `%s' ÎÅÔ ÐÏÌÑ Up" + +#: makeinfo/node.c:1197 +msgid "Up" +msgstr "÷×ÅÒÈ" + +#: makeinfo/node.c:1265 +#, c-format +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" +msgstr "îÏÄÁ `%s' ÎÅ ÉÍÅÅÔ ÐÕÎËÔÁ ÍÅÎÀ ÄÌÑ `%s', ÈÏÔÑ ÎÁ ÎÅÅ ÓÓÙÌÁÅÔÓÑ ÐÏÌÅ Up" + +#: makeinfo/node.c:1296 +#, c-format +msgid "node `%s' has been referenced %d times" +msgstr "ÎÁ ÎÏÄÕ `%s' ÐÏÑ×ÉÌÏÓØ %d ÓÓÙÌÏË" + +#: makeinfo/node.c:1310 +#, c-format +msgid "unreferenced node `%s'" +msgstr "ÎÁ ÎÏÄÕ `%s' ÎÅÔ ÓÓÙÌÏË" + +#: makeinfo/sectioning.c:116 +#, c-format +msgid "Appendix %c " +msgstr "ðÒÉÌÏÖÅÎÉÅ %c " + +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 +#, c-format +msgid "Internal error (search_sectioning) \"%s\"!" +msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ (search_sectioning) \"%s\"!" + +#: makeinfo/sectioning.c:468 +#, c-format +msgid "%c%s is obsolete; use %c%s instead" +msgstr "ëÏÍÁÎÄÁ %c%s ÕÓÔÁÒÅÌÁ; ÉÓÐÏÌØÚÕÊÔÅ ×ÍÅÓÔÏ ÎÅÅ %c%s" + +#: makeinfo/sectioning.c:484 +#, c-format +msgid "Node with %ctop as a section already exists" +msgstr "îÏÄÁ Ó %ctop × ËÁÞÅÓÔ×Å ÒÁÚÄÅÌÁ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ" + +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" +msgstr "úÄÅÓØ ÎÁÈÏÄÉÔÓÑ ÎÏÄÁ %ctop" + +#: makeinfo/sectioning.c:515 +#, c-format +msgid "%ctop used before %cnode, defaulting to %s" +msgstr "%ctop ×ÓÔÒÅÞÅÎÁ ÐÅÒÅÄ %cnode, ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÓÐÏÌØÚÕÅÔÓÑ %s" + +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" +msgstr "óÏÄÅÒÖÁÎÉÅ" + +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" +msgstr "ëÒÁÔËÏÅ ÓÏÄÅÒÖÁÎÉÅ" + +#: makeinfo/toc.c:354 +#, c-format +msgid "%s: TOC should be here, but it was not found" +msgstr "%s: ÚÄÅÓØ ÄÏÌÖÎÏ ÂÙÔØ ÓÏÄÅÒÁÖÁÎÉÅ, ÎÏ ÏÎÏ ÎÅ ÎÁÊÄÅÎÏ" + +#: util/install-info.c:151 +#, c-format +msgid "%s: warning: " +msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: " + +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" + +#: util/install-info.c:232 +#, c-format +msgid " for %s" +msgstr " ÄÌÑ %s" + +#: util/install-info.c:381 +#, c-format +msgid "\tTry `%s --help' for a complete list of options.\n" +msgstr "\túÁÐÕÓÔÉÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÌÎÏÇÏ ÓÐÉÓËÁ ËÌÀÞÅÊ.\n" + +#: util/install-info.c:389 +#, c-format +msgid "" +"Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" +"\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" +"\n" +"Options:\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [INFO-æáêì [DIR-æáêì]]\n" +"\n" +"õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÉÌÉ ÕÄÁÌÑÅÔ ×ÈÏÖÄÅÎÉÑ ËÁÔÁÌÏÇÁ ÄÌÑ INFO-æáêìá ÉÚ\n" +"ÆÁÊÌÁ-ËÁÔÁÌÏÇÁ Info DIR-æáêì.\n" +"\n" +"ëÌÀÞÉ:\n" +"--delete ÕÄÁÌÉÔØ ÓÕÝÅÓÔ×ÕÀÝÉÅ ×ÈÏÖÄÅÎÉÑ ÄÌÑ INFO-æáêìá ÉÚ " +"DIR-æáêìá;\n" +" ÎÅ ×ÓÔÁ×ÌÑÔØ ÎÏ×ÙÅ ×ÈÏÖÄÅÎÉÑ.\n" +"--dir-file=éíñ ÚÁÄÁÅÔ ÉÍÑ ËÁÔÁÌÏÇÅ Info,\n" +" ÜË×É×ÁÌÅÎÔÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÁÒÇÕÍÅÎÔÁ DIR-æáêì.\n" +"--entry=ôåëóô ×ÓÔÁ×ÉÔØ ôåëóô × ËÁÞÅÓÔ×Å ×ÈÏÖÄÅÎÉÑ ËÁÔÁÌÏÇÁ Info.\n" +" ôÅËÓÔ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÏÒÍÕ ÐÕÎËÔÁ ÍÅÎÀ ÐÌÀÓ (×ÏÚÍÏÖÎÏ)\n" +" ÎÅÓËÏÌØËÏ ÓÔÒÏË, ÎÁÞÉÎÁÀÝÉÈÓÑ ÐÒÏÂÅÌØÎÙÍÉ ÓÉÍ×ÏÌÁÍÉ. åÓÌÉ " +"×Ù\n" +" ÚÁÄÁÄÉÔÅ ÎÅÓËÏÌØËÏ ×ÈÏÖÄÅÎÉÊ, ×ÓÅ ÏÎÉ ÂÕÄÕÔ ×ÓÔÁ×ÌÅÎÙ. " +"åÓÌÉ\n" +" ×Ù ÎÅ ÚÁÄÁÄÉÔÅ ×ÈÏÖÄÅÎÉÊ, ÂÕÄÅÔ ×ÓÔÁ×ÌÅÎ ÔÅËÓÔ ÉÚ " +"Info-ÆÁÊÌÁ.\n" +"--help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n" +"--info-file=æáêì ÚÁÄÁÅÔ ÉÍÑ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÏÇÏ Info-ÆÁÊÌÁ,\n" +" ÜË×É×ÁÌÅÎÔÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÁÒÇÕÍÅÎÔÁ INFO-æáêì.\n" +"--info-dir=éíñ ÓÉÎÏÎÉÍ --dir-file=éíñ/dir.\n" +"--item=ôåëóô ÓÉÎÏÎÉÍ --entry ôåëóô.\n" +" ÷ÈÏÖÄÅÎÉÅ ËÁÔÁÌÏÇÁ Info ÎÁ ÓÁÍÏÍ ÄÅÌÅ Ñ×ÌÑÅÔÓÑ ÐÕÎËÔÏÍ " +"ÍÅÎÀ.\n" +"--quiet ÎÅ ×Ù×ÏÄÉÔØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ.\n" +"--remove ÓÉÎÏÎÉÍ --delete.\n" +"--section=óåë ÐÏÍÅÓÔÉÔØ ×ÈÏÖÄÅÎÉÑ × ÚÁÄÁÎÎÕÀ ÓÅËÃÉÀ ËÁÔÁÌÏÇÁ.\n" +" åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÎÅÓËÏÌØËÏ ÓÅËÃÉÊ, ×ÈÏÖÄÅÎÉÑ ÂÕÄÕÔ " +"×ÓÔÁ×ÌÅÎÙ ×\n" +" ËÁÖÄÕÀ. åÓÌÉ ×Ù ÎÅ ÚÁÄÁÄÉÔÅ ÓÅËÃÉÊ, ×ÈÏÖÄÅÎÉÑ ÂÕÄÕÔ " +"×ÓÔÁ×ÌÅÎÙ\n" +" × ÓÅËÃÉÉ, ÚÁÄÁÎÎÙÅ × Info-ÆÁÊÌÅ.\n" +"--version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n" +"\n" +"ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ <bug-texinfo@gnu.org>,\n" +"ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ <help-texinfo@gnu.org>.\n" + +#: util/install-info.c:442 +#, fuzzy, c-format +msgid "" +"This is the file .../info/dir, which contains the\n" +"topmost node of the Info hierarchy, called (dir)Top.\n" +"The first time you invoke Info you start off looking at this node.\n" +"\n" +"%s\tThis is the top of the INFO tree\n" +"\n" +" This (the Directory node) gives a menu of major topics.\n" +" Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" +" \"h\" gives a primer for first-timers,\n" +" \"mEmacs<Return>\" visits the Emacs manual, etc.\n" +"\n" +" In Emacs, you can click mouse button 2 on a menu item or cross reference\n" +" to select it.\n" +"\n" +"* Menu:\n" +msgstr "" +"üÔÏ ÆÁÊÌ .../info/dir, ÓÏÄÅÒÖÁÝÉÊ ËÏÒÎÅ×ÕÀ ÎÏÄÕ ÉÅÒÁÒÈÉÉ Info,\n" +"ÎÁÚÙ×ÁÅÍÕÀ (dir)Top. ðÒÉ ×ÙÚÏ×Å Info ×Ù ×ÉÄÉÔÅ ÜÔÕ ÎÏÄÕ.\n" +"\n" +"File: dir,\tNode: Top,\tüÔÏ ËÏÒÎÅ×ÁÑ ÎÏÄÁ ÉÅÒÁÒÈÉÉ Info\n" +"\n" +" úÄÅÓØ (× ËÁÔÁÌÏÇÅ Info) ÐÒÅÄÓÔÁ×ÌÅÎÏ ÍÅÎÀ ÐÏ ÏÓÎÏ×ÎÙÍ ÔÅÍÁÍ.\n" +" îÁÖÍÉÔÅ \"q\" ÞÔÏÂÙ ×ÙÊÔÉ, \"?\" ÞÔÏÂÙ ÐÏÓÍÏÔÒÅÔØ ×ÓÅ ËÏÍÁÎÄÙ Info,\n" +" \"d\" ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÓÀÄÁ, \"h\" ÞÔÏÂÙ ÐÒÏÞÉÔÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï ÄÌÑ " +"ÎÏ×ÉÞËÏ×,\n" +" \"mEmacs<Return>\" ÞÔÏÂÙ ÐÒÏÞÉÔÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï ÐÏ Emacs.\n" +"\n" +" ÷ Emacs ×Ù ÍÏÖÅÔÅ ÎÁÖÁÔØ ×ÔÏÒÕÀ ËÎÏÐËÕ ÍÙÛÉ ÎÁ ÐÕÎËÔÅ ÍÅÎÀ ÉÌÉ ÓÓÙÌËÅ,\n" +" ÞÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÎÅÍÕ.\n" +"\n" +"* Menu:\n" + +#: util/install-info.c:465 +#, c-format +msgid "%s: could not read (%s) and could not create (%s)\n" +msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ (%s) É ÓÏÚÄÁÔØ (%s)\n" + +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "%s: ÐÕÓÔÏÊ ÆÁÊÌ" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "START-INFO-DIR-ENTRY ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ END-INFO-DIR-ENTRY" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "END-INFO-DIR-ENTRY ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ START-INFO-DIR-ENTRY" + +#: util/install-info.c:1147 util/install-info.c:1157 +#, c-format +msgid "%s: Specify the Info directory only once.\n" +msgstr "%s: íÏÖÎÏ ÚÁÄÁÔØ ÔÏÌØËÏ ÏÄÉÎ ËÁÔÁÌÏÇ Info.\n" + +#: util/install-info.c:1192 +#, c-format +msgid "%s: Specify the Info file only once.\n" +msgstr "%s: íÏÖÎÏ ÚÁÄÁÔØ ÔÏÌØËÏ ÏÄÉÎ Info-ÆÁÊÌ.\n" + +#: util/install-info.c:1241 +#, c-format +msgid "excess command line argument `%s'" +msgstr "ÉÚÌÉÛÎÉÊ ÁÒÇÕÍÅÎÔ `%s'" + +#: util/install-info.c:1245 +msgid "No input file specified; try --help for more information." +msgstr "" +"îÅ ÚÁÄÁÎ ×ÈÏÄÎÏÊ ÆÁÊÌ.\n" +"ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ." + +#: util/install-info.c:1247 +msgid "No dir file specified; try --help for more information." +msgstr "" +"îÅ ÚÁÄÁÎ ÆÁÊÌ ËÁÔÁÌÏÇÁ.\n" +"ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ." + +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 +#, c-format +msgid "no info dir entry in `%s'" +msgstr "× `%s' ÎÅÔ ×ÈÏÖÄÅÎÉÑ ÄÌÑ ËÁÔÁÌÏÇÁ Info" + +#: util/install-info.c:1384 +#, c-format +msgid "menu item `%s' already exists, for file `%s'" +msgstr "ÐÕÎËÔ ÍÅÎÀ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ, ÄÌÑ ÆÁÊÌÁ `%s'" + +#: util/install-info.c:1407 +#, c-format +msgid "no entries found for `%s'; nothing deleted" +msgstr "ÎÅ ÎÁÊÄÅÎÏ ×ÈÏÖÄÅÎÉÊ ÄÌÑ `%s'; ÎÉÞÅÇÏ ÎÅ ÕÄÁÌÅÎÏ" + +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ" + +#: util/texindex.c:246 +msgid "keep temporary files around after processing" +msgstr "ÓÏÈÒÁÎÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÐÏÓÌÅ ÒÁÂÏÔÙ" + +#: util/texindex.c:248 +msgid "do not keep temporary files around after processing (default)" +msgstr "ÎÅ ÓÏÈÒÁÎÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ (ÐÏ ÕÍÏÌÞÁÎÉÀ)" + +#: util/texindex.c:250 +msgid "send output to FILE" +msgstr "ÚÁÐÉÓÁÔØ ×Ù×ÏÄ × æáêì" + +#: util/texindex.c:252 +msgid "display version information and exit" +msgstr "ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ" + +#: util/texindex.c:263 +#, c-format +msgid "Usage: %s [OPTION]... FILE...\n" +msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì...\n" + +#: util/texindex.c:264 +msgid "Generate a sorted index for each TeX output FILE.\n" +msgstr "" +"óÏÚÄÁÅÔ ÓÏÒÔÉÒÏ×ÁÎÎÙÊ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ ÄÌÑ\n" +"ËÁÖÄÏÇÏ ×ÙÈÏÄÎÏÇÏ TeX-ÆÁÊÌÁ.\n" + +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" +msgstr "æáêì... ÄÌÑ ÄÏËÕÍÅÎÔÁ `foo.texi' ÏÂÙÞÎÏ ÚÁÄÁÅÔÓÑ ËÁË `foo.%c%c'.\n" + +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"ëÌÀÞÉ:\n" + +#: util/texindex.c:285 +msgid "" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" +"\n" +"ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ bug-texinfo@gnu.org,\n" +"ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ help-texinfo@gnu.org.\n" + +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 +#, c-format +msgid "%s: not a texinfo index file" +msgstr "%s: ÎÅ texinfo-ÆÁÊÌ Ó ÁÌÆÁ×ÉÔÎÙÍ ÕËÁÚÁÔÅÌÅÍ" + +#: util/texindex.c:980 +#, c-format +msgid "failure reopening %s" +msgstr "ÏÛÉÂËÁ ÐÏ×ÔÏÒÎÏÇÏ ÏÔËÒÙÔÉÑ %s" + +#: util/texindex.c:1222 +#, c-format +msgid "No page number in %s" +msgstr "÷ %s ÎÅÔ ÎÏÍÅÒÁ ÓÔÒÁÎÉÃÙ" + +#: util/texindex.c:1293 +#, c-format +msgid "entry %s follows an entry with a secondary name" +msgstr "ÚÁ ×ÈÏÖÄÅÎÉÅÍ %s ÓÌÅÄÕÅÔ ×ÈÏÖÄÅÎÉÅ Ó ×ÔÏÒÉÞÎÙÍ ÉÍÅÎÅÍ" + +#: util/texindex.c:1631 +#, c-format +msgid "%s; for file `%s'.\n" +msgstr "%s; ÄÌÑ ÆÁÊÌÁ `%s'.\n" + +#~ msgid "" +#~ "---------- Footnotes ----------\n" +#~ "\n" +#~ msgstr "" +#~ "---------- óÎÏÓËÉ ----------\n" +#~ "\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]... TEXINFO-FILE...\n" +#~ "\n" +#~ "Translate Texinfo source documentation to various other formats:\n" +#~ "Info files suitable for reading online with Emacs or standalone GNU Info\n" +#~ "(by default); plain text (with --no-headers); or HTML (with --html).\n" +#~ "\n" +#~ "Options:\n" +#~ " -D VAR define a variable, as with @set.\n" +#~ " -I DIR append DIR to the @include search path.\n" +#~ " -P DIR prepend DIR to the @include search path.\n" +#~ " -U VAR undefine a variable, as with @clear.\n" +#~ " --commands-in-node-names allow @ commands in node names.\n" +#~ " --error-limit=NUM quit after NUM errors (default %d).\n" +#~ " --fill-column=NUM break Info lines at NUM characters (default %d).\n" +#~ " --footnote-style=STYLE output footnotes according to STYLE:\n" +#~ " `separate' to place footnotes in their own " +#~ "node,\n" +#~ " `end' to place the footnotes at the end of the\n" +#~ " node in which they are defined (the default).\n" +#~ " --force preserve output even if errors.\n" +#~ " --help display this help and exit.\n" +#~ " --html output HTML rather than Info format;\n" +#~ " implies --no-split.\n" +#~ msgstr "" +#~ "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... TEXINFO-æáêì...\n" +#~ "\n" +#~ "ðÒÅÏÂÒÁÚÕÅÔ ÉÓÈÏÄÎÙÅ Texinfo-ÆÁÊÌÙ × ÒÁÚÌÉÞÎÙÅ ÄÒÕÇÉÅ ÆÏÒÍÁÔÙ: × " +#~ "Info-ÆÁÊÌÙ,\n" +#~ "ËÏÔÏÒÙÅ ÍÏÖÎÏ ÞÉÔÁÔØ × Emacs ÉÌÉ × ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ GNU Info (ÐÏ\n" +#~ "ÕÍÏÌÞÁÎÉÀ), ÐÒÏÓÔÏÊ ÔÅËÓÔ (Ó ËÌÀÞÏÍ --no-headers) ÉÌÉ HTML (Ó --html).\n" +#~ "\n" +#~ "ëÌÀÞÉ:\n" +#~ " -D ðåòåíåîîáñ ÏÐÒÅÄÅÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ, ÁÎÁÌÏÇÉÞÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ " +#~ "@set.\n" +#~ " -I ëáôáìïç ÄÏÂÁ×ÉÔØ ëáôáìïç × ËÏÎÅà ÓÐÉÓËÁ ÐÏÉÓËÁ " +#~ "×ËÌÀÞÁÅÍÙÈ\n" +#~ " ÆÁÊÌÏ×.\n" +#~ " -P ëáôáìïç ÄÏÂÁ×ÉÔØ ëáôáìïç × ÎÁÞÁÌÏ ÓÐÉÓËÁ ÐÏÉÓËÁ " +#~ "×ËÌÀÞÁÅÍÙÈ\n" +#~ " ÆÁÊÌÏ×.\n" +#~ " -U ðåòåíåîîáñ ÓÄÅÌÁÔØ ÐÅÒÅÍÅÎÎÕÀ ÎÅÏÐÒÅÄÅÌÅÎÎÏÊ, ÁÎÁÌÏÇÉÞÎÏ\n" +#~ " ÉÓÐÏÌØÚÏ×ÁÎÉÀ @clear.\n" +#~ " --commands-in-node-names ÐÏÚ×ÏÌÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ @-ËÏÍÁÎÄ × ÉÍÅÎÁÈ ÎÏÄ.\n" +#~ " --error-limit=þéóìï ÏÓÔÁÎÏ×ÉÔØÓÑ ÐÏÓÌÅ þéóìá ÏÛÉÂÏË (ÐÏ ÕÍÏÌÞÁÎÉÀ " +#~ "%d).\n" +#~ " --fill-column=þéóìï ÒÁÚÂÉ×ÁÔØ ÓÔÒÏËÉ ÄÌÉÎÎÅÅ þéóìá ÓÉÍ×ÏÌÏ× (ÐÏ\n" +#~ " ÕÍÏÌÞÁÎÉÀ %d).\n" +#~ " --footnote-style=óôéìø ×Ù×ÏÄÉÔØ ÓÎÏÓËÉ ÏÄÎÉÍ ÉÚ óôéìåê:\n" +#~ " `separate' ÐÏÍÅÝÁÔØ ÓÎÏÓËÉ × ÏÔÄÅÌØÎÕÀ ÎÏÄÕ,\n" +#~ " `end' ÐÏÍÅÝÁÔØ ÓÎÏÓËÉ × ËÏÎÅà ÎÏÄÙ, ÇÄÅ ÏÎÉ " +#~ "ÂÙÌÉ\n" +#~ " ÏÐÒÅÄÅÌÅÎÙ (ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" +#~ " --force ÓÏÈÒÁÎÑÔØ ×Ù×ÏÄ, ÄÁÖÅ ÅÓÌÉ ÂÙÌÉ ÏÛÉÂËÉ.\n" +#~ " --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n" +#~ " --html ×Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ HTML, Á ÎÅ Info; " +#~ "ÐÏÄÒÁÚÕÍÅ×ÁÅÔ\n" +#~ " --no-split\n" diff --git a/gnu/usr.bin/texinfo/po/texinfo.pot b/gnu/usr.bin/texinfo/po/texinfo.pot index f6e1ce472b4..dc6b949f3b5 100644 --- a/gnu/usr.bin/texinfo/po/texinfo.pot +++ b/gnu/usr.bin/texinfo/po/texinfo.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1998-03-03 13:32-0500\n" +"POT-Creation-Date: 1999-09-25 12:11-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,12 +19,12 @@ msgstr "" #. Echo Area Movement Commands #. #. **************************************************************** -#: info/echo-area.c:283 info/session.c:698 +#: info/echo-area.c:283 info/session.c:711 msgid "Move forward a character" msgstr "" #. Move point backward in the node. -#: info/echo-area.c:295 info/session.c:714 +#: info/echo-area.c:295 info/session.c:727 msgid "Move backward a character" msgstr "" @@ -37,11 +37,11 @@ msgid "Move to the end of this line" msgstr "" #. Move forward a word in the input line. -#: info/echo-area.c:320 info/session.c:732 +#: info/echo-area.c:320 info/session.c:745 msgid "Move forward a word" msgstr "" -#: info/echo-area.c:360 info/session.c:781 +#: info/echo-area.c:360 info/session.c:794 msgid "Move backward a word" msgstr "" @@ -137,26 +137,26 @@ msgstr "" msgid "%d completions:\n" msgstr "" -#: info/echo-area.c:1088 +#: info/echo-area.c:1089 msgid "Insert completion" msgstr "" -#: info/echo-area.c:1221 +#: info/echo-area.c:1222 msgid "Building completions..." msgstr "" #. Scroll the "other" window. If there is a window showing completions, scroll #. that one, otherwise scroll the window which was active on entering the read #. function. -#: info/echo-area.c:1319 +#: info/echo-area.c:1320 msgid "Scroll the completions window" msgstr "" -#: info/footnotes.c:206 +#: info/footnotes.c:212 msgid "Footnotes could not be displayed" msgstr "" -#: info/footnotes.c:232 +#: info/footnotes.c:238 msgid "Show the footnotes associated with this node in another window" msgstr "" @@ -207,32 +207,32 @@ msgstr "" msgid "Found \"%s\" in %s. (`\\[next-index-match]' tries to find next.)" msgstr "" -#: info/indices.c:533 +#: info/indices.c:549 #, c-format msgid "Scanning indices of \"%s\"..." msgstr "" -#: info/indices.c:616 +#: info/indices.c:632 msgid "Grovel all known info file's indices for a string and build a menu" msgstr "" -#: info/indices.c:620 +#: info/indices.c:636 msgid "Index apropos: " msgstr "" -#: info/indices.c:650 +#: info/indices.c:666 #, c-format msgid "" "\n" "* Menu: Nodes whoses indices contain \"%s\":\n" msgstr "" -#: info/info.c:212 -msgid "Try --help for more information." +#: info/info.c:248 +msgid "Try --help for more information.\n" msgstr "" -#: info/info.c:231 makeinfo/makeinfo.c:1089 util/install-info.c:530 -#: util/texindex.c:338 +#: info/info.c:267 makeinfo/makeinfo.c:616 util/install-info.c:1221 +#: util/texindex.c:336 #, c-format msgid "" "Copyright (C) %s Free Software Foundation, Inc.\n" @@ -241,121 +241,383 @@ msgid "" "For more information about these matters, see the files named COPYING.\n" msgstr "" -#: info/info.c:363 -msgid "no entries found\n" -msgstr "" - -#: info/info.c:406 -msgid "There is no menu in this node." -msgstr "" - -#: info/info.c:437 +#: info/info.c:461 #, c-format -msgid "There is no menu item \"%s\" in this node." +msgid "no index entries found for `%s'\n" msgstr "" -#: info/info.c:501 -#, c-format -msgid "Unable to find the node referenced by \"%s\"." -msgstr "" - -#: info/info.c:602 +#: info/info.c:530 #, c-format msgid "" -"Usage: %s [OPTION]... [INFO-FILE [MENU-ITEM...]]\n" +"Usage: %s [OPTION]... [MENU-ITEM...]\n" "\n" "Read documentation in Info format.\n" -"For more complete documentation on how to use Info, run `info info " -"options'.\n" "\n" "Options:\n" -"--directory DIR add DIR to INFOPATH.\n" -"--dribble FILENAME remember user keystrokes in FILENAME.\n" -"--file FILENAME specify Info file to visit.\n" -"--node NODENAME specify nodes in first visited Info file.\n" -"--output FILENAME output selected nodes to FILENAME.\n" -"--restore FILENAME read initial keystrokes from FILENAME.\n" -"--subnodes recursively output menu items.\n" -"--help display this help and exit.\n" -"--version display version information and exit.\n" +" --apropos=SUBJECT look up SUBJECT in all indices of all manuals.\n" +" --directory=DIR add DIR to INFOPATH.\n" +" --dribble=FILENAME remember user keystrokes in FILENAME.\n" +" --file=FILENAME specify Info file to visit.\n" +" --help display this help and exit.\n" +" --index-search=STRING go to node pointed by index entry STRING.\n" +" --node=NODENAME specify nodes in first visited Info file.\n" +" --output=FILENAME output selected nodes to FILENAME.\n" +" --restore=FILENAME read initial keystrokes from FILENAME.\n" +" --show-options, --usage go to command-line options node.\n" +" --subnodes recursively output menu items.\n" +"%s --vi-keys use vi-like and less-like key bindings.\n" +" --version display version information and exit.\n" "\n" -"The first argument, if present, is the name of the Info file to read.\n" +"The first non-option argument, if present, is the menu entry to start from;\n" +"it is searched for in all `dir' files along INFOPATH.\n" +"If it is not present, info merges all `dir' files and shows the result.\n" "Any remaining arguments are treated as the names of menu\n" -"items in the initial node visited. For example, `info emacs buffers'\n" -"moves to the node `buffers' in the info file `emacs'.\n" +"items relative to the initial node visited.\n" "\n" -"Email bug reports to bug-texinfo@gnu.org." +"Examples:\n" +" info show top-level dir menu\n" +" info emacs start at emacs node from top-level dir\n" +" info emacs buffers start at buffers node within emacs manual\n" +" info --show-options emacs start at node with emacs' command line options\n" +" info -f ./foo.info show file ./foo.info, not searching dir\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" +msgstr "" + +#: info/info.c:604 +#, c-format +msgid "Cannot find node `%s'." +msgstr "" + +#: info/info.c:605 +#, c-format +msgid "Cannot find node `(%s)%s'." +msgstr "" + +#: info/info.c:606 +msgid "Cannot find a window!" +msgstr "" + +#: info/info.c:607 +msgid "Point doesn't appear within this window's node!" +msgstr "" + +#: info/info.c:608 +msgid "Cannot delete the last window." +msgstr "" + +#: info/info.c:609 +msgid "No menu in this node." +msgstr "" + +#: info/info.c:610 +msgid "No footnotes in this node." +msgstr "" + +#: info/info.c:611 +msgid "No cross references in this node." +msgstr "" + +#: info/info.c:612 +#, c-format +msgid "No `%s' pointer for this node." +msgstr "" + +#: info/info.c:613 +#, c-format +msgid "Unknown Info command `%c'; try `?' for help." +msgstr "" + +#: info/info.c:614 +#, c-format +msgid "Terminal type `%s' is not smart enough to run Info." +msgstr "" + +#: info/info.c:615 +msgid "You are already at the last page of this node." +msgstr "" + +#: info/info.c:616 +msgid "You are already at the first page of this node." +msgstr "" + +#: info/info.c:617 +msgid "Only one window." +msgstr "" + +#: info/info.c:618 +msgid "Resulting window would be too small." +msgstr "" + +#: info/info.c:619 +msgid "Not enough room for a help window, please delete a window." +msgstr "" + +#: info/infodoc.c:45 +msgid "Basic Commands in Info Windows\n" +msgstr "" + +#: info/infodoc.c:46 +msgid "******************************\n" +msgstr "" + +#: info/infodoc.c:48 +#, c-format +msgid " %-10s Quit this help.\n" +msgstr "" + +#: info/infodoc.c:49 +#, c-format +msgid " %-10s Quit Info altogether.\n" msgstr "" #: info/infodoc.c:50 -msgid "Basic Commands in Info Windows" +#, c-format +msgid " %-10s Invoke the Info tutorial.\n" +msgstr "" + +#: info/infodoc.c:52 +msgid "Moving within a node:\n" +msgstr "" + +#: info/infodoc.c:53 +msgid "---------------------\n" +msgstr "" + +#: info/infodoc.c:54 +#, c-format +msgid " %-10s Scroll forward a page.\n" +msgstr "" + +#: info/infodoc.c:55 +#, c-format +msgid " %-10s Scroll backward a page.\n" +msgstr "" + +#: info/infodoc.c:56 +#, c-format +msgid " %-10s Go to the beginning of this node.\n" +msgstr "" + +#: info/infodoc.c:57 +#, c-format +msgid " %-10s Go to the end of this node.\n" +msgstr "" + +#: info/infodoc.c:58 +#, c-format +msgid " %-10s Scroll forward 1 line.\n" +msgstr "" + +#: info/infodoc.c:59 +#, c-format +msgid " %-10s Scroll backward 1 line.\n" +msgstr "" + +#: info/infodoc.c:61 +msgid "Selecting other nodes:\n" +msgstr "" + +#: info/infodoc.c:62 +msgid "----------------------\n" +msgstr "" + +#: info/infodoc.c:63 +#, c-format +msgid " %-10s Move to the `next' node of this node.\n" +msgstr "" + +#: info/infodoc.c:64 +#, c-format +msgid " %-10s Move to the `previous' node of this node.\n" +msgstr "" + +#: info/infodoc.c:65 +#, c-format +msgid " %-10s Move `up' from this node.\n" +msgstr "" + +#: info/infodoc.c:66 +#, c-format +msgid " %-10s Pick menu item specified by name.\n" +msgstr "" + +#: info/infodoc.c:67 +msgid " Picking a menu item causes another node to be selected.\n" +msgstr "" + +#: info/infodoc.c:68 +#, c-format +msgid " %-10s Follow a cross reference. Reads name of reference.\n" +msgstr "" + +#: info/infodoc.c:69 +#, c-format +msgid " %-10s Move to the last node seen in this window.\n" +msgstr "" + +#: info/infodoc.c:70 +#, c-format +msgid " %-10s Skip to next hypertext link within this node.\n" +msgstr "" + +#: info/infodoc.c:71 +#, c-format +msgid " %-10s Follow the hypertext link under cursor.\n" +msgstr "" + +#: info/infodoc.c:72 +#, c-format +msgid " %-10s Move to the `directory' node. Equivalent to `g (DIR)'.\n" +msgstr "" + +#: info/infodoc.c:73 +#, c-format +msgid " %-10s Move to the Top node. Equivalent to `g Top'.\n" +msgstr "" + +#: info/infodoc.c:75 +msgid "Other commands:\n" +msgstr "" + +#: info/infodoc.c:76 +msgid "---------------\n" +msgstr "" + +#: info/infodoc.c:77 +#, c-format +msgid " %-10s Pick first ... ninth item in node's menu.\n" +msgstr "" + +#: info/infodoc.c:78 +#, c-format +msgid " %-10s Pick last item in node's menu.\n" +msgstr "" + +#: info/infodoc.c:79 +#, c-format +msgid "" +" %-10s Search for a specified string in the index entries of this Info\n" +msgstr "" + +#: info/infodoc.c:80 +msgid "" +" file, and select the node referenced by the first entry " +"found.\n" +msgstr "" + +#: info/infodoc.c:81 +#, c-format +msgid " %-10s Move to node specified by name.\n" +msgstr "" + +#: info/infodoc.c:82 +msgid "" +" You may include a filename as well, as in (FILENAME)NODENAME.\n" msgstr "" -#: info/infodoc.c:211 +#: info/infodoc.c:83 +#, c-format +msgid "" +" %-10s Search forward through this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:84 info/infodoc.c:86 +msgid "" +" and select the node in which the next occurrence is found.\n" +msgstr "" + +#: info/infodoc.c:85 +#, c-format +msgid " %-10s Search backward in this Info file for a specified string,\n" +msgstr "" + +#: info/infodoc.c:258 +msgid "The current search path is:\n" +msgstr "" + +#: info/infodoc.c:261 +msgid "" +"Commands available in Info windows:\n" +"\n" +msgstr "" + +#: info/infodoc.c:264 +msgid "" +"Commands available in the echo area:\n" +"\n" +msgstr "" + +#: info/infodoc.c:280 msgid "" "The following commands can only be invoked via M-x:\n" "\n" msgstr "" -#: info/infodoc.c:228 +#: info/infodoc.c:301 msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n" msgstr "" #. Create or move to the help window. -#: info/infodoc.c:328 +#: info/infodoc.c:411 msgid "Display help message" msgstr "" #. Show the Info help node. This means that the "info" file is installed #. where it can easily be found on your system. -#: info/infodoc.c:346 +#: info/infodoc.c:429 msgid "Visit Info node `(info)Help'" msgstr "" -#: info/infodoc.c:470 +#: info/infodoc.c:555 msgid "Print documentation for KEY" msgstr "" -#: info/infodoc.c:483 +#: info/infodoc.c:568 #, c-format msgid "Describe key: %s" msgstr "" -#: info/infodoc.c:492 +#: info/infodoc.c:577 #, c-format msgid "ESC %s is undefined." msgstr "" -#: info/infodoc.c:509 +#: info/infodoc.c:594 #, c-format msgid "%s is undefined." msgstr "" -#: info/infodoc.c:535 +#: info/infodoc.c:620 #, c-format msgid "%s is defined to %s." msgstr "" -#: info/infodoc.c:731 +#: info/infodoc.c:812 +msgid "Show what to type to execute a given command" +msgstr "" + +#: info/infodoc.c:816 msgid "Where is command: " msgstr "" -#: info/infodoc.c:753 +#: info/infodoc.c:838 #, c-format msgid "`%s' is not on any keys" msgstr "" -#: info/infodoc.c:759 +#: info/infodoc.c:844 #, c-format msgid "%s can only be invoked via %s." msgstr "" -#: info/infodoc.c:762 +#: info/infodoc.c:847 #, c-format msgid "%s can be invoked via %s." msgstr "" -#: info/infodoc.c:766 +#: info/infodoc.c:851 #, c-format msgid "There is no function named `%s'" msgstr "" @@ -385,13 +647,13 @@ msgstr "" msgid "Set screen height to (%d): " msgstr "" -#: info/makedoc.c:126 +#: info/makedoc.c:132 msgid "" " Source files groveled to make this file include:\n" "\n" msgstr "" -#: info/makedoc.c:450 +#: info/makedoc.c:465 #, c-format msgid "Couldn't manipulate the file %s.\n" msgstr "" @@ -404,167 +666,176 @@ msgid "" " ---------- ----- ---- ---------------" msgstr "" -#: info/nodemenu.c:197 +#: info/nodemenu.c:199 msgid "" "Here is the menu of nodes you have recently visited.\n" "Select one from this menu, or use `\\[history-node]' in another window.\n" msgstr "" -#: info/nodemenu.c:217 +#: info/nodemenu.c:219 msgid "Make a window containing a menu of all of the currently visited nodes" msgstr "" -#: info/nodemenu.c:297 +#: info/nodemenu.c:299 msgid "Select a node which has been previously visited in a visible window" msgstr "" -#: info/nodemenu.c:309 +#: info/nodemenu.c:311 msgid "Select visited node: " msgstr "" -#: info/nodemenu.c:329 info/session.c:1996 +#: info/nodemenu.c:331 info/session.c:2146 #, c-format msgid "The reference disappeared! (%s)." msgstr "" -#: info/session.c:162 +#: info/session.c:169 #, c-format msgid "" -"Welcome to Info version %s. \"\\[get-help-window]\" for help, " -"\"\\[menu-item]\" for menu item." +"Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] " +"for menu item." msgstr "" #. Move WINDOW's point down to the next line if possible. -#: info/session.c:629 +#: info/session.c:642 msgid "Move down to the next line" msgstr "" #. Move WINDOW's point up to the previous line if possible. -#: info/session.c:644 +#: info/session.c:657 msgid "Move up to the previous line" msgstr "" #. Move WINDOW's point to the end of the true line. -#: info/session.c:659 +#: info/session.c:672 msgid "Move to the end of the line" msgstr "" #. Move WINDOW's point to the beginning of the true line. -#: info/session.c:679 +#: info/session.c:692 msgid "Move to the start of the line" msgstr "" -#: info/session.c:855 -msgid " times" -msgstr "" - -#: info/session.c:857 -#, c-format -msgid "%d times" -msgstr "" - -#: info/session.c:895 -msgid "No \"Next\" pointer for this node." -msgstr "" - -#: info/session.c:898 -msgid "Following \"Next\" node..." +#: info/session.c:884 makeinfo/node.c:1092 +msgid "Next" msgstr "" -#: info/session.c:899 info/session.c:927 info/session.c:999 -#: info/session.c:1717 -msgid "Next" +#: info/session.c:887 +msgid "Following Next node..." msgstr "" -#: info/session.c:915 +#: info/session.c:904 msgid "Selecting first menu item..." msgstr "" -#: info/session.c:926 -msgid "Selecting \"Next\" node..." +#: info/session.c:915 +msgid "Selecting Next node..." msgstr "" -#: info/session.c:950 info/session.c:1063 info/session.c:1733 -msgid "Up" +#: info/session.c:985 +#, c-format +msgid "Moving Up %d time(s), then Next." msgstr "" -#: info/session.c:1020 -msgid "No more nodes." +#: info/session.c:1009 +msgid "No more nodes within this document." msgstr "" -#: info/session.c:1044 -msgid "No \"Prev\" for this node." +#: info/session.c:1033 +msgid "No `Prev' for this node." msgstr "" #. Move to the previous node. If this node now contains a menu, #. and we have not inhibited movement to it, move to the node #. corresponding to the last menu item. -#: info/session.c:1047 info/session.c:1100 -msgid "Moving \"Prev\" in this window." +#: info/session.c:1036 info/session.c:1091 +msgid "Moving Prev in this window." msgstr "" -#: info/session.c:1048 info/session.c:1101 info/session.c:1725 -msgid "Prev" -msgstr "" - -#: info/session.c:1059 -msgid "No \"Prev\" or \"Up\" for this node." +#: info/session.c:1050 +msgid "No `Prev' or `Up' for this node within this document." msgstr "" -#: info/session.c:1062 -msgid "Moving \"Up\" in this window." +#: info/session.c:1053 +msgid "Moving Up in this window." msgstr "" -#: info/session.c:1110 -msgid "Moving to \"Prev\"'s last menu item." +#: info/session.c:1101 +msgid "Moving to `Prev's last menu item." msgstr "" -#: info/session.c:1121 +#: info/session.c:1112 msgid "Move forwards or down through node structure" msgstr "" -#: info/session.c:1137 +#: info/session.c:1128 msgid "Move backwards or up through node structure" msgstr "" #. Show the next screen of WINDOW's node. -#: info/session.c:1152 +#: info/session.c:1143 msgid "Scroll forward in this window" msgstr "" +#: info/session.c:1192 +msgid "Scroll forward in this window and set default window size" +msgstr "" + #. Show the previous screen of WINDOW's node. -#: info/session.c:1197 +#: info/session.c:1200 msgid "Scroll backward in this window" msgstr "" +#: info/session.c:1244 +msgid "Scroll backward in this window and set default window size" +msgstr "" + #. Move to the beginning of the node. -#: info/session.c:1237 +#: info/session.c:1252 msgid "Move to the start of this node" msgstr "" #. Move to the end of the node. -#: info/session.c:1244 +#: info/session.c:1259 msgid "Move to the end of this node" msgstr "" +#. Scroll the window forward by N lines. +#: info/session.c:1266 +msgid "Scroll down by lines" +msgstr "" + +#. Scroll the window backward by N lines. +#: info/session.c:1283 +msgid "Scroll up by lines" +msgstr "" + +#: info/session.c:1301 +msgid "Scroll down by half screen size" +msgstr "" + +#: info/session.c:1327 +msgid "Scroll up by half screen size" +msgstr "" + #. **************************************************************** #. #. Commands for Manipulating Windows #. #. **************************************************************** #. Make the next window in the chain be the active window. -#: info/session.c:1257 +#: info/session.c:1356 msgid "Select the next window" msgstr "" #. Make the previous window in the chain be the active window. -#: info/session.c:1296 +#: info/session.c:1395 msgid "Select the previous window" msgstr "" #. Split WINDOW into two windows, both showing the same node. If we #. are automatically tiling windows, re-tile after the split. -#: info/session.c:1347 +#: info/session.c:1446 msgid "Split the current window" msgstr "" @@ -572,283 +843,329 @@ msgstr "" #. automatically displaying footnotes, show or remove the footnotes #. window. If we are automatically tiling windows, re-tile after the #. deletion. -#: info/session.c:1428 +#: info/session.c:1527 msgid "Delete the current window" msgstr "" -#: info/session.c:1436 +#: info/session.c:1535 msgid "Cannot delete a permanent window" msgstr "" #. Just keep WINDOW, deleting all others. -#: info/session.c:1469 +#: info/session.c:1568 msgid "Delete all other windows" msgstr "" #. Scroll the "other" window of WINDOW. -#: info/session.c:1515 +#: info/session.c:1614 msgid "Scroll the other window" msgstr "" +#: info/session.c:1635 +msgid "Scroll the other window backward" +msgstr "" + #. Change the size of WINDOW by AMOUNT. -#: info/session.c:1535 +#: info/session.c:1641 msgid "Grow (or shrink) this window" msgstr "" -#: info/session.c:1546 +#: info/session.c:1652 msgid "Divide the available screen space among the visible windows" msgstr "" -#: info/session.c:1553 +#: info/session.c:1659 msgid "Toggle the state of line wrapping in the current window" msgstr "" #. Make WINDOW display the "Next:" node of the node currently being #. displayed. -#: info/session.c:1714 -msgid "Select the `Next' node" +#: info/session.c:1838 +msgid "Select the Next node" msgstr "" #. Make WINDOW display the "Prev:" node of the node currently being #. displayed. -#: info/session.c:1722 -msgid "Select the `Prev' node" +#: info/session.c:1846 +msgid "Select the Prev node" msgstr "" #. Make WINDOW display the "Up:" node of the node currently being #. displayed. -#: info/session.c:1730 -msgid "Select the `Up' node" +#: info/session.c:1854 +msgid "Select the Up node" msgstr "" #. Make WINDOW display the last node of this info file. -#: info/session.c:1737 +#: info/session.c:1861 msgid "Select the last node in this file" msgstr "" -#: info/session.c:1750 info/session.c:1768 +#: info/session.c:1888 info/session.c:1921 msgid "This window has no additional nodes" msgstr "" #. Make WINDOW display the first node of this info file. -#: info/session.c:1759 +#: info/session.c:1894 msgid "Select the first node in this file" msgstr "" -#: info/session.c:1778 +#: info/session.c:1928 msgid "Select the last item in this node's menu" msgstr "" #. Use KEY (a digit) to select the Nth menu item in WINDOW->node. -#: info/session.c:1784 +#: info/session.c:1934 msgid "Select this menu item" msgstr "" -#: info/session.c:1813 +#: info/session.c:1963 #, c-format msgid "There aren't %d items in this menu." msgstr "" -#: info/session.c:1944 +#: info/session.c:2094 #, c-format msgid "Menu item (%s): " msgstr "" -#: info/session.c:1946 +#: info/session.c:2096 msgid "Menu item: " msgstr "" -#: info/session.c:1951 +#: info/session.c:2101 #, c-format msgid "Follow xref (%s): " msgstr "" -#: info/session.c:1953 +#: info/session.c:2103 msgid "Follow xref: " msgstr "" #. Read a line (with completion) which is the name of a menu item, #. and select that item. -#: info/session.c:2042 +#: info/session.c:2191 msgid "Read a menu item and select its node" msgstr "" -#: info/session.c:2050 +#: info/session.c:2199 msgid "Read a footnote or cross reference and select its node" msgstr "" #. Position the cursor at the start of this node's menu. -#: info/session.c:2056 +#: info/session.c:2205 msgid "Move to the start of this node's menu" msgstr "" -#: info/session.c:2080 +#: info/session.c:2229 msgid "Visit as many menu items at once as possible" msgstr "" #. Read a line of input which is a node name, and go to that node. -#: info/session.c:2108 +#: info/session.c:2257 msgid "Read a node name and select it" msgstr "" -#: info/session.c:2169 info/session.c:2173 -msgid "Goto Node: " +#: info/session.c:2312 info/session.c:2316 +msgid "Goto node: " +msgstr "" + +#: info/session.c:2382 +#, c-format +msgid "No menu in node `%s'." +msgstr "" + +#: info/session.c:2422 +#, c-format +msgid "No menu item `%s' in node `%s'." +msgstr "" + +#: info/session.c:2452 +#, c-format +msgid "Unable to find node referenced by `%s' in `%s'." +msgstr "" + +#: info/session.c:2503 +msgid "Read a list of menus starting from dir and follow them" +msgstr "" + +#: info/session.c:2505 +msgid "Follow menus: " msgstr "" -#: info/session.c:2194 +#: info/session.c:2703 +msgid "Find the node describing program invocation" +msgstr "" + +#: info/session.c:2705 +#, c-format +msgid "Find Invocation node of [%s]: " +msgstr "" + +#: info/session.c:2743 msgid "Read a manpage reference and select it" msgstr "" -#: info/session.c:2198 +#: info/session.c:2747 msgid "Get Manpage: " msgstr "" #. Move to the "Top" node in this file. -#: info/session.c:2228 +#: info/session.c:2777 msgid "Select the node `Top' in this file" msgstr "" -#. Notice that the node "Top" is special, and doesn't have to -#. be referenced. -#: info/session.c:2230 makeinfo/makeinfo.c:5145 makeinfo/makeinfo.c:5228 -msgid "Top" -msgstr "" - #. Move to the node "(dir)Top". -#: info/session.c:2234 +#: info/session.c:2783 msgid "Select the node `(dir)'" msgstr "" -#: info/session.c:2254 +#: info/session.c:2803 #, c-format msgid "Kill node (%s): " msgstr "" -#: info/session.c:2307 +#: info/session.c:2857 #, c-format msgid "Cannot kill node `%s'" msgstr "" -#: info/session.c:2317 +#: info/session.c:2867 msgid "Cannot kill the last node" msgstr "" -#: info/session.c:2401 +#: info/session.c:2953 msgid "Select the most recently selected node" msgstr "" #. Kill named node. -#: info/session.c:2407 +#: info/session.c:2959 msgid "Kill this node" msgstr "" #. Read the name of a file and select the entire file. -#: info/session.c:2415 +#: info/session.c:2967 msgid "Read the name of a file and select it" msgstr "" -#: info/session.c:2419 +#: info/session.c:2971 msgid "Find file: " msgstr "" -#: info/session.c:2436 +#: info/session.c:2988 #, c-format -msgid "Cannot find \"%s\"." +msgid "Cannot find `%s'." msgstr "" -#: info/session.c:2483 info/session.c:2608 +#: info/session.c:3033 info/session.c:3154 #, c-format -msgid "Could not create output file \"%s\"." +msgid "Could not create output file `%s'." msgstr "" -#: info/session.c:2496 info/session.c:2625 info/session.c:2671 +#: info/session.c:3046 info/session.c:3171 info/session.c:3232 msgid "Done." msgstr "" -#: info/session.c:2553 -#, c-format -msgid "Writing node \"(%s)%s\"..." -msgstr "" - -#: info/session.c:2556 +#. Maybe we should print some information about the node being output. +#: info/session.c:3102 #, c-format -msgid "Writing node \"%s\"..." +msgid "Writing node %s..." msgstr "" -#: info/session.c:2634 +#: info/session.c:3180 msgid "Pipe the contents of this node through INFO_PRINT_COMMAND" msgstr "" -#: info/session.c:2654 +#: info/session.c:3216 #, c-format -msgid "Cannot open pipe to \"%s\"." +msgid "Cannot open pipe to `%s'." msgstr "" -#: info/session.c:2661 +#. Maybe we should print some information about the node being output. +#: info/session.c:3222 #, c-format -msgid "Printing node \"(%s)%s\"..." +msgid "Printing node %s..." msgstr "" -#: info/session.c:2664 +#: info/session.c:3464 #, c-format -msgid "Printing node \"%s\"..." +msgid "Searching subfile %s ..." msgstr "" -#: info/session.c:2896 -#, c-format -msgid "Searching subfile \"%s\"..." +#: info/session.c:3516 +msgid "Read a string and search for it case-sensitively" msgstr "" -#: info/session.c:2946 +#: info/session.c:3523 msgid "Read a string and search for it" msgstr "" -#: info/session.c:2966 +#: info/session.c:3531 +msgid "Read a string and search backward for it" +msgstr "" + +#: info/session.c:3573 #, c-format -msgid "%s for string [%s]: " +msgid "%s%sfor string [%s]: " msgstr "" -#: info/session.c:2967 +#: info/session.c:3574 msgid "Search backward" msgstr "" -#: info/session.c:2967 +#: info/session.c:3574 msgid "Search" msgstr "" -#: info/session.c:2994 +#: info/session.c:3575 +msgid " case-sensitively " +msgstr "" + +#: info/session.c:3575 +msgid " " +msgstr "" + +#: info/session.c:3615 msgid "Search failed." msgstr "" -#: info/session.c:3020 info/session.c:3026 +#: info/session.c:3633 +msgid "Repeat last search in the same direction" +msgstr "" + +#: info/session.c:3636 info/session.c:3646 +msgid "No previous search string" +msgstr "" + +#: info/session.c:3643 +msgid "Repeat last search in the reverse direction" +msgstr "" + +#: info/session.c:3661 info/session.c:3667 msgid "Search interactively for a string as you type it" msgstr "" -#: info/session.c:3120 +#: info/session.c:3761 msgid "I-search backward: " msgstr "" -#: info/session.c:3122 +#: info/session.c:3763 msgid "I-search: " msgstr "" -#: info/session.c:3147 +#: info/session.c:3788 msgid "Failing " msgstr "" -#: info/session.c:3512 -msgid "No cross references in this node." -msgstr "" - -#: info/session.c:3579 +#: info/session.c:4244 msgid "Move to the previous cross reference" msgstr "" -#: info/session.c:3588 +#: info/session.c:4253 msgid "Move to the next cross reference" msgstr "" -#: info/session.c:3598 +#: info/session.c:4263 msgid "Select reference or menu item appearing on this line" msgstr "" @@ -858,57 +1175,57 @@ msgstr "" #. #. **************************************************************** #. What to do when C-g is pressed in a window. -#: info/session.c:3620 +#: info/session.c:4285 msgid "Cancel current operation" msgstr "" -#: info/session.c:3627 +#: info/session.c:4292 msgid "Quit" msgstr "" -#: info/session.c:3636 -msgid "Move to the cursor to a specific line of the window" +#: info/session.c:4301 +msgid "Move the cursor to a specific line of the window" msgstr "" #. Clear the screen and redraw its contents. Given a numeric argument, #. move the line the cursor is on to the COUNT'th line of the window. -#: info/session.c:3668 +#: info/session.c:4333 msgid "Redraw the display" msgstr "" #. This command does nothing. It is the fact that a key is bound to it #. that has meaning. See the code at the top of info_session (). -#: info/session.c:3705 +#: info/session.c:4370 msgid "Quit using Info" msgstr "" -#: info/session.c:3728 +#: info/session.c:4393 #, c-format msgid "Unknown command (%s)." msgstr "" -#: info/session.c:3733 +#: info/session.c:4396 msgid "\"\" is invalid" msgstr "" -#: info/session.c:3735 +#: info/session.c:4397 #, c-format msgid "\"%s\" is invalid" msgstr "" -#: info/session.c:3958 +#: info/session.c:4620 msgid "Add this digit to the current numeric argument" msgstr "" -#: info/session.c:3967 +#: info/session.c:4629 msgid "Start (or multiply by 4) the current numeric argument" msgstr "" -#: info/session.c:3982 +#: info/session.c:4644 msgid "Internally used by \\[universal-argument]" msgstr "" -#: info/tilde.c:362 +#: info/tilde.c:344 msgid "readline: Out of virtual memory!\n" msgstr "" @@ -976,736 +1293,877 @@ msgstr "" msgid "Set %s to value (%s): " msgstr "" -#: info/window.c:1102 +#: info/window.c:1101 msgid "--*** Tags out of Date ***" msgstr "" #. strlen (location_indicator). #. 10 for the decimal representation of the number of lines in this #. node, and the remainder of the text that can appear in the line. -#: info/window.c:1113 +#: info/window.c:1112 msgid "-----Info: (), lines ----, " msgstr "" -#: info/window.c:1120 +#: info/window.c:1119 #, c-format msgid "-%s---Info: %s, %d lines --%s--" msgstr "" -#: info/window.c:1124 +#: info/window.c:1123 #, c-format msgid "-%s%s-Info: (%s)%s, %d lines --%s--" msgstr "" -#: info/window.c:1131 +#: info/window.c:1130 #, c-format msgid " Subfile: %s" msgstr "" -#: lib/getopt.c:672 +#: lib/getopt.c:680 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" -#: lib/getopt.c:696 +#: lib/getopt.c:704 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:701 +#: lib/getopt.c:709 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:718 lib/getopt.c:891 +#: lib/getopt.c:726 lib/getopt.c:899 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #. --option -#: lib/getopt.c:747 +#: lib/getopt.c:755 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #. +option or -option -#: lib/getopt.c:751 +#: lib/getopt.c:759 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #. 1003.2 specifies the format of this message. -#: lib/getopt.c:777 +#: lib/getopt.c:785 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" -#: lib/getopt.c:780 +#: lib/getopt.c:788 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #. 1003.2 specifies the format of this message. -#: lib/getopt.c:810 lib/getopt.c:940 +#: lib/getopt.c:818 lib/getopt.c:948 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" -#: lib/getopt.c:857 +#: lib/getopt.c:865 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" -#: lib/getopt.c:875 +#: lib/getopt.c:883 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" -#: makeinfo/makeinfo.c:893 -#, c-format -msgid "%s:%d: warning: " +#: makeinfo/cmds.c:447 +msgid "January" msgstr "" -#: makeinfo/makeinfo.c:916 -msgid "Too many errors! Gave up.\n" +#: makeinfo/cmds.c:447 +msgid "February" msgstr "" -#: makeinfo/makeinfo.c:975 makeinfo/makeinfo.c:1000 makeinfo/makeinfo.c:1068 -#, c-format -msgid "%s: %s arg must be numeric, not `%s'.\n" +#: makeinfo/cmds.c:447 +msgid "March" msgstr "" -#: makeinfo/makeinfo.c:989 -#, c-format -msgid "Couldn't open macro expansion output `%s'" +#: makeinfo/cmds.c:447 +msgid "April" msgstr "" -#: makeinfo/makeinfo.c:992 -msgid "Cannot specify more than one macro expansion output" +#: makeinfo/cmds.c:447 +msgid "May" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "June" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "July" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "August" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "September" +msgstr "" + +#: makeinfo/cmds.c:448 +msgid "October" msgstr "" -#: makeinfo/makeinfo.c:1036 +#: makeinfo/cmds.c:449 +msgid "November" +msgstr "" + +#: makeinfo/cmds.c:449 +msgid "December" +msgstr "" + +#: makeinfo/cmds.c:571 #, c-format -msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" +msgid "unlikely character %c in @var" +msgstr "" + +#: makeinfo/cmds.c:605 +msgid "@sc argument all uppercase, thus no effect" msgstr "" -#: makeinfo/makeinfo.c:1079 +#: makeinfo/cmds.c:754 #, c-format -msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" +msgid "%c%s is obsolete" msgstr "" -#: makeinfo/makeinfo.c:1110 +#: makeinfo/cmds.c:814 #, c-format -msgid "%s: missing file argument.\n" +msgid "@sp requires a positive numeric argument, not `%s'" msgstr "" -#: makeinfo/makeinfo.c:1163 +#: makeinfo/cmds.c:1092 makeinfo/cmds.c:1118 makeinfo/footnote.c:80 #, c-format -msgid "Try `%s --help' for more information.\n" +msgid "Bad argument to %c%s" +msgstr "" + +#: makeinfo/cmds.c:1102 makeinfo/makeinfo.c:3678 +msgid "asis" +msgstr "" + +#: makeinfo/cmds.c:1104 makeinfo/makeinfo.c:3680 +msgid "none" +msgstr "" + +#: makeinfo/defun.c:83 +msgid "Missing `}' in @def arg" +msgstr "" + +#: makeinfo/defun.c:358 +msgid "Function" +msgstr "" + +#: makeinfo/defun.c:361 +msgid "Macro" +msgstr "" + +#: makeinfo/defun.c:364 +msgid "Special Form" +msgstr "" + +#: makeinfo/defun.c:368 +msgid "Variable" +msgstr "" + +#: makeinfo/defun.c:371 +msgid "User Option" +msgstr "" + +#: makeinfo/defun.c:375 +msgid "Instance Variable" +msgstr "" + +#: makeinfo/defun.c:379 +msgid "Method" +msgstr "" + +#: makeinfo/defun.c:450 makeinfo/defun.c:454 makeinfo/defun.c:556 +#: makeinfo/defun.c:570 makeinfo/defun.c:610 +msgid "of" +msgstr "" + +#: makeinfo/defun.c:458 makeinfo/defun.c:462 makeinfo/defun.c:466 +#: makeinfo/defun.c:564 makeinfo/defun.c:615 +msgid "on" msgstr "" -#: makeinfo/makeinfo.c:1165 +#: makeinfo/defun.c:656 #, c-format -msgid "" -"Usage: %s [OPTION]... TEXINFO-FILE...\n" -"\n" -"Translate Texinfo source documentation to a format suitable for reading\n" -"with GNU Info.\n" -"\n" -"Options:\n" -"-D VAR define a variable, as with @set.\n" -"-E MACRO-OFILE process macros only, output texinfo source.\n" -"-I DIR append DIR to the @include directory search path.\n" -"-P DIR prepend DIR to the @include directory search path.\n" -"-U VAR undefine a variable, as with @clear.\n" -"--error-limit NUM quit after NUM errors (default %d).\n" -"--fill-column NUM break lines at NUM characters (default %d).\n" -"--footnote-style STYLE output footnotes according to STYLE:\n" -" `separate' to place footnotes in their own node,\n" -" `end' to place the footnotes at the end of\n" -" the node in which they are defined (the default).\n" -"--force preserve output even if errors.\n" -"--help display this help and exit.\n" -"--no-validate suppress node cross-reference validation.\n" -"--no-warn suppress warnings (but not errors).\n" -"--no-split suppress splitting of large files.\n" -"--no-headers suppress node separators and Node: Foo headers.\n" -"--output FILE, -o FILE output to FILE, and ignore any @setfilename.\n" -"--paragraph-indent VAL indent paragraphs with VAL spaces (default %d).\n" -" if VAL is `none', do not indent; if VAL is `asis',\n" -" preserve any existing indentation.\n" -"--reference-limit NUM complain about at most NUM references (default %d).\n" -"--verbose report about what is being done.\n" -"--version display version information and exit.\n" -"\n" -"Email bug reports to bug-texinfo@gnu.org.\n" +msgid "Must be in `%s' insertion to use `%sx'" msgstr "" -#: makeinfo/makeinfo.c:1552 +#: makeinfo/files.c:460 #, c-format msgid "%s: getwd: %s, %s\n" msgstr "" -#: makeinfo/makeinfo.c:1748 +#: makeinfo/footnote.c:149 #, c-format -msgid "Expected `%s'" +msgid "`%c%s' needs an argument `{...}', not just `%s'" msgstr "" -#: makeinfo/makeinfo.c:2082 +#: makeinfo/footnote.c:164 #, c-format -msgid "No `%s' found in `%s'" +msgid "No closing brace for footnote `%s'" +msgstr "" + +#: makeinfo/footnote.c:197 +msgid "Footnote defined without parent node" +msgstr "" + +#: makeinfo/footnote.c:278 +msgid "Footnotes" +msgstr "" + +#. The <title> should not have markup. +#: makeinfo/html.c:40 +msgid "Untitled" msgstr "" -#: makeinfo/makeinfo.c:2132 +#: makeinfo/index.c:212 #, c-format -msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" +msgid "Unknown index `%s'" msgstr "" -#: makeinfo/makeinfo.c:2151 +#: makeinfo/index.c:382 #, c-format -msgid "Making %s file `%s' from `%s'.\n" +msgid "Index `%s' already exists" msgstr "" -#: makeinfo/makeinfo.c:2181 +#: makeinfo/index.c:425 #, c-format -msgid "This is Info file %s, produced by Makeinfo version %d.%d" +msgid "Unknown index `%s' and/or `%s' in @synindex" msgstr "" -#: makeinfo/makeinfo.c:2183 +#: makeinfo/index.c:642 #, c-format -msgid " from the input file %s.\n" +msgid "Unknown index `%s' in @printindex" msgstr "" -#: makeinfo/makeinfo.c:2202 +#: makeinfo/index.c:680 #, c-format -msgid "" -"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" +msgid "Entry for index `%s' outside of any node" msgstr "" -#. If there were errors, and no --force, remove the output. -#: makeinfo/makeinfo.c:2234 +#: makeinfo/index.c:683 makeinfo/index.c:722 +msgid "(outside of any node)" +msgstr "" + +#: makeinfo/insertion.c:192 +msgid "Broken-Type in insertion_type_pname" +msgstr "" + +#: makeinfo/insertion.c:265 +msgid "Enumeration stack overflow" +msgstr "" + +#: makeinfo/insertion.c:297 #, c-format -msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" +msgid "lettering overflow, restarting at %c" msgstr "" -#. Special case. I'm not supposed to see this character by itself. -#. If I do, it means there is a syntax error in the input text. -#. Report the error here, but remember this brace on the stack so -#. you can ignore its partner. -#: makeinfo/makeinfo.c:2374 makeinfo/makeinfo.c:7629 +#: makeinfo/insertion.c:481 #, c-format -msgid "Misplaced %c" +msgid "%s requires an argument: the formatter for %citem" msgstr "" -#: makeinfo/makeinfo.c:2461 +#: makeinfo/insertion.c:623 #, c-format -msgid "Unknown command `%s'" +msgid "`@end' expected `%s', but saw `%s'" msgstr "" -#: makeinfo/makeinfo.c:2481 -msgid "NO_NAME!" +#: makeinfo/insertion.c:797 +#, c-format +msgid "No matching `%cend %s'" msgstr "" -#: makeinfo/makeinfo.c:2495 +#: makeinfo/insertion.c:902 #, c-format -msgid "%c%s expected `{...}'" +msgid "%s requires letter or digit" msgstr "" -#: makeinfo/makeinfo.c:2528 -msgid "Unmatched }" +#: makeinfo/insertion.c:1046 +msgid "@menu seen before first @node, creating `Top' node" msgstr "" -#: makeinfo/makeinfo.c:2576 -#, c-format -msgid "%c%s missing close brace" +#: makeinfo/insertion.c:1047 +msgid "" +"perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?" msgstr "" -#: makeinfo/makeinfo.c:3372 -msgid "Broken-Type in insertion_type_pname" +#. Problems anyway, @detailmenu should always be inside @menu. +#: makeinfo/insertion.c:1059 +msgid "@detailmenu seen before first node, creating `Top' node" msgstr "" -#: makeinfo/makeinfo.c:3438 -msgid "Enumeration stack overflow" +#: makeinfo/insertion.c:1074 +#, c-format +msgid "Unmatched `%c%s'" msgstr "" -#: makeinfo/makeinfo.c:3470 +#: makeinfo/insertion.c:1081 #, c-format -msgid "lettering overflow, restarting at %c" +msgid "`%c%s' needs something after it" msgstr "" -#: makeinfo/makeinfo.c:3509 -msgid "* Menu:\n" +#: makeinfo/insertion.c:1087 +#, c-format +msgid "Bad argument to `%s', `%s', using `%s'" msgstr "" -#: makeinfo/makeinfo.c:3593 +#: makeinfo/insertion.c:1175 #, c-format -msgid "%s requires an argument: the formatter for %citem" +msgid "@%s not meaningful inside `@%s' block" msgstr "" -#: makeinfo/makeinfo.c:3697 +#: makeinfo/insertion.c:1184 #, c-format -msgid "`%cend' expected `%s', but saw `%s'" +msgid "@itemx not meaningful inside `%s' block" msgstr "" -#: makeinfo/makeinfo.c:3810 +#: makeinfo/insertion.c:1357 #, c-format -msgid "No matching `%cend %s'" +msgid "%c%s found outside of an insertion block" msgstr "" -#: makeinfo/makeinfo.c:3949 +#: makeinfo/lang.c:199 #, c-format -msgid "How did @%s end up in cm_special_char?\n" +msgid "%s is not a valid ISO 639 language code" msgstr "" #. This error message isn't perfect if the argument is multiple #. characters, but it doesn't seem worth getting right. -#: makeinfo/makeinfo.c:3963 +#: makeinfo/lang.c:406 #, c-format msgid "%c%s expects `i' or `j' as argument, not `%c'" msgstr "" -#: makeinfo/makeinfo.c:3967 +#: makeinfo/lang.c:410 #, c-format msgid "%c%s expects a single character `i' or `j' as argument" msgstr "" -#: makeinfo/makeinfo.c:3979 -msgid "January" -msgstr "" - -#: makeinfo/makeinfo.c:3979 -msgid "February" -msgstr "" - -#: makeinfo/makeinfo.c:3979 -msgid "March" +#: makeinfo/macro.c:134 +#, c-format +msgid "macro `%s' previously defined" msgstr "" -#: makeinfo/makeinfo.c:3979 -msgid "April" +#: makeinfo/macro.c:138 +#, c-format +msgid "here is the previous definition of `%s'" msgstr "" -#: makeinfo/makeinfo.c:3979 -msgid "May" +#: makeinfo/macro.c:355 +#, c-format +msgid "\\ in macro expansion followed by `%s' instead of \\ or parameter name" msgstr "" -#: makeinfo/makeinfo.c:3980 -msgid "June" +#: makeinfo/macro.c:403 +#, c-format +msgid "Macro `%s' called on line %d with too many args" msgstr "" -#: makeinfo/makeinfo.c:3980 -msgid "July" +#: makeinfo/macro.c:595 +#, c-format +msgid "%cend macro not found" msgstr "" -#: makeinfo/makeinfo.c:3980 -msgid "August" +#: makeinfo/macro.c:634 +msgid "@quote-arg only useful for single-argument macros" msgstr "" -#: makeinfo/makeinfo.c:3980 -msgid "September" +#: makeinfo/macro.c:670 +#, c-format +msgid "mismatched @end %s with @%s" msgstr "" -#: makeinfo/makeinfo.c:3980 -msgid "October" +#: makeinfo/makeinfo.c:308 +#, c-format +msgid "%s:%d: warning: " msgstr "" -#: makeinfo/makeinfo.c:3981 -msgid "November" +#: makeinfo/makeinfo.c:331 +msgid "Too many errors! Gave up.\n" msgstr "" -#: makeinfo/makeinfo.c:3981 -msgid "December" +#: makeinfo/makeinfo.c:342 makeinfo/makeinfo.c:1802 +#, c-format +msgid "Misplaced %c" msgstr "" -#: makeinfo/makeinfo.c:4039 +#: makeinfo/makeinfo.c:362 #, c-format -msgid "%c%s expects a single character as an argument" +msgid "Try `%s --help' for more information.\n" msgstr "" -#: makeinfo/makeinfo.c:4153 +#: makeinfo/makeinfo.c:365 #, c-format -msgid "%c%s is obsolete" +msgid "" +"Usage: %s [OPTION]... TEXINFO-FILE...\n" +"\n" +"Translate Texinfo source documentation to various other formats:\n" +"Info files suitable for reading online with Emacs or standalone GNU Info\n" +"(by default); plain text (with --no-headers); or HTML (with --html).\n" +"\n" +"Options:\n" +" --commands-in-node-names allow @ commands in node names.\n" +" -D VAR define a variable, as with @set.\n" +" -E, --macro-expand FILE output macro-expanded source to FILE.\n" +" --error-limit=NUM quit after NUM errors (default %d).\n" +" --fill-column=NUM break Info lines at NUM characters (default %d).\n" +" --footnote-style=STYLE output footnotes according to STYLE:\n" +" `separate' to place footnotes in their own " +"node,\n" +" `end' to place the footnotes at the end of the\n" +" node in which they are defined (the default).\n" +" --force preserve output even if errors.\n" +" --help display this help and exit.\n" +" --html output HTML rather than Info format;\n" +" -I DIR append DIR to the @include search path.\n" +" --ifhtml process @ifhtml and @html text even when not\n" +" generating HTML.\n" +" --ifinfo process @ifinfo text even when generating HTML.\n" +" --iftex process @iftex and @tex text.\n" +" implies --no-split.\n" +msgstr "" + +#: makeinfo/makeinfo.c:391 +#, c-format +msgid "" +" --no-headers suppress Info node separators and Node: lines " +"and\n" +" write to standard output without --output.\n" +" --no-ifhtml do not process @ifhtml and @html text.\n" +" --no-ifinfo do not process @ifinfo text.\n" +" --no-iftex do not process @iftex and @tex text.\n" +" --no-split suppress splitting of large Info output files or\n" +" generation of one HTML file per node.\n" +" --no-validate suppress node cross-reference validation.\n" +" --no-warn suppress warnings (but not errors).\n" +" --number-sections include chapter, section, etc. numbers in " +"output.\n" +" -o, --output=FILE output to FILE, ignoring any @setfilename.\n" +" -P DIR prepend DIR to the @include search path.\n" +" --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default " +"%d).\n" +" if VAL is `none', do not indent;\n" +" if VAL is `asis', preserve existing " +"indentation.\n" +" --reference-limit=NUM warn about at most NUM references (default %d).\n" +" -U VAR undefine a variable, as with @clear.\n" +" -v, --verbose explain what is being done.\n" +" --version display version information and exit.\n" +msgstr "" + +#: makeinfo/makeinfo.c:415 +msgid "" +"\n" +"The defaults for the @if... conditionals depend on the output format:\n" +"if generating HTML, --ifhtml is on and the others are off;\n" +"if generating Info or plain text, --ifinfo is on and the others are off.\n" +"\n" +"Examples:\n" +" makeinfo foo.texi write Info to foo's @setfilename\n" +" makeinfo --html foo.texi write HTML to foo's @setfilename\n" +" makeinfo --no-headers -o - foo.texi write plain text to standard output\n" +" makeinfo --number-sections foo.texi write Info with numbered sections\n" +" makeinfo --no-split foo.texi write one Info file however big\n" +"\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org." msgstr "" -#: makeinfo/makeinfo.c:4325 +#: makeinfo/makeinfo.c:508 makeinfo/makeinfo.c:531 makeinfo/makeinfo.c:592 #, c-format -msgid "Node with %ctop as a section already exists" +msgid "%s: %s arg must be numeric, not `%s'.\n" msgstr "" -#: makeinfo/makeinfo.c:4337 +#: makeinfo/makeinfo.c:521 #, c-format -msgid "Here is the %ctop node" +msgid "Couldn't open macro expansion output `%s'" msgstr "" -#: makeinfo/makeinfo.c:4356 -#, c-format -msgid "%ctop used before %cnode, defaulting to %s" +#: makeinfo/makeinfo.c:524 +msgid "Cannot specify more than one macro expansion output" msgstr "" -#: makeinfo/makeinfo.c:4431 +#: makeinfo/makeinfo.c:561 #, c-format -msgid "%c%s is obsolete; use %c%s instead" +msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n" msgstr "" -#: makeinfo/makeinfo.c:4680 +#: makeinfo/makeinfo.c:602 #, c-format -msgid "Node `%s' multiply defined (line %d is first definition at)" +msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n" msgstr "" -#: makeinfo/makeinfo.c:4753 +#: makeinfo/makeinfo.c:647 #, c-format -msgid "Formatting node %s...\n" +msgid "%s: missing file argument.\n" msgstr "" -#: makeinfo/makeinfo.c:4802 +#: makeinfo/makeinfo.c:810 #, c-format -msgid "Node `%s' requires a sectioning command (e.g. %c%s)" +msgid "Expected `%s'" msgstr "" -#: makeinfo/makeinfo.c:5085 +#: makeinfo/makeinfo.c:1229 #, c-format -msgid "Node `%s''s Next field not pointed back to" +msgid "No `%s' found in `%s'" msgstr "" -#: makeinfo/makeinfo.c:5090 +#: makeinfo/makeinfo.c:1306 #, c-format -msgid "This node (`%s') is the one with the bad `Prev'" +msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n" msgstr "" -#: makeinfo/makeinfo.c:5130 +#: makeinfo/makeinfo.c:1327 #, c-format -msgid "Node `%s's Prev field not pointed back to" +msgid "Making %s file `%s' from `%s'.\n" msgstr "" -#: makeinfo/makeinfo.c:5134 +#: makeinfo/makeinfo.c:1358 #, c-format -msgid "This node (`%s') has the bad Next" +msgid "This is %s, produced by makeinfo version %s from %s.\n" msgstr "" -#: makeinfo/makeinfo.c:5146 +#: makeinfo/makeinfo.c:1377 #, c-format -msgid "Node `%s' missing Up field" +msgid "" +"%s: Removing macro output file `%s' due to errors; use --force to preserve.\n" msgstr "" -#: makeinfo/makeinfo.c:5186 +#. If there were errors, and no --force, remove the output. +#: makeinfo/makeinfo.c:1420 #, c-format -msgid "`%s' has an Up field of `%s', but `%s' has no menu item for `%s'" +msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n" msgstr "" -#: makeinfo/makeinfo.c:5217 +#: makeinfo/makeinfo.c:1635 #, c-format -msgid "node `%s' has been referenced %d times" +msgid "Unknown command `%s'" msgstr "" -#: makeinfo/makeinfo.c:5229 +#: makeinfo/makeinfo.c:1657 #, c-format -msgid "unreferenced node `%s'" +msgid "Use braces to give a command as an argument to @%s" msgstr "" -#: makeinfo/makeinfo.c:5256 +#: makeinfo/makeinfo.c:1838 #, c-format -msgid "%s reference to nonexistent node `%s'" +msgid "%c%s expected `{...}'" msgstr "" -#: makeinfo/makeinfo.c:5668 makeinfo/makeinfo.c:5680 -#, c-format -msgid "%cmenu seen before first node" +#: makeinfo/makeinfo.c:1868 +msgid "Unmatched }" msgstr "" -#: makeinfo/makeinfo.c:5669 makeinfo/makeinfo.c:5681 -msgid "creating `Top' node" +#: makeinfo/makeinfo.c:1918 +msgid "NO_NAME!" msgstr "" -#: makeinfo/makeinfo.c:5794 +#: makeinfo/makeinfo.c:1940 #, c-format -msgid "`.' or `,' must follow cross reference, not %c" +msgid "%c%s missing close brace" msgstr "" -#: makeinfo/makeinfo.c:5962 -#, c-format -msgid "@image file `%s' unreadable: %s" +#: makeinfo/makeinfo.c:2707 makeinfo/makeinfo.c:2884 +msgid "see " msgstr "" -#: makeinfo/makeinfo.c:5966 -msgid "@image missing filename argument" +#: makeinfo/makeinfo.c:2707 +msgid "See " msgstr "" -#: makeinfo/makeinfo.c:6067 +#: makeinfo/makeinfo.c:2836 #, c-format -msgid "%s requires letter or digit" +msgid "`.' or `,' must follow cross reference, not %c" msgstr "" -#: makeinfo/makeinfo.c:6152 +#: makeinfo/makeinfo.c:3026 #, c-format -msgid "Unmatched `%c%s'" +msgid "No .png or .jpg for `%s'" msgstr "" -#: makeinfo/makeinfo.c:6159 +#: makeinfo/makeinfo.c:3063 #, c-format -msgid "`%c%s' needs something after it" +msgid "@image file `%s' unreadable: %s" msgstr "" -#: makeinfo/makeinfo.c:6165 -#, c-format -msgid "Bad argument to `%s', `%s', using `%s'" +#: makeinfo/makeinfo.c:3070 +msgid "@image missing filename argument" msgstr "" -#: makeinfo/makeinfo.c:6338 +#: makeinfo/makeinfo.c:3259 #, c-format -msgid "{No Value For \"%s\"}" +msgid "{No value for `%s'}" msgstr "" -#: makeinfo/makeinfo.c:6388 +#: makeinfo/makeinfo.c:3313 #, c-format msgid "%c%s requires a name" msgstr "" -#: makeinfo/makeinfo.c:6496 +#: makeinfo/makeinfo.c:3421 #, c-format msgid "Reached eof before matching @end %s" msgstr "" -#: makeinfo/makeinfo.c:6722 -#, c-format -msgid "The `%c%s' command is meaningless within a `@%s' block" +#: makeinfo/multi.c:208 +msgid "Missing } in @multitable template" msgstr "" -#: makeinfo/makeinfo.c:6731 +#: makeinfo/multi.c:284 #, c-format -msgid "%citemx is not meaningful inside of a `%s' block" +msgid "ignoring stray text `%s' after @multitable" msgstr "" -#: makeinfo/makeinfo.c:6844 +#: makeinfo/multi.c:357 #, c-format -msgid "%c%s found outside of an insertion block" +msgid "Too many columns in multitable item (max %d)" msgstr "" -#: makeinfo/makeinfo.c:6935 +#: makeinfo/multi.c:401 #, c-format -msgid "Missing `}' in %cdef arg" +msgid "Cannot select column #%d in multitable" msgstr "" -#: makeinfo/makeinfo.c:7144 makeinfo/makeinfo.c:7164 -msgid "Function" +#: makeinfo/multi.c:504 +msgid "ignoring @tab outside of multitable" msgstr "" -#: makeinfo/makeinfo.c:7148 -msgid "Macro" +#: makeinfo/multi.c:534 +msgid "** Multicolumn output from last row:\n" msgstr "" -#: makeinfo/makeinfo.c:7152 -msgid "Special Form" +#: makeinfo/multi.c:537 +#, c-format +msgid "* column #%d: output = %s\n" msgstr "" -#: makeinfo/makeinfo.c:7156 makeinfo/makeinfo.c:7168 -msgid "Variable" +#: makeinfo/node.c:250 +#, c-format +msgid "Node `%s' previously defined at line %d" msgstr "" -#: makeinfo/makeinfo.c:7160 -msgid "User Option" +#: makeinfo/node.c:514 +#, c-format +msgid "Formatting node %s...\n" msgstr "" -#: makeinfo/makeinfo.c:7172 -msgid "Instance Variable" +#: makeinfo/node.c:559 +#, c-format +msgid "Node `%s' requires a sectioning command (e.g. %c%s)" msgstr "" -#: makeinfo/makeinfo.c:7176 makeinfo/makeinfo.c:7180 -msgid "Method" +#: makeinfo/node.c:719 +#, c-format +msgid "No node name specified for `%c%s' command" msgstr "" -#: makeinfo/makeinfo.c:7335 -#, c-format -msgid "Must be in a `%s' insertion in order to use `%s'x" +#: makeinfo/node.c:774 +msgid "Node:" msgstr "" -#: makeinfo/makeinfo.c:7407 -#, c-format -msgid "%csp requires a positive numeric argument" +#: makeinfo/node.c:783 makeinfo/sectioning.c:528 +msgid "Next:" msgstr "" -#: makeinfo/makeinfo.c:7650 -msgid "asis" +#: makeinfo/node.c:793 +msgid "Previous:" msgstr "" -#: makeinfo/makeinfo.c:7652 -msgid "none" +#: makeinfo/node.c:803 +msgid "Up:" msgstr "" -#: makeinfo/makeinfo.c:7674 +#: makeinfo/node.c:1012 #, c-format -msgid "Bad argument to %c%s" +msgid "%s reference to nonexistent node `%s'" msgstr "" -#: makeinfo/makeinfo.c:7966 -#, c-format -msgid "Unknown index `%s'" +#: makeinfo/node.c:1029 +msgid "Menu" msgstr "" -#: makeinfo/makeinfo.c:8031 -#, c-format -msgid "Index `%s' already exists" +#: makeinfo/node.c:1031 +msgid "Cross" msgstr "" -#: makeinfo/makeinfo.c:8062 +#: makeinfo/node.c:1115 #, c-format -msgid "Unknown index `%s' and/or `%s' in @synindex" +msgid "Next field of node `%s' not pointed to" msgstr "" -#: makeinfo/makeinfo.c:8251 +#: makeinfo/node.c:1119 #, c-format -msgid "Unknown index `%s' in @printindex" +msgid "This node (%s) has the bad Prev" msgstr "" -#: makeinfo/makeinfo.c:8266 -msgid "" -"* Menu:\n" -"\n" +#: makeinfo/node.c:1133 +msgid "Prev" msgstr "" -#: makeinfo/makeinfo.c:8453 +#: makeinfo/node.c:1176 #, c-format -msgid "`%c%s' needs an argument `{...}', not just `%s'" +msgid "Prev field of node `%s' not pointed to" msgstr "" -#: makeinfo/makeinfo.c:8468 +#: makeinfo/node.c:1180 #, c-format -msgid "No closing brace for footnote `%s'" -msgstr "" - -#: makeinfo/makeinfo.c:8507 -msgid "Footnote defined without parent node" +msgid "This node (%s) has the bad Next" msgstr "" -#: makeinfo/makeinfo.c:8539 -msgid "-Footnotes" +#: makeinfo/node.c:1194 +#, c-format +msgid "`%s' has no Up field" msgstr "" -#: makeinfo/makeinfo.c:8594 -msgid "" -"---------- Footnotes ----------\n" -"\n" +#: makeinfo/node.c:1197 +msgid "Up" msgstr "" -#: makeinfo/makeinfo.c:8690 +#: makeinfo/node.c:1265 #, c-format -msgid "macro `%s' previously defined" +msgid "Node `%s' lacks menu item for `%s' despite being its Up target" msgstr "" -#: makeinfo/makeinfo.c:8694 +#: makeinfo/node.c:1296 #, c-format -msgid "here is the previous definition of `%s'" +msgid "node `%s' has been referenced %d times" msgstr "" -#: makeinfo/makeinfo.c:8908 +#: makeinfo/node.c:1310 #, c-format -msgid "Macro `%s' called with too many args" +msgid "unreferenced node `%s'" msgstr "" -#: makeinfo/makeinfo.c:9060 +#: makeinfo/sectioning.c:116 #, c-format -msgid "%cend macro not found" +msgid "Appendix %c " msgstr "" -#: makeinfo/makeinfo.c:9100 +#. should never happen, but a poor guy, named Murphy ... +#: makeinfo/sectioning.c:328 makeinfo/sectioning.c:410 #, c-format -msgid "%cquote-arg only useful when the macro takes a single argument" +msgid "Internal error (search_sectioning) \"%s\"!" msgstr "" -#: makeinfo/multi.c:206 +#: makeinfo/sectioning.c:468 #, c-format -msgid "ignoring stray text `%s' after @multitable" +msgid "%c%s is obsolete; use %c%s instead" msgstr "" -#: makeinfo/multi.c:277 +#: makeinfo/sectioning.c:484 #, c-format -msgid "Too many columns in multitable item (max %d)" +msgid "Node with %ctop as a section already exists" msgstr "" -#. impossible, I think. -#: makeinfo/multi.c:304 -msgid "multitable item not in active multitable" +#: makeinfo/sectioning.c:496 +#, c-format +msgid "Here is the %ctop node" msgstr "" -#: makeinfo/multi.c:313 +#: makeinfo/sectioning.c:515 #, c-format -msgid "Cannot select column #%d in multitable" +msgid "%ctop used before %cnode, defaulting to %s" msgstr "" -#: makeinfo/multi.c:404 -msgid "ignoring @tab outside of multitable" +#. in case we are writing stdout +#: makeinfo/toc.c:212 makeinfo/toc.c:261 makeinfo/toc.c:262 +msgid "Table of Contents" msgstr "" -#: makeinfo/multi.c:428 -msgid "** Multicolumn output from last row:\n" +#. in case we are writing stdout +#: makeinfo/toc.c:292 makeinfo/toc.c:319 makeinfo/toc.c:320 +msgid "Short Contents" msgstr "" -#: makeinfo/multi.c:431 +#: makeinfo/toc.c:354 #, c-format -msgid "* column #%d: output = %s\n" +msgid "%s: TOC should be here, but it was not found" msgstr "" -#: util/install-info.c:123 util/install-info.c:136 -msgid "virtual memory exhausted" -msgstr "" - -#: util/install-info.c:192 +#: util/install-info.c:151 #, c-format msgid "%s: warning: " msgstr "" -#: util/install-info.c:213 +#: util/install-info.c:176 util/install-info.c:189 +msgid "virtual memory exhausted" +msgstr "" + +#: util/install-info.c:232 #, c-format msgid " for %s" msgstr "" -#: util/install-info.c:282 +#: util/install-info.c:381 #, c-format msgid "\tTry `%s --help' for a complete list of options.\n" msgstr "" -#: util/install-info.c:290 +#: util/install-info.c:389 #, c-format msgid "" "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n" "\n" -"Install INFO-FILE in the Info directory file DIR-FILE.\n" +"Install or delete dir entries from INFO-FILE in the Info directory file\n" +"DIR-FILE.\n" "\n" "Options:\n" -"--delete Delete existing entries in INFO-FILE;\n" -" don't insert any new entries.\n" -"--dir-file=NAME Specify file name of Info directory file.\n" -" This is equivalent to using the DIR-FILE argument.\n" -"--entry=TEXT Insert TEXT as an Info directory entry.\n" -" TEXT should have the form of an Info menu item line\n" -" plus zero or more extra lines starting with whitespace.\n" -" If you specify more than one entry, they are all added.\n" -" If you don't specify any entries, they are determined\n" -" from information in the Info file itself.\n" -"--help Display this help and exit.\n" -"--info-file=FILE Specify Info file to install in the directory.\n" -" This is equivalent to using the INFO-FILE argument.\n" -"--info-dir=DIR Same as --dir-file=DIR/dir.\n" -"--item=TEXT Same as --entry TEXT.\n" -" An Info directory entry is actually a menu item.\n" -"--quiet Suppress warnings.\n" -"--remove Same as --delete.\n" -"--section=SEC Put this file's entries in section SEC of the directory.\n" -" If you specify more than one section, all the entries\n" -" are added in each of the sections.\n" -" If you don't specify any sections, they are determined\n" -" from information in the Info file itself.\n" -"--version Display version information and exit.\n" +" --delete delete existing entries for INFO-FILE from DIR-FILE;\n" +" don't insert any new entries.\n" +" --dir-file=NAME specify file name of Info directory file.\n" +" This is equivalent to using the DIR-FILE argument.\n" +" --entry=TEXT insert TEXT as an Info directory entry.\n" +" TEXT should have the form of an Info menu item line\n" +" plus zero or more extra lines starting with " +"whitespace.\n" +" If you specify more than one entry, they are all " +"added.\n" +" If you don't specify any entries, they are determined\n" +" from information in the Info file itself.\n" +" --help display this help and exit.\n" +" --info-file=FILE specify Info file to install in the directory.\n" +" This is equivalent to using the INFO-FILE argument.\n" +" --info-dir=DIR same as --dir-file=DIR/dir.\n" +" --item=TEXT same as --entry TEXT.\n" +" An Info directory entry is actually a menu item.\n" +" --quiet suppress warnings.\n" +" --remove same as --delete.\n" +" --section=SEC put this file's entries in section SEC of the directory.\n" +" If you specify more than one section, all the entries\n" +" are added in each of the sections.\n" +" If you don't specify any sections, they are determined\n" +" from information in the Info file itself.\n" +" --version display version information and exit.\n" "\n" -"Email bug reports to bug-texinfo@gnu.org.\n" +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" msgstr "" -#: util/install-info.c:341 +#: util/install-info.c:442 +#, c-format msgid "" "This is the file .../info/dir, which contains the\n" "topmost node of the Info hierarchy, called (dir)Top.\n" "The first time you invoke Info you start off looking at this node.\n" "\n" -"File: dir,\tNode: Top,\tThis is the top of the INFO tree\n" +"%s\tThis is the top of the INFO tree\n" "\n" " This (the Directory node) gives a menu of major topics.\n" " Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n" @@ -1718,130 +2176,137 @@ msgid "" "* Menu:\n" msgstr "" -#: util/install-info.c:364 +#: util/install-info.c:465 #, c-format msgid "%s: could not read (%s) and could not create (%s)\n" msgstr "" -#: util/install-info.c:464 util/install-info.c:474 +#: util/install-info.c:549 +#, c-format +msgid "%s: empty file" +msgstr "" + +#: util/install-info.c:864 util/install-info.c:904 +msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" +msgstr "" + +#: util/install-info.c:899 +msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" +msgstr "" + +#: util/install-info.c:1147 util/install-info.c:1157 #, c-format msgid "%s: Specify the Info directory only once.\n" msgstr "" -#: util/install-info.c:502 +#: util/install-info.c:1192 #, c-format msgid "%s: Specify the Info file only once.\n" msgstr "" -#: util/install-info.c:550 +#: util/install-info.c:1241 #, c-format msgid "excess command line argument `%s'" msgstr "" -#: util/install-info.c:554 +#: util/install-info.c:1245 msgid "No input file specified; try --help for more information." msgstr "" -#: util/install-info.c:556 +#: util/install-info.c:1247 msgid "No dir file specified; try --help for more information." msgstr "" -#: util/install-info.c:608 util/install-info.c:631 -msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY" -msgstr "" - -#: util/install-info.c:627 -msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY" -msgstr "" - -#. No need to abort here, the original info file may not have -#. the requisite Texinfo commands. This is not something an -#. installer should have to correct (it's a problem for the -#. maintainer), and there's no need to cause subsequent parts of -#. `make install' to fail. -#: util/install-info.c:641 +#. No need to abort here, the original info file may not +#. have the requisite Texinfo commands. This is not +#. something an installer should have to correct (it's a +#. problem for the maintainer), and there's no need to cause +#. subsequent parts of `make install' to fail. +#: util/install-info.c:1269 #, c-format msgid "no info dir entry in `%s'" msgstr "" -#: util/install-info.c:852 +#: util/install-info.c:1384 #, c-format msgid "menu item `%s' already exists, for file `%s'" msgstr "" -#: util/install-info.c:875 +#: util/install-info.c:1407 #, c-format msgid "no entries found for `%s'; nothing deleted" msgstr "" -#: util/texindex.c:253 +#: util/texindex.c:244 +msgid "display this help and exit" +msgstr "" + +#: util/texindex.c:246 msgid "keep temporary files around after processing" msgstr "" -#: util/texindex.c:255 +#: util/texindex.c:248 msgid "do not keep temporary files around after processing (default)" msgstr "" -#: util/texindex.c:257 +#: util/texindex.c:250 msgid "send output to FILE" msgstr "" -#: util/texindex.c:259 +#: util/texindex.c:252 msgid "display version information and exit" msgstr "" -#: util/texindex.c:261 -msgid "display this help and exit" -msgstr "" - -#: util/texindex.c:272 +#: util/texindex.c:263 #, c-format msgid "Usage: %s [OPTION]... FILE...\n" msgstr "" -#: util/texindex.c:273 +#: util/texindex.c:264 msgid "Generate a sorted index for each TeX output FILE.\n" msgstr "" -#. Avoid trigraph nonsense. -#: util/texindex.c:275 -msgid "Usually FILE... is `foo.??' for a document `foo.texi'.\n" +#: util/texindex.c:267 +#, c-format +msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n" msgstr "" -#: util/texindex.c:276 +#. avoid trigraph in cat-id-tbl.c +#: util/texindex.c:269 msgid "" "\n" "Options:\n" msgstr "" -#: util/texindex.c:290 +#: util/texindex.c:285 msgid "" "\n" -"Email bug reports to bug-texinfo@gnu.org." +"Email bug reports to bug-texinfo@gnu.org,\n" +"general questions and discussion to help-texinfo@gnu.org.\n" msgstr "" -#: util/texindex.c:917 util/texindex.c:951 util/texindex.c:1027 -#: util/texindex.c:1055 +#: util/texindex.c:885 util/texindex.c:919 util/texindex.c:995 +#: util/texindex.c:1023 #, c-format msgid "%s: not a texinfo index file" msgstr "" -#: util/texindex.c:1012 +#: util/texindex.c:980 #, c-format msgid "failure reopening %s" msgstr "" -#: util/texindex.c:1325 +#: util/texindex.c:1222 #, c-format -msgid "entry %s follows an entry with a secondary name" +msgid "No page number in %s" msgstr "" -#: util/texindex.c:1663 +#: util/texindex.c:1293 #, c-format -msgid "%s; for file `%s'.\n" +msgid "entry %s follows an entry with a secondary name" msgstr "" -#: util/texindex.c:1724 +#: util/texindex.c:1631 #, c-format -msgid "Virtual memory exhausted in %s ()! Needed %d bytes." +msgid "%s; for file `%s'.\n" msgstr "" diff --git a/gnu/usr.bin/texinfo/util/README b/gnu/usr.bin/texinfo/util/README index 5385522543b..20d7bdafd86 100644 --- a/gnu/usr.bin/texinfo/util/README +++ b/gnu/usr.bin/texinfo/util/README @@ -2,3 +2,9 @@ Assorted Texinfo-related programs and scripts. texindex, texi2dvi, and install-info get installed. The other items here are for your amusement and/or hacking pleasure. + +You may also be interested in a2ps, an ASCII->PostScript program which +has a Texinfo style option. Available from +http://www.inf.enst.fr/~demaille/a2ps/ and +ftp://ftp.enst.fr/pub/unix/a2ps/. + diff --git a/gnu/usr.bin/texinfo/util/deref.c b/gnu/usr.bin/texinfo/util/deref.c index c15bc1abcf1..e08be48105f 100644 --- a/gnu/usr.bin/texinfo/util/deref.c +++ b/gnu/usr.bin/texinfo/util/deref.c @@ -1,44 +1,28 @@ /* * deref.c - - * compile command: gcc -g -o deref deref.c - - * execute command: deref filename.texi > newfile.texi - - * To: bob@gnu.ai.mit.edu - * Subject: another tool - * Date: 18 Dec 91 16:03:13 EST (Wed) - * From: gatech!skeeve!arnold@eddie.mit.edu (Arnold D. Robbins) - * - * Here is deref.c. It turns texinfo cross references back into the - * one argument form. It has the same limitations as fixref; one xref per - * line and can't cross lines. You can use it to find references that do - * cross a line boundary this way: - * - * deref < manual > /dev/null 2>errs - * - * (This assumes bash or /bin/sh.) The file errs will have list of lines - * where deref could not find matching braces. - * - * A gawk manual processed by deref goes through makeinfo without complaint. - * Compile with gcc and you should be set. - * - * Enjoy, - * - * Arnold - * ----------- - */ - -/* - * deref.c * * Make all texinfo references into the one argument form. - * + * * Arnold Robbins - * arnold@skeeve.atl.ga.us - * December, 1991 + * arnold@gnu.org + * Written: December, 1991 + * Released: November, 1998 * - * Copyright, 1991, Arnold Robbins + * Copyright, 1991, 1998 Arnold David Robbins + * + * DEREF is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * DEREF is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* @@ -53,17 +37,19 @@ #include <errno.h> /* for gcc on the 3B1, delete if this gives you grief */ -extern int fclose (FILE * fp); -extern int fprintf (FILE * fp, const char *str,...); +extern int fclose(FILE *fp); +extern int fprintf(FILE *fp, const char *str, ...); +/* extern int sprintf(char *str, const char *fmt, ...); */ +extern int fputs(char *buf, FILE *fp); -extern char *strerror (int errno); -extern char *strchr (char *cp, int ch); -extern int strncmp (const char *s1, const char *s2, int count); +extern char *strerror(int errno); +extern char *strchr(char *cp, int ch); +extern int strncmp(const char *s1, const char *s2, int count); extern int errno; -void process (FILE * fp); -void repair (char *line, char *ref, int toffset); +void process(FILE *fp); +void repair(char *line, char *ref, int toffset); int Errs = 0; char *Name = "stdin"; @@ -73,166 +59,151 @@ char *Me; /* main --- handle arguments, global vars for errors */ int -main (int argc, char **argv) +main(int argc, char **argv) { - FILE *fp; - - Me = argv[0]; - - if (argc == 1) - process (stdin); - else - for (argc--, argv++; *argv != NULL; argc--, argv++) - { - if (argv[0][0] == '-' && argv[0][1] == '\0') - { - Name = "stdin"; - Line = 0; - process (stdin); - } - else if ((fp = fopen (*argv, "r")) != NULL) - { - Name = *argv; - Line = 0; - process (fp); - fclose (fp); - } + FILE *fp; + + Me = argv[0]; + + if (argc == 1) + process(stdin); else - { - fprintf (stderr, "%s: can not open: %s\n", - *argv, strerror (errno)); - Errs++; - } - } - return Errs != 0; + for (argc--, argv++; *argv != NULL; argc--, argv++) { + if (argv[0][0] == '-' && argv[0][1] == '\0') { + Name = "stdin"; + Line = 0; + process(stdin); + } else if ((fp = fopen(*argv, "r")) != NULL) { + Name = *argv; + Line = 0; + process(fp); + fclose(fp); + } else { + fprintf(stderr, "%s: can not open: %s\n", + *argv, strerror(errno)); + Errs++; + } + } + return Errs != 0; } /* isref --- decide if we've seen a texinfo cross reference */ int -isref (char *cp) +isref(char *cp) { - if (strncmp (cp, "@ref{", 5) == 0) - return 5; - if (strncmp (cp, "@xref{", 6) == 0) - return 6; - if (strncmp (cp, "@pxref{", 7) == 0) - return 7; - return 0; + if (strncmp(cp, "@ref{", 5) == 0) + return 5; + if (strncmp(cp, "@xref{", 6) == 0) + return 6; + if (strncmp(cp, "@pxref{", 7) == 0) + return 7; + return 0; } /* process --- read files, look for references, fix them up */ void -process (FILE * fp) +process(FILE *fp) { - char buf[BUFSIZ]; - char *cp; - int count; - - while (fgets (buf, sizeof buf, fp) != NULL) - { - Line++; - cp = strchr (buf, '@'); - if (cp == NULL) - { - fputs (buf, stdout); - continue; - } - do - { - count = isref (cp); - if (count == 0) - { - cp++; - cp = strchr (cp, '@'); - if (cp == NULL) - { - fputs (buf, stdout); - goto next; + char buf[BUFSIZ]; + char *cp; + int count; + + while (fgets(buf, sizeof buf, fp) != NULL) { + Line++; + cp = strchr(buf, '@'); + if (cp == NULL) { + fputs(buf, stdout); + continue; } - continue; - } - /* got one */ - repair (buf, cp, count); - break; + do { + count = isref(cp); + if (count == 0) { + cp++; + cp = strchr(cp, '@'); + if (cp == NULL) { + fputs(buf, stdout); + goto next; + } + continue; + } + /* got one */ + repair(buf, cp, count); + break; + } while (cp != NULL); + next: ; } - while (cp != NULL); - next:; - } } /* repair --- turn all texinfo cross references into the one argument form */ void -repair (char *line, char *ref, int toffset) +repair(char *line, char *ref, int toffset) { - int braces = 1; /* have seen first left brace */ - char *cp; - - ref += toffset; - - /* output line up to and including left brace in reference */ - for (cp = line; cp <= ref; cp++) - putchar (*cp); - - /* output node name */ - for (; *cp && *cp != '}' && *cp != ',' && *cp != '\n'; cp++) - putchar (*cp); - - if (*cp != '}') - { /* could have been one arg xref */ - /* skip to matching right brace */ - for (; braces > 0; cp++) - { - switch (*cp) - { - case '@': - cp++; /* blindly skip next character */ - break; - case '{': - braces++; - break; - case '}': - braces--; - break; - case '\n': - case '\0': - Errs++; - fprintf (stderr, - "%s: %s: %d: mismatched braces\n", - Me, Name, Line); - goto out; - default: - break; - } + int braces = 1; /* have seen first left brace */ + char *cp; + + ref += toffset; + + /* output line up to and including left brace in reference */ + for (cp = line; cp <= ref; cp++) + putchar(*cp); + + /* output node name */ + for (; *cp && *cp != '}' && *cp != ',' && *cp != '\n'; cp++) + putchar(*cp); + + if (*cp != '}') { /* could have been one arg xref */ + /* skip to matching right brace */ + for (; braces > 0; cp++) { + switch (*cp) { + case '@': + cp++; /* blindly skip next character */ + break; + case '{': + braces++; + break; + case '}': + braces--; + break; + case '\n': + case '\0': + Errs++; + fprintf(stderr, + "%s: %s: %d: mismatched braces\n", + Me, Name, Line); + goto out; + default: + break; + } + } + out: + ; } - out: - ; - } - - putchar ('}'); - if (*cp == '}') - cp++; - - /* now the rest of the line */ - for (; *cp; cp++) - putchar (*cp); - return; + + putchar('}'); + if (*cp == '}') + cp++; + + /* now the rest of the line */ + for (; *cp; cp++) + putchar(*cp); + return; } /* strerror --- return error string, delete if in your library */ char * -strerror (int errno) +strerror(int errno) { - static char buf[100]; - extern int sys_nerr; - extern char *sys_errlist[]; + static char buf[100]; + extern int sys_nerr; + extern char *sys_errlist[]; - if (errno < sys_nerr && errno >= 0) - return sys_errlist[errno]; + if (errno < sys_nerr && errno >= 0) + return sys_errlist[errno]; - sprintf (buf, "unknown error %d", errno); - return buf; + sprintf(buf, "unknown error %d", errno); + return buf; } diff --git a/gnu/usr.bin/texinfo/util/fix-info-dir b/gnu/usr.bin/texinfo/util/fix-info-dir new file mode 100644 index 00000000000..bf0901caa30 --- /dev/null +++ b/gnu/usr.bin/texinfo/util/fix-info-dir @@ -0,0 +1,317 @@ +#!/bin/sh +#fix-info-dir (GNU texinfo) +VERSION=1.1 +#Copyright (C) 1998 Free Software Foundation, Inc. +#fix-info-dir comes with NO WARRANTY, to the extent permitted by law. +#You may redistribute copies of fix-info-dir +#under the terms of the GNU General Public License. +#For more information about these matters, see the files named COPYING." +#fix-info-dir was derived from update-info and gen-dir-node +# The skeleton file contains info topic names in the +# order they should appear in the output. There are three special +# lines that alter the behavior: a line consisting of just "--" causes +# the next line to be echoed verbatim to the output. A line +# containing just "%%" causes all the remaining filenames (wildcards +# allowed) in the rest of the file to be ignored. A line containing +# just "!!" exits the script when reached (unless preceded by a line +# containing just "--"). +#Author: Richard L. Hawes, rhawes@dmapub.dma.org. + +# ###SECTION 1### Constants +set -h 2>/dev/null +# ENVIRONMENT +if test -z "$TMPDIR"; then + TMPDIR="/usr/tmp" +fi +if test -z "$LINENO"; then + LINENO="0" +fi + +MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:' +MENU_ITEM='^\* ([^ ]).*:([ ])+\(' +MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /' +MENU_FILTER2='s/\([ ]\)\{1,\}$//g' + +TMP_FILE1="${TMPDIR}/fx${$}.info" +TMP_FILE2="${TMPDIR}/fy${$}.info" +TMP_FILE_LIST="$TMP_FILE1 $TMP_FILE2" + +TRY_HELP_MSG="Try --help for more information" + +# ###SECTION 100### main program +#variables set by options +CREATE_NODE="" +DEBUG=":" +MODE="" +# +Total="0" +Changed="" + +while test "$*"; do + case "$1" in + -c|--create) CREATE_NODE="y";; + --debug) set -eux; DEBUG="set>&2";; + -d|--delete) MODE="Detect_Invalid";; + +d);; + --version) +cat<<VersionEOF +fix-info-dir (GNU Texinfo) $VERSION +Copyright (C) 1998 Free Software Foundation, Inc. +fix-info-dir comes with NO WARRANTY, to the extent permitted by law. +You may redistribute copies of fix-info-dir +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING. +Author: Richard L. Hawes +VersionEOF + exit;; + + --help) +cat<<HelpEndOfFile +Usage: fix-info-dir [OPTION]... [INFO_DIR/[DIR_FILE]] [SKELETON] + +It detects and inserts missing menu items into the info dir file. +The info dir must be the current directory. + +Options: +-c, --create create a new info node +-d, --delete delete invalid menu items (ignore missing menu items) + --debug print debug information to standard error path + --help print this help message and exit + --version print current version and exit +Backup of the info node has a '.old' suffix added. This is a shell script. +Environment Variables: TMPDIR +Email bug reports to bug-texinfo@gnu.org. +HelpEndOfFile + exit;; + + [-+]*) echo "$0:$LINENO: \"$1\" is not a valid option">&2 + echo "$TRY_HELP_MSG">&2 + exit 2;; + *) break;; + esac + shift +done + +ORIGINAL_DIR=`pwd` + +if test "$#" -gt "0"; then + INFO_DIR="$1" + shift +else + INFO_DIR=$DEFAULT_INFO_DIR +fi + +if test ! -d "${INFO_DIR}"; then + DIR_FILE=`basename ${INFO_DIR}`; + INFO_DIR=`dirname ${INFO_DIR}`; +else + DIR_FILE="dir" +fi + +cd "$INFO_DIR"||exit + + +if test "$CREATE_NODE"; then + if test "$#" -gt "0"; then + if test `expr $1 : /` = '1'; then + SKELETON="$1" + else + SKELETON="$ORIGINAL_DIR/$1" + fi + if test ! -r "$SKELETON" -a -f "$SKELETON"; then + echo "$0:$LINENO: $SKELETON is not readable">&2 + exit 2 + fi + shift + else + SKELETON=/dev/null + + fi +else + if test ! -f "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is irregular or nonexistant">&2 + exit 2 + elif test ! -r "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is not readable">&2 + exit 2 + elif test ! -w "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is not writeable">&2 + exit 2 + fi +fi + +if test "$#" -gt "0"; then + echo "$0:$LINENO: Too many parameters">&2 + echo "$TRY_HELP_MSG">&2 + exit 2 +fi + +if test -f "$DIR_FILE"; then + cp "$DIR_FILE" "$DIR_FILE.old" + echo "Backed up $DIR_FILE to $DIR_FILE.old." +fi + +if test "$CREATE_NODE"; then + if test "$MODE"; then + echo "$0:$LINENO: ERROR: Illogical option combination: -d -c">&2 + echo "$TRY_HELP_MSG">&2 + exit 2 + fi + echo "Creating new Info Node: `pwd`/$DIR_FILE" + Changed="y" + +{ + + ### output the dir header + echo "-*- Text -*-" + echo "This file was generated automatically by $0." + echo "This version was generated on `date`" + echo "by `whoami`@`hostname` for `pwd`" + + cat<<DIR_FILE_END_OF_FILE +This is the file .../info/$DIR_FILE, which contains the topmost node of the +Info hierarchy. The first time you invoke Info you start off +looking at that node, which is ($DIR_FILE)Top. + + +File: $DIR_FILE Node: Top This is the top of the INFO tree + + This (the Directory node) gives a menu of major topics. + Typing "q" exits, "?" lists all Info commands, "d" returns here, + "h" gives a primer for first-timers, + "mEmacs<Return>" visits the Emacs topic, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: The list of major topics begins on the next line. + +DIR_FILE_END_OF_FILE + +### go through the list of files in the skeleton. If an info file +### exists, grab the ENTRY information from it. If an entry exists +### use it, otherwise create a minimal $DIR_FILE entry. + + # Read one line from the file. This is so that we can echo lines with + # whitespace and quoted characters in them. + while read fileline; do + # flag fancy features + if test ! -z "$echoline"; then # echo line + echo "$fileline" + echoline="" + continue + elif test "${fileline}" = "--"; then + # echo the next line + echoline="1" + continue + elif test "${fileline}" = "%%"; then + # skip remaining files listed in skeleton file + skip="1" + continue + elif test "${fileline}" = "!!"; then + # quit now + break + fi + + # handle files if they exist + for file in $fileline""; do + fname= + if test -z "$file"; then + break + fi + # Find the file to operate upon. + if test -r "$file"; then + fname="$file" + elif test -r "${file}.info"; then + fname="${file}.info" + elif test -r "${file}.gz"; then + fname="${file}.gz" + elif test -r "${file}.info.gz"; then + fname="${file}.info.gz" + else + echo "$0:$LINENO: can't find info file for ${file}?">&2 + continue + fi + + # if we found something and aren't skipping, do the entry + if test "$skip"; then + continue + fi + + infoname=`echo $file|sed -e 's/.info$//'` + entry=`zcat -f $fname|\ + sed -e '1,/START-INFO-DIR-ENTRY/d'\ + -e '/END-INFO-DIR-ENTRY/,$d'` + if [ ! -z "${entry}" ]; then + echo "${entry}" + else + echo "* ${infoname}: (${infoname})." + fi + Total=`expr "$Total" + "1"` + done + done +}>$DIR_FILE<$SKELETON +fi + +trap ' eval "$DEBUG"; rm -f $TMP_FILE_LIST; exit ' 0 +trap ' rm -f $TMP_FILE_LIST + exit ' 1 +trap ' rm -f $TMP_FILE_LIST + echo "$0:$LINENO: received INT signal.">&2 + exit ' 2 +trap ' rm -f $TMP_FILE_LIST + echo "$0:$LINENO: received QUIT signal.">&2 + exit ' 3 + +sed -e "1,/$MENU_BEGIN/d" -e "$MENU_FILTER1" -e "$MENU_FILTER2"<$DIR_FILE\ +|sed -n -e '/\* /{ +s/).*$//g +s/\.gz$// +s/\.info$// +s/^.*(//p +}'|sort -u>$TMP_FILE1 +ls -F|sed -e '/\/$/d' -e '/[-.][0-9]/d'\ + -e "/^$DIR_FILE\$/d" -e "/^$DIR_FILE.old\$/d"\ + -e 's/[*@]$//' -e 's/\.gz$//' -e 's/\.info$//'|sort>$TMP_FILE2 + +if test -z "$MODE"; then + #Detect Missing + DONE_MSG="total menu item(s) were inserted into `pwd`/$DIR_FILE" + for Info_Name in `comm -13 $TMP_FILE1 $TMP_FILE2`; do + if test -r "$Info_Name"; then + Info_File="$Info_Name" + elif test -r "${Info_Name}.info"; then + Info_File="${Info_Name}.info" + elif test -r "${Info_Name}.gz"; then + Info_File="${Info_Name}.gz" + elif test -r "${Info_Name}.info.gz"; then + Info_File="${Info_Name}.info.gz" + else + echo "$0:$LINENO: can't find info file for ${Info_Name}?">&2 + continue + fi + Changed="y" + if install-info $Info_File $DIR_FILE; then + Total=`expr "$Total" + "1"` + fi + done +else + # Detect Invalid + DONE_MSG="total invalid menu item(s) were removed from `pwd`/$DIR_FILE" + for Info_Name in `comm -23 $TMP_FILE1 $TMP_FILE2`; do + Changed="y" + if install-info --remove $Info_Name $DIR_FILE; then + Total=`expr "$Total" + "1"` + fi + done +fi + +# print summary +if test "$Changed"; then + echo "$Total $DONE_MSG" +else + echo "Nothing to do" +fi +rm -f $TMP_FILE_LIST +eval "$DEBUG" +exit 0 diff --git a/gnu/usr.bin/texinfo/util/fixref.gawk b/gnu/usr.bin/texinfo/util/fixref.gawk new file mode 100644 index 00000000000..f0e3cf6d606 --- /dev/null +++ b/gnu/usr.bin/texinfo/util/fixref.gawk @@ -0,0 +1,145 @@ +#! /usr/local/bin/gawk -f + +# fixref.awk --- fix xrefs in texinfo documents +# Copyright, 1991, Arnold David Robbins, arnold@skeeve.atl.ga.us +# Copyright, 1998, Arnold David Robbins, arnold@gnu.org + +# FIXREF is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# FIXREF is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +# Updated: Jul 21 1992 --- change unknown +# Updated: Jul 18 1997 --- bug fix + +# usage: gawk -f fixref.awk input-file > output-file +# or if you have #!: fixref.awk input-file > output-file + +# Limitations: +# 1. no more than one cross reference on a line +# 2. cross references may not cross a newline + +BEGIN \ +{ + # we make two passes over the file. To do that we artificially + # tweak the argument vector to do a variable assignment + + if (ARGC != 2) { + printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr" + exit 1 + } + ARGV[2] = "pass=2" + ARGV[3] = ARGV[1] + ARGC = 4 + + # examine paragraphs + RS = "" + + heading = "@(chapter|appendix|unnumbered|(appendix(sec|subsec|subsubsec))|section|subsection|subsubsection|unnumberedsec|heading|top)" + + pass = 1 + + # put space between paragraphs on output + ORS = "\n\n" +} + +pass == 1 && NF == 0 { next } + +# pass == 1 && /@node/ \ +# bug fix 7/18/96 +pass == 1 && /^@node/ \ +{ + lname = name = "" + n = split($0, lines, "\n") + for (i = 1; i <= n; i++) { + if (lines[i] ~ ("^" heading)) { + sub(heading, "", lines[i]) + sub(/^[ \t]*/, "", lines[i]) + lname = lines[i] +# printf "long name is '%s'\n", lines[i] + } else if (lines[i] ~ /@node/) { + sub(/@node[ \t]*/, "", lines[i]) + sub(/[ \t]*,.*$/, "", lines[i]) + name = lines[i] +# printf "node name is '%s'\n", lines[i] + } + } + if (name && lname) + names[name] = lname + else if (lname) + printf("node name for %s missing!\n", lname) > "/dev/stderr" + else + printf("long name for %s missing!\n", name) > "/dev/stderr" + + if (name ~ /:/) + printf("node `%s' contains a `:'\n", name) > "/dev/stderr" + + if (lname) { + if (lname ~ /:/) + printf("name `%s' contains a `:'\n", lname) > "/dev/stderr" + else if (lname ~ /,/) { + printf("name `%s' contains a `,'\n", lname) > "/dev/stderr" + gsub(/,/, " ", lname) + names[name] = lname # added 7/18/97 + } + } +} + +pass == 2 && /@(x|px)?ref{/ \ +{ + # split the paragraph into lines + # write them out one by one after fixing them + n = split($0, lines, "\n") + for (i = 1; i <= n; i++) + if (lines[i] ~ /@(x|px)?ref{/) { + res = updateref(lines[i]) + printf "%s\n", res + } else + printf "%s\n", lines[i] + + printf "\n" # avoid ORS + next +} + +function updateref(orig, refkind, line) +{ + line = orig # work on a copy + + # find the beginning of the reference + match(line, "@(x|px)?ref{") + refkind = substr(line, RSTART, RLENGTH) + + # pull out just the node name + sub(/.*ref{/, "", line) + sub(/}.*$/, "", line) + sub(/,.*/, "", line) + +# debugging +# printf("found ref to node '%s'\n", line) > "/dev/stderr" + + # If the node name and the section name are the same + # we don't want to bother doing this. + + if (! (line in names)) # sanity checking + printf("no long name for %s\n", line) > "/dev/stderr" + else if (names[line] != line && names[line] !~ /[:,]/) { + # build up new ref + newref = refkind line ", ," names[line] "}" + pat = refkind line "[^}]*}" + + sub(pat, newref, orig) + } + + return orig +} + +pass == 2 { print } diff --git a/gnu/usr.bin/texinfo/util/outline.gawk b/gnu/usr.bin/texinfo/util/outline.gawk new file mode 100644 index 00000000000..329bb17529a --- /dev/null +++ b/gnu/usr.bin/texinfo/util/outline.gawk @@ -0,0 +1,145 @@ +#! /usr/local/bin/gawk -f + +# texi.outline --- produce an outline from a texinfo source file +# +# Copyright (C) 1998 Arnold David Robbins (arnold@gnu.org) +# +# TEXI.OUTLINE is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# TEXI.OUTLINE is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +# NOTE: +# This program uses gensub(), which is specific to gawk. +# With some work (split, substr, etc), it could be made to work +# on other awks, but it's not worth the trouble for me. + +BEGIN \ +{ + # Levels at which different nodes can be + Level["@top"] = 0 + Level["@appendix"] = 1 + Level["@chapter"] = 1 + Level["@majorheading"] = 1 + Level["@unnumbered"] = 1 + Level["@appendixsec"] = 2 + Level["@heading"] = 2 + Level["@section"] = 2 + Level["@unnumberedsec"] = 2 + Level["@unnumberedsubsec"] = 3 + Level["@appendixsubsec"] = 3 + Level["@subheading"] = 3 + Level["@subsection"] = 3 + Level["@appendixsubsubsec"] = 4 + Level["@subsubheading"] = 4 + Level["@subsubsection"] = 4 + Level["@unnumberedsubsubsec"] = 4 + + # insure that we were called correctly + if (ARGC != 2) { + printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr" + exit 1 + } + + # init header counters + app_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + app_h = 0 + l1_h = l2_h = l3_h = l4_h = 0 +} + +# skip lines we're not interested in +/^[^@]/ || ! ($1 in Level) { next } + +Level[$1] == 1 { + if ($1 !~ /^@unnumbered/ || $1 !~ /heading/) + l1_h++ + l2_h = l3_h = l4_h = 0 + Ntabs = 0 + Number = makenumber($1) + Title = maketitle($0) + print_title() +} + +Level[$1] == 2 { + l2_h++ + l3_h = l4_h = 0 + Ntabs = 1 + Number = makenumber($1) + Title = maketitle($0) + print_title() +} + +Level[$1] == 3 { + l3_h++ + l4_h = 0 + Ntabs = 2 + Number = makenumber($1) + Title = maketitle($0) + print_title() +} + +Level[$1] == 4 { + l4_h++ + Ntabs = 3 + Number = makenumber($1) + Title = maketitle($0) + print_title() +} + +# maketitle --- extract title + +function maketitle(str, text) +{ + $1 = "" # clobber section keyword + text = $0 + gsub(/^[ \t]*/, "", text) + text = gensub(/@[a-z]+{/, "", "g", text) + text = gensub(/([^@])}/, "\\1", "g", text) + return text +} + +# print_title --- print the title + +function print_title( i) +{ + for (i = 1; i <= Ntabs; i++) + printf "\t" + printf("%s %s\n", Number, Title) +} + +# makenumber --- construct a heading number from levels and section command + +function makenumber(command, result, lev1) +{ + result = "" + if (command ~ /^@appendix/) { + if (Level[command] == 1) + app_h++ + + lev1 = substr(app_letters, app_h, 1) + } else if (command ~ /^@unnumbered/ || command ~ /heading/) { + lev1 = "(unnumbered)" + } else + lev1 = l1_h "" + + result = lev1 "." + if (l2_h > 0) { + result = result l2_h "." + if (l3_h > 0) { + result = result l3_h "." + if (l4_h > 0) { + result = result l4_h "." + } + } + } + return result +} diff --git a/gnu/usr.bin/texinfo/util/prepinfo.awk b/gnu/usr.bin/texinfo/util/prepinfo.awk new file mode 100644 index 00000000000..273c97f8460 --- /dev/null +++ b/gnu/usr.bin/texinfo/util/prepinfo.awk @@ -0,0 +1,356 @@ +#! /usr/local/bin/gawk -f + +# prepinfo.awk --- fix node lines and menus +# +# Copyright, 1998, Arnold Robbins, arnold@gnu.org +# +# PREPINFO is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PREPINFO is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +BEGIN \ +{ + # manifest constants + TRUE = 1 + FALSE = 0 + + # Levels at which different nodes can be + Level["@top"] = 0 + Level["@appendix"] = 1 + Level["@chapter"] = 1 + Level["@majorheading"] = 1 + Level["@unnumbered"] = 1 + Level["@appendixsec"] = 2 + Level["@heading"] = 2 + Level["@section"] = 2 + Level["@unnumberedsec"] = 2 + Level["@unnumberedsubsec"] = 3 + Level["@appendixsubsec"] = 3 + Level["@subheading"] = 3 + Level["@subsection"] = 3 + Level["@appendixsubsubsec"] = 4 + Level["@subsubheading"] = 4 + Level["@subsubsection"] = 4 + Level["@unnumberedsubsubsec"] = 4 + + # Length of menus + Menumargin = 78 + + # Length of menu item + Min_menitem_length = 29 + + # insure that we were called correctly + if (ARGC != 2) { + printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr" + exit 1 + } + + # Arrange for two passes over input file + Pass = 1 + ARGV[2] = "Pass=2" + ARGV[3] = ARGV[1] + ARGC = 4 + Lastlevel = -1 + + # Initialize stacks + Up[-1] = "(dir)" + Prev[0] = "(dir)" + + if (Debug == "args") { + for (i = 0; i < ARGC; i++) + printf("ARGV[%d] = %s\n", i, ARGV[i]) > "/dev/stderr" + } +} + +$1 == "@node" \ +{ + Name = getnodename($0) + Nodeseen = TRUE + + if ((l = length(Name)) > Maxlen) + Maxlen = l + + if (Debug == "nodenames") + printf("Name = %s\n", Name) > "/dev/stderr" + + if (Pass == 1) + next +} + +Pass == 1 && /^@c(omment)?[ \t]+fakenode/ \ +{ + if (Debug == "fakenodes") + printf("fakenode at %d\n", FNR) > "/dev/stderr" + Fakenode = TRUE + next +} + +Pass == 1 && ($1 in Level) \ +{ + # skip fake nodes --- titles without associated @node lines + if (Fakenode) { + if (Debug == "fakenodes") + printf("%s at %d is a fakenode\n", $1, FNR) > "/dev/stderr" + Fakenode = FALSE + next + } + + if (Debug == "titles") + printf("Processing %s: Name = %s\n", $1, Name) > "/dev/stderr" + + # save type + type = $1 + + if (! Nodeseen) { + err_prefix() + printf("%s line with no @node or fakenode line\n", + type) > "/dev/stderr" + Badheading[FNR] = 1 + # ??? used ??? + next + } else + Nodeseen = FALSE # reset it + + # Squirrel away the info + levelnum = Level[type] + Node[Name ".level"] = levelnum + Node[Name ".name"] = Name + if (Debug == "titles") { + printf("Node[%s\".level\"] = %s\n", Name, Node[Name ".level"]) > "/dev/stderr" + printf("Node[%s\".name\"] = %s\n", Name, Node[Name ".name"]) > "/dev/stderr" + } + + if (levelnum == Lastlevel) { # e.g., two sections in a row + Node[Name ".up"] = Up[levelnum - 1] + if (levelnum in Prev) { + Node[Prev[levelnum] ".next"] = Name + Node[Name ".prev"] = Prev[levelnum] + } + Prev[levelnum] = Name + Up[levelnum] = Name # ??? + } else if (levelnum < Lastlevel) { # section, now chapter + Lastlevel = levelnum + Node[Name ".up"] = Up[levelnum - 1] + if (levelnum in Prev) { + Node[Name ".prev"] = Prev[levelnum] + Node[Prev[levelnum] ".next"] = Name + } + Prev[levelnum] = Name + Up[levelnum] = Name + } else { # chapter, now section, levelnum > Lastlevel + Node[Name ".up"] = Up[levelnum - 1] + Node[Up[Lastlevel] ".child"] = Name + Up[levelnum] = Name + Prev[levelnum] = Name + Lastlevel = levelnum + } + + # For master menu + if (Level[$1] >= 2) + List[++Sequence] = Name + + if (Debug == "titles") { + printf("Node[%s\".prev\"] = %s\n", Name, Node[Name ".prev"]) > "/dev/stderr" + printf("Node[%s\".up\"] = %s\n", Name, Node[Name ".up"]) > "/dev/stderr" + printf("Node[%s\".child\"] = %s\n", Name, Node[Name ".child"]) > "/dev/stderr" + } +} + +Pass == 2 && Debug == "dumptitles" && FNR <= 1 \ +{ + for (i in Node) + printf("Node[%s] = %s\n", i, Node[i]) | "sort 1>&2" + close("sort 1>&2") +} + +/^@menu/ && Pass == 1, /^@end[ \t]+menu/ && Pass == 1 \ +{ + if (/^@menu/ || /^@end[ \t]+menu/) + next + +# if (Debug == "menu") +# printf("processing: %s\n", $0) > "/dev/stderr" + + if (/^\*/) { + if (In_menitem) { # file away info from previousline + Node[node ".mendesc"] = desc + Node[node ".longdesc"] = longdesc + if (Debug == "mendesc") { + printf("Node[%s.mendesc] = %s\n", + node, Node[node ".mendesc"]) > "/dev/stderr" + printf("Node[%s.longdesc] = %s\n", + node, Node[node ".longdesc"]) > "/dev/stderr" + } + } + In_menitem = TRUE + + # pull apart menu item + $1 = "" # nuke ``*'' + $0 = $0 # reparse line + i1 = index($0, ":") + if (i1 <= 0) { + err_prefix() + printf("badly formed menu item") > "/dev/stderr" + next + } + if (substr($0, i1+1, 1) != ":") { # desc: node. long desc + i2 = index($0, ".") + if (i2 <= 0) { + err_prefix() + printf("badly formed menu item") > "/dev/stderr" + next + } + desc = substr($0, 1, i1 - 1) + sub(/^[ \t]+/, "", node) + sub(/[ \t]+$/, "", node) + longdesc = substr($0, i2 + 1) + } else { # nodname:: long desc + desc = "" + node = substr($0, 1, i1 - 1) + sub(/^[ \t]+/, "", node) + sub(/[ \t]+$/, "", node) + longdesc = substr($0, i1 + 2) + } + } else if (In_menitem) { # continuation line + longdesc = longdesc " " $0 + } else + In_menitem = FALSE + + Node[node ".mendesc"] = desc + Node[node ".longdesc"] = longdesc + if (Debug == "mendesc") { + printf("Node[%s.mendesc] = %s\n", + node, Node[node ".mendesc"]) > "/dev/stderr" + printf("Node[%s.longdesc] = %s\n", + node, Node[node ".longdesc"]) > "/dev/stderr" + } + + if (Debug == "menu") + printf("Menu:: Name %s: desc %s: longdesc %s\n", + node, desc, longdesc) > "/dev/stderr" +} + +function err_prefix() +{ + printf("%s: %s: %d: ", ARGV[0], FILENAME, FNR) > "/dev/stderr" +} + +function getnodename(str) +{ + sub(/@node[ \t]+/, "", str) + sub(/,.*/, "", str) + if (Debug == "nodenames") + printf("getnodename: return %s\n", str) > "/dev/stderr" + return str +} + +Pass == 2 && /^@node/ \ +{ + Name = getnodename($0) + + # Top node is special. It's next is the first child + n = Node[Name ".next"] + if (Node[Name ".level"] == 0 && n == "") + n = Node[Name ".child"] + + printf("@node %s, %s, %s, %s\n", Name, n, + Node[Name ".prev"] ? Node[Name ".prev"] : Node[Name ".up"], + Node[Name ".up"]) + next +} + +Pass == 2 && /^@menu/ \ +{ + # First, nuke current contents of menu + do { + if ((getline) <= 0) { + err_prefix() + printf("unexpected EOF inside menu\n") > "/dev/stderr" + exit 1 + } + } while (! /^@end[ \t]+menu/) + + # next, compute maximum length of a node name + max = 0 + for (n = Node[Name ".child"]; (n ".next") in Node; n = Node[n ".next"]) { + if ((n ".desc") in Node) + s = Node[n ".desc"] ": " n "." + else + s = n "::" + l = length(s) + if (l > max) + max = l + } + if (max < Min_menitem_length) + max = Min_menitem_length + + # now dump the menu + print "@menu" + + for (n = Node[Name ".child"]; (n ".next") in Node; n = Node[n ".next"]) { + print_menuitem(n, max) + } + print_menuitem(n, max) + + if (Name == "Top") { # Master Menu + if (Maxlen < Min_menitem_length) + Maxlen = Min_menitem_length + print "" + for (i = 1; i <= Sequence; i++) + print_menuitem(List[i], Maxlen) + print "" + } + print "@end menu" + next +} + +Pass == 2 # print + + +function print_menuitem(n, max, nodesc, i, dwords, count, p) +{ + nodesc = FALSE + if (! ((n ".longdesc") in Node)) { + err_prefix() + printf("warning: %s: no long description\n", n) > "/dev/stderr" + nodesc = TRUE + } else { + for (i in dwords) + delete dwords[i] + count = split(Node[n ".longdesc"], dwords, "[ \t\n]+") + } + if ((n ".desc") in Node) + s = Node[n ".desc"] ": " n "." + else + s = n "::" + printf("* %-*s", max, s) + + if (Debug == "mendescitem") + printf("<* %-*s>\n", max, s) > "/dev/stderr" + + p = max + 2 + if (! nodesc) { + for (i = 1; i <= count; i++) { + l = length(dwords[i]) + if (l == 0) + continue + if (p + l + 1 > Menumargin) { + printf("\n%*s", max + 2, " ") + p = max + 2 + } + printf(" %s", dwords[i]) + p += l + 1 + } + } + print "" +} diff --git a/gnu/usr.bin/texinfo/util/texi-docstring-magic.el b/gnu/usr.bin/texinfo/util/texi-docstring-magic.el new file mode 100644 index 00000000000..c645fbcf699 --- /dev/null +++ b/gnu/usr.bin/texinfo/util/texi-docstring-magic.el @@ -0,0 +1,347 @@ +;; texi-docstring-magic.el -- munge internal docstrings into texi +;; +;; Keywords: lisp, docs, tex +;; Author: David Aspinall <da@dcs.ed.ac.uk> +;; Copyright (C) 1998 David Aspinall +;; Maintainer: David Aspinall <da@dcs.ed.ac.uk> +;; +;; $Id: texi-docstring-magic.el,v 1.1.1.1 2000/02/09 01:26:24 espie Exp $ +;; +;; This package is distributed under the terms of the +;; GNU General Public License, Version 2. +;; You should have a copy of the GPL with your version of +;; GNU Emacs or the Texinfo distribution. +;; +;; +;; This package generates Texinfo source fragments from Emacs +;; docstrings. This avoids documenting functions and variables +;; in more than one place, and automatically adds Texinfo markup +;; to docstrings. +;; +;; It relies heavily on you following the Elisp documentation +;; conventions to produce sensible output, check the Elisp manual +;; for details. In brief: +;; +;; * The first line of a docstring should be a complete sentence. +;; * Arguments to functions should be written in upper case: ARG1..ARGN +;; * User options (variables users may want to set) should have docstrings +;; beginning with an asterisk. +;; +;; Usage: +;; +;; Write comments of the form: +;; +;; @c TEXI DOCSTRING MAGIC: my-package-function-or-variable-name +;; +;; In your texi source, mypackage.texi. From within an Emacs session +;; where my-package is loaded, visit mypackage.texi and run +;; M-x texi-docstring-magic to update all of the documentation strings. +;; +;; This will insert @defopt, @deffn and the like underneath the +;; magic comment strings. +;; +;; The default value for user options will be printed. +;; +;; Symbols are recognized if they are defined for faces, functions, +;; or variables (in that order). +;; +;; Automatic markup rules: +;; +;; 1. Indented lines are gathered into @lisp environment. +;; 2. Pieces of text `stuff' or surrounded in quotes marked up with @samp. +;; 3. Words *emphasized* are made @strong{emphasized} +;; 4. Words sym-bol which are symbols become @code{sym-bol}. +;; 5. Upper cased words ARG corresponding to arguments become @var{arg}. +;; In fact, you can any word longer than three letters, so that +;; metavariables can be used easily. +;; FIXME: to escape this, use `ARG' +;; 6. Words 'sym which are lisp-quoted are marked with @code{'sym}. +;; +;; ----- +;; +;; Useful key binding when writing Texinfo: +;; +;; (define-key TeXinfo-mode-map "C-cC-d" 'texi-docstring-magic-insert-magic) +;; +;; ----- +;; +;; Useful enhancements to do: +;; +;; * Use customize properties (e.g. group, simple types) +;; * Look for a "texi-docstring" property for symbols +;; so TeXInfo can be defined directly in case automatic markup +;; goes badly wrong. +;; * Add tags to special comments so that user can specify face, +;; function, or variable binding for a symbol in case more than +;; one binding exists. +;; +;; ------ + +(defun texi-docstring-magic-splice-sep (strings sep) + "Return concatenation of STRINGS spliced together with separator SEP." + (let (str) + (while strings + (setq str (concat str (car strings))) + (if (cdr strings) + (setq str (concat str sep))) + (setq strings (cdr strings))) + str)) + +(defconst texi-docstring-magic-munge-table + '(;; 1. Indented lines are gathered into @lisp environment. + ("\\(^.*\\S-.*$\\)" + t + (let + ((line (match-string 0 docstring))) + (if (eq (char-syntax (string-to-char line)) ?\ ) + ;; whitespace + (if in-quoted-region + line + (setq in-quoted-region t) + (concat "@lisp\n" line)) + ;; non-white space + (if in-quoted-region + (progn + (setq in-quoted-region nil) + (concat "@end lisp\n" line)) + line)))) + ;; 2. Pieces of text `stuff' or surrounded in quotes + ;; are marked up with @samp. NB: Must be backquote + ;; followed by forward quote for this to work. + ;; Can't use two forward quotes else problems with + ;; symbols. + ;; Odd hack: because ' is a word constituent in text/texinfo + ;; mode, putting this first enables the recognition of args + ;; and symbols put inside quotes. + ("\\(`\\([^']+\\)'\\)" + t + (concat "@samp{" (match-string 2 docstring) "}")) + ;; 3. Words *emphasized* are made @strong{emphasized} + ("\\(\\*\\(\\w+\\)\\*\\)" + t + (concat "@strong{" (match-string 2 docstring) "}")) + ;; 4. Words sym-bol which are symbols become @code{sym-bol}. + ;; Must have at least one hyphen to be recognized, + ;; terminated in whitespace, end of line, or punctuation. + ;; (Only consider symbols made from word constituents + ;; and hyphen. + ("\\(\\(\\w+\\-\\(\\w\\|\\-\\)+\\)\\)\\(\\s\)\\|\\s-\\|\\s.\\|$\\)" + (or (boundp (intern (match-string 2 docstring))) + (fboundp (intern (match-string 2 docstring)))) + (concat "@code{" (match-string 2 docstring) "}" + (match-string 4 docstring))) + ;; 5. Upper cased words ARG corresponding to arguments become + ;; @var{arg} + ;; In fact, include any word so long as it is more than 3 characters + ;; long. (Comes after symbols to avoid recognizing the + ;; lowercased form of an argument as a symbol) + ;; FIXME: maybe we don't want to downcase stuff already + ;; inside @samp + ;; FIXME: should - terminate? should _ be included? + ("\\([A-Z0-9\\-]+\\)\\(/\\|\)\\|}\\|\\s-\\|\\s.\\|$\\)" + (or (> (length (match-string 1 docstring)) 3) + (member (downcase (match-string 1 docstring)) args)) + (concat "@var{" (downcase (match-string 1 docstring)) "}" + (match-string 2 docstring))) + + ;; 6. Words 'sym which are lisp quoted are + ;; marked with @code. + ("\\(\\(\\s-\\|^\\)'\\(\\(\\w\\|\\-\\)+\\)\\)\\(\\s\)\\|\\s-\\|\\s.\\|$\\)" + t + (concat (match-string 2 docstring) + "@code{'" (match-string 3 docstring) "}" + (match-string 5 docstring))) + ;; 7,8. Clean up for @lisp environments left with spurious newlines + ;; after 1. + ("\\(\\(^\\s-*$\\)\n@lisp\\)" t "@lisp") + ("\\(\\(^\\s-*$\\)\n@end lisp\\)" t "@end lisp")) + "Table of regexp matches and replacements used to markup docstrings. +Format of table is a list of elements of the form + (regexp predicate replacement-form) +If regexp matches and predicate holds, then replacement-form is +evaluated to get the replacement for the match. +predicate and replacement-form can use variables arg, +and forms such as (match-string 1 docstring) +Match string 1 is assumed to determine the +length of the matched item, hence where parsing restarts from. +The replacement must cover the whole match (match string 0), +including any whitespace included to delimit matches.") + + +(defun texi-docstring-magic-munge-docstring (docstring args) + "Markup DOCSTRING for texi according to regexp matches." + (let ((case-fold-search nil)) + (dolist (test texi-docstring-magic-munge-table docstring) + (let ((regexp (nth 0 test)) + (predicate (nth 1 test)) + (replace (nth 2 test)) + (i 0) + in-quoted-region) + + (while (and + (< i (length docstring)) + (string-match regexp docstring i)) + (setq i (match-end 1)) + (if (eval predicate) + (let* ((origlength (- (match-end 0) (match-beginning 0))) + (replacement (eval replace)) + (newlength (length replacement))) + (setq docstring + (replace-match replacement t t docstring)) + (setq i (+ i (- newlength origlength)))))) + (if in-quoted-region + (setq docstring (concat docstring "\n@end lisp")))))) + ;; Force a new line after (what should be) the first sentence, + ;; if not already a new paragraph. + (let* + ((pos (string-match "\n" docstring)) + (needscr (and pos + (not (string= "\n" + (substring docstring + (1+ pos) + (+ pos 2))))))) + (if (and pos needscr) + (concat (substring docstring 0 pos) + "@*\n" + (substring docstring (1+ pos))) + docstring))) + +(defun texi-docstring-magic-texi (env grp name docstring args &optional endtext) + "Make a texi def environment ENV for entity NAME with DOCSTRING." + (concat "@def" env (if grp (concat " " grp) "") " " name + " " + (texi-docstring-magic-splice-sep args " ") + ;; " " + ;; (texi-docstring-magic-splice-sep extras " ") + "\n" + (texi-docstring-magic-munge-docstring docstring args) + "\n" + (or endtext "") + "@end def" env "\n")) + +(defun texi-docstring-magic-format-default (default) + "Make a default value string for the value DEFAULT. +Markup as @code{stuff} or @lisp stuff @end lisp." + (let ((text (format "%S" default))) + (concat + "\nThe default value is " + (if (string-match "\n" text) + ;; Carriage return will break @code, use @lisp + (if (stringp default) + (concat "the string: \n@lisp\n" default "\n@end lisp\n") + (concat "the value: \n@lisp\n" text "\n@end lisp\n")) + (concat "@code{" text "}.\n"))))) + + +(defun texi-docstring-magic-texi-for (symbol) + (cond + ;; Faces + ((find-face symbol) + (let* + ((face symbol) + (name (symbol-name face)) + (docstring (or (face-doc-string face) + "Not documented.")) + (useropt (eq ?* (string-to-char docstring)))) + ;; Chop off user option setting + (if useropt + (setq docstring (substring docstring 1))) + (texi-docstring-magic-texi "fn" "Face" name docstring nil))) + ((fboundp symbol) + ;; Functions. + ;; We don't handle macros, aliases, or compiled fns properly. + (let* + ((function symbol) + (name (symbol-name function)) + (docstring (or (documentation function) + "Not documented.")) + (def (symbol-function function)) + (argsyms (cond ((eq (car-safe def) 'lambda) + (nth 1 def)))) + (args (mapcar 'symbol-name argsyms))) + (if (commandp function) + (texi-docstring-magic-texi "fn" "Command" name docstring args) + (texi-docstring-magic-texi "un" nil name docstring args)))) + ((boundp symbol) + ;; Variables. + (let* + ((variable symbol) + (name (symbol-name variable)) + (docstring (or (documentation-property variable + 'variable-documentation) + "Not documented.")) + (useropt (eq ?* (string-to-char docstring))) + (default (if useropt + (texi-docstring-magic-format-default + (default-value symbol))))) + ;; Chop off user option setting + (if useropt + (setq docstring (substring docstring 1))) + (texi-docstring-magic-texi + (if useropt "opt" "var") nil name docstring nil default))) + (t + (error "Don't know anything about symbol %s" (symbol-name symbol))))) + +(defconst texi-docstring-magic-comment + "@c TEXI DOCSTRING MAGIC:" + "Magic string in a texi buffer expanded into @defopt, or @deffn.") + +(defun texi-docstring-magic () + "Update all texi docstring magic annotations in buffer." + (interactive) + (save-excursion + (goto-char (point-min)) + (let ((magic (concat "^" + (regexp-quote texi-docstring-magic-comment) + "\\s-*\\(\\(\\w\\|\\-\\)+\\)$")) + p + symbol) + (while (re-search-forward magic nil t) + (setq symbol (intern (match-string 1))) + (forward-line) + (setq p (point)) + ;; If comment already followed by an environment, delete it. + (if (and + (looking-at "@def\\(\\w+\\)\\s-") + (search-forward (concat "@end def" (match-string 1)) nil t)) + (progn + (forward-line) + (delete-region p (point)))) + (insert + (texi-docstring-magic-texi-for symbol)))))) + +(defun texi-docstring-magic-face-at-point () + (ignore-errors + (let ((stab (syntax-table))) + (unwind-protect + (save-excursion + (set-syntax-table emacs-lisp-mode-syntax-table) + (or (not (zerop (skip-syntax-backward "_w"))) + (eq (char-syntax (char-after (point))) ?w) + (eq (char-syntax (char-after (point))) ?_) + (forward-sexp -1)) + (skip-chars-forward "'") + (let ((obj (read (current-buffer)))) + (and (symbolp obj) (find-face obj) obj))) + (set-syntax-table stab))))) + +(defun texi-docstring-magic-insert-magic (symbol) + (interactive + (let* ((v (or (variable-at-point) + (function-at-point) + (texi-docstring-magic-face-at-point))) + (val (let ((enable-recursive-minibuffers t)) + (completing-read + (if v + (format "Magic docstring for symbol (default %s): " v) + "Magic docstring for symbol: ") + obarray '(lambda (sym) + (or (boundp sym) + (fboundp sym) + (find-face sym))) + t nil 'variable-history)))) + (list (if (equal val "") v (intern val))))) + (insert "\n" texi-docstring-magic-comment " " (symbol-name symbol))) + + +(provide 'texi-docstring-magic) |