diff options
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/texk/kpathsea/ChangeLog | 11 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/NEWS | 3 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/doc/kpathsea.info | 237 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/doc/kpathsea.texi | 54 | ||||
-rw-r--r-- | Build/source/texk/kpathsea/kpsewhich.c | 26 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/ctwill-mini.ch | 3 |
7 files changed, 226 insertions, 112 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index 6c09d3e1393..9babe798062 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,3 +1,14 @@ +2025-01-15 Karl Berry <karl@freefriends.org> + + * kpsewhich.c (main): output blank line for search files that are + not found, if more than one search file is specified. + Suggestion from Norbert and Deyan, thread starting at + https://tug.org/pipermail/texhax/2024-July/026506.html + (USAGE): mention this. + * doc/kpathsea.texi (Invoking kpsewhich): mention this, + and the exit status. + (kpsewhich examples): new node. + 2024-11-06 Karl Berry <karl@freefriends.org> * tex-file.c (kpathsea_name_ok): don't allow writing to the diff --git a/Build/source/texk/kpathsea/NEWS b/Build/source/texk/kpathsea/NEWS index 799df460360..f5c18e5afc0 100644 --- a/Build/source/texk/kpathsea/NEWS +++ b/Build/source/texk/kpathsea/NEWS @@ -1,6 +1,9 @@ $Id$ This file records noteworthy changes. (Public domain.) +* kpsewhich outputs a blank line when a given file cannot be found, + if more than one file to search for is specified. + * A file named ".tex" can no longer be written from TeX; previously this was allowed as a special case. (The LaTeX 2024-11-01 release changes their build process so as not to write it from TeX.) diff --git a/Build/source/texk/kpathsea/doc/kpathsea.info b/Build/source/texk/kpathsea/doc/kpathsea.info index 6011858e461..e4b8db2b9bc 100644 --- a/Build/source/texk/kpathsea/doc/kpathsea.info +++ b/Build/source/texk/kpathsea/doc/kpathsea.info @@ -1,9 +1,9 @@ -This is kpathsea.info, produced by makeinfo version 7.1.1 from +This is kpathsea.info, produced by makeinfo version 7.2 from kpathsea.texi. This file documents the Kpathsea library for path searching. - Copyright © 1996-2024 Karl Berry & Olaf Weber. + Copyright © 1996-2025 Karl Berry & Olaf Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -37,7 +37,7 @@ Kpathsea library **************** This manual documents the Kpathsea library for path searching. It -corresponds to version 6.4.0, released in November 2024. +corresponds to version 6.4.0, released in January 2025. * Menu: @@ -62,7 +62,7 @@ File: kpathsea.info, Node: Introduction, Next: unixtex.ftp, Prev: Top, Up: T ************** This manual corresponds to version 6.4.0 of the Kpathsea library, -released in November 2024. +released in January 2025. The library's fundamental purpose is to return a filename from a list of directories specified by the user, similar to what shells do when @@ -72,9 +72,9 @@ looking up program names to execute. this library: • Dviljk (see the ‘dvilj’ man page) - • Dvipsk (*note (dvips)::) - • GNU font utilities (*note (fontu)::) - • Web2c (*note (web2c)::) + • Dvipsk (*note (dvips)Top::) + • GNU font utilities (*note (fontu)Top::) + • Web2c (*note (web2c)Top::) • Xdvik (see the ‘xdvi’ man page) Other software that we do not maintain also uses it. @@ -82,7 +82,7 @@ Other software that we do not maintain also uses it. Kpathsea is now maintained as part of the TeX Live distribution (<https://tug.org/texlive>), which includes several more Kpathsea-using programs. For information on configuration, building, installing, and -more, *note (tlbuild)::. +more, *note (tlbuild)Top::. The library is still actively maintained. If you have comments or suggestions, please send along (*note Reporting bugs::). @@ -1219,23 +1219,55 @@ in administrative scripts. It is used heavily in the distributed can start with either ‘-’ or ‘--’, and any unambiguous abbreviation is accepted. + Kpsewhich looks up each non-option argument on the command line as a +filename, and outputs (by default) the first file found to standard +output. If a file is not found, and more than FILENAME is given, a +blank line is output for that file. See examples below. + + The exit status is zero if all files were found, nonzero otherwise. + * Menu: +* kpsewhich examples:: Simple examples of running kpsewhich. * Path searching options:: Changing the mode, resolution, etc. * Specially-recognized files:: Default formats for texmf.cnf, etc. * Auxiliary tasks:: Path and variable expansion, etc. * Standard options:: ‘--help’ and ‘--version’. -File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, Up: Invoking kpsewhich +File: kpathsea.info, Node: kpsewhich examples, Next: Path searching options, Up: Invoking kpsewhich -5.6.1 Path searching options ----------------------------- +5.6.1 ‘kpsewhich’ examples +-------------------------- + +Some examples of running ‘kpsewhich’ with a typical TeX tree. A basic +successful search (exit status 0): + + $ kpsewhich plain.tex + /usr/local/texlive/2024/texmf-dist/tex/plain/base/plain.tex + + Searching for multiple files, one of which is not found (exit status +is 1 for this): + + $ kpsewhich plain.tex foobar plain.mf + /usr/local/texlive/2024/texmf-dist/tex/plain/base/plain.tex + + /usr/local/texlive/2024/texmf-dist/metafont/base/plain.mf + + Using ‘--all’ to see all files by the same name (exit status 0): -Kpsewhich looks up each non-option argument on the command line as a -filename, and returns the first file found. + $ kpsewhich --all language.dat + /usr/local/texlive/2024/texmf-dist/tex/generic/config/language.dat + /usr/local/texlive/2024/texmf-dist/lambda/generic/config/language.dat - Various options alter the path searching behavior: + +File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, Prev: kpsewhich examples, Up: Invoking kpsewhich + +5.6.2 Path searching options +---------------------------- + +Various options alter the path searching behavior. Options apply to all +lookups. ‘--all’ Report all matches found, one per line. By default, if there is @@ -1243,6 +1275,11 @@ filename, and returns the first file found. at random). Exception: with the glyph formats (‘pk’, ‘gf’), this option has no effect and only the first match is returned. + With both ‘-all’ and multiple input files, there's no easy way to + discern which matches belong to which files; you have to check the + basename of the output. This could be improved, if there is any + demand. + ‘--casefold-search’ ‘--no-casefold-search’ Explicitly enable or disable the fallback to a case-insensitive @@ -1475,7 +1512,7 @@ filename, and returns the first file found. File: kpathsea.info, Node: Specially-recognized files, Next: Auxiliary tasks, Prev: Path searching options, Up: Invoking kpsewhich -5.6.2 Specially-recognized files for ‘kpsewhich’ +5.6.3 Specially-recognized files for ‘kpsewhich’ ------------------------------------------------ ‘kpsewhich’ recognizes a few special filenames on the command line and @@ -1525,7 +1562,7 @@ various information about the above configuration files (among others). File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Specially-recognized files, Up: Invoking kpsewhich -5.6.3 Auxiliary tasks +5.6.4 Auxiliary tasks --------------------- Kpsewhich provides some features in addition to path lookup as such: @@ -1619,7 +1656,7 @@ Kpsewhich provides some features in addition to path lookup as such: File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich -5.6.4 Standard options +5.6.5 Standard options ---------------------- Kpsewhich accepts the standard GNU options: @@ -2084,7 +2121,7 @@ fonts equivalent. Fontmaps are implemented in the file ‘kpathsea/fontmap.c’. The Fontname distribution has much more information on font naming (*note -(fontname)::). +(fontname)Top::). File: kpathsea.info, Node: Fallback font, Prev: Fontmap, Up: Glyph lookup @@ -3154,48 +3191,48 @@ Index * Menu: * --all: Path searching options. - (line 12) + (line 10) * --casefold-search: Path searching options. - (line 19) + (line 22) * --cnf-line: Path searching options. - (line 28) + (line 31) * --cnf-line, source for path: Path sources. (line 9) * --color=tty: ls-R. (line 25) * --debug=NUM: Auxiliary tasks. (line 9) * --dpi=NUM: Path searching options. - (line 49) + (line 52) * --engine=NAME: Path searching options. - (line 53) + (line 56) * --expand-braces=STRING: Auxiliary tasks. (line 12) * --expand-path=STRING: Auxiliary tasks. (line 16) * --expand-var=STRING: Auxiliary tasks. (line 34) * --format=NAME: Path searching options. - (line 70) + (line 73) * --help: Standard options. (line 8) * --help-formats: Auxiliary tasks. (line 42) * --interactive: Path searching options. - (line 152) + (line 155) * --mktex=FILETYPE: Path searching options. - (line 157) + (line 160) * --mode=STRING: Path searching options. - (line 163) + (line 166) * --must-exist: Path searching options. - (line 168) + (line 171) * --no-casefold-search: Path searching options. - (line 19) + (line 22) * --no-mktex=FILETYPE: Path searching options. - (line 157) + (line 160) * --path=STRING: Path searching options. - (line 173) + (line 176) * --progname=NAME: Path searching options. - (line 181) + (line 184) * --safe-extended-in-name=NAME: Auxiliary tasks. (line 48) * --safe-extended-out-name=NAME: Auxiliary tasks. (line 48) * --safe-in-name=NAME: Auxiliary tasks. (line 54) * --safe-out-name=NAME: Auxiliary tasks. (line 54) * --show-path=NAME: Auxiliary tasks. (line 60) * --subdir=STRING: Path searching options. - (line 186) + (line 189) * --var-brace-value=VARIABLE: Auxiliary tasks. (line 66) * --var-value=VARIABLE: Auxiliary tasks. (line 80) * --version: Standard options. (line 11) @@ -3209,7 +3246,7 @@ Index * -1 debugging value: Debugging. (line 23) * -A option to ls: ls-R. (line 39) * -D NUM: Path searching options. - (line 49) + (line 52) * -iname, find predicate: Casefolding examples. (line 78) * -L option to ls: ls-R. (line 44) @@ -3366,7 +3403,7 @@ Index * all: Suppressing warnings. (line 13) * all matches, finding: Path searching options. - (line 12) + (line 10) * alphabetical order, not: Subdirectory expansion. (line 6) * announcement mailing list: Mailing lists. (line 6) @@ -3514,7 +3551,7 @@ Index * ENCFONTS: Supported file formats. (line 61) * engine name: Path searching options. - (line 53) + (line 56) * environment variable, source for path: Path sources. (line 12) * environment variables for TeX: Supported file formats. (line 6) @@ -3525,6 +3562,7 @@ Index * error message macros: Calling sequence. (line 22) * examples, of casefolding searches: Casefolding examples. (line 6) +* examples, of running kpsewhich: kpsewhich examples. (line 6) * excessive startup time: Slow path searching. (line 6) * expand.c: Brace expansion. (line 26) * expanding symlinks: Calling sequence. (line 31) @@ -3625,7 +3663,7 @@ Index (line 84) * input lines, reading: Calling sequence. (line 91) * interactive query: Path searching options. - (line 152) + (line 155) * interface, not frozen: Introduction. (line 29) * introduction: Introduction. (line 6) * kdebug:: Debugging. (line 105) @@ -3679,6 +3717,7 @@ Index * kpse->invocation_short_name: Calling sequence. (line 22) * kpse->program_name: Calling sequence. (line 22) * kpsewhich: Invoking kpsewhich. (line 6) +* kpsewhich examples: kpsewhich examples. (line 6) * Kpsewhich, and debugging: Debugging. (line 31) * last-resort font: Fallback font. (line 6) * lcircle10: Fontmap. (line 19) @@ -3865,7 +3904,7 @@ Index * reporting bugs: Reporting bugs. (line 6) * resident.c: Calling sequence. (line 47) * resolution, setting: Path searching options. - (line 49) + (line 52) * resolutions, last-resort: Fallback font. (line 6) * restricted mode, for output files: Safe filenames. (line 15) * retrieving TeX: unixtex.ftp. (line 6) @@ -4121,69 +4160,69 @@ Index * XDVISIZES: Fallback font. (line 6) * zuhn, david: History. (line 50) - Tag Table: -Node: Top1481 -Node: Introduction2264 -Node: History4356 -Node: unixtex.ftp8976 -Node: Security10458 -Node: Global font cache and security13171 -Node: TeX directory structure15162 -Node: Path searching19337 -Node: Searching overview20295 -Node: Path sources24202 -Node: Config files25472 -Node: Path expansion30520 -Node: Default expansion31489 -Node: Variable expansion33611 -Node: Tilde expansion35080 -Node: Brace expansion36128 -Node: KPSE_DOT expansion37123 -Node: Subdirectory expansion37648 -Node: Casefolding search40088 -Node: Casefolding rationale40865 -Node: Casefolding examples42223 -Node: Filename database47445 -Node: ls-R48459 -Node: Filename aliases52331 -Node: Database format53573 -Node: Invoking kpsewhich54622 -Node: Path searching options55605 -Node: Specially-recognized files65607 -Node: Auxiliary tasks67082 -Node: Standard options71226 -Node: TeX support71594 -Node: Supported file formats72952 -Node: File lookup81703 -Node: Glyph lookup83508 -Node: Basic glyph lookup84656 -Node: Fontmap85564 -Node: Fallback font88172 -Node: Suppressing warnings89108 -Node: mktex scripts90271 -Node: mktex configuration91514 -Node: mktex script names97607 -Node: mktex script arguments99290 -Node: Programming100205 -Node: Programming overview100848 -Node: Calling sequence103759 -Node: Safe filenames109096 -Ref: openout_any109255 -Node: Program-specific files113064 -Node: Programming with config files114117 -Node: Reporting bugs115764 -Node: Bug checklist116442 -Node: Mailing lists119999 -Node: Debugging120676 -Node: Logging125933 -Node: Common problems127840 -Node: Unable to find files128317 -Node: Slow path searching130773 -Node: Unable to generate fonts132168 -Node: TeX or Metafont failing134704 -Node: Index135906 +Node: Top1479 +Node: Introduction2261 +Node: History4364 +Node: unixtex.ftp8984 +Node: Security10466 +Node: Global font cache and security13179 +Node: TeX directory structure15170 +Node: Path searching19345 +Node: Searching overview20303 +Node: Path sources24210 +Node: Config files25480 +Node: Path expansion30528 +Node: Default expansion31497 +Node: Variable expansion33619 +Node: Tilde expansion35088 +Node: Brace expansion36136 +Node: KPSE_DOT expansion37131 +Node: Subdirectory expansion37656 +Node: Casefolding search40096 +Node: Casefolding rationale40873 +Node: Casefolding examples42231 +Node: Filename database47453 +Node: ls-R48467 +Node: Filename aliases52339 +Node: Database format53581 +Node: Invoking kpsewhich54630 +Node: kpsewhich examples56021 +Node: Path searching options56909 +Node: Specially-recognized files67083 +Node: Auxiliary tasks68558 +Node: Standard options72702 +Node: TeX support73070 +Node: Supported file formats74428 +Node: File lookup83179 +Node: Glyph lookup84984 +Node: Basic glyph lookup86132 +Node: Fontmap87040 +Node: Fallback font89651 +Node: Suppressing warnings90587 +Node: mktex scripts91750 +Node: mktex configuration92993 +Node: mktex script names99086 +Node: mktex script arguments100769 +Node: Programming101684 +Node: Programming overview102327 +Node: Calling sequence105238 +Node: Safe filenames110575 +Ref: openout_any110734 +Node: Program-specific files114543 +Node: Programming with config files115596 +Node: Reporting bugs117243 +Node: Bug checklist117921 +Node: Mailing lists121478 +Node: Debugging122155 +Node: Logging127412 +Node: Common problems129319 +Node: Unable to find files129796 +Node: Slow path searching132252 +Node: Unable to generate fonts133647 +Node: TeX or Metafont failing136183 +Node: Index137385 End Tag Table diff --git a/Build/source/texk/kpathsea/doc/kpathsea.texi b/Build/source/texk/kpathsea/doc/kpathsea.texi index 4e2e42c0395..a7c866627e4 100644 --- a/Build/source/texk/kpathsea/doc/kpathsea.texi +++ b/Build/source/texk/kpathsea/doc/kpathsea.texi @@ -3,12 +3,12 @@ @settitle Kpathsea: A library for path searching @set version 6.4.0 -@set month-year November 2024 +@set month-year January 2025 @copying This file documents the Kpathsea library for path searching. -Copyright @copyright{} 1996--2024 Karl Berry & Olaf Weber. +Copyright @copyright{} 1996--2025 Karl Berry & Olaf Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -1516,7 +1516,15 @@ The options and filename(s) to look up can be intermixed. Options can start with either @samp{-} or @samp{--}, and any unambiguous abbreviation is accepted. +Kpsewhich looks up each non-option argument on the command line as a +filename, and outputs (by default) the first file found to standard +output. If a file is not found, and more than @var{filename} is given, +a blank line is output for that file. See examples below. + +The exit status is zero if all files were found, nonzero otherwise. + @menu +* kpsewhich examples:: Simple examples of running kpsewhich. * Path searching options:: Changing the mode, resolution, etc. * Specially-recognized files:: Default formats for texmf.cnf, etc. * Auxiliary tasks:: Path and variable expansion, etc. @@ -1524,15 +1532,45 @@ abbreviation is accepted. @end menu +@node kpsewhich examples +@subsection @code{kpsewhich} examples + +@cindex @code{kpsewhich} examples +@cindex examples, of running @code{kpsewhich} + +Some examples of running @code{kpsewhich} with a typical @TeX{} tree. +A basic successful search (exit status 0): + +@example +$ kpsewhich plain.tex +/usr/local/texlive/2024/texmf-dist/tex/plain/base/plain.tex +@end example + +Searching for multiple files, one of which is not found (exit status +is 1 for this): + +@example +$ kpsewhich plain.tex foobar plain.mf +/usr/local/texlive/2024/texmf-dist/tex/plain/base/plain.tex + +/usr/local/texlive/2024/texmf-dist/metafont/base/plain.mf +@end example + +Using @code{--all} to see all files by the same name (exit status 0): + +@example +$ kpsewhich --all language.dat +/usr/local/texlive/2024/texmf-dist/tex/generic/config/language.dat +/usr/local/texlive/2024/texmf-dist/lambda/generic/config/language.dat +@end example + @node Path searching options @subsection Path searching options @cindex path searching options -Kpsewhich looks up each non-option argument on the command line as a -filename, and returns the first file found. - -Various options alter the path searching behavior: +Various options alter the path searching behavior. Options apply to +all lookups. @table @samp @item --all @@ -1543,6 +1581,10 @@ than one match, just one will be reported (chosen effectively at random). Exception: with the glyph formats (@code{pk}, @code{gf}), this option has no effect and only the first match is returned. +With both @code{-all} and multiple input files, there's no easy way to +discern which matches belong to which files; you have to check the +basename of the output. This could be improved, if there is any demand. + @item --casefold-search @itemx --no-casefold-search @opindex --casefold-search diff --git a/Build/source/texk/kpathsea/kpsewhich.c b/Build/source/texk/kpathsea/kpsewhich.c index 96ca5d1ed85..cb55fd8f9d2 100644 --- a/Build/source/texk/kpathsea/kpsewhich.c +++ b/Build/source/texk/kpathsea/kpsewhich.c @@ -1,7 +1,7 @@ /* kpsewhich -- standalone path lookup and variable expansion for Kpathsea. Ideas from Thomas Esser, Pierre MacKay, and many others. - Copyright 1995-2024 Karl Berry & Olaf Weber. + Copyright 1995-2025 Karl Berry & Olaf Weber. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -477,13 +477,18 @@ Standalone path lookup and expansion for the Kpathsea library.\n\ The default is to look up each FILENAME in turn and report its\n\ first match (if any) to standard output.\n\ \n\ +If multiple FILENAMEs are given and a given file is not found, a blank\n\ +line is written to standard output.\n\ +\n\ When looking up format (.fmt/.base/.mem) files, it is usually necessary\n\ to also use -engine, or nothing will be returned; in particular,\n\ -engine=/ will return matching format files for any engine.\n\ \n\ +The exit status is 0 if all files are found, nonzero otherwise.\n\ +\n\ -all output all matches, one per line (no effect with pk/gf).\n\ [-no]-casefold-search fall back to case-insensitive search if no exact match.\n\ --cnf-line=STRING parse STRING as a configuration file line.\n\ +-cnf-line=STRING handle STRING as a configuration file line.\n\ -debug=NUM set debugging flags.\n\ -D, -dpi=NUM use a base resolution of NUM; default 600.\n\ -engine=STRING set engine name to STRING.\n\ @@ -501,13 +506,13 @@ to also use -engine, or nothing will be returned; in particular,\n\ -progname=STRING set program name to STRING.\n\ -safe-in-name=STRING check if STRING is ok to open for input.\n\ -safe-out-name=STRING check if STRING is ok to open for output.\n\ --safe-extended-in-name=STRING also check TEXMF[SYS]VAR].\n\ --safe-extended-out-name=STRING also check TEXMF[SYS]VAR].\n\ +-safe-extended-in-name=STRING also check TEXMF[SYS]VAR.\n\ +-safe-extended-out-name=STRING also check TEXMF[SYS]VAR.\n\ -show-path=TYPE output search path for file type TYPE\n\ (list shown by -help-formats).\n\ -subdir=STRING only output matches whose directory ends with STRING.\n\ --var-brace-value=STRING output brace-expanded value of variable $STRING.\n\ --var-value=STRING output variable-expanded value of variable $STRING.\n\ +-var-brace-value=STRING output brace-expanded value of variable STRING.\n\ +-var-value=STRING output variable-expanded value of variable STRING.\n\ -version display version information number and exit.\n \ " @@ -951,7 +956,14 @@ main (int argc, string *argv) /* Usual case: look up each given filename. */ for (; optind < argc; optind++) { - unfound += lookup (kpse, argv[optind]); + unsigned status = lookup (kpse, argv[optind]); + unfound += status; + if (status == 1 && optind + 1 < argc) { + /* If not found, and more than one input file is specified, + output blank line so the return strings can be matched + up with the input strings. */ + puts (""); + } } if (interactive) { diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog index d72945bbc35..259cf462d84 100644 --- a/Build/source/texk/web2c/cwebdir/ChangeLog +++ b/Build/source/texk/web2c/cwebdir/ChangeLog @@ -1,3 +1,7 @@ +2025-01-15 Andreas Scherer <https://ascherer.github.io> + + * ctwill-mini.ch: Don't mess with /PageLabels in CTWILL output. + 2025-01-14 Andreas Scherer <https://ascherer.github.io> * texinputs/pdfctwimac.tex: Switch on PDF outlines. diff --git a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch index 0222450aeaf..8984909571b 100644 --- a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch +++ b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch @@ -25,6 +25,9 @@ Section 1. \pdfpageheight=\pageheight \advance\pdfpageheight by 5cm \ifpdflua \pdfhorigin=1cm \pdfvorigin=1cm \else \global\hoffset=-1.54cm \global\voffset=-1.54cm \fi + \def\startpdf{\def\pagemode{/PageMode /UseOutlines} + \ifpdflua\pdfcatalog{\pagemode} + \else\special{pdf: docview << \pagemode >>}\fi} \fi @** Introduction. |