diff options
author | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
---|---|---|
committer | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
commit | c6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch) | |
tree | 1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/web2c/lib | |
parent | 07ee7222e389b0777456b427a55c22d0e6ffd267 (diff) |
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/lib')
24 files changed, 0 insertions, 9980 deletions
diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog deleted file mode 100644 index be05b6cdcee..00000000000 --- a/Build/source/texk/web2c/lib/ChangeLog +++ /dev/null @@ -1,3105 +0,0 @@ -2021-01-01 Akira Kakuto <kakuto@w32tex.org> - - * printversion.c: Update copyright year. - -2020-12-10 Akira Kakuto <kakuto@w32tex.org> - - * lib.h: Definition of eof() contradicts corecrt_io.h - in Visual Studio 2019. - -2020-09-24 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: Call kpse_in_name_ok() in find_input_file() for - getfilemoddate(), getfilesize(), getfiledump() and getmd5sum(), - instead of in each separate routine. Doing it in the latter - means we always check an absolute filename, and thus fail with - openin_any=p. Original report from Adrian, - https://tug.org/pipermail/tex-live/2020-September/046127.html - -2020-08-28 Karl Berry <karl@tug.org> - - * texmfmp.c (input_line): always clear errno before calling getc, - else an EINTR errno might persist, masking a real EOF. On the other - hand, loop as long as we have EOF && EINTR so we don't prematurely - stop reading characters. - https://tug.org/pipermail/tex-k/2020-August/003297.html - -2020-07-18 Karl Berry <karl@freefriends.org> - - * texmfmp.c: reformat so that all function return types and names - both are at the beginning of a line. - -2020-07-17 Karl Berry <karl@freefriends.org> - - * texmfmp.c (calledit): close only open input files, - not non-files resulting from terminal interactions. - This means looking at each element of input_stack - instead of only looking at the input_file array. Painful. - Original report from Xiao Zhang, - https://tex.stackexchange.com/q/552113 - -2020-01-01 Akira Kakuto <kakuto@w32tex.org> - - * printversion.c: Update copyright year. - -2019-12-10 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> - - * do_dump [FMT_COMPRESS]: change conditional from XeTeX. - -2019-08-10 Andreas Scherer <https://ascherer.github.io> - - * lib.h: add missing prototypes from 'openclose.c' and 'texmfmp.c'. - -2019-08-09 Karl Berry <karl@freefriends.org> - - * texmfmp.c (texmf_yesno): no longer static, since we call it - from tex.ch. - - * texmfmp.c: doc fixes; most "fixme"s were nothing that we ever - need to fix at this late date. - -2019-08-08 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: This file is not used in lua[jit]tex. - -2019-08-07 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: Improve support of non-ascii path names in - synctex. Support -cnf-line=command_line_encoding=value. - These changes are for Windows only. - -2019-08-06 Karl Berry <karl@freefriends.org> - - * texmfmp.c (long_options): new option --cnf-line. - (user_cnf_lines, user_cnf_nlines): new globals. - (maininit): call kpathsea_cnf_line_env_progname - on each specified --cnf-line. - (parse_options): recognize it and save each arg. - Following suggestion from Pavel Sanda on ntg-pdftex, - 15 Jun 2019 19:02:11. - -2019-07-01 Hironobu Yamashita <h.y.acetaminophen@gmail.com> - - * texmfmp.c (getcreationdate): Fix a wrong conditional (XeTeX only). - -2019-06-30 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> - - * texmfmp.c (getfiledump): Change readbuffer to unsigned char*. - Without this change, xetexdir/tests/filedump.tex ends up with - "!error: snprintf failed: file ../../../texk/web2c/lib/texmfmp.c" - (XeTeX only). - -2019-05-14 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: Support non-ascii file names in special cases - implemented in a previous change on 2019-05-08 (Windows only). - -2019-05-08 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: Introduce a new function find_input_file(s) - to fix a bug that in special cases getfilesize() etc. for - image files saved in "output-directory" do not work. - A report in tex-k list: - https://tug.org/pipermail/tex-k/2019-May/003014.html - -2019-03-30 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: Improve to record texmf.cnf. (ptex and friends, - and w32 only). - * openclose.c: Remove "static" in order to use relevant - functions externally. (w32 only). - -2019-03-23 Akira Kakuto <kakuto@w32tex.org> - - * texmfmp.c: On windows, xetex and pdftex did not record - texmf.cnf in the case of --recorder because of special - initializations. Fix this bug. It is not needed to rebuild - in other platforms. - -2019-01-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: Update copyright year. - -2018-12-17 Igor Liferenko <igor.liferenko@gmail.com> - - * texmfmp.c (maininit): default to guessing an explicit &dumpname - as the "preloaded" (not really) format, if one was specified. - tex-k msgs of 23 Sep 2018 12:13:06, 23 Sep 2018 18:36:52. - (With comment and formatting tinkering from karl.) - -2018-12-17 Andreas Scherer <https://ascherer.github.io> - - * printversion.c (printversionandexit): Search for PROGNAME - in banner independent of 'This is' prefix. - -2018-11-19 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Remove unused functions for XeTeX. - Check kpse_in_name_ok() in getfilesize(), getfiledump(), - and getmd5sum(). - -2018-11-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Make necessary changes for XeTeX in - getcreationdate(), getfilemoddate(), getfilesize(), - and getfiledump(). - -2018-11-17 Joseph Wright <joseph.wright@morningstar2.co.uk> - - * texmfmp.c: Support some primitives from pdfTeX in XeTeX. - -2018-11-14 Andreas Scherer <https://ascherer.github.io> - - * printversion.c: free xmalloc'd prog_name. - -2018-11-13 Karl Berry <karl@freefriends.org> - - * texmfmp.c (FORCE_SOURCE_DATE_set, SOURCE_DATE_EPOCH_set): new static. - (init_start_time, get_date_and_time): initialize them. - (getfilemoddate): use_utc if both vars set. - Original suggestion from Ulrike Fischer, tex-live 3 Nov 2018 23:00:48, - original patch from Akira Kakuto. - (getfilemoddate): also, return nothing if ! kpse_in_name_ok. - -2018-11-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * openclose.c: cleanup for non-ascii file names (w32 only) - -2018-06-28 Karl Berry <karl@freefriends.org> - - * openclose.c (open_input_with_dirname): do not prepend the - top-level directory name if the subsidiary aux file being searched - for is alrady absolute. Private report from John Collins - (22 Jun 2018 14:01:31). - -2018-06-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: remove sjisterminal (w32 only). - -2018-06-10 TANAKA Takuji <ttk@t-lab.opal.ne.jp> - - * texmfmp.c: Allow non-ascii file names for pdfTeX - with UTF-8 source files (w32 only). - -2018-06-09 TANAKA Takuji <ttk@t-lab.opal.ne.jp> - - * texmfmp.c, openclose.c: Support UTF-8 file names - on UTF-8 locale in pTeX (Unix-like platform only). - -2018-05-29 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Discard the changes for pdfTeX on 2018-05-11, - since 'command_line_encoding=utf-8' is not so natural - for pdfTeX (w32 only). - -2018-05-12 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Allow non-ascii file names for pdfTeX (w32 only). - Changes on 2018-05-11 were incomplete. - -2018-05-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Allow non-ascii file names for pdfTeX (w32 only). - -2018-03-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Remove support of short 8.3 names (w32 only). - -2018-01-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2017 ---> 2018. - -2017-10-21 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * openclose.c: If opened fname is a directory in - output_directory, discard it in Unix platforms. - Report from Duncan Steele, - http://tug.org/pipermail/tex-live/2017-October/040731.html - - In Windows, fopen (fname, mode) is always NULL, in the case - where fname is a directory, thus it is discarded automatically. - Thanks to Hironobu Yamashita, - http://tug.org/pipermail/tex-live/2017-October/040735.html - -2017-09-05 Karl Berry <karl@tug.org> - and Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c (IS_SPC_OR_EOL): new macro. - (topenin): use it, instead of ISBLANK. - (parse_first_line): doc fix. - (input_line): remove only trailing space characters - instead of using ISBLANK. - See also analogous change in xetexdir/XeTeX_ext.c. - Original bug report from Evan Aad, - http://tug.org/pipermail/tex-k/2017-August/002801.html - -2017-03-12 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Adopt Jonathan's solution for the Change on 2017-02-01. - -2017-02-13 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: unsigned long long >= 0. Thanks Luigi. - -2017-02-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Avoid a crash in xelatex for - http://tug.org/pipermail/xetex/2017-January/026975.html. - It is not a fix but a stopgap. - -2017-01-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2016 ---> 2017. - -2016-11-14 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> - - * texmfmp.c: Change a condition to support new primitives in e(u)ptex. - -2016-06-12 Karl Berry <karl@freefriends.org> - - * texmfmp.c (get_date_and_time): - rename envvar SOURCE_DATE_EPOCH_TEX_PRIMITIVES to FORCE_SOURCE_DATE. - http://tug.org/pipermail/tex-k/2016-June/002722.html - (and surrounding thread, starting in May) - -2016-05-20 Karl Berry <karl@tug.org> - - * TeX Live 2016 release. - -2016-05-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Avoid crash for too large a value of SOURCE_DATE_EPOCH. - (w32 only). - -2016-05-06 Karl Berry <karl@tug.org> - - * texmfmp.c (init_start_time, get_date_and_time) [onlyTeX]: - ignore SOURCE_DATE_EPOCH... envvars for original TeX. - -2016-05-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c (strtoull) [_MSC_VER]: #define as _strtoui64. - -2016-05-04 Karl Berry <karl@freefriends.org> - - * texmfmp.c (init_start_time): new fn, factored out from - initstarttime. - (get_date_and_time): if envvar SOURCE_DATE_EPOCH_TEX_PRIMITIVES - is set, initialize minutes, day, month, year, from - SOURCE_DATE_EPOCH value. Requested by Debian, thread starting at - http://tug.org/pipermail/tex-k/2016-May/002691.html. - -2016-04-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Fix a bug to show input file name in the case of pipe input. - Reported by Enrico Gregorio: - http://tug.org/pipermail/tex-live/2016-April/038030.html - -2016-03-22 Karl Berry <karl@freefriends.org> - - * texmfmp.c: no uexit after FATAL. - -2016-03-21 Karl Berry <karl@freefriends.org> - - * texmfmp.c (initstarttime): wording of invalid SOURCE_DATE_EPOCH. - -2016-01-26 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Improve to skip BOM (win32 only). - -2016-01-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2015 ---> 2016. - -2015-11-15 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Show return code of system() if it is not zero. - -2015-11-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Improve restricted shell escape for w32 a little. - -2015-08-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Another minor modification (unused static). - -2015-08-18 The Thanh Han <hanthethanh@gmail.com> - - * texmfmp.c: Patch from Maria with some minor modification. - -2015-07-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Add \pdfmdfivesum to XeTeX. - -2015-07-02 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> - - * texmfmp.c: Moved convertStringToHexString() and getmd5sum() - from ../pdftexdir/utils.c to here. - -2015-06-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - Integrate MFLua and MFLuaJIT. - * texmfmp.c: Adapted. - -2015-03-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2014 ---> 2015. - -2014-11-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Avoid MinGW64 warnings (INVALID_SOCKET => -1). - -2014-11-03 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Indentation. - -2014-10-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Use the decision about tex*.dll from ../texmfmp.h. - -2014-10-09 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Apply some code from W32TeX. - -2014-08-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Symplify support of multibyte characters, by - updating fsyscp_popen in kpathsea (Windows only). - -2014-08-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Avoid several compiler warnings (Windows only). - -2014-08-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Support multibyte characters in pipe (Windows only). - -2014-07-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Short-file-name convention is incompatible with - --src-specials (Windows only). - -2014-07-21 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Use getnullstr() in maketexstring(), also in aleph. - -2014-07-19 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Use getnullstr() in maketexstring(), as in pdfTeX, - in most cases in order to avoid an assertion error. - -2014-07-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Replace the deprecated spawnvp() by _spawnvp(), - they differ for 64-bit MinGW. - -2014-07-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Remove redundant cpp macros (w32 only). - -2014-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Support short-file-name convention (w32 only). - -2014-05-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - Update to e-pTeX and e-upTeX from Akira Kakuto. - * texmfmp.c (getfiledump): Move definition of this function - also used by e-(u)pTeX from ../pdftexdir/utils.c to here. - -2014-01-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2013 ---> 2014. - -2014-01-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Do not declare dump_name, now done in change files. - -2014-01-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: use fsyscp_system instead of system (Windows only). - -2013-12-31 TANAKA Takuji <KXD02663@nifty.ne.jp> - - * openclose.c: bug fix about error check when fopen. - Use fsyscp_fopen() instead of fsyscp_xfopen() (Windows only) - * texmfmp.c: Use get_command_line_args_utf8() (Windows only) - -2013-12-03 TANAKA Takuji <KXD02663@nifty.ne.jp> - - * openclose.c, texmfmp.c: Support KANJI file name in (e)upTeX and - XeTeX on Windows. - -2013-06-11 Peter Breitenlohner <peb@mppmu.mpg.de> - - Update to e-pTeX and e-upTeX 130605 from Hironori Kitagawa. - * texmfmp.c (pdftex_fail): Adapted from ../pdftexdir/utils.c. - (initstarttime, makecstring, makecfilename, getcreationdate, - getfilemoddate, getfilesize): Move definition of these functions - also used by e-(u)pTeX from ../pdftexdir/utils.c to here. - -2013-04-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * printversion.c: 2012 ---> 2013. - -2013-01-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (mk_shellcmdlist): Simplify. - -2013-01-06 Khaled Hosny <khaledhosny@eglug.org> - - * texmfmp.c [XeTeX]: Support input pipes. - -2012-11-20 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Avoid use of deprecated INCLUDES. - -2012-10-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Use _IONBF for unbuffered stream. - -2012-10-10 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (mk_shellcmdlist): The argument is not constant. - -2012-10-10 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Modify determination of fullpath for restricted shell - escape commands. - -2012-09-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Since normalize_quotes() is declared static, - the forward declaration should also be static. - -2012-09-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c (maininit): On Windows, latex "\input" "a b c", for example, - was not allowed. Allow file name with spaces in these cases. - -2012-08-28 Peter Breitenlohner <peb@mppmu.mpg.de> - - * main.c [WIN32]: Added _setmaxstdio() (from W32TeX). - - * openclose.c (recorder_start): Reduce TL/W32TeX diffs. - Avoid using pid_t lacking in WIN32 (MSVC). - -2012-08-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c [IS_pTeX]: Rename initdefaultkanji() => initkanji(). - -2012-08-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c [WIN32]: bug fix. use rewind (f) to clear error and - EOF indicators. - -2012-07-23 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (runpopen): Binary mode for popen() on Windows now - done in kpathsea. - -2012-06-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c [WIN32]: Ignore DLLPROC for __MINGW32__. - -2012-06-30 Peter Breitenlohner <peb@mppmu.mpg.de> -2012-06-27 Norbert Preining <preining@logic.at> - - * texmfmp.c (runpopen): Append "b" on Windows. - (open_{in,out}_or_pipe): Do not use the "b" here. - -2012-06-27 Karl Berry <karl@tug.org> - - * texmfmp.c (generic_synctex_get_current_name): return the - empty string if passed null (can happen with -ini). - -2012-06-26 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (open_{in,out}_or_pipe): Use popen() modes "rb" and - "wb" only for Windows, Posix allows them only for fopen(). - (This makes pdftex's \input"|..." feature work again, - unintentionally broken.) - tex-live mail, 26 Jun 2012 06:24:11. - -2012-05-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * printversion.c (printversionandexit): Update 'Copyright 2012'. - -2012-04-08 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (mk_shellcmdlist, init_shell_escape, - shell_cmd_is_allowed, normalize_quotes): Declare as static. - (get_seconds_and_micros): Define only for pdfTeX. - (getrandomseed): Removed, MP only. - -2012-03-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - Avoid 'differ in signedness' warnings. - * texmfmp.c (input_line): Cast buffer to 'unsigned char *'. - -2012-02-14 Peter Breitenlohner <peb@mppmu.mpg.de> - - * eofeoln.c (eof): Fix a typo in comment. - -2012-01-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - * printversion.c, texmfmp.c: Drop report of file offset bits. - -2012-01-17 Peter Breitenlohner <peb@mppmu.mpg.de> - - * lib.h, printversion.c, texmfmp.c: Report file offset bits. - -2011-12-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * setupvar.c (setupboundvariable): Warning message: the bad - value can be from the environment or from texmf.cnf. - -2011-10-11 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c [WIN32]: Slightly reformulate Byte order marks. - -2011-10-07 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c: More changes to reduce diffs with W32TeX. - -2011-10-04 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c: More changes to reduce diffs with W32TeX, - for compilation with MS Visual Studio 2005. - -2011-10-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c : remove unused free_shellcmdlist() - -2011-10-04 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c (calledit): More changes to reduce diffs with W32TeX. - -2011-10-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: write (sock, buff, n) and send (sock, buff, n, 0) - for ipc_snd () are different in winsock. - -2011-09-30 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c [Aleph]: Remove unused variable `eightbitp'. - -2011-09-21 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c [IPC]: More changes to reduce diffs with W32TeX. - -2011-09-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: Disable options -translate-file, -default-translate-file, - and -8bit for Aleph. The option -kanji-internal=STRING is effective - also for pTeX and epTeX. - -2011-09-02 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c: More changes to reduce diffs with W32TeX. - -2011-09-01 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c [WIN32]: Minor rewrite to reduce diffs with W32TeX. - -2011-08-30 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c [WIN32]: Remove a semicolon. - -2011-08-29 Peter Breitenlohner <peb@mp.mpg.de> - - * texmfmp.c [WIN32]: Allow to build TeX & Co as DLL. - -2011-08-23 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Remove some (e-)pTeX cruft. - - * openclose.c [PTEX]: No nkf_open() and nkf_close() for WIN32. - -2011-08-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Options for (e-)pTeX and (e-)upTeX. - -2011-08-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Add upTeX and e-upTeX. - -2011-08-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Do not #include empty file <kpathsea/recorder.h>. - -2011-08-03 Magnus Granberg <zorry@gentoo.org> - - * texmfmp.c: Use C code for i?86 when -fPIC. - -2011-07-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Drop `#warning SyncTeX: -synctex command line...'. - -2011-05-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (ipcpage): Add 'free(cwd)'. - (generic_synctex_get_current_name): Use xgetcwd(). - -2011-05-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: Change arg2 of kpse_absolute_p() from `0' to `false'. - -2011-05-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: add a function generic_synctex_get_current_name() - in order to get full path names for SyncTeX. - -2011-05-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (ipc_open_out): Avoid to #define SOCK_NONBLOCK which - conflicts with newer GNU C library headers. - -2011-05-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * openclose.c (recorder_change_filename): on windows, an opened file - cannot be renamed. - -2011-05-02 Karl Berry <karl@tug.org> - - * openclose.c (recorder_change_filename): take output_directory - into account. Report/patch from - Philipp Stephani, 30 Apr 2011 16:11:53, - http://tracker.luatex.org/view.php?id=615 - -2011-04-28 Karl Berry <karl@tug.org> - - * printversion.c (printversionandexit): it is 2011. - -2011-04-27 Karl Berry <karl@tug.org> - - * texmfmp.c (initscreen): do not mention mfw, which is no more. - Suggestion from Reinhard Kotucha, tex-k mail 21 Jul 2010 11:40:36. - -2011-04-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - Avoid 'differ in signedness' warnings. - texmfmp.c (input_line): Caat input_line2() arg2 to 'char *'. - -2011-03-10 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (calledit): [__MINGW32__] Drop win32_system() and - use system() as for all other systems. - -2011-03-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - * setupvar.c (setupboundvariable): `program_invocation_name' has - been renamed into `kpse_invocation_name'. - -2010-06-10 Peter Breitenlohner <peb@mppmu.mpg.de> - - Reorganize web2c headers. - * alloca.c, basechsuffix.c, chartostring.c, coredump.c, - eofeoln.c, fprintreal.c, input2int.c, inputint.c, main.c, - openclose.c, printversion.c, setupvar.c, uexit.c, usage.c, - zround.c: - #include <w2c/config.h> instead of <config.h> or "config.h". - * version.c: #include <w2c/c-auto.h> instead of "c-auto.h". - -2010-06-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: include kpathsea/concatn.h if WIN32 is defined. - -2010-06-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: include kpathsea/concatn.h and remove cast - for concatn (). - -2010-05-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * texmfmp.c: on win32, all restricted shell escape commands are - executed by fullpath. - -2010-05-18 Karl Berry <karl@tug.org> - - * printversion.c (printversionandexit): 2010. - -2010-05-10 Karl Berry <karl@tug.org> - - * input2int.c (zinput2ints, zinput3ints): don't bother - to cast result of fprintf. - -2010-04-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * lib.h: - * texmfmp.c: remove TEXDLL. - -2010-04-21 Karl Berry <karl@tug.org> - - * Makefile.am (EXTRA_DIST), - * win32main.c: rm per Akira. - -2010-04-20 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c, lib.h: Remove luaTeX specific code. - - * lib.h: Move extern declaration of ptexbanner from here - to ../pdftexdir/ptexlib.h (instatiated in texmfmp.c). - -2010-04-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * main.c, texmfmp.c: Remove extern declaration of mainbody, - is in lib.h. - * openclose.c (recorder_enabled, output_directory): Remove - extern declarations, are in lib.h. - * lib.h: Move extern declaration of fullnameoffile to here ... - * texmfmp.c: ... from here ... - * openclose.c: ... and from here. - * texmfmp.c [XeTeX]: Move extern declarations of papersize and - outputdriver from here to ../xetexdir/XeTeX_ext.h. - - * Makefile.am, openclose.c, printversion.c: - Integrate libp.a for pTeX. - -2010-04-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (maininit) [__SyncTeX__]: omit warning about no - SyncTeX for pTeX. - -2010-04-11 Karl Berry <karl@tug.org> - - * texmfmp.c, - * printversion.c, - * openclose.c, - * chartostring.c, - * basechsuffix.c: remove useless casts to (string) or (char *), - etc. of xmalloc. - -2010-03-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - * openclose.c (open_input): Fixed a typo. - From Akira Kakuto <kakuto@fuk.kindai.ac.jp>, 30 Mar 2010 12:33:33. - -2010-03-30 Karl Berry <karl@tug.org> - - * (recorder_start): throw in pid in recorder_name so parallel builds - have a chance of working. Report from - Kirill Smelkov, Debian bug 575731, tex-k mail 29 Mar 2010 06:18:35. - -2010-03-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * setupvar.c (setupboundvariable): Fix off by one error in msg. - -2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (setupboundvariable): Moved from here ... - * setupvar.c (new): ... to here for use in non-engine programs. - * lib.h (setupboundvariable): Moved from ../texmfmp.h to here. - * Makefile.am (lib_a_SOURCES): Added setupvar.c. - -2010-02-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (IPC) [WIN32]: #include <winsock2.h> instead of - <sys/socket.h> and <fcntl.h>, use ioctlsocket() instead of - fcnt() for non-blocking, and use Sleep() instead of sleep(). - -2010-02-21 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: #include <window/mfdisplay.h> instead of externs. - -2010-02-20 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (calledit): Use win32_system() with two args only - for MinGW32, native WIN32 uses only one arg. - (catch_interrupt) [WIN32]: Declare as static. - -2010-02-01 Karl Berry <karl@tug.org> - - * openclose.c (open_input): do not try prepending TEXMFOUTPUT for - reading if the filename is absolute. - -2010-01-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (mk_shellcmdlist): Declare string param as const. - -2010-01-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (maininit) [__SyncTeX__]: omit warning about no - SyncTeX for luaTeX. - (gettexstring): Declare as static for luaTeX. - -2010-01-16 Karl Berry <karl@tug.org> - - * texmfmp.c (do_dump, do_undump): give full name of file - in fatal message when something cannot be (un)dumped. - -2010-01-02 Karl Berry <karl@tug.org> - - * texmfmp.c (runsystem): doc fix. - -2009-12-23 Karl Berry <karl@tug.org> - - * usage.c (usagehelp) - * texmfmp.c (BUG_ADDRESS): default to tex-k@tug.org, no @mail. - -2009-12-01 Alexander Cherepanov <cherepan@mccme.ru> - - * texmfmp.c (parse_first_line): initialize s to NULL. - * usage.c: doc fix. - -2009-11-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (shell_cmd_is_allowed): Check for invalid single - quote also within quoted arguments. - Reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>, - diagnosed by Manuel P\'egouri\'e-Gonnard <mpg@elzevir.fr>. - -2009-10-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (openinnameok, openoutnameok): Moved to Kpathsea - and renamed kpse_{in,out}_name_ok. - -2009-09-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (last_lineno): MAYBE_STATIC for luaTeX. - (srcspecialsoption, parse_src_specials_option): static but not - used for luaTeX. - -2009-09-05 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (runpopen): Used only for pdfTeX and luaTeX. - (last_source_name etc): Not used by MF. - (ipcpage): Avoid unconstifying cast. - (compare_paths): Declare as static. - (mfwin_sw): Constify member string. - -2009-09-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (initscreen): Add explicit braces. - (getrandomseed, makefullnamestring): ANSI C definition. - -2009-08-27 Peter Breitenlohner <peb@mppmu.mpg.de> - - * lib.h (NOT_WEB2C): New preprocessor macro, if defined prevents - declaration of argc, argv, cmdline, and mainbody (from main.c). - -2009-08-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * openclose.c (open_output): Bugfix? local var 'fname' was - shadowed by a second one. Avoid memory leak. - -2009-08-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * lib.h, texmfmp.c, version.c: Constify ptexbanner and - versionstring. - -2009-08-21 Peter Breitenlohner <peb@mppmu.mpg.de> - - Avoid maximal compiler warnings. - * openclose.c (recorder_record_name): Constify string param1. - (recorder_record_{name,input,output}): Rename param - nameoffile=>name, not to shadow global var. - -2009-08-20 Peter Breitenlohner <peb@mppmu.mpg.de> - - * lib.h (ptexbanner): Add decl for pdfTeX and luaTeX. - * texmfmp.c (ptexbanner): Drop decl but keep initializer. - * printversion.c (kpathsea_version_string): - #include <kpathsea/version.h> and drop extern declaration. - -2009-08-17 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c (shell_cmd_is_allowed): Change param1 from 'char **' - to 'const char *'. - (runsystem, runpopen): Constify string params. - -2009-07-24 Martin Schr\"oder <martin@oneiros.de> - - * printversion.c: don't nest extern declarations - -2009-06-23 Peter Breitenlohner <peb@mppmu.mpg.de> - - * basechsuffix.c, chartostring.c, coredump.c, eofeoln.c, - fprintreal.c, input2int.c, inputint.c, main.c, openclose.c, - printversion.c, texmfmp.c, uexit.c, usage.c, win32main.c, - zround.c: drop P?C, P?H, use ANSI C function declarations. - -2009-06-10 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (AM_CFLAGS): enable compiler warnings. - * lib.h (new): declarations for *.c from ../cpascal.h. - * basechsuffix.c, chartostring.c, eofeoln.c, fprintreal.c, - input2int.c, inputint.c, main.c, openclose.c, printversion.c, - zround.c: #include "lib.h" to declare function prototypes. - * openclose.c: declare internal function recorder_record_name as - static; declare param of recorder_record_input and - recorder_record_output as const_string as from ../cpascal.h. - -2009-06-01 Karl Berry <karl@tug.org> - - * printversion.c (printversionandexit): it's 2009. - Also, remove special references to kpathsea author(s) etc. - -2009-03-29 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: remove all references to (Web2C version of) MP. - -2009-05-18 Karl Berry <karl@tug.org> - - * openclose.c (recorder_start): use output_directory for the .fls - file, if it has been specified with --output-directory. - metapost mail from Nicola, 16 May 2009 13:41:36. - -2009-03-29 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texmfmp.c: remove all references to Omega, eOmega, and pdfeTeX. - -2009-03-28 Karl Berry <karl@tug.org> - - * texmfmp.c (mk_shellcmdlist, shell_cmd_is_allowed): not static, - so luatex can access. From Taco. - -2009-03-27 Taco Hoekwater <taco@luatex.org> - - * texmfmp.c (parse_options): add #ifndef luaTeX guard for - --src-specials, because luaTeX does not implement it. - (parse_src_specials_option): add #ifndef luaTeX guard for - the same reason. - -2009-03-02 Karl Berry <karl@tug.org> - - * texmfmp.c (long_options): make -enable-write18 and -disable-write18 - synonyms for -shell-escape and -no-shell-escape. - -2009-02-26 Karl Berry <karl@tug.org> - - * texmfmp.c: Implementation of restricted shell escapes from Akira. - (mk_shellcmdlist, init_shell_escape, char_needs_quote, Isspace, - shell_cmd_is_allowed, runsystem, runpopen): new fns. - (long_options, parse_cmd_line): new option --shell-restricted. - (main): call init_shell_escape. - (open_in_or_pipe, open_out_or_pipe): call runpopen. - -2009-02-06 Karl Berry <karl@tug.org> - - * texmfmp.c (maininit) [__SyncTeX__]: omit warning about no - SyncTeX for Omega and MF/MP. - -2008-03-24 Karl Berry <karl@tug.org> - - * printversion.c: it's 2008. - -2008-03-16 Karl Berry <karl@tug.org> - - * texmfmp.c (maininit): don't append DUMP_EXT if it's already - there. Report from Hans. - -2008-03-09 Karl Berry <karl@tug.org> - - * texmfmp.c (maketexstring) [!MP]: only define this fn if !MP, - since MetaPost has its own in mpdir/utils.c. - (input_line): initialize i = EOF. From Taco. - -2008-01-29 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.in: Add @configure_input@ line. - -2007-12-28 Karl Berry <karl@tug.org> - - * texmfmp.c (parse_options): do not set user_progname at - DUMP_OPTION or efmt. - (maininit): instead, do it here, after options are read. - -2007-09-05 Karl Berry <karl@tug.org> - - * texmfmp.c (long_options): move output-directory output to be - enabled for MF and MP too. From Akira. - -2007-08-20 Karl Berry <karl@tug.org> - - * texmfmp.c (main) [WIN32]: _setmaxstdio(2048), to increase - open files limit. From Akira, 19 Aug 2007 09:30:30 +0900. - -2007-07-26 Karl Berry <karl@tug.org> - - * openclose.c (recorder_record_name): fflush the recorder file, - since this is for debugging. Suggested by George White. - -2006-12-28 Martin Schr\"oder <martin@oneiros.de> - - * texmfmp.c: fixed some warnings raised by gcc for unused variables - and different signedness of arguments - -2006-07-16 Karl Berry <karl@tug.org> - - * mfmpi386.asm: missing " chars. - -2006-07-15 Karl Berry <karl@tug.org> - - * mfmpi386.asm (asm): prepend with .text to avoid seg fault with - -g3 or -ggdb3 due to the symbols ending up in the data section. - tex-k report by Edward Catmur, 29 Mar 2006 00:09:15 +0100. - -2006-06-19 Karl Berry <karl@tug.org> - - * texmfmp.c (open_in_or_pipe) [!pdfTeX && !pdfeTeX]: track - fullnameoffile; from Akira and Jonathan. - -2005-08-13 Olaf Weber <olaf@infovore.xs4all.nl> - - * printversion.c: Update copyright messages. - -2005-08-03 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Implement -etex switch. - -2005-07-29 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (opennameok): Check all occurrences of ".." in a - filename, not just the first. Reported by Yutaka OIWA - <y.oiwa@aist.go.jp>. - -2005-07-27 Olaf Weber <olaf@infovore.xs4all.nl> - - * printversion.c: libkpathsea is covered by the LGPL, not the GPL, - and is the common factor that brings in the *GPL to all - web2c-based programs. - - * texmfmp.c (get_seconds_and_micros): New function, gets high-res - time if possible. Remove references to pdfxtex. - -2005-07-22 Olaf Weber <olaf@infovore.xs4all.nl> - - * input2int.c: The correct format string to use depends on whether - integer is an int or a long int. Reported by M.J. Rutter - <mjr19@cus.cam.ac.uk>. - -2005-06-26 Olaf Weber <olaf@infovore.xs4all.nl> - - * Makefile.in: Replace ac_include with kpse_include. From Peter - Breitenlohner. - -2005-06-22 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [MP][BANNER]: Update for MetaPost 0.901. - -2005-06-21 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (opennameok,openinnameok,openoutnameok): Add new - parameter to opennameok() so its diagnostics are correct wrt to - whether we are testing a file name for reading or writing. - -2005-04-12 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (getjobname): Add a parameter, the string to return if - --jobname wasn't given. - This is part of a group of changes that fix pdftex bug 302. - http://sarovar.org/tracker/?func=detail&atid=493&aid=302&group_id=106 - - * openclose.c (open_input): kpse_find_file() always returns a new - string, so we can unconditionally deallocate it. - - * texmfmp.c (maininit): Factor out common code into texmf_yesno(). - (texmf_yesno): New function, return true if a variable is set and set - to 't', 'y', or '1' in texmf.cnf or the environment. - -2004-12-20 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [pdfTeX,pdfeTeX,pdfxTeX]: New variable ptexbanner. - -2004-12-19 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [TeX] (maininit): For all TeX variants, recognize - "initex" and "virtex" program names, just in case. - -2004-09-16 Olaf Weber <olaf@infovore.xs4all.nl> - - * printversion.c (printversionandexit): Hartmut Henkel - <hartmut_henkel@gmx.de> noticed that the engines start running - like this: "This is TeX, Version 3.141592 (Web2C 7.5.3)" but the - -version output looks like this "TeX (Web2C 7.5.3) 3.141592". - He supplied a small patch to rectify this. - -2004-08-28 Olaf Weber <olaf@infovore.xs4all.nl> - - * openclose.c (open_input,open_output): Implement output_directory - option. - - * texmfmp.c: Accept -output-directory option. - -2004-07-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (setupcharset): Remove this fuction. The - initialization is performed is done by the engine. - (read_char_translation_file): Rename to readtcxfile. - (readtcxfile): Some comment changes compared to its previous - incarnation. - - * usage.c (usagehelp): Add second argument, email address for bug - reports. Requested by the pdftex team. - - * texmfmp.c: Add -output-format to the long_options array. - Also add BUG_ADDRESS to the macros defined for each engine. - Call usagehelp with BUG_ADDRESS as second argument. - -2004-07-03 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (parse_options): Make it so that aleph and omega also - parse the -translate-file and -8bit options, even though they now - silently ignore them. (They have to ignore them in any case, as - neither makes sense for these programs.) - -2004-07-02 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [TeX]: Implement -efmt as alternate spelling for -fmt. - This option is only present for backward compatibility, and will - go away in the future. - -2004-06-29 Olaf Weber <olaf@infovore.xs4all.nl> - - * Makefile.in: Don't include alloca.o in the objects. It - shouldn't be used anywhere. - -2004-06-16 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (get_input_name): Off-by-one errors when - erasing/restoring the final quote. From Akira Kakuto - <kakuto@fsci.fuk.kindai.ac.jp>. - -2004-06-15 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: (normalize_quotes): New function, takes a filename - and returns an allocated string with the name quoted iff it - contains a space. - (get_input_file_name): Factor out normalize_quotes. - (getjobname): Add quotes if needed. callmakempx: Add quotes if - needed. - -2004-06-04 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (get_input_file_name): New function. Get the name of - the input file for use by parse_first_line(), and if the filename - contains spaces make sure a properly quoted version will be given - to TeX. - (parse_first_line): Now takes the name of the input file (or NULL) as - an argument, instead of looking for it. - -2004-05-26 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Remove -oem code. - -2004-05-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Remove much of the locale-dependent code. Some - pieces remain because they are related to the Win32 '-oem' option, - where I do not know yet whether that option should go as well. - -2004-05-10 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (setupcharset): Fixing a regression. When a line in a - TCX file contains two numbers and a comment, set printable=1. - Reported by Staszek Wawrykiewicz <staw@gust.org.pl>. - -2004-05-08 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (main): We can now put TEXMFENGINENAME into the - environment for $engine in all cases. - - * texmfmp.c: Add -halt-on-error option. - -2004-05-07 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (maininit): Set $engine appropriately. - - * texmfmp.c: Implement -8bit option. - - * texmfmp.c (makesrcspecial): Always put a space after the line - number. - -2004-04-16 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (setupcharset): More compact xprn assignment. - -2004-03-28 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Implement -no-shell-escape, -no-parse-first-line, - -no-file-line-error. - -2004-03-25 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [eTeX](maininit): e-TeX will no longer treat being - called as "initex" or "virtex" special. - (tcx_get_num): Additional argument, upper bound we're accepting. - (read_char_translation_file): Allow for a third integer, 0 or 1, to - set printable status. This way you can translate characters - without making them printable. However, enforce that 7bit ASCII - remains printable. - - * texmfmp.c (maininit): Add sanity check for -enc or -mltex - without -ini. - -2004-03-24 Olaf Weber <olaf@infovore.xs4all.nl> - - * zround.c: Add public domain notice. - - * win32main.c: Add public domain notice. - - * version.c: Add public domain notice. - - * uexit.c: Add public domain notice. - - * printversion.c: Bump 2003 to 2004 in copyright notices. - - * main.c: Add public domain notice. - - * inputint.c: Add public domain notice. - - * input2int.c: Add public domain notice. - - * fprintreal.c: Add public domain notice. - - * eofeoln.c: Add public domain notice. - -2004-03-22 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (parse_options): Add -output-format for the pdf*TeX - family. - - * texmfmp.c: Changes for Aleph. - - * texmfmp.c (long_options): Enable "enc" option. - -2004-03-16 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Allow file:line:error style messages to be enabled - from texmf.cnf. From Akira Kakuto <kakuto@fsci.fuk.kindai.ac.jp>. - -2004-02-26 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Rename isprintable to xprn. - - * win32main.c: Sync with TeXlive. - - * texmfmp.c: Add -enc option. - - * texmfmp.c: Add support for pdfxTeX. - -2003-02-16 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Update banners for TeX 3.141592, MF 2.71828. - -2003-02-07 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: e-Omega support. - -2003-01-24 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (setupcharset): Do not adapt the isprintable array to - the locale. - -2003-01-10 Olaf Weber <olaf@infovore.xs4all.nl> - - * printversion.c (printversionandexit): Update copyright notice - years. - -2002-12-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Remove some unsused variables. - -2002-11-11 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Implement a -parse-first-line option. With the - current code it is possible to switch %&-line parsing on from the - command line. To switch it off when it is enabled in texmf.cnf - requires the use of an environment variable. - -2002-10-20 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Add support for -jobname option. - -2002-10-06 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (maybe_parse_first_line): Split - maybe_parse_first_line: maybe_parse_first_line is called to set - parse_first_line_p for TeX, MF, MP, and parse_first_line is called - to do the actual parsing. - - * texmfmp.c: Add support for mktexfmt; from Fabrice Popineau. - -2002-06-04 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Do not allow texmf.cnf to set the src_specials - option. - -2002-06-02 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Change handling of source specials so that there is a - single flag, src_specials_p, which can be used to see if any - source specials are generated. - - * win32main.c: From Fabrice. - -2002-04-02 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [Omega] (ipcpage,gettexstring): Correction of the way - the strstartar array is handled. Reported by Akira Kakuto - <kakuto@fsci.fuk.kindai.ac.jp> - -2001-11-27 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (initscreen): Clarify message generated when an X - window cannot be opened. - -2001-11-25 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Remove unnecessary casts to (int*). If C++ -> - NO_MF_ASM. - - * alloca.c: Changes to allow this file to compile with C++. - -2001-11-19 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Changes to keep C++ compilers from choking. - - * openclose.c: Remove double declaration of recorder_name, make - prototype of open_input consistent with cpascal.h. - -2001-11-18 Olaf Weber <olaf@infovore.xs4all.nl> - - * uexit.c: Changes to keep C++ compilers from choking. - - * texmfmp.c: Changes to keep C++ compilers from choking. Changes - to support the filename recorder. - - * printversion.c: Changes to keep C++ compilers from choking. - - * openclose.c: Changes to keep C++ compilers from choking. - (recorder_start): New function, starts filename recorder. - (recorder_change_filename): New function, change the name of the file - used by the filename recorder. - (open_input,open_output): Record filename, starting recorder if - necessary. - - * chartostring.c: Changes to keep C++ compilers from choking. - - * basechsuffix.c: Changes to keep C++ compilers from choking. - -2001-11-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (getrandomseed): If available use gettimeofday or - ftime to obtain a random seed number. These functions have a - higher resolution, so fix the problem that subsequent MF or MP - runs could have the same seed. - -2001-10-30 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Add support for source specials. - - * openclose.c: Add support for file:line:style messages. - -2001-10-26 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Implement -tex=program option for mp. - -2001-10-24 Olaf Weber <olaf@infovore.xs4all.nl> - - * usage.c (usage): Remove first argument, should now only be - called on abnormal exit. - (usage_help): Print help message, implies a normal exit. - - * texmfmp.c: Modify usage/usage_help invocation. - - * eofeoln.c (readln): New function, read a line and accept CRNL, - CR, and NL as end-of-line delimiters. - -2001-04-23 Olaf Weber <olaf@infovore.xs4all.nl> - - * eofeoln.c (eoln): Accept both CR and LF as end-of-line - characters. - -2000-08-25 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (setupboundvariable): Add parentheses for clarity, and - to silence stupid compilers. - -2000-05-03 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (calledit): The first argument should be a pointer to - packedASCIIcode. This matters for Omega. From "C.M. Connelly" - <c@eskimo.com>. - -2000-04-21 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [WIN32]: Add support for -oem option. From Fabrice. - -2000-04-13 Olaf Weber <olaf@infovore.xs4all.nl> - - * openclose.c: Disabled the supporting code for remembering the - full name while the code for C style error messages and source - specials is under review. - -2000-04-03 Olaf Weber <olaf@infovore.xs4all.nl> - - * openclose.c (open_input): Save full name of found file in - full_name_of_file variable. For "C-style" error messages and - source-file specials. After Stefan Ulrich - <ulrich@cis.uni-muenchen.de> and Fabrice Popineau - <Fabrice.Popineau@supelec.fr>. - -2000-01-13 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (parse_options): Stop option-processing at the first - non-option, so that a command line like 'tex \&sgmlbase - -lhtmlbase.tex -ousing.html using.html' feeds the '-lhtmlbase.tex' - and '-ousing.html' to the format. Reported by Jonathan Fine - <fine@active-tex.demon.co.uk>. - -1999-07-12 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (maininit): Add a --default-translate-file option, to - facilitate CSTeX. Suggestion (relayed?) by Petr Olsak - <olsak@math.feld.cvut.cz>. - (input_line): Make sure that catching a SIGINT won't be seen as a EOF - on the terminal. Problem noticed by DEK. - -1999-06-28 Olaf Weber <olaf@infovore.xs4all.nl> - - * openclose.c (open_input): The pdfTeX people asked that the disk - not be pounded for .vf files. - -1999-05-29 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (opennameok): Allow ./ or its equivalent. Use - IS_DIR_SEP rather than comparing against DIR_SEP. - - * openclose.c (open_input): Correct comment. - -1999-03-15 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (parse_options): Explicit --progname override the - inferred programe of the --fmt option. Suggested by Sebastian. - (ztakefraction,ztakescaled,zmakescaled,blankrectangle,paintrow): Add - prototypes. From Thomas. - -1999-02-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: The translate_filename variable is now external. Use - kpse_web2c_format to find tcx files. - -1999-02-06 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Remove include for kpathsea/config.h because it is - superfluous. - (calledit): Use P?C macro in definition. - -1999-02-04 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (maybe_parse_first_line): Allow both --translate-file - and -translate-file in first line. - - * main.c (main): Remove __cdecl, from Fabrice. - -1999-01-27 Olaf Weber <olaf@infovore.xs4all.nl> - - * zround.c (zround): Add cast to quiet compiler. By Fabrice. - - * usage.c (usage): Use KPSEDLL for kpse_bug_address. By Fabrice. - - * texmfmp.c [WIN32]: include sys/timeb.h. - (mainbody): Add TEXDLL to declaration. - (maininit): The old main function renamed. - (main): A new main function, stripped to the bones. - (getrandomseed): Get a random seed from the current time. - All after Fabrice. - - * printversion.c (printversionandexit): Add KPSEDLL for - kpathsea_version_string, by Fabrice. - - * main.c (main): Add __cdecl, from Fabrice. - -1999-01-24 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Support for pdfeTeX. From Thomas Esser. - - * texmfmp.c (maybe_parse_first_line): Default to parsing if - maybe_parse_first_line is not defined in texmf.cnf. - (opennameok): Add an argument to specify default. - (openinok): Default to "a" if no openin_any found. - (openoutok): Default to "p" if no openout_any found. - - * mfmpw32.c: Change CRNL to NL line-endings. - -1999-01-14 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Further changes and fixes for maybe_parse_first_line. - Add openinnameok and openoutnameok, which call opennameok. - (opennameok): Change implementation to reflect this. - -1999-01-13 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Rename maybe_set_dump_default_from_input to - maybe_parse_first_line. Add TCX support in the form of allowing a - --translate-file pseudo-option, as proposed by Wlodzimierz Bzyl - <matwb@monika.univ.gda.pl>. - - * printversion.c: Correct --version output. - - * Makefile.in: Rename kpathsea.make to kpathsea.mk. - -1999-01-10 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Update banners, add MFNOWIN ifdef. - - * printversion.c (printversionandexit): Improve & update message. - - * Makefile.in: Change of ../make/*.make to ../make/*.mk. - -1998-12-04 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Replace isblank with ISBLANK, to improve handling of - whitespace. - -1998-07-26 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c (parse_options): Make --progname a no-op after --fmt - has been seen. Thus the order of these options no longer matters. - - * texmfmp.c: Rename openoutnameok to opennameok. - -Sun May 31 17:27:22 1998 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c: Add a parse_first_line configuration entry, so the - %&format construct can be switched off when desired. Suggested by - Denis B Roegel. - Add a --debug-format option. - -Mon May 4 19:41:22 1998 Olaf Weber <olaf@infovore.xs4all.nl> - - * basechsuffix.c (basenamechangesuffix): Replace call of basename - with xbasename. - - * texmfmp.c (openoutnameok): Replace call of basename with - xbasename. - -Tue Mar 10 06:37:51 1998 Olaf Weber <olaf@infovore.xs4all.nl> - - * texmfmp.c [TeX & IPC] (ipcpage): Remember to set begun to true - once we've begun. - -Sun Mar 8 18:21:46 1998 Olaf Weber <olaf@infovore.xs4all.nl> - - * printversion.c (printversionandexit): Copyright year is 1998. - -Tue Feb 10 17:56:36 1998 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Provide the hooks for the epsf server. From Mathias - Herberts. - - * eofeoln.c: Prototype eoln. Spotted by Andreas Scherer - <Andreas.Scherer@Pobox.Com> - - * fprintreal.c: Prototype fprintreal. Spotted by Andreas Scherer - <Andreas.Scherer@Pobox.Com> - -Fri Jan 23 15:01:31 1998 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Various patches for Omega from John Plaice. - (ipcpage [Omega]): Fix because string handling in Omega differs. - (maybe_set_dump_default): Fix to get %& to work in more cases. - -Thu Dec 18 20:37:20 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Change spelling of -maketex option to -mktex. - -Fri Dec 12 10:22:52 1997 Olaf Weber <infovore@xs4all.nl> - - * openclose.c (open_output): Don't use TEXMFOUTPUT value if it is - the empty string. - - * texmfmp.c (openoutnameok): Rewritten to support three levels of - permissiveness. - (main): Assignment to shellenabledp has been rewritten: we now - enable only if certain values are found. - -Mon Dec 1 19:05:06 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (maybe_set_dump_default_from_input): Reset the program - name if the dump_name changes. - - * texmfmp.c [WIN32 && !NO_MF_ASM]: Include "lib/mfmpw32.c" instead - of "../win32/mfmpi386.c". - - * texmfmp.c (main, parse_options): Add support for --interaction - option. - - * texmfmp.c (main) [eTeX]: Make sure calling e-TeX as initex or - virtex works as it should. - -Sat Nov 29 13:06:53 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (main): We assume "plain" for the dump_name iff the - program was called as ini* or vir*. And in the case of ini*, the - file name will override this anyway. - - * texmfmp.c (callmakempx): Add xstrdup, because we end up - potentially freeing a static string otherwise. From Fabrice - Popineau. - -Sun Nov 23 19:43:57 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (openoutnameok): When we're trying to be safe, add - some extra paranoia supplied by Charles Karney <karney@pppl.gov>. - -Sat Nov 22 19:26:13 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (main): Use kpse_set_program_name and - kpse_program_name instead of kpse_set_progname and - program_invocation_short_name. - -Sat Nov 15 21:27:23 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Various changes to support Omega. - -Fri Nov 14 16:43:28 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c [eTeX,PDFTeX]: Inclusion of header file with - appropriate banner. - -Fri Oct 24 13:41:56 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Prototypes for the mf_*_{blankrectangle,paintrow} - functions. - -Mon Oct 20 08:16:40 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c [WIN32]: Added support for WIN32WIN. Added suppport - for redirection of stderr to a logfile. Added support for asm - routines. Prototyped mainbody. - (setupboudvariable): Don't try to free expansion if it is NULL. - From Fabrice Popineau. - - * main.c (main): Prototype mainbody. From Fabrice Popineau. - -Sun Oct 19 10:57:43 1997 Olaf Weber <infovore@xs4all.nl> - - * printversion.c (printversionandexit): Removed web2c maintainer's - name from version info. - -Fri Oct 17 10:33:06 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Correct prototypes for all the varieties of - ...initscreen and ...updatescreen. No prototypes for - ...blankrectangle and ...paintrow. - - * texmfmp.c (main) [MSDOS, WIN32]: Use case-insensitive comparison - for filenames on MS-DOS/MS-Windows. - (openoutnameok): When testing for `unix' make sure `MSDOS' is NOT - defined since DJGPP defines both. - (initscreen): Use "mftalk" for DJGPP as well. - From Eli Zaretskii <eliz@is.elta.co.il>. - -Thu Oct 16 20:34:25 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (parseoptions [TeX], main): Remove everything related - to the -extend-jobname option. - -Fri Oct 3 11:46:15 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c: Add prototypes for the mf_trap_* functions. After - Fabrice Popineau. - -Thu Oct 2 18:07:24 1997 Olaf Weber <infovore@xs4all.nl> - - * texmfmp.c (main): Added locale support. From Bernd Raichle - <raichle@informatik.uni-stuttgart.de>. - -Tue Sep 30 12:00:13 1997 Olaf Weber <infovore@xs4all.nl> - - * version.c: use version string from c-auto.h. - - * texmfmp.c: Changed return type of main int. - -Fri Mar 21 16:38:48 1997 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (struct msg): Do not try to declare the zero-length - array, just leave it out. - Bug from: jumper@lens.sri.com (Greg Jumper) - -Wed Feb 12 08:18:07 1997 Fabrice POPINEAU <popineau@ese-metz.fr> - - * texmfmp.c (catch_interrupt): Win32, differentiate between user - interrupt and console closing. - -Mon Feb 3 18:01:42 1997 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (parse_options): Check for -1, not EOF, - per new getopt. - -Mon Jan 27 22:44:29 1997 Ulrik vieth <vieth@thphy.uni-duesseldorf.de> - - * texmfmp.c (BANNER) [MP]: Update to version 0.632. - -Sat Jan 18 13:04:34 1997 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c: Update len. - From: Gregor Hoffleit <flight@mathi.uni-heidelberg.de>. - -Thu Jan 16 14:29:50 1997 Karl Berry <karl@cs.umb.edu> - - * alloca.c: New version from /gd/gnu/lib. - - * texmfmp.c (funny_core_dump): Move to new file. - * coredump.c: New file. - * Makefile.in (objects): Add coredump.o. - This makes it possible for BibTeX to find the function - (not that it needs it). - From: Richard Walker <Richard.Walker@cs.anu.edu.au> - -Sun Jan 5 16:11:12 1997 Karl Berry <karl@cs.umb.edu> - - * printversion.c: It's 1997 now. - -Sun Dec 29 17:11:03 1996 Karl Berry <karl@cs.umb.edu> - - * basechsuffix.c (basenamechangesuffix): Filename comparison may - be case-insensitive. From Fabrice. - -Sat Dec 28 17:37:14 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (ipcpage): Pass the whole DVI filename to the other - end of the connection, not just the relative name. (It may have - been already started up.) - -Sun Dec 15 16:50:25 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c: #if 0-out all the TCX file stuff. - Suggested by David Carlisle et al. - -Sun Dec 8 16:40:57 1996 Karl Berry <karl@cs.umb.edu> - - * openclose.c (standardinput, standardoutput): Remove these; - make them globals in bibtex.ch itself. - - * printversion.c, texmfmp.c, usage.c: WIN32 changes. - From Fabrice. - -Sat Dec 7 11:10:39 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (topenin): Rewrite to avoid strcat, for Omega. - From: John Plaice <plaice@iad.ift.ulaval.ca>. - -Fri Dec 6 17:44:45 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (main) [TeX && Omega]: Initialize MakeTeX{OCP,OFM}. - * openclose.c (ocptemp): New global. - (open_input): Read ahead in ofm and ocp files. - -Tue Dec 3 15:15:14 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> - - * Makefile.in: Remove spurious targets for wsun.c and wx11.c. - -Tue Dec 3 15:15:14 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> - - * texmfmp.c (long_options): mpost -T or -troff doesn't take an - optional argument. - - * Makefile.in: Remove spurious targets for wsun.c and wx11.c. - -Wed Nov 27 10:02:21 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (NO_MF_ASM) [__sun__]: Define; our assembler code - doesn't work with the Solaris/x86 assembler. - * mfmpi386.asm: Doc fix. - -Sat Nov 23 14:42:53 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (openoutok): Allow .tex as a special case. - -Fri Nov 15 16:15:32 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (openoutnameok): Do not free the result of basename; - it's never dynamically allocated anyway. - -Sun Nov 10 16:37:19 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c: Check for inimpost and virmpost instead of - inimp and virmp. - -Mon Oct 14 17:27:34 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (DUMP_EXT) [DOS]: Only truncate to .bas if DOS, - not DOSISH; WinNT/Win95 support long filenames (at long last). - (initscreen) [WIN32]: Use mftalk a la OS2. - (get_date_and_time): Include parameter in old_handler decl. - -Mon Oct 7 12:49:38 1996 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Include printversion.o. - * printversion.c: New file. - - * texmfmp.c: Oops, iniversion doesn't it, it's global. - (parse_options): Call printversionandexit. - -Sun Oct 6 10:17:00 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (main): Initialize iniversion and virversion. - -Sat Sep 7 16:14:41 1996 Karl Berry <karl@cs.umb.edu> - - * usage.c: Include the bug reporting address. - -Sun Aug 4 15:48:03 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (parse_options): Print the Kpathsea version string, too. - * version.c: Do `Web2c VERSION' instead of `C version VERSION'. - -Fri Jul 26 15:47:29 1996 Karl Berry <karl@cs.umb.edu> - - * Makefile.in: Remove co.make. - -Sat Jun 1 13:17:09 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (openoutnameok): Change #ifdef to TeX || MP. - -Fri May 24 11:38:59 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (main): Initialize extend_jobname. - (parse_options) [TeX]: New option -extend-jobname. - -Sun Apr 28 15:13:22 1996 Karl Berry <karl@cs.umb.edu> - - * mfmpi386.asm [ASM_NEEDS_UNDERSCORE]: #ifdef labels on new - configure condition. - From: Peter Breitenlohner <peb@MPPMU.MPG.DE>. - -Tue Apr 23 08:26:11 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (callmakempx): Always pass -troff, even if we got the - command name from texmf.cnf. - -Sun Apr 21 16:59:44 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (parse_options): New options -maketex and -no-maketex - for TeX and MF. - -Sat Apr 20 17:55:37 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c [IPC_DEBUG]: Text changes. - -Fri Mar 22 15:30:45 1996 Karl Berry <karl@cs.umb.edu> - - * Remove GPL from these files; Web2c proper can stay p.d. - -Sun Mar 10 16:12:14 1996 Karl Berry <karl@cs.umb.edu> - - * openclose.c: Oops, forgot to #include variable.h. - -Fri Mar 8 16:00:20 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (init_maketex): Remove this; we will do it in Kpathsea - instead now, in the format initialization tex-file.c. - - * openclose.c (open_output): Look for TEXMFOUTPUT in texmf.cnf. - -Wed Feb 21 11:45:02 1996 Karl Berry <karl@cs.umb.edu> - - * openclose.c: Don't abort if the TFM file is empty. - -Sat Feb 17 15:22:52 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (openoutnameok): New function. - -Fri Feb 16 17:51:53 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (long_options) [NONASCII]: Include --translate - conditionally. (Really should change the help message, too.) - -Sat Feb 10 15:22:59 1996 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (parse_options): Make DUMP_OPTION also set the user - progname, since -progname sets the dump name. - -Fri Dec 29 17:16:42 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in: misc.make is now clean.make. - -Sun Dec 17 15:09:44 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (long_options): New option --debug-format, suggested - by David Carlisle. - -Sun Dec 10 16:13:46 1995 Karl Berry <karl@cs.umb.edu> - - * mfmpi386.asm: Remove _'s. From Wayne. - - * texmfmp.c (PROGRAM_VERSION) [MP]: Now at 0.631. - [TeX] No asm stuff. From Gregor Hoffleit, et al. - -Sun Nov 26 13:39:00 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (main): Enable mltex extensions if --mltex option or - the program name is mltex. - -Fri Nov 17 14:35:45 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (-program): New option for TeX, MF, MP. Suggested by Bernd. - -Thu Nov 16 16:20:03 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (argv, argc): Do not define as static, as we declare - them extern in cpascal.h. From Andreas Scherer. - -Sun Nov 12 16:32:27 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (sysopt_o): Remove this stuff. From Wayne. - * texmfmp.c [i386 && GNUC && !NO_MF_ASM]: #include mfmpi386.asm - instead of using the C code. - - * texmfmp.c: Disable shell escapes by default. - -Fri Oct 6 16:23:03 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (maybe_set_dump_default_from_input): Make %&ini set - iniversion. Suggested by Wayne. - -Mon Oct 2 15:48:21 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (init_maketex): Really disable if the value is zero. - -Sat Sep 30 16:02:56 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (main) [TeX]: Look up the `noshell' config variable. - (parse_options): No options -noshell and -output-comment. - -Sat Sep 23 15:04:54 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Remove strtol.o, this is in kpathsea now. - -Fri Sep 22 15:51:13 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (init_maketex): New routine. - (main): Call it, instead of repeating the weird code. - -Mon Sep 4 17:16:06 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Remove xopenfile.o. - * xopenfile.c: Move to kpathsea. - -Thu Aug 31 13:35:47 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c [!MF_ASM_FRACTION] (takefraction, ...): Conditionalize - the floating-point definitions on this, too. - * Makefile.in (optx86.o): New target. - * optx86.s: New file. - -Tue Aug 22 14:11:27 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in: Include rdepend.make, instead of repeating the code. - -Mon Jul 31 17:46:31 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (setupboundvariable): Call kpse_var_value, so we don't - have to pass in the $. Similarly everywhere else. - -Sat Jul 29 19:26:33 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (callmakempx): Rewrite to pass -troff flag, instead of - invoking troff script. And use new kpse_var_value. - -Fri Jul 28 11:10:26 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (depend): Comment out this target in the - distribution, it doesn't work when $srcdir != build-dir. - - * texmfmp.c (callmakempx): Don't call anything if the command is - `none'. - -Tue Jul 25 13:39:04 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (callmakempx): Free the variable expansion. - -Mon Jul 24 11:48:35 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (callmakempx): New fn. - -Sun Jul 23 11:39:51 1995 Karl Berry <karl@cs.umb.edu> - - * texmfmp.c (edit_value): Remove this #define. - (calledit): Call kpse_var_expand for TEXEDIT et al., instead of - just getenv. - (ztakefraction, zmakefraction, ztakescaled, zmakescaled): Include - Hobby's C code from mpmath.c. - -Sat Jul 22 14:20:38 1995 Karl Berry <karl@cs.umb.edu> - - * openclose.c (open_input) [FUNNY_CORE_DUMP]: Recognize - HackyInput... for MetaPost. Doc fixes. - - * texmf.c: Rename to texmfmp.c for MetaPost support. - (long_options) [MP]: Add -T and -troff. - -Thu Jul 20 13:40:39 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (setupboundvariable) [TeX]: Remove conditional, since MF - sets a couple simple variables dynamically now. - (initscreen): Get MFTERM from texmf.cnf file if it's there, - instead of just calling getenv. - -Tue Jul 18 13:40:25 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (initscreen): Give warning if they're using X, but there - is no X support. - -Mon Jul 17 13:10:37 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (NO_FMTBASE_SHARE): Rename to NO_DUMP_SHARE. - [MF]: Declare return types for window routines. - Also, move trap support to another file, window/trap.c. - -Sun Jul 16 14:35:33 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (main): Rewrite enabling of MakeTeX* to match new - configure stuff. - -Sat Jul 15 16:05:37 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c: Doc fix. - -Fri Jul 14 14:31:57 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (read_char_translation_file): Compute `charssavedbycharset'. - (setupcharset): Do not allow dynamic translation in initex. - -Thu Jul 13 14:05:24 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (setupcharset, read_char_translation_file, - tcx_get_num): New functions to implement dynamic char translations. - (parse_options): Add -translate-file option. - -Sun Jul 9 15:28:09 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (maybe_set_dump_default_from_input): Don't index - argv[optind] if optind is >= argc. - -Tue Jul 4 16:58:54 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (maybe_set_dump_default_from_input): Finish implementing - this (%&FNAME on first line => use FNAME for dump file). - -Thu Jun 29 17:50:38 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (parse_options) [TeX && IPC]: Concatenate TEX_IPC_HELP - to the help string. - - * openclose.c (open_input): Detect nonexistent files correctly again. - -Wed Jun 21 15:54:45 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (parse_options): Add --fmt (TeX) and --base (MF). - (DUMP_OPTION): #ifdef'd #define to determine which. - -Mon Jun 19 20:09:34 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c: Add IPC support. - From: Shamim Mohamed <shamim@howland.isu.edu> - From: Tomas G. Rokicki <rokicki@CS.Stanford.EDU> - -Sat Jun 10 16:06:06 1995 Karl Berry <karl@cs.umb.edu> - - * openclose.c: Doc fix. - -Fri Jun 9 19:36:12 1995 Karl Berry <karl@cs.umb.edu> - - * main.c, texmf.c (main) [__EMX__]: Add _wildcard and _response calls. - * texmf.c: Add mftalk support. - (funny_core_dump, catch_interrupt) [__EMX__]: OS2 support. - From: rs@purple.in-ulm.de (Ralph Schleicher). - -Sun Jun 4 10:30:36 1995 Karl Berry <karl@cs.umb.edu> - - * eofeoln.c (eof): Return true if the file doesn't exist. - - * texmf.c: Add support for AMIGAWIN. From Andreas Scherer. - - * alloca.c (NULL, xmalloc): Do not define these here, they're - (indirectly) in config.h. From Andreas Scherer. - - * texmf.c (setupboundvariable): Don't complain about 0 in the cnf - file if the default is also 0. - -Sat Jun 3 11:54:28 1995 Karl Berry <karl@cs.umb.edu> - - * xopenfile.c: Include the program name in the error message. - - * texmf.c (setupboundvariable): If the variable is unset in - texmf.cnf, the expansion is the empty string, not NULL. Also, free - the expansion. - -Fri Jun 2 13:41:41 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (DUMP_EXT) [DOSISH]: Must be `.bas'. From Wayne. - (input_line): Cast buf_size in printf to avoid warning. - (setupboundvariable): New routine for lookup of dynamic bounds. - -Sun May 28 17:41:49 1995 Karl Berry <karl@cs.umb.edu> - - * zround.c: Compare against TeX's boundary integers (as floating - point constants), instead of INTEGER_{MIN,MAX}. - -Fri May 26 17:47:47 1995 Karl Berry <karl@cs.umb.edu> - - * strtol.c: New file, from textutils. - * Makefile.in (objects): Add strtol.o. - -Wed May 24 17:07:39 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c (parse_options): New routine for TeX & MF. - (PROGRAM_VERSION, PROGRAM_HELP): Define these. - (main): Call it. - -Sat May 20 17:28:51 1995 Karl Berry <karl@cs.umb.edu> - - * xopenfile.c: Do perror if we had a full filename to try. - - * basechsuffix.c: Take old suffix, and only do the change if the - old suffix matches. - - * usage.c (usage): If bad status, construct the --help message. - -Tue May 9 15:46:25 1995 Karl Berry <karl@cs.umb.edu> - - * usage.c: Doc fix. - -Sat May 6 11:23:23 1995 Karl Berry <karl@cs.umb.edu> - - * usage.c: New file. - * Makefile.in (objects): Add it. - -Tue Apr 25 14:02:10 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (library): Set to lib instead of lib.a, to match the - other Makefile conventions. - -Sun Apr 23 10:54:35 1995 Karl Berry <karl@cs.umb.edu> - - * texmf.c: Have to include {tex,mf}d.h before #ifdef TeX, so do it - from the Makefile. - -Sat Apr 22 10:26:10 1995 Karl Berry <karl@cs.umb.edu> - - * main.c (main): Call mainbody, not main_body. - - * openclose.c (aclose): Don't complain if the file is already closed. - (texinputtype): Define this. - - * texmf.c (main): Do program_name stuff unconditionally, not just - in vir*, and rewrite it to use program_invocation_short_name. - -Fri Apr 21 11:39:14 1995 Karl Berry <karl@cs.umb.edu> - - * main.c: Doc fix. - - * input2int.c: Split off from inputint.c. - -Sun Apr 16 11:47:37 1995 Karl Berry <karl@cs.umb.edu> - - * openclose.c (open_input, open_output): Retrieve and store the - filename from name_of_file + 1, not name_of_file, to avoid extra - hassles in the change files. - -Fri Apr 14 15:28:47 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Include openclose.o. - * openclose.c: New file, from openinout.c. - -Tue Feb 21 13:51:58 1995 Karl Berry <karl@cs.umb.edu> - - * xopenfile.c: Have to take another arg, the original name. - -Mon Feb 20 17:18:59 1995 Karl Berry <karl@cs.umb.edu> - - * xopenfile.c: New file. - * Makefile.in (objects): Add it, and remove xfopen-pas.o. - -Sun Feb 5 15:33:29 1995 Karl Berry <karl@cs.umb.edu> - - * basechsuffix.c: New file. - * Makefile.in (objects): Add it. - -Tue Jan 10 13:20:47 1995 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Remove strpascal.o (no longer needed) and - getopt.o (in kpathsea). - -Sun Dec 18 16:38:03 1994 Karl Berry <karl@cs.umb.edu> - - * strpascal.c (errprintpascalstring, etc.): Don't need these any more? - -Sat Dec 17 13:42:03 1994 Karl Berry <karl@cs.umb.edu> - - * mksuffixchar.c: This was short-lived. - * chartostring.c: This replaces it. - * Makefile.in (objects): Ditto. Also remove ourpaths.o. - -Mon Nov 14 15:13:50 1994 Karl Berry <karl@cs.umb.edu> - - * mksuffixchar.c: New file. - * Makefile.in (objects): Add it. - -Sun Nov 13 16:43:40 1994 Karl Berry <karl@cs.umb.edu> - - * Makefile.in (objects): Add w*.o. - (wsun.c, wx11.c): Add links for these. - -Fri Oct 28 11:14:08 1994 Karl Berry <karl@cs.umb.edu> - - * strpascal.c (extendfilename): Remove this. - -Thu Oct 27 17:59:07 1994 Karl Berry <karl@cs.umb.edu> - - * main.c (argv): Return a regular C string, instead of a Pascal string. - -Fri May 27 09:50:14 1994 Karl Berry (karl@cs.umb.edu) - - * texmf.c (main): Don't look for USE_MAKETEX*. - - * c-auto.h.top, texmf.c (NO_FMTBASE_SHARE): Rename from - NO_FMTBASE_SWAP. - -Thu May 26 20:37:24 1994 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.top: Why did I take out the #ifndef's? Put them back. - -Tue May 24 14:43:12 1994 Karl Berry (karl@cs.umb.edu) - - * texmf.c (funny_core_dump): No need to declare, since we define - it later in this file. - -Mon Apr 18 17:31:59 1994 Karl Berry (karl@ra.cs.umb.edu) - - * c-auto.h.top: Rename from c-auto.h.in for autoheader convention, - and don't #ifndef the #undef's. - * Makefile.in: autoheader/autoconf changes. - -Thu Feb 24 11:00:53 1994 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c: Include tex-file.h instead of init-path.h. - -Mon Feb 21 14:29:52 1994 Karl Berry (karl@cs.umb.edu) - - * Makefile.in: srcdir changes from simon. - - * gftodmem.h: Move here from fontutil, to simplify srcdir stuff. - -Wed Feb 2 11:00:47 1994 Karl Berry (karl@cs.umb.edu) - - * Version 6.1. - -Tue Feb 1 11:25:44 1994 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (c-auto.h.in): New target. - - * common.defines (rh): Declare as a field, for TeX--Xet. - -Mon Jan 24 07:33:49 1994 Karl Berry (karl@cs.umb.edu) - - * Version 6.0. - -Thu Jan 20 14:22:07 1994 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in: Doc fix. - - * MakeTeX{TFM,MF}: Include these as samples, from - pnoma@wk.estec.esa.nl. - -Fri Dec 24 13:48:46 1993 Karl Berry (karl@cs.umb.edu) - - * getopt.c (_NO_PROTO): Define before including config.h. - -Tue Dec 7 10:23:59 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (objs): Ah, flexfatal is in the library now. - -Sun Dec 5 15:23:47 1993 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c (setpaths): Remove the KPSE_MAKE_* enables, this file - is not compiled in the tex/mf/bibtex directories. - * texmf.c (main): Set them here. - - * c-auto.h.in (XVIEWWIN): Remove this, as x11-Xt should work - with OpenWindows. (But leave it in configure, just for old-times' - sake.) - -Sat Dec 4 11:29:57 1993 Karl Berry (karl@cs.umb.edu) - - * flexfatal.c: New file. - * Makefile.in (flexfatal.o): New target. - (objs): Include it. - - * texmf.h (NO_DEBUG) [!TEXMF_DEBUG]: Define this. - - * openinout.c (make_tex_file): Pass address of nameoffile, as required. - -Sun Nov 14 02:30:34 1993 Karl Berry (karl@cs.umb.edu) - - * version.c (VERSION_STRING) [!VERSION_STRING]: Define and protect. - -Fri Nov 12 19:38:26 1993 Karl Berry (karl@cs.umb.edu) - - * cpascal.h (reset, rewrite): Use FOPEN_[RW]BIN_MODE instead of - "r" and "w". Still not 100% right, but at least something of an - improvement. - -Sun Nov 7 14:17:24 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (.c.o): Use $< instead of $*.c; maybe it will help - with $(srcdir) stuff? - - * texmf.c (input_line): Trim trailing spaces, tabs, and \r's. - - * lib.h: Remove, this is in Kpathsea now. - - * config.h (INTEGER_TYPE) [LONG_64_BITS && !NO_FMTBASE_SWAP]: - Define as int in this case. - (INTEGER_MAX,INTEGER_MIN): Define these as well. - * zround.c (zround): Use INTEGER_{MAX,MIN}. - From raichle@informatik.uni-stuttgart.de. - -Sat Nov 6 13:21:11 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in (NEXTWIN, REGISWIN): #undef by default. - * texmf.c (mfwin_sw): Add cases for regis and next. - (mf_{next,regis}_*) [NEXT,REGISWIN]: Declare. - -Tue Oct 12 14:03:23 1993 Karl Berry (karl@cs.umb.edu) - - * openinout.c (open_input): Allow HackyCoreDump's for MF, too. - - * ourpaths.c (testreadaccess): Update fontmap stuff, use it for GF - and PK as well as TFM. - - * texmf.c: Doc fix. - - * common.defines (cinttype): Declare. - * cpascal.h (cinttype): Define. - -Sun Oct 10 16:17:48 1993 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c: Rewrite for new kpathsea facilities. - -Sun Oct 3 13:49:40 1993 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c: kpathsea/pathsrch.h has been renamed to pathsearch.h. - - * config.h [ibm032]: Remove all this stuff; I don't think it's - needed any longer. - - * Makefile.in (*clean): Include standard targets. - -Mon Jun 7 08:29:45 1993 Karl Berry (karl@cs.umb.edu) - - * cpascal.h (addressofint): Do not cast to int first. - -Mon May 31 09:40:00 1993 Karl Berry (karl@cs.umb.edu) - - * config.h (EXIT_SUCCESS): Move to c-std.h. - -Tue May 25 14:37:16 1993 Karl Berry (karl@cs.umb.edu) - - * config.h (EXIT_SUCCESS): Rename from EXIT_SUCCESS_CODE. - Change callers in various files. - -Fri May 21 11:56:02 1993 Karl Berry (karl@cs.umb.edu) - - * texmf.c (paintrow): Put args in the printf for paintrow. - - * texmf.c (custom_default) [INI]: Declare conditionally, since - it's used conditionally. - (main): Declare as void. - - * openinout.c (open_input): Rename IS_PATH_SEP to IS_DIR_SEP. - - * alloca.c: Replace with version from gcc 2.4.0. - - * config.h (testreadaccess): Declare. - - * xfopen-pas.c: Remove unused variable `cp'. - - * main.c (main): Return 0 instead of using uexit. - -Tue May 18 13:43:07 1993 Karl Berry (karl@cs.umb.edu) - - * texmf.c (do_undump) [VMS]: Remove this. barabash says it works ok. - -Thu May 13 16:53:47 1993 Karl Berry (karl@cs.umb.edu) - - * getopt.c (my_index): Return const char *, and change callers. - - * Not quite all of Bill's changes below have been merged (not the - new descrip.mms or convert.com files, in particular), but just to - get the gist, I'll include the whole log. - -Wed Mar 24 12:28:25 1993 Bill Barabash (barabash@ops5.lmo.dec.com) - - * c-auto.h : It's too complicated to convert the big hairy config - shell script; I just created a VMS-acceptable c-auto.h manually. - - * c-std.h : Declare VMS's unix-compatibillity routines by including - <unixlib.h> and <unixio.h>; don't declare popen() on VMS. - - * common.h : Declare EXIT_SUCCESS_CODE to be 1 on VMS, 0 elsewhere. - Throw away the VMS system library's getname() declaration, it steps - on a WEB procedure and is not needed. Declare routines eof(), - testreadaccess(), zinput2ints(), extendfilename(), and uexit(). - - * convert.com : VMS command procedure based on the shell script - "convert" (new file). - - * descrip.mms : VMS equivalent of makefile (new file). - - * dirio.h : Don't declare xopendir and xclosedir on VMS. - - * getopt.h : Make my_index accept and return a const character - pointer. Have it return NULL instead of 0 when necessary. - - * main.c : Add function prototype for main_body(). - - * openinout.c, pascal.h, c-auto.h : For BibTeX, use stdin and stdout - on VMS (standardinput and standardoutput become macros). - - * pascal.h : On VMS use system-defined abs() and fabs(). - - * paths.h : Hand-coded for VMS. - - * pathsrch.c : On VMS, don't compile routine expand_subdir(), and - look in current directory for input file if path searching fails. - Routine absolute_p() can now deal with VMS directory specifications. - - * texmf.c : Declare argc so that it links cleanly. Add an unused - formal parameter to catch_interrupt so that it can be passed to - signal without the compiler complaining. Cast argument to time() - as a (time_t *) rather than as a (long *). Get rid of the VMS - undump code contributed by joe%ril3.decnet@hydra.tamri.com -- it - causes the TRAP test to fail. - - * texmf.h : Add function prototypes for routines in texmf.c and - openinout.c. - -Thu May 13 14:43:42 1993 Karl Berry (karl@cs.umb.edu) - - * cpascal.h (fabs) [fabs]: Undefine if it's already defined. - -Sun May 9 09:53:05 1993 Karl Berry (karl@cs.umb.edu) - - * convert: Redirect error echo to stderr; exit 0 if no error. - - * config.h: Changes for kpathsea. Toss volatile defn. - - * Makefile.in (objs): Remove kpathsea files. - -Fri Apr 30 15:06:29 1993 Karl Berry (karl@cs.umb.edu) - - * openinout.c (make_tex_file): Free cmd. - -Fri Apr 16 19:42:15 1993 Karl Berry (karl@cs.umb.edu) - - * find-suffix.c: Declare arg and return string const. - * lib.h (find_suffix): Change decl. - - * c-pathch.h (IS_PATH_SEP) [DOS & otherwise]: New defn. - * pathsrch.c, openinout.c, find-suffix.c: Consequent changes. - -Mon Apr 12 06:14:42 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (clean): Remove core here. - -Sat Apr 10 15:20:25 1993 Karl Berry (karl@cs.umb.edu) - - * openinout.c (make_tex_file): Throw away all output. - - * texmf.c (swap_items): Add case for 16-byte items. - (From james@miller.cs.uwm.edu.) - - * texmf.c (get_date_and_time): Cast arg to time_t *, not long *. - (From james@miller.cs.uwm.edu.) - - * texmf.c (get_date_and_time) [SA_INTERRUPT]: Add code for SunOS - 4.1, from ken@cs.toronto.edu. - - * pathsrch.c (expand_subdir) [UNIX_ST_NLINK]: Don't check st_link - if we don't have Unix semantics. - * c-auto.h.in (UNIX_ST_NLINK): Define if not DOS or VMS or VMCMS. - (Suggested by buers@dg1.chemie.uni-konstanz.de.) - - * texmf.c (catch_interrupt): Declare a(n unused) parameter `arg' - (from beebe). - (get_date_and_time): Don't do assignment in if condition. - -Fri Apr 9 16:10:06 1993 Karl Berry (karl@cs.umb.edu) - - * xrealloc.c (xrealloc): Don't print old_ptr. - - * c-std.h (stddef.h): Don't include. - - * openinout.c (make_tex_file): cmd is a string, not a character. - -Mon Mar 29 08:33:51 1993 Karl Berry (karl@cs.umb.edu) - - * cpascal.h (abs) [abs]: Undef. - -Sat Mar 13 10:22:54 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (CPPFLAGS): Add @DEFS@, for -DHAVE_CONFIG_H. - - * texmf.h: Include cpascal.h instead of config.h. - - * common.h: Merge into config.h and remove. - - * common.h (pascal.h): Don't include this. - * cpascal.h: Rename from pascal.h. - - * convert: Exit with bad status if the pipeline failed; use - cpascal.h instead of config.h. - - * openinout.c (make_tex_file): Call xmalloc instead of declaring - an array; put quotes around the arg of sh -c. - -Sun Feb 28 11:10:48 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in (MAKE_TEX_*): Replace single NO_MAKETEX with - individual symbols. - - * openinout.c (maketex*) [MAKE_TEX*]: Make them individually - selectable. - -Sun Feb 21 08:28:06 1993 Karl Berry (karl@cs.umb.edu) - - * Version 5.851d. - - * common.defines (maketexmf): New defn. - - * Makefile.in (.c.o): Put $(CFLAGS) after $(CPPFLAGS). - - * openinout.c: Include c-namemx.h. - -Tue Feb 16 17:53:54 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (install-exec, install-data): New targets. - -Mon Feb 15 10:19:02 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in (NO_MAKETEX): New #define for installers. - - * openinout.c (maketex*): New routines, rewrite from yesterday. - - * common.defines (maketextex): Define. - -Sun Feb 14 11:54:30 1993 Karl Berry (karl@cs.umb.edu) - - * openinout.c (open_input) [BibTeX]: Only do NO_FILE_PATH stuff if - we are BibTeX; declare tfmtemp only when we need it, instead of at - the outer level; add support for MakeTeX{TeX,MF,TFM}. - -Fri Feb 12 07:33:49 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in (const): Add defn for Autoconf to use. - - * paths.h.in (TEXFORMATS): Only define once. - -Sat Jan 30 09:46:04 1993 Karl Berry (karl@cs.umb.edu) - - * fontmap.c (map_lookup): Only extend the filename if we have one. - -Tue Jan 26 16:07:21 1993 Karl Berry (karl@cs.umb.edu) - - * version.c: New file to define web2c version. - * common.h (versionstring): Declare it here. - * common.defines (versionstring): And here. - * Makefile.in (objs): Add it. - - * c-auto.h.in (X11WIN) [XVIEWWIN]: Undefine. - -Mon Jan 25 12:04:28 1993 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c (testreadaccess.c): Don't free `found' after copying, - as it might not be malloc-ed. - -Sun Jan 24 11:04:37 1993 Karl Berry (karl@cs.umb.edu) - - * lib.h (FATAL*, WARNING*): Use `str' instead of `s' for macro formals. - - * xcalloc.c: Remove prototypes. - * remove-suffx.c, line.c, fontmap.c: Cast *alloc calls to avoid - silly warnings. - - * texmf.c (swap_items): Rewrite as four while loops, since `size' - is invariant. (From Tom.) - -Sat Jan 23 10:13:51 1993 Karl Berry (karl@cs.umb.edu) - - * remove-suffx.c: New file. - -Thu Jan 21 11:21:14 1993 Karl Berry (karl@cs.umb.edu) - - * Makefile.in (objs5): New variable. - ($(lib)): Include it in the archive. - - * extend-fname.c, find-suffix.c, xfopen.c, fontmap.[ch]: New files. - - * ourpaths.c, fontmap.[ch]: Implement a mapping file. - -Sat Jan 16 08:36:36 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in, paths.h.in: Doc fix. - -Sun Jan 3 13:27:37 1993 Karl Berry (karl@cs.umb.edu) - - * config.h: Move some includes to c-std.h. - - * xcalloc.c: New file. - * Makefile.in (objs): Add it. - - * Makefile.in (distclean): Remove Makefile; depend on clean. - -Fri Jan 1 14:17:37 1993 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in, c-memstr.h, dirio.h: Changes for new Autoconf. - - * texmf.c (RETSIGTYPE): Don't default to void. - -Fri Dec 18 13:16:47 1992 Karl Berry (karl@cs.umb.edu) - - * strpascal.c (makesuffixpas): Rename to `extendfilename'. - * common.defines (extendfilename): Declare. - -Wed Dec 16 18:12:51 1992 Karl Berry (karl@cs.umb.edu) - - * common.defines (atoi): Declare. - -Mon Dec 14 07:25:03 1992 Karl Berry (karl@cs.umb.edu) - - * ourpaths.c: Include paths.h. - -Sun Dec 13 17:06:15 1992 Karl Berry (karl@cs.umb.edu) - - * c-auto.h.in: Merge stuff from site.h. - * site.h: Delete. - * config.h: Don't include site.h. - -Sat Dec 12 13:08:52 1992 Karl Berry (karl@cs.umb.edu) - - * Makefile.in: Rewrite from Makefile. - - * openinout.c (open_{in,out}put): Take an extra arg for the fopen mode. - * texmf.h ([bw]open{in,out}): Use appropriate fopen modes. - * pascal.h (aopen{in,out}): Likewise. - -Fri Dec 11 15:19:25 1992 Karl Berry (karl@cs.umb.edu) - - * texmf.c: Change ctype references to use uppercase macros. - -Sat Dec 5 15:21:24 1992 Karl Berry (karl@cs.umb.edu) - - * texmf.h (writedvi, writegf): Check the return status of the write. - - * config.h (UNSIGNED_SHORT_STRING): Toss; I think everyone - understands `unsigned short' now. - -Thu Dec 3 13:21:06 1992 Karl Berry (karl@cs.umb.edu) - - * texmf.c: include c-pathch.h. - -Sun Nov 29 14:50:04 1992 Karl Berry (karl@cs.umb.edu) - - * strpascal.c: include c-pathch.h. - -Mon Nov 16 08:12:16 1992 Karl Berry (karl@cs.umb.edu) - - * openinout.c: include c-pathch.h. - -Tue Nov 10 06:49:33 1992 Karl Berry (karl@cs.umb.edu) - - * texmf.c (main): Change '/' to PATH_SEP. - * openinout.c (open_input): Likewise. - * strpascal.c (makesuffixpas): And here. - -Mon Nov 9 09:38:58 1992 Karl Berry (karl@cs.umb.edu) - - * openinout.c (open_input): Use FOPEN_RBIN_MODE instead of simply "r". - (open_output): Analogously. - - * c-auto.h.in (DOS): New definition, #undef'd by default. - -Fri Nov 6 14:52:34 1992 Karl Berry (karl@cs.umb.edu) - - * Makefile (lib): Use $(AR) and $(ARFLAGS) several times. - (AR, ARFLAGS): New variables. - (objs1..4): New variables, breaking up the old $(objs). - -Tue Oct 27 08:16:41 1992 Karl Berry (karl@cs.umb.edu) - - * openinout.c (open_output): Remove `openable', just use *f != - NULL; also, don't chdir to the envvar's directory, just prepend - the value and change nameoffile. - - * site.h (TEXPOOLNAME): More instructions for MLTeX. - -Sun Oct 25 06:26:22 1992 Karl Berry (karl@cs.umb.edu) - - * getopt.c: New version. - -Tue Oct 6 08:17:45 1992 Karl Berry (karl@cs.umb.edu) - - * site.h.in: Doc fix. - -Thu Sep 24 11:06:14 1992 Karl Berry (karl@cs.umb.edu) - - * site.h.in: change instructions for OpenWindows. (mroth@afit.af.mil) - -Thu Sep 17 08:29:53 1992 Karl Berry (karl@hayley) - - * texmf.c (initscreen): if DISPLAY is set, assume we're running - under X11 for MF online output. - - * texmf.c: remove BibTeX conditionals. - -Tue Sep 8 17:06:54 1992 Karl Berry (karl@hayley) - - * c-auto.h.in (_MINIX, _{ALL,POSIX,POSIX_1}_SOURCE): add #undef's - for configure to define. - -Fri Sep 4 09:01:59 1992 Karl Berry (karl@hayley) - - * Makefile (extraclean): new target. - -Fri Aug 14 07:02:41 1992 Karl Berry (karl@hayley) - - * ourpaths.h (path_constant_type): remove trailing comma from - enum, since ANSI stupidly disallows this. - -Wed Aug 12 16:20:10 1992 Karl Berry (karl@hayley) - - * texmf.c (catch_interrupt): change return type to `RETSIGTYPE'. - - * config.h: remove conditional include of c-memstr if `index' is - defined. - -Sat Aug 8 10:11:18 1992 Karl Berry (karl@hayley) - - * openinout.c (EXTERN) [!BibTeX]: define as `extern'. How did - this ever work? - -Fri Jul 3 11:23:32 1992 Karl Berry (karl@hayley) - - * texmf.c (input_line): ignore \r's at the end of the line. - - * site.h.in (XVIEWWIN): undef by default. - * texmf.c (X11WIN) [MF && (TRAP || INI)]: #undef. - -Thu Jul 2 16:11:46 1992 Karl Berry (karl@hayley) - - * Makefile (CPPFLAGS): new variable - (.c.o): use it. - (cflags): change to CFLAGS. - -Tue Jun 23 09:09:49 1992 Karl Berry (karl@hayley) - - * Makefile (CC): change default to `gcc -posix'. - - * site.h.in (NONASCII): document that xord and xchr are ignored - unless this is defined. - -Thu Jun 11 09:20:51 1992 Karl Berry (karl@hayley) - - * zround.c (zround): return LONG_MAX or LONG_MIN if the double - being rounded is outside the range of `integer'. - * c-minmax.h (LONG_{MIN,MAX}): define these if they aren't defined - by the system. - -Fri May 15 10:23:47 1992 Karl Berry (karl@hayley) - - * getopt.[ch]: new versions. - -Thu May 14 19:21:40 1992 Karl Berry (karl@claude.cs.umb.edu) - - * Version 5.851c. - -Wed May 13 14:32:14 1992 Karl Berry (karl@hayley) - - * pathsrch.c (initalize_path_list): initialize path to the - original path. - -Mon May 4 14:50:20 1992 Karl Berry (karl@hayley) - - * c-auto.h.in: doc fix. - -Sun May 3 08:06:07 1992 Karl Berry (karl@hayley) - - * main.c (argv): use a prototype if possibile. - - * texmf.ch (*dumpthings): parenthesize `len'. - -Wed Apr 29 16:07:52 1992 Karl Berry (karl@hayley) - - * texmfmem.h (memoryword): had mutually exclusive #if's. - (twohalves.u): don't need junk at the end? - -Sat Apr 25 08:55:34 1992 Karl Berry (karl@hayley) - - * c-auto.h.in (__CHAR_UNSIGNED__): protect with #ifndef. - - * site.h.in: remove #ifndef's from around the #define's. I don't - think these help anything. - -Thu Apr 23 07:49:18 1992 Karl Berry (karl@hayley) - - * c-auto.h.in: new file. - -Wed Apr 22 12:43:30 1992 Karl Berry (karl@hayley) - - * texmf.c: SIGTYPE is now RETSIGTYPE. - -Sun Apr 19 10:26:16 1992 Karl Berry (karl@hayley) - - * texmf.c: had sense of tests on FMTBASE_SWAP reversed. - -Thu Apr 16 13:49:36 1992 Karl Berry (karl@ra.cs.umb.edu) - - * Version 5.851b. - -Tue Apr 14 17:06:57 1992 Karl Berry (karl@hayley) - - * common.defines (BSTINPUTPATHBIT): define. - -Sun Apr 12 11:42:14 1992 Karl Berry (karl@hayley) - - * common.defines (BSTINPUTPATH): define. - * ourpaths.h (path_constant_type): add BSTINPUTPATH. - (BSTINPUTPATHBIT): define. - * site.h-dist (BSTINPUTS): default is TEXINPUTS. - * ourpaths.c (setpaths): add stuff for BSTINPUTS. - -Sat Apr 11 09:26:55 1992 Karl Berry (karl@hayley) - - * uexit.c: include config.h, for EXIT_SUCCESS_CODE. - -Fri Apr 10 16:56:18 1992 Karl Berry (karl@hayley) - - * ourpaths.c (setpaths): don't pass cwd to initialize_path_list. - - * site.h-dist (*INPUTS, TEXFONTS): add . to these paths. - -Wed Apr 8 15:34:21 1992 Karl Berry (karl@hayley) - - * texmf.c [FMTBASE_SWAP]: make swapping conditional. - * site.h-dist: add it here for configuration. - - * main.c (do_undump) [VMS]: add code from joe. - - * main.c: use exit, not exit. - - * Makefile (objs): add uexit.o. - * uexit.c: new file. - * pascal.h (uexit): remove this, as it's now a function. - -Fri Apr 3 09:55:00 1992 Karl Berry (karl at hayley) - - * Version 5.851a. - -Thu Apr 2 11:57:06 1992 Karl Berry (karl at apollo.cs.umb.edu) - - * c-memstr.h (memcpy) [!NEED_MEMORY_H]: conditionalize. - -Thu Apr 2 10:51:11 1992 Karl Berry (karl at ra.cs.umb.edu) - - * xstat.c (xlstat): (un)prototype-ize. - - * c-limits.h: test for FLOAT_H_MISSING instead of relying on - _POSIX_VERSION to include <float.h>. - - * c-pathmx.h [_POSIX_VERSION]: don't do pathconf stuff. - -Wed Apr 1 16:57:30 1992 Karl Berry (karl at hayley) - - * common.h (FATAL): use `str' as the arg name, not `s', since we - need to do `%s'. - - * xopendir.c (xclosedir): prototype-ize it. - - * dir-p (leaf_dir_p): don't initialize a structure (!). - - * {concat,pathsrch,texmf,xmalloc,xstrdup,xrealloc}.c: cast results from - xmalloc/malloc/realloc (argh). - - * alloca.c: comment things after #endif. - - * site.h-dist (REGFIX): put this back. - - * c-proto.h (P5C) [!__STDC__]: insert missing backslash. - -Mon Mar 30 07:28:25 1992 Karl Berry (karl at hayley) - - * texmfmem.h (u, v, twohalves) [big MF]: define the halfword junks - again. - -Sun Mar 29 15:33:29 1992 Karl Berry (karl at hayley) - - * alloca.c: new version from gcc 2.1. - -Sat Mar 28 09:46:53 1992 Karl Berry (karl at hayley) - - * main.c (main): return int, exit (EXIT_SUCCESS_CODE). - * texmf.c (main): likewise. - - * config.h (SCHAR_TYPE): use `__CHAR_UNSIGNED__' again. - -Thu Mar 26 06:57:38 1992 Karl Berry (karl at hayley) - - * Makefile (clean, realclean): depend on mostlyclean. - -Sun Mar 22 09:16:04 1992 Karl Berry (karl at hayley) - - * common.h [BibTeX]: remove the include of <setjmp.h>, as - bibtex/convert does it. - -Sat Mar 21 11:09:55 1992 Karl Berry (karl at hayley) - - * common.defines (input2ints): for patgen2. - * inputint.c (zinput2ints): new routine. - * pascal.h (input2ints): new macro to call it. - - * config.h: include c-pathmx.h. - - * common.defines (TEXPOOLNAME): declare as a constant. - -Fri Mar 20 16:10:44 1992 Karl Berry (karl at hayley) - - * paths.h: new file. - - * config.h: update for new files c-*.h. - * common.h: remove stuff that is now in lib.h. - -Thu Mar 19 11:52:17 1992 Karl Berry (karl at hayley) - - * ourpaths.c (append_path_list): remove this. - - * ourpaths.c (setpaths): use the envvar TEXFONTS if VFFONTS isn't set. - -Tue Feb 11 10:27:38 1992 Karl Berry (karl at hayley) - - * config.h [NEED_MEMORY_H]: include <memory.h>. - - * config.h [LIMITS_H_MISSING]: include <sys/param.h>. - -Sun Feb 2 07:54:53 1992 Karl Berry (karl at hayley) - - * pathsearch.c (parse_envpath): remove the second / before doing - subdirectories. - - * pascal.h (optiontable): remove, as getopt no longer has a global - table for the long options. - -Sat Feb 1 15:32:50 1992 Karl Berry (karl at hayley) - - * ourpaths.c (setpaths): use TEXFONTS if PKFONTS/GFFONTS is not - set for GF/PK files, as the documentation claims. - - * ourpaths.c (setpaths): remove subdirectory stuff. - * pathsearch.[ch]: new versions to integrate subdirectories into - the main paths. - - * texmf{,mem}.c (WEB2C_BIGENDIAN): rename to WORDS_BIGENDIAN. - -Fri Jan 31 11:54:46 1992 Karl Berry (karl at hayley) - - * strpascal.c ({null,space}_terminate): do not translate using - xord/xchr (from raichle@azu.informatik.uni-stuttgart.de). - -Fri Jan 24 07:14:05 1992 Karl Berry (karl at hayley) - - * Makefile (cflags): don't include -I../config. - - * config.h (__CHAR_UNSIGNED__) [CHAR_UNSIGNED]: define as autoconf - uses the latter and gcc sometimes the former. - - * config.h: move from config. - - * openinout.c (extensionirrelevantp): new function. - * common.defines: declare it. - - * ourpaths.h (path_constant_type): rename from `path_constants'. - * openinout.c (open_input): use it for the path arg. - -Wed Jan 15 11:13:45 1992 Karl Berry (karl at hayley) - - * xgetcwd.c, xchdir.c: don't need these. - * Makefile (objs): remove from list. - * dirio.h: remove decls. - - * pathsearch.c (check_subdir): do not cd to the directory we're - testing. - (add_directory): test if the name is a directory before adding it - to the list. - (parse_envpath): don't test if the names are directories here. - (initialize_path_list): don't find and cd to the current directory - between each subdirectory. - -Tue Jan 14 16:06:24 1992 Karl Berry (karl at hayley) - - * texmf.c: do not include <sys/types.h>; it's in config.h now. - * types.h: likewise. - -Sun Jan 12 07:41:34 1992 Karl Berry (karl at hayley) - - * pathsearch.c (initialize_path_list): cd back to . after checking - each subdirectory. - - * dirio.h: change directory header stuff as suggested in the - autoconf manual. - - * ourpaths.h: make the path list an enumeration type. - - * openinout.c (open_input): correctly compute namelength. - - * texmfmem.h (memoryword) [TeX]: make declaration of `glueratio' - conditional. - - * openinout.c: rearrange ifdefs for coherency. - - * ourpaths.c (append_path_list): overwrite the null in the first - list. - - * pathsearch.c (initialize_path_list): unconditionally call - parse_envpath. - (parse_envpath): if the envvar name is null, don't call getenv. - If both args are null, do nothing. - - * ourpaths.c (setpaths): initialize the TFM path. - - * common.h (FATAL*): new macros. - - * pascal.h (real): define to be `double'. - - * xfopen-pas.c: new file. - - * eofeoln.c (test_eof): rename to `eof'. - * pascal.h (eof): remove. - - * pascal.h (reset, rewrite): `checked_fopen' => `xfopen_pas'. - - * common.h (link): define as `link_var', to avoid conflicts - between the system call and the web var. - - * common.defines (FILENAMESIZE): rename to `PATHMAX'. - -Tue Jan 7 11:26:02 1992 Karl Berry (karl at hayley) - - * getopt*: new versions. - - * extra.c (getwd) [GETWD_MISSING]: conditionalize. - - * extra.c (zinput3ints): new implementation, from jmr@nada.kth.se. - - * texmf.c (swap_items) [!WEB2C_BIG_ENDIAN]: ifdef on this. - * texmfmem.h (twohalves, fourquarters): incorporate changes from - raichle@azu.informatik.uni-stuttgart.de which he says make - format files finally work. - - * common.h (SCHAR_TYPE): use `signed_char' if ANSI, `short' if - char is unsigned, otherwise `char'. - diff --git a/Build/source/texk/web2c/lib/Makefile.am b/Build/source/texk/web2c/lib/Makefile.am deleted file mode 100644 index 927a2d7c976..00000000000 --- a/Build/source/texk/web2c/lib/Makefile.am +++ /dev/null @@ -1,48 +0,0 @@ -## Makefile.am for the TeX Live subdirectory texk/web2c/lib/ -## -## Copyright (C) 2009-2012 Peter Breitenlohner <tex-live@tug.org> -## You may freely use, modify and/or distribute this file. -## -AM_CPPFLAGS = -I$(top_srcdir) $(KPATHSEA_INCLUDES) -AM_CFLAGS = $(WARNING_CFLAGS) - -## Rebuild libkpathsea -@KPATHSEA_RULE@ - -noinst_LIBRARIES = lib.a -if PTEX -noinst_LIBRARIES += libp.a -endif PTEX -EXTRA_LIBRARIES = libp.a - -## We don't compile `texmfmp.c'; this file is included from 'texextra.c' -## for TeX, 'mfextra.c' for Metafont, ... -lib_a_SOURCES = \ - basechsuffix.c \ - chartostring.c \ - coredump.c \ - eofeoln.c \ - fprintreal.c \ - inputint.c \ - input2int.c \ - lib.h \ - main.c \ - openclose.c \ - printversion.c \ - setupvar.c \ - uexit.c \ - usage.c \ - version.c \ - zround.c - -## Replacements for pTeX. -## -libp_a_CPPFLAGS = -DPTEX $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -libp_a_SOURCES = \ - openclose.c \ - printversion.c - -## Not yet used -## -EXTRA_DIST = alloca.c - diff --git a/Build/source/texk/web2c/lib/Makefile.in b/Build/source/texk/web2c/lib/Makefile.in deleted file mode 100644 index b8f2f542fb8..00000000000 --- a/Build/source/texk/web2c/lib/Makefile.in +++ /dev/null @@ -1,876 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 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. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@PTEX_TRUE@am__append_1 = libp.a -subdir = lib -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ - $(top_srcdir)/../../m4/ax_cxx_compile_stdcxx.m4 \ - $(top_srcdir)/../../m4/kpse-asm.m4 \ - $(top_srcdir)/../../m4/kpse-cairo-flags.m4 \ - $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-cross.m4 \ - $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \ - $(top_srcdir)/../../m4/kpse-fontconfig-flags.m4 \ - $(top_srcdir)/../../m4/kpse-freetype2-flags.m4 \ - $(top_srcdir)/../../m4/kpse-gmp-flags.m4 \ - $(top_srcdir)/../../m4/kpse-graphite2-flags.m4 \ - $(top_srcdir)/../../m4/kpse-harfbuzz-flags.m4 \ - $(top_srcdir)/../../m4/kpse-icu-flags.m4 \ - $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \ - $(top_srcdir)/../../m4/kpse-lex.m4 \ - $(top_srcdir)/../../m4/kpse-lib-version.m4 \ - $(top_srcdir)/../../m4/kpse-libpng-flags.m4 \ - $(top_srcdir)/../../m4/kpse-lt-hack.m4 \ - $(top_srcdir)/../../m4/kpse-lua52-flags.m4 \ - $(top_srcdir)/../../m4/kpse-lua53-flags.m4 \ - $(top_srcdir)/../../m4/kpse-luajit-flags.m4 \ - $(top_srcdir)/../../m4/kpse-macos-framework.m4 \ - $(top_srcdir)/../../m4/kpse-mpfr-flags.m4 \ - $(top_srcdir)/../../m4/kpse-pixman-flags.m4 \ - $(top_srcdir)/../../m4/kpse-pplib-flags.m4 \ - $(top_srcdir)/../../m4/kpse-ptexenc-flags.m4 \ - $(top_srcdir)/../../m4/kpse-socket-libs.m4 \ - $(top_srcdir)/../../m4/kpse-teckit-flags.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/../../m4/kpse-web2c.m4 \ - $(top_srcdir)/../../m4/kpse-win32.m4 \ - $(top_srcdir)/../../m4/kpse-xpdf-flags.m4 \ - $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \ - $(top_srcdir)/../../m4/kpse-zziplib-flags.m4 \ - $(top_srcdir)/../../m4/libtool.m4 \ - $(top_srcdir)/../../m4/ltoptions.m4 \ - $(top_srcdir)/../../m4/ltsugar.m4 \ - $(top_srcdir)/../../m4/ltversion.m4 \ - $(top_srcdir)/../../m4/lt~obsolete.m4 \ - $(top_srcdir)/../../version.ac $(top_srcdir)/ac/web2c.ac \ - $(top_srcdir)/synctexdir/ac/synctex.ac \ - $(top_srcdir)/synctexdir/synctex_parser_api_level.txt \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/w2c/c-auto.h \ - $(top_builddir)/ff-config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -lib_a_AR = $(AR) $(ARFLAGS) -lib_a_LIBADD = -am_lib_a_OBJECTS = basechsuffix.$(OBJEXT) chartostring.$(OBJEXT) \ - coredump.$(OBJEXT) eofeoln.$(OBJEXT) fprintreal.$(OBJEXT) \ - inputint.$(OBJEXT) input2int.$(OBJEXT) main.$(OBJEXT) \ - openclose.$(OBJEXT) printversion.$(OBJEXT) setupvar.$(OBJEXT) \ - uexit.$(OBJEXT) usage.$(OBJEXT) version.$(OBJEXT) \ - zround.$(OBJEXT) -lib_a_OBJECTS = $(am_lib_a_OBJECTS) -libp_a_AR = $(AR) $(ARFLAGS) -libp_a_LIBADD = -am_libp_a_OBJECTS = libp_a-openclose.$(OBJEXT) \ - libp_a-printversion.$(OBJEXT) -libp_a_OBJECTS = $(am_libp_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/w2c -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/basechsuffix.Po \ - ./$(DEPDIR)/chartostring.Po ./$(DEPDIR)/coredump.Po \ - ./$(DEPDIR)/eofeoln.Po ./$(DEPDIR)/fprintreal.Po \ - ./$(DEPDIR)/input2int.Po ./$(DEPDIR)/inputint.Po \ - ./$(DEPDIR)/libp_a-openclose.Po \ - ./$(DEPDIR)/libp_a-printversion.Po ./$(DEPDIR)/main.Po \ - ./$(DEPDIR)/openclose.Po ./$(DEPDIR)/printversion.Po \ - ./$(DEPDIR)/setupvar.Po ./$(DEPDIR)/uexit.Po \ - ./$(DEPDIR)/usage.Po ./$(DEPDIR)/version.Po \ - ./$(DEPDIR)/zround.Po -am__mv = mv -f -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(lib_a_SOURCES) $(libp_a_SOURCES) -DIST_SOURCES = $(lib_a_SOURCES) $(libp_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/../../build-aux/depcomp ChangeLog README -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_DEPEND = @CAIRO_DEPEND@ -CAIRO_INCLUDES = @CAIRO_INCLUDES@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CTANGLE = @CTANGLE@ -CTANGLEBOOT = @CTANGLEBOOT@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CXXLD = @CXXLD@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -FONTCONFIG_INCLUDES = @FONTCONFIG_INCLUDES@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE2_DEPEND = @FREETYPE2_DEPEND@ -FREETYPE2_INCLUDES = @FREETYPE2_INCLUDES@ -FREETYPE2_LIBS = @FREETYPE2_LIBS@ -FT2_CONFIG = @FT2_CONFIG@ -GMP_DEPEND = @GMP_DEPEND@ -GMP_INCLUDES = @GMP_INCLUDES@ -GMP_LIBS = @GMP_LIBS@ -GRAPHITE2_DEPEND = @GRAPHITE2_DEPEND@ -GRAPHITE2_INCLUDES = @GRAPHITE2_INCLUDES@ -GRAPHITE2_LIBS = @GRAPHITE2_LIBS@ -GREP = @GREP@ -HARFBUZZ_DEPEND = @HARFBUZZ_DEPEND@ -HARFBUZZ_INCLUDES = @HARFBUZZ_INCLUDES@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -HAVE_CXX11 = @HAVE_CXX11@ -ICU_CONFIG = @ICU_CONFIG@ -ICU_DEPEND = @ICU_DEPEND@ -ICU_INCLUDES = @ICU_INCLUDES@ -ICU_LIBS = @ICU_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -KPATHSEA_DEPEND = @KPATHSEA_DEPEND@ -KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@ -KPATHSEA_LIBS = @KPATHSEA_LIBS@ -KPATHSEA_PATHS_H = @KPATHSEA_PATHS_H@ -KPSEWHICH = @KPSEWHICH@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBPNG_DEPEND = @LIBPNG_DEPEND@ -LIBPNG_INCLUDES = @LIBPNG_INCLUDES@ -LIBPNG_LIBS = @LIBPNG_LIBS@ -LIBS = @LIBS@ -LIBSYNCTEX = @LIBSYNCTEX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LTLIBSYNCTEX = @LTLIBSYNCTEX@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -LUA52_DEFINES = @LUA52_DEFINES@ -LUA52_DEPEND = @LUA52_DEPEND@ -LUA52_INCLUDES = @LUA52_INCLUDES@ -LUA52_LIBS = @LUA52_LIBS@ -LUA53_DEFINES = @LUA53_DEFINES@ -LUA53_DEPEND = @LUA53_DEPEND@ -LUA53_INCLUDES = @LUA53_INCLUDES@ -LUA53_LIBS = @LUA53_LIBS@ -LUAJIT_DEFINES = @LUAJIT_DEFINES@ -LUAJIT_DEPEND = @LUAJIT_DEPEND@ -LUAJIT_INCLUDES = @LUAJIT_INCLUDES@ -LUAJIT_LDEXTRA = @LUAJIT_LDEXTRA@ -LUAJIT_LIBS = @LUAJIT_LIBS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MPFR_DEPEND = @MPFR_DEPEND@ -MPFR_INCLUDES = @MPFR_INCLUDES@ -MPFR_LIBS = @MPFR_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJCXX = @OBJCXX@ -OBJCXXDEPMODE = @OBJCXXDEPMODE@ -OBJCXXFLAGS = @OBJCXXFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTANGLE = @OTANGLE@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_DEPEND = @PIXMAN_DEPEND@ -PIXMAN_INCLUDES = @PIXMAN_INCLUDES@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PPLIB_DEPEND = @PPLIB_DEPEND@ -PPLIB_INCLUDES = @PPLIB_INCLUDES@ -PPLIB_LIBS = @PPLIB_LIBS@ -PTEXENC_DEPEND = @PTEXENC_DEPEND@ -PTEXENC_INCLUDES = @PTEXENC_INCLUDES@ -PTEXENC_LIBS = @PTEXENC_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -SYNCTEXVERSION = @SYNCTEXVERSION@ -SYNCTEX_LT_VERSINFO = @SYNCTEX_LT_VERSINFO@ -TANGLE = @TANGLE@ -TANGLEBOOT = @TANGLEBOOT@ -TECKIT_DEPEND = @TECKIT_DEPEND@ -TECKIT_INCLUDES = @TECKIT_INCLUDES@ -TECKIT_LIBS = @TECKIT_LIBS@ -TIE = @TIE@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ -WARNING_OBJCXXFLAGS = @WARNING_OBJCXXFLAGS@ -WEB2CVERSION = @WEB2CVERSION@ -XMKMF = @XMKMF@ -XPDF_DEPEND = @XPDF_DEPEND@ -XPDF_INCLUDES = @XPDF_INCLUDES@ -XPDF_LIBS = @XPDF_LIBS@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -ZLIB_DEPEND = @ZLIB_DEPEND@ -ZLIB_INCLUDES = @ZLIB_INCLUDES@ -ZLIB_LIBS = @ZLIB_LIBS@ -ZZIPLIB_DEPEND = @ZZIPLIB_DEPEND@ -ZZIPLIB_INCLUDES = @ZZIPLIB_INCLUDES@ -ZZIPLIB_LIBS = @ZZIPLIB_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJCXX = @ac_ct_OBJCXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -ipc_socketlibs = @ipc_socketlibs@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lua_socketlibs = @lua_socketlibs@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -wlibs = @wlibs@ -x_ext_lib = @x_ext_lib@ -x_tool_libs = @x_tool_libs@ -AM_CPPFLAGS = -I$(top_srcdir) $(KPATHSEA_INCLUDES) -AM_CFLAGS = $(WARNING_CFLAGS) -noinst_LIBRARIES = lib.a $(am__append_1) -EXTRA_LIBRARIES = libp.a -lib_a_SOURCES = \ - basechsuffix.c \ - chartostring.c \ - coredump.c \ - eofeoln.c \ - fprintreal.c \ - inputint.c \ - input2int.c \ - lib.h \ - main.c \ - openclose.c \ - printversion.c \ - setupvar.c \ - uexit.c \ - usage.c \ - version.c \ - zround.c - -libp_a_CPPFLAGS = -DPTEX $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -libp_a_SOURCES = \ - openclose.c \ - printversion.c - -EXTRA_DIST = alloca.c -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign lib/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) - -lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) $(EXTRA_lib_a_DEPENDENCIES) - $(AM_V_at)-rm -f lib.a - $(AM_V_AR)$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) - $(AM_V_at)$(RANLIB) lib.a - -libp.a: $(libp_a_OBJECTS) $(libp_a_DEPENDENCIES) $(EXTRA_libp_a_DEPENDENCIES) - $(AM_V_at)-rm -f libp.a - $(AM_V_AR)$(libp_a_AR) libp.a $(libp_a_OBJECTS) $(libp_a_LIBADD) - $(AM_V_at)$(RANLIB) libp.a - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basechsuffix.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chartostring.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coredump.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eofeoln.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fprintreal.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/input2int.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libp_a-openclose.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libp_a-printversion.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openclose.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printversion.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setupvar.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uexit.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zround.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -libp_a-openclose.o: openclose.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libp_a-openclose.o -MD -MP -MF $(DEPDIR)/libp_a-openclose.Tpo -c -o libp_a-openclose.o `test -f 'openclose.c' || echo '$(srcdir)/'`openclose.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libp_a-openclose.Tpo $(DEPDIR)/libp_a-openclose.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openclose.c' object='libp_a-openclose.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libp_a-openclose.o `test -f 'openclose.c' || echo '$(srcdir)/'`openclose.c - -libp_a-openclose.obj: openclose.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libp_a-openclose.obj -MD -MP -MF $(DEPDIR)/libp_a-openclose.Tpo -c -o libp_a-openclose.obj `if test -f 'openclose.c'; then $(CYGPATH_W) 'openclose.c'; else $(CYGPATH_W) '$(srcdir)/openclose.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libp_a-openclose.Tpo $(DEPDIR)/libp_a-openclose.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openclose.c' object='libp_a-openclose.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libp_a-openclose.obj `if test -f 'openclose.c'; then $(CYGPATH_W) 'openclose.c'; else $(CYGPATH_W) '$(srcdir)/openclose.c'; fi` - -libp_a-printversion.o: printversion.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libp_a-printversion.o -MD -MP -MF $(DEPDIR)/libp_a-printversion.Tpo -c -o libp_a-printversion.o `test -f 'printversion.c' || echo '$(srcdir)/'`printversion.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libp_a-printversion.Tpo $(DEPDIR)/libp_a-printversion.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printversion.c' object='libp_a-printversion.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libp_a-printversion.o `test -f 'printversion.c' || echo '$(srcdir)/'`printversion.c - -libp_a-printversion.obj: printversion.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libp_a-printversion.obj -MD -MP -MF $(DEPDIR)/libp_a-printversion.Tpo -c -o libp_a-printversion.obj `if test -f 'printversion.c'; then $(CYGPATH_W) 'printversion.c'; else $(CYGPATH_W) '$(srcdir)/printversion.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libp_a-printversion.Tpo $(DEPDIR)/libp_a-printversion.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printversion.c' object='libp_a-printversion.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libp_a-printversion.obj `if test -f 'printversion.c'; then $(CYGPATH_W) 'printversion.c'; else $(CYGPATH_W) '$(srcdir)/printversion.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LIBRARIES) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/basechsuffix.Po - -rm -f ./$(DEPDIR)/chartostring.Po - -rm -f ./$(DEPDIR)/coredump.Po - -rm -f ./$(DEPDIR)/eofeoln.Po - -rm -f ./$(DEPDIR)/fprintreal.Po - -rm -f ./$(DEPDIR)/input2int.Po - -rm -f ./$(DEPDIR)/inputint.Po - -rm -f ./$(DEPDIR)/libp_a-openclose.Po - -rm -f ./$(DEPDIR)/libp_a-printversion.Po - -rm -f ./$(DEPDIR)/main.Po - -rm -f ./$(DEPDIR)/openclose.Po - -rm -f ./$(DEPDIR)/printversion.Po - -rm -f ./$(DEPDIR)/setupvar.Po - -rm -f ./$(DEPDIR)/uexit.Po - -rm -f ./$(DEPDIR)/usage.Po - -rm -f ./$(DEPDIR)/version.Po - -rm -f ./$(DEPDIR)/zround.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/basechsuffix.Po - -rm -f ./$(DEPDIR)/chartostring.Po - -rm -f ./$(DEPDIR)/coredump.Po - -rm -f ./$(DEPDIR)/eofeoln.Po - -rm -f ./$(DEPDIR)/fprintreal.Po - -rm -f ./$(DEPDIR)/input2int.Po - -rm -f ./$(DEPDIR)/inputint.Po - -rm -f ./$(DEPDIR)/libp_a-openclose.Po - -rm -f ./$(DEPDIR)/libp_a-printversion.Po - -rm -f ./$(DEPDIR)/main.Po - -rm -f ./$(DEPDIR)/openclose.Po - -rm -f ./$(DEPDIR)/printversion.Po - -rm -f ./$(DEPDIR)/setupvar.Po - -rm -f ./$(DEPDIR)/uexit.Po - -rm -f ./$(DEPDIR)/usage.Po - -rm -f ./$(DEPDIR)/version.Po - -rm -f ./$(DEPDIR)/zround.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-noinstLIBRARIES \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -@KPATHSEA_RULE@ - -# 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/Build/source/texk/web2c/lib/README b/Build/source/texk/web2c/lib/README deleted file mode 100644 index 8cd3761bef9..00000000000 --- a/Build/source/texk/web2c/lib/README +++ /dev/null @@ -1,2 +0,0 @@ -This directory contains the web2c library, just a few functions mostly -common to both the TeX programs and the web2c conversion itself. diff --git a/Build/source/texk/web2c/lib/alloca.c b/Build/source/texk/web2c/lib/alloca.c deleted file mode 100644 index 1e48c11c505..00000000000 --- a/Build/source/texk/web2c/lib/alloca.c +++ /dev/null @@ -1,504 +0,0 @@ -/* alloca.c -- allocate automatically reclaimed memory - (Mostly) portable public-domain implementation -- D A Gwyn - - This implementation of the PWB library alloca function, - which is used to allocate space off the run-time stack so - that it is automatically reclaimed upon procedure exit, - was inspired by discussions with J. Q. Johnson of Cornell. - J.Otto Tennant <jot@cray.com> contributed the Cray support. - - There are some preprocessor constants that can - be defined when compiling for your specific system, for - improved efficiency; however, the defaults should be okay. - - The general concept of this implementation is to keep - track of all alloca-allocated blocks, and reclaim any - that are found to be deeper in the stack than the current - invocation. This heuristic does not reclaim storage as - soon as it becomes invalid, but it will do so eventually. - - As a special case, alloca(0) reclaims storage without - allocating any. It is a good idea to use alloca(0) in - your main control loop, etc. to force garbage collection. */ - -#ifdef HAVE_CONFIG_H -#include <w2c/config.h> -#endif - -#ifdef HAVE_STRING_H -#include <string.h> -#endif -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - -#ifdef emacs -#include "blockinput.h" -#endif - -/* If compiling with GCC 2, this file's not needed. */ -#if !defined (__GNUC__) || __GNUC__ < 2 - -/* If someone has defined alloca as a macro, - there must be some other way alloca is supposed to work. */ -#ifndef alloca - -#ifdef emacs -#ifdef static -/* actually, only want this if static is defined as "" - -- this is for usg, in which emacs must undefine static - in order to make unexec workable - */ -#ifndef STACK_DIRECTION -you -lose --- must know STACK_DIRECTION at compile-time -#endif /* STACK_DIRECTION undefined */ -#endif /* static */ -#endif /* emacs */ - -/* If your stack is a linked list of frames, you have to - provide an "address metric" ADDRESS_FUNCTION macro. */ - -#if defined (CRAY) && defined (CRAY_STACKSEG_END) -long i00afunc (); -#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) -#else -#define ADDRESS_FUNCTION(arg) &(arg) -#endif - -#if __STDC__ -typedef void *pointer; -#else -typedef char *pointer; -#endif - -#ifndef NULL -#define NULL 0 -#endif - -/* Different portions of Emacs need to call different versions of - malloc. The Emacs executable needs alloca to call xmalloc, because - ordinary malloc isn't protected from input signals. On the other - hand, the utilities in lib-src need alloca to call malloc; some of - them are very simple, and don't have an xmalloc routine. - - Non-Emacs programs expect this to call use xmalloc. - - Callers below should use malloc. */ - -#ifndef emacs -#define malloc xmalloc -#endif -extern pointer malloc (); - -/* Define STACK_DIRECTION 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 */ - -#ifndef STACK_DIRECTION -#define STACK_DIRECTION 0 /* Direction unknown. */ -#endif - -#if STACK_DIRECTION != 0 - -#define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ - -#else /* STACK_DIRECTION == 0; need run-time code. */ - -static int stack_dir; /* 1 or -1 once known. */ -#define STACK_DIR stack_dir - -static void -find_stack_direction () -{ - static char *addr = NULL; /* Address of first `dummy', once known. */ - auto char dummy; /* To get stack address. */ - - if (addr == NULL) - { /* Initial entry. */ - addr = ADDRESS_FUNCTION (dummy); - - find_stack_direction (); /* Recurse once. */ - } - else - { - /* Second entry. */ - if (ADDRESS_FUNCTION (dummy) > addr) - stack_dir = 1; /* Stack grew upward. */ - else - stack_dir = -1; /* Stack grew downward. */ - } -} - -#endif /* STACK_DIRECTION == 0 */ - -/* An "alloca header" is used to: - (a) chain together all alloca'ed blocks; - (b) keep track of stack depth. - - It is very important that sizeof(header) agree with malloc - alignment chunk size. The following default should work okay. */ - -#ifndef ALIGN_SIZE -#define ALIGN_SIZE sizeof(double) -#endif - -typedef union hdr -{ - char align[ALIGN_SIZE]; /* To force sizeof(header). */ - struct - { - union hdr *next; /* For chaining headers. */ - char *deep; /* For stack depth measure. */ - } h; -} header; - -static header *last_alloca_header = NULL; /* -> last alloca header. */ - -/* Return a pointer to at least SIZE bytes of storage, - which will be automatically reclaimed upon exit from - the procedure that called alloca. Originally, this space - was supposed to be taken from the current stack frame of the - caller, but that method cannot be made to work for some - implementations of C, for example under Gould's UTX/32. */ - -pointer -alloca (size) - unsigned size; -{ - auto char probe; /* Probes stack depth: */ - register char *depth = ADDRESS_FUNCTION (probe); - -#if STACK_DIRECTION == 0 - if (STACK_DIR == 0) /* Unknown growth direction. */ - find_stack_direction (); -#endif - - /* Reclaim garbage, defined as all alloca'd storage that - was allocated from deeper in the stack than currently. */ - - { - register header *hp; /* Traverses linked list. */ - -#ifdef emacs - BLOCK_INPUT; -#endif - - for (hp = last_alloca_header; hp != NULL;) - if ((STACK_DIR > 0 && hp->h.deep > depth) - || (STACK_DIR < 0 && hp->h.deep < depth)) - { - register header *np = hp->h.next; - - free ((pointer) hp); /* Collect garbage. */ - - hp = np; /* -> next header. */ - } - else - break; /* Rest are not deeper. */ - - last_alloca_header = hp; /* -> last valid storage. */ - -#ifdef emacs - UNBLOCK_INPUT; -#endif - } - - if (size == 0) - return NULL; /* No allocation required. */ - - /* Allocate combined header + user data storage. */ - - { - register pointer newm = malloc (sizeof (header) + size); - /* Address of header. */ - - if (newm == 0) - abort(); - - ((header *) newm)->h.next = last_alloca_header; - ((header *) newm)->h.deep = depth; - - last_alloca_header = (header *) newm; - - /* User storage begins just after header. */ - - return (pointer) ((char *) newm + sizeof (header)); - } -} - -#if defined (CRAY) && defined (CRAY_STACKSEG_END) - -#ifdef DEBUG_I00AFUNC -#include <stdio.h> -#endif - -#ifndef CRAY_STACK -#define CRAY_STACK -#ifndef CRAY2 -/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ -struct stack_control_header - { - long shgrow:32; /* Number of times stack has grown. */ - long shaseg:32; /* Size of increments to stack. */ - long shhwm:32; /* High water mark of stack. */ - long shsize:32; /* Current size of stack (all segments). */ - }; - -/* The stack segment linkage control information occurs at - the high-address end of a stack segment. (The stack - grows from low addresses to high addresses.) The initial - part of the stack segment linkage control information is - 0200 (octal) words. This provides for register storage - for the routine which overflows the stack. */ - -struct stack_segment_linkage - { - long ss[0200]; /* 0200 overflow words. */ - long sssize:32; /* Number of words in this segment. */ - long ssbase:32; /* Offset to stack base. */ - long:32; - long sspseg:32; /* Offset to linkage control of previous - segment of stack. */ - long:32; - long sstcpt:32; /* Pointer to task common address block. */ - long sscsnm; /* Private control structure number for - microtasking. */ - long ssusr1; /* Reserved for user. */ - long ssusr2; /* Reserved for user. */ - long sstpid; /* Process ID for pid based multi-tasking. */ - long ssgvup; /* Pointer to multitasking thread giveup. */ - long sscray[7]; /* Reserved for Cray Research. */ - long ssa0; - long ssa1; - long ssa2; - long ssa3; - long ssa4; - long ssa5; - long ssa6; - long ssa7; - long sss0; - long sss1; - long sss2; - long sss3; - long sss4; - long sss5; - long sss6; - long sss7; - }; - -#else /* CRAY2 */ -/* The following structure defines the vector of words - returned by the STKSTAT library routine. */ -struct stk_stat - { - long now; /* Current total stack size. */ - long maxc; /* Amount of contiguous space which would - be required to satisfy the maximum - stack demand to date. */ - long high_water; /* Stack high-water mark. */ - long overflows; /* Number of stack overflow ($STKOFEN) calls. */ - long hits; /* Number of internal buffer hits. */ - long extends; /* Number of block extensions. */ - long stko_mallocs; /* Block allocations by $STKOFEN. */ - long underflows; /* Number of stack underflow calls ($STKRETN). */ - long stko_free; /* Number of deallocations by $STKRETN. */ - long stkm_free; /* Number of deallocations by $STKMRET. */ - long segments; /* Current number of stack segments. */ - long maxs; /* Maximum number of stack segments so far. */ - long pad_size; /* Stack pad size. */ - long current_address; /* Current stack segment address. */ - long current_size; /* Current stack segment size. This - number is actually corrupted by STKSTAT to - include the fifteen word trailer area. */ - long initial_address; /* Address of initial segment. */ - long initial_size; /* Size of initial segment. */ - }; - -/* The following structure describes the data structure which trails - any stack segment. I think that the description in 'asdef' is - out of date. I only describe the parts that I am sure about. */ - -struct stk_trailer - { - long this_address; /* Address of this block. */ - long this_size; /* Size of this block (does not include - this trailer). */ - long unknown2; - long unknown3; - long link; /* Address of trailer block of previous - segment. */ - long unknown5; - long unknown6; - long unknown7; - long unknown8; - long unknown9; - long unknown10; - long unknown11; - long unknown12; - long unknown13; - long unknown14; - }; - -#endif /* CRAY2 */ -#endif /* not CRAY_STACK */ - -#ifdef CRAY2 -/* Determine a "stack measure" for an arbitrary ADDRESS. - I doubt that "lint" will like this much. */ - -static long -i00afunc (long *address) -{ - struct stk_stat status; - struct stk_trailer *trailer; - long *block, size; - long result = 0; - - /* We want to iterate through all of the segments. The first - step is to get the stack status structure. We could do this - more quickly and more directly, perhaps, by referencing the - $LM00 common block, but I know that this works. */ - - STKSTAT (&status); - - /* Set up the iteration. */ - - trailer = (struct stk_trailer *) (status.current_address - + status.current_size - - 15); - - /* There must be at least one stack segment. Therefore it is - a fatal error if "trailer" is null. */ - - if (trailer == 0) - abort (); - - /* Discard segments that do not contain our argument address. */ - - while (trailer != 0) - { - block = (long *) trailer->this_address; - size = trailer->this_size; - if (block == 0 || size == 0) - abort (); - trailer = (struct stk_trailer *) trailer->link; - if ((block <= address) && (address < (block + size))) - break; - } - - /* Set the result to the offset in this segment and add the sizes - of all predecessor segments. */ - - result = address - block; - - if (trailer == 0) - { - return result; - } - - do - { - if (trailer->this_size <= 0) - abort (); - result += trailer->this_size; - trailer = (struct stk_trailer *) trailer->link; - } - while (trailer != 0); - - /* We are done. Note that if you present a bogus address (one - not in any segment), you will get a different number back, formed - from subtracting the address of the first block. This is probably - not what you want. */ - - return (result); -} - -#else /* not CRAY2 */ -/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. - Determine the number of the cell within the stack, - given the address of the cell. The purpose of this - routine is to linearize, in some sense, stack addresses - for alloca. */ - -static long -i00afunc (long address) -{ - long stkl = 0; - - long size, pseg, this_segment, stack; - long result = 0; - - struct stack_segment_linkage *ssptr; - - /* Register B67 contains the address of the end of the - current stack segment. If you (as a subprogram) store - your registers on the stack and find that you are past - the contents of B67, you have overflowed the segment. - - B67 also points to the stack segment linkage control - area, which is what we are really interested in. */ - - stkl = CRAY_STACKSEG_END (); - ssptr = (struct stack_segment_linkage *) stkl; - - /* If one subtracts 'size' from the end of the segment, - one has the address of the first word of the segment. - - If this is not the first segment, 'pseg' will be - nonzero. */ - - pseg = ssptr->sspseg; - size = ssptr->sssize; - - this_segment = stkl - size; - - /* It is possible that calling this routine itself caused - a stack overflow. Discard stack segments which do not - contain the target address. */ - - while (!(this_segment <= address && address <= stkl)) - { -#ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); -#endif - if (pseg == 0) - break; - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - this_segment = stkl - size; - } - - result = address - this_segment; - - /* If you subtract pseg from the current end of the stack, - you get the address of the previous stack segment's end. - This seems a little convoluted to me, but I'll bet you save - a cycle somewhere. */ - - while (pseg != 0) - { -#ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o\n", pseg, size); -#endif - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - result += size; - } - return (result); -} - -#endif /* not CRAY2 */ -#endif /* CRAY */ - -#endif /* no alloca */ -#endif /* not GCC version 2 */ diff --git a/Build/source/texk/web2c/lib/basechsuffix.c b/Build/source/texk/web2c/lib/basechsuffix.c deleted file mode 100644 index cd17d5c45ac..00000000000 --- a/Build/source/texk/web2c/lib/basechsuffix.c +++ /dev/null @@ -1,43 +0,0 @@ -/* basechsuffix.c: replace the last bit of a filename with something else. - - Written in 1995 by Karl Berry. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -/* Return the basename of NAME, with trailing characters OLD replaced by - NEW. (If last characters in NAME are not OLD, just append NEW.) - Since this is used to turn, e.g., foo/cmr10.300pk -> cmr10.300gf, - don't assume a `.' preceding OLD or NEW. - - In other words, we're implementing `basename NAME OLD`NEW. */ - -string -basenamechangesuffix (const_string name, const_string old_suffix, - const_string new_suffix) -{ - string answer; - unsigned c; - const_string base = xbasename (name); - unsigned base_len = strlen (base); - unsigned copy_limit = base_len; - unsigned old_suffix_len = strlen (old_suffix); - - if (old_suffix_len <= base_len) { - for (c = 0; c < old_suffix_len; c++) { - if (!FILECHARCASEEQ (old_suffix[old_suffix_len - c - 1], - base[base_len - c - 1])) - break; - } - if (c == old_suffix_len) { - copy_limit -= old_suffix_len; - } - } - - answer = xmalloc (copy_limit + strlen (new_suffix) + 1); - strncpy (answer, base, copy_limit); - answer[copy_limit] = 0; - strcat (answer, new_suffix); - - return answer; -} diff --git a/Build/source/texk/web2c/lib/chartostring.c b/Build/source/texk/web2c/lib/chartostring.c deleted file mode 100644 index 7b34e694241..00000000000 --- a/Build/source/texk/web2c/lib/chartostring.c +++ /dev/null @@ -1,23 +0,0 @@ -/* chartostring.c: change a character (i.e., an integer) to a - one-character string. - -Written in 1994 by Karl Berry. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -/* This is needed because web2c turns the Pascal construct 'x' into the - C character constant 'x', not the string "x". And we need to keep it - that way because that's how xord is initialized, etc. But sometimes - we want one-character strings -- e.g., in tangle.ch and weave.ch. - There's no real alternative to wasting the two bytes of memory (plus - malloc overhead) here, but it doesn't matter. */ - -string -chartostring (char ch) -{ - string str = xmalloc (2); - str[0] = ch; - str[1] = 0; - return str; -} diff --git a/Build/source/texk/web2c/lib/coredump.c b/Build/source/texk/web2c/lib/coredump.c deleted file mode 100644 index cf883bf7166..00000000000 --- a/Build/source/texk/web2c/lib/coredump.c +++ /dev/null @@ -1,58 +0,0 @@ -/* coredump.c. Public domain. - - This procedure is due to Chris Torek, chris@umd.edu. It makes a core - dump without any sort of error status (abort(2) does return an error - status, so we don't want to use that). It is used only when making a - preloaded TeX from virtex, and is triggered by a magic file name - requested as input (see `open_input', above). Finding a way to - reconstitute the core dump into a binary (i.e., with undump) is up to - you. Perl has some things to say about these days. */ - -#include <w2c/config.h> - -/* Do not try to compile this Unix-y unportable stuff unless it's needed. */ - -#ifdef FUNNY_CORE_DUMP -#include <signal.h> -#include <sys/wait.h> - -void -funny_core_dump (void) -{ -#ifdef __EMX__ - { - int handle = open ("core", O_WRONLY | O_CREAT | O_TRUNC | O_BINARY); - if (handle >= 0 && _core (handle) == 0) - exit (0); - (void) write (2, "attempt to dump core failed\n", 28); - exit (1); - } -#else /* !__EMX__ */ - int pid, w; - union wait status; - - switch (pid = fork ()) - { - case -1: /* failed */ - perror ("vfork"); - exit (-1); - /*NOTREACHED*/ - - case 0: /* child */ - (void) signal (SIGQUIT, SIG_DFL); - (void) kill (getpid (), SIGQUIT); - (void) write (2, "how did we get here?\n", 21); - _exit (1); - /*NOTREACHED*/ - - default: /* parent */ - while ((w = wait (&status)) != pid && w != -1) - ; - if (status.w_coredump) - exit (0); - (void) write (2, "attempt to dump core failed\n", 28); - exit (1); - } -#endif /* not __EMX__ */ -} -#endif /* FUNNY_CORE_DUMP */ diff --git a/Build/source/texk/web2c/lib/eofeoln.c b/Build/source/texk/web2c/lib/eofeoln.c deleted file mode 100644 index 1930df9051a..00000000000 --- a/Build/source/texk/web2c/lib/eofeoln.c +++ /dev/null @@ -1,65 +0,0 @@ -/* eofeoln.c: implement Pascal's ideas for end-of-file and end-of-line - testing. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -/* Return true if we're at the end of FILE, else false. This implements - Pascal's `eof' builtin. */ - -boolean -eof (FILE *file) -{ - register int c; - - /* If FILE doesn't exist, return true. This happens, for example, - when a user does `mft foo.mf' -- there's no change file, - so we never open it, so we end up calling this with a null pointer. */ - if (!file) - return true; - - /* Maybe we're already at the end? */ - if (feof (file)) - return true; - - if ((c = getc (file)) == EOF) - return true; - - /* We weren't at the end. Back up. */ - (void) ungetc (c, file); - - return false; -} - - -/* Return true on end-of-line in FILE or at the end of FILE, else false. */ -/* Accept both CR and LF as end-of-line. */ - -boolean -eoln (FILE *file) -{ - register int c; - - if (feof (file)) - return true; - - c = getc (file); - - if (c != EOF) - (void) ungetc (c, file); - - return c == '\n' || c == '\r' || c == EOF; -} - -/* Consume input up and including the first eol encountered. */ -/* Handle CRLF as a single end-of-line. */ - -void -readln (FILE *f) -{ - int c; - while ((c = getc (f)) != '\n' && c != '\r' && c != EOF) - ; - if (c == '\r' && (c = getc (f)) != '\n' && c != EOF) - ungetc (c, f); -} diff --git a/Build/source/texk/web2c/lib/fprintreal.c b/Build/source/texk/web2c/lib/fprintreal.c deleted file mode 100644 index c65e4b277ff..00000000000 --- a/Build/source/texk/web2c/lib/fprintreal.c +++ /dev/null @@ -1,15 +0,0 @@ -/* fprintreal.c: print the real number R in the Pascal format N:M on the - file F. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -void -fprintreal (FILE *f, double r, int n, int m) -{ - char fmt[50]; /* Surely enough, since N and M won't be more than 25 - digits each! */ - - sprintf (fmt, "%%%d.%dlf", n, m); - fprintf (f, fmt, r); -} diff --git a/Build/source/texk/web2c/lib/input2int.c b/Build/source/texk/web2c/lib/input2int.c deleted file mode 100644 index 5bd42016b4e..00000000000 --- a/Build/source/texk/web2c/lib/input2int.c +++ /dev/null @@ -1,48 +0,0 @@ -/* input2int.c: read two or three integers from text files. These - routines are only used in patgen. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -#ifdef INTEGER_IS_INT -#define SCAN2INT "%d %d" -#define SCAN3INT "%d %d %d" -#else -#define SCAN2INT "%ld %ld" -#define SCAN3INT "%ld %ld %ld" -#endif - -/* Read two integers from stdin. */ - -void -zinput2ints (integer *a, integer *b) -{ - int ch; - - while (scanf (SCAN2INT, a, b) != 2) - { - while ((ch = getchar ()) != EOF && ch != '\n'); - if (ch == EOF) return; - fprintf (stderr, "Please enter two integers.\n"); - } - - while ((ch = getchar ()) != EOF && ch != '\n'); -} - - -/* Read three integers from stdin. */ - -void -zinput3ints (integer *a, integer *b, integer *c) -{ - int ch; - - while (scanf (SCAN3INT, a, b, c) != 3) - { - while ((ch = getchar ()) != EOF && ch != '\n'); - if (ch == EOF) return; - fprintf (stderr, "Please enter three integers.\n"); - } - - while ((ch = getchar ()) != EOF && ch != '\n'); -} diff --git a/Build/source/texk/web2c/lib/inputint.c b/Build/source/texk/web2c/lib/inputint.c deleted file mode 100644 index d27bb6a148c..00000000000 --- a/Build/source/texk/web2c/lib/inputint.c +++ /dev/null @@ -1,20 +0,0 @@ -/* inputint.c: read integers from text files. These routines are only - used for debugging and such, so perfect error checking isn't - necessary. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -/* Read an integer from the file F, reading past the subsequent end of - line. */ - -integer -inputint (FILE *f) -{ - char buffer[MAX_INT_LENGTH]; /* Long enough for anything reasonable. */ - - return - fgets (buffer, sizeof (buffer), f) - ? atoi (buffer) - : 0; -} diff --git a/Build/source/texk/web2c/lib/lib.h b/Build/source/texk/web2c/lib/lib.h deleted file mode 100644 index 366af21485a..00000000000 --- a/Build/source/texk/web2c/lib/lib.h +++ /dev/null @@ -1,73 +0,0 @@ -/* lib.h: declare prototypes for functions in lib.a. - Public domain. */ - -#ifndef LIB_LIB_H -#define LIB_LIB_H - -/* basechsuffix.c */ -extern string basenamechangesuffix (const_string, const_string, const_string); - -/* chartostring.c */ -extern string chartostring (char); - -/* eofeoln.c */ -/* - * definition of eof() contradicts corecrt_io.h in Visual Studio 2019. - * - */ -#if defined(_MSC_VER) && _MSC_VER > 1916 -#define eof(x) myeof(x) -#endif /* _MSC_VER */ -extern boolean eof (FILE *); -extern boolean eoln (FILE *); -extern void readln (FILE *); - -/* fprintreal.c */ -extern void fprintreal (FILE *, double, int, int); - -/* inputint.c */ -extern integer inputint (FILE *); - -/* input2int.c */ -extern void zinput2ints (integer *, integer *); -extern void zinput3ints (integer *, integer *, integer *); - -/* main.c (or win32main.c or texmfmp.c) */ -#ifndef NOT_WEB2C -/* Only used in Web2C programs and possibly harmful otherwise. */ -extern int argc; -extern string *argv; -extern string cmdline (int); -extern void mainbody (void); /* generated by web2c */ -#endif - -/* openclose.c */ -extern boolean open_input (FILE **, int, const_string fopen_mode); -extern boolean open_output (FILE **, const_string fopen_mode); -extern boolean open_input_with_dirname (FILE **, int, const char *); -extern void close_file (FILE *); -extern void recorder_change_filename (string); -extern void recorder_record_input (const_string); -extern void recorder_record_output (const_string); - -extern string fullnameoffile; -extern boolean recorder_enabled; -extern string output_directory; - -/* printversion.c */ -extern void printversionandexit (const_string, const_string, const_string, const_string); - -/* setupvar.c */ -/* Set an array size from texmf.cnf. */ -extern void setupboundvariable (integer *, const_string, integer); - -/* texmfmp.c */ -extern boolean texmf_yesno(const_string); - -/* version.c */ -extern const char *versionstring; - -/* zround.c */ -extern integer zround (double); - -#endif /* not LIB_LIB_H */ diff --git a/Build/source/texk/web2c/lib/main.c b/Build/source/texk/web2c/lib/main.c deleted file mode 100644 index d3f5a45aa43..00000000000 --- a/Build/source/texk/web2c/lib/main.c +++ /dev/null @@ -1,45 +0,0 @@ -/* main.c -- the main program for everything but TeX & MF. */ -/* Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -/* These variables are referenced from the change files. */ -char **argv; -int argc; - -/* The entry point for all the programs except TeX and Metafont, which - have more to do. We just have to set up the command line. web2c - transforms Pascal's main block into a procedure `main_body'. */ -int -main (int ac, string* av) -{ -#ifdef __EMX__ - _wildcard (&ac, &av); - _response (&ac, &av); -#endif - -#ifdef WIN32 - _setmaxstdio(2048); -#endif - - argc = ac; - argv = av; - mainbody (); - return EXIT_SUCCESS; -} - - -/* Return the Nth (counted as in C) argument from the command line. */ - -string -cmdline (int n) -{ - if (n >= argc) - { /* This error message should never happen, because the callers - should always check they've got the arguments they expect. */ - fprintf (stderr, "%s: Oops; not enough arguments.\n", argv[0]); - uexit (1); - } - return argv[n]; -} diff --git a/Build/source/texk/web2c/lib/mfmpi386.asm b/Build/source/texk/web2c/lib/mfmpi386.asm deleted file mode 100644 index cc356d5f825..00000000000 --- a/Build/source/texk/web2c/lib/mfmpi386.asm +++ /dev/null @@ -1,145 +0,0 @@ -/* i386 assembly routines for inner loop fraction routines in Metafont - and MetaPost. Public domain. Included in texmfmp.c. - By Wayne Sullivan <wgs@maths.ucd.ie>. */ - -asm(".text\n" -" .align 4\n" -#ifdef ASM_NEEDS_UNDERSCORE -".globl _ztakefraction\n" -"_ztakefraction:\n" -#else -".globl ztakefraction\n" -"ztakefraction:\n" -#endif -" pushl %ebp\n" -" movl %esp,%ebp\n" -" xorl %ecx,%ecx\n" -" movl 8(%ebp),%eax\n" -" cmpl $0x80000000,%eax\n" -" jz LL5\n" -" imull 12(%ebp)\n" -" orl %edx,%edx\n" -" jns LL2\n" -" negl %edx\n" -" negl %eax\n" -" sbbl %ecx,%edx\n" -" incl %ecx\n" -"LL2:\n" -" addl $0x08000000,%eax\n" -" adcl $0,%edx\n" -" cmpl $0x07ffffff,%edx\n" -" ja LL3\n" -" shrd $28, %edx,%eax\n" -"LL1: jecxz LL4\n" -" negl %eax\n" -"LL4:\n" -" movl %ebp,%esp\n" -" popl %ebp\n" -" ret\n" -"LL5: incl %ecx\n" -"LL3: movl $0x7fffffff,%eax\n" -#ifdef ASM_NEEDS_UNDERSCORE -" movb $1,_aritherror\n" -#else -" movb $1,aritherror\n" -#endif -" jmp LL1\n" -" .align 4, 0x90\n" -#ifdef ASM_NEEDS_UNDERSCORE -".globl _ztakescaled\n" -"_ztakescaled:\n" -#else -".globl ztakescaled\n" -"ztakescaled:\n" -#endif -" pushl %ebp\n" -" movl %esp,%ebp\n" -" movl 8(%ebp),%eax\n" -" xorl %ecx,%ecx\n" -" cmpl $0x80000000,%eax\n" -" jz LL5\n" -" imull 12(%ebp)\n" -" orl %edx,%edx\n" -" jns LL12\n" -" negl %edx\n" -" negl %eax\n" -" sbbl %ecx,%edx\n" -" incl %ecx\n" -"LL12:\n" -" addl $0x00008000,%eax\n" -" adcl $0,%edx\n" -" cmpl $0x00007fff,%edx\n" -" ja LL3\n" -" shrd $16, %edx,%eax\n" -" jecxz LL4\n" -" negl %eax\n" -" jmp LL4\n" -" .align 4, 0x90\n" -#ifdef ASM_NEEDS_UNDERSCORE -".globl _zmakescaled\n" -".globl _zmakefraction\n" -"_zmakescaled:\n" -#else -".globl zmakescaled\n" -".globl zmakefraction\n" -"zmakescaled:\n" -#endif -" movb $16,%cl\n" -" jmp LL30\n" -" .align 4, 0x90\n" -#ifdef ASM_NEEDS_UNDERSCORE -"_zmakefraction:\n" -#else -"zmakefraction:\n" -#endif -" movb $4,%cl\n" -"LL30:\n" -" movb $0,%ch\n" -" pushl %ebp\n" -" movl %esp,%ebp\n" -" pushl %ebx\n" -" movl 8(%ebp),%edx\n" -" xorl %eax,%eax\n" -" orl %edx,%edx\n" -" jns LL32\n" -" inc %ch\n" -" negl %edx\n" -"LL32:\n" -" movl 12(%ebp),%ebx\n" -" orl %ebx,%ebx\n" -" jns LL33\n" -" dec %ch\n" -" negl %ebx\n" -" orl %ebx,%ebx\n" -" js LL34\n" -"LL33:\n" -" orl %edx,%edx\n" -" js LL34\n" -" shrd %cl,%edx,%eax\n" -" shrl %cl,%edx\n" -" cmpl %ebx,%edx\n" -" jae LL34\n" -" divl %ebx\n" -" addl %edx,%edx\n" -" incl %edx\n" -" subl %edx,%ebx\n" -" adcl $0,%eax\n" -" jc LL34\n" -" cmpl $0x7fffffff,%eax\n" -" ja LL34\n" -"LL31: or %ch,%ch\n" -" jz LL35\n" -" negl %eax\n" -"LL35:\n" -" popl %ebx\n" -" movl %ebp,%esp\n" -" popl %ebp\n" -" ret\n" -"LL34: movl $0x7fffffff,%eax\n" -#ifdef ASM_NEEDS_UNDERSCORE -" movb $1,_aritherror\n" -#else -" movb $1,aritherror\n" -#endif -" jmp LL31\n"); - diff --git a/Build/source/texk/web2c/lib/mfmpw32.c b/Build/source/texk/web2c/lib/mfmpw32.c deleted file mode 100644 index de065fd96e2..00000000000 --- a/Build/source/texk/web2c/lib/mfmpw32.c +++ /dev/null @@ -1,189 +0,0 @@ -/* i386 assembly routines for inner loop fraction routines in Metafont - and MetaPost. Included from texmfmp.c. By Wayne Sullivan - <wgs@maths.ucd.ie>. */ - -/* - Converted to inline assembler for Visual C++ [45].xx - by Fabrice Popineau <Fabrice.Popineau@supelec.fr> */ - -__declspec(naked) fraction __stdcall ztakefraction(integer p, integer q) { -__asm { - push ebp - mov ebp,esp - xor ecx,ecx - mov eax, p -; mov eax, [ebp+8] - cmp eax, 0x80000000 - jz LL5 - imul q - or edx,edx - jns LL2 - neg edx - neg eax - sbb edx, ecx - inc ecx -LL2: - add eax, 0x08000000 - adc edx, 0 - cmp edx, 0x07ffffff - ja LL3 - shrd eax,edx,28 -LL1: - jecxz LL4 - neg eax -LL4: - mov esp,ebp - pop ebp - ret 8 -LL5: - inc ecx -LL3: - mov eax, 0x7fffffff - mov aritherror, 1 - jmp LL1 -} -} - -__declspec(naked) integer __stdcall ztakescaled(integer p, scaled q) { -__asm { - push ebp - mov ebp,esp -; mov eax, [ebp+8] - xor ecx,ecx - mov eax, p - cmp eax, 0x80000000 - jz LL5 - imul q - or edx,edx - jns LL12 - neg edx - neg eax - sbb edx,ecx - inc ecx -LL12: - add eax, 0x00008000 - adc edx, 0x0 - cmp edx, 0x00007fff - ja LL3 - shrd eax,edx,16 -LL1: - jecxz LL4 - neg eax -LL4: - mov esp,ebp - pop ebp - ret 8 -LL5: - inc ecx -LL3: - mov eax, 0x7fffffff - mov aritherror, 1 - jmp LL1 - } -} - -__declspec(naked) scaled __stdcall zmakescaled(integer p, integer q) { - __asm { - mov cx, 16 - push ebp - mov ebp,esp - push ebx -; mov edx, [ebp+8] - mov edx, p - xor eax,eax - or edx,edx - jns LL32 - inc ch - neg edx -LL32: -; mov ebx, [ebp+12] - mov ebx,q - or ebx,ebx - jns LL33 - dec ch - neg ebx - or ebx,ebx - js LL34 -LL33: - or edx,edx - js LL34 - shrd eax,edx,cl - shr edx,cl - cmp edx,ebx - jae LL34 - div ebx - add edx,edx - inc edx - sub ebx,edx - adc eax, 0 - jc LL34 - cmp eax, 0x7fffffff - ja LL34 -LL31: or ch,ch - jz LL35 - neg eax -LL35: - pop ebx - mov esp, ebp - pop ebp - ret 8 -LL34: - mov eax, 0x7fffffff - mov aritherror, 1 - jmp LL31 - } -} - -__declspec(naked) fraction __stdcall zmakefraction(integer p, integer q) { - __asm { - mov cx, 4 - push ebp - mov ebp,esp - push ebx - mov edx, p -; mov [ebp+8],edx - xor eax,eax - or edx,edx - jns LL32 - inc ch - neg edx -LL32: -; mov [ebp+12],ebx - mov ebx, q - or ebx,ebx - jns LL33 - dec ch - neg ebx - or ebx,ebx - js LL34 -LL33: - or edx,edx - js LL34 - shrd eax,edx, cl - shr edx,cl - cmp edx,ebx - jae LL34 - div ebx - add edx,edx - inc edx - sub ebx,edx - adc eax, 0 - jc LL34 - cmp eax, 0x7fffffff - ja LL34 -LL31: or ch,ch - jz LL35 - neg eax -LL35: - pop ebx - mov esp, ebp - pop ebp - ret 8 -LL34: - mov eax, 0x7fffffff - mov aritherror, 1 - jmp LL31 - } -} - - diff --git a/Build/source/texk/web2c/lib/openclose.c b/Build/source/texk/web2c/lib/openclose.c deleted file mode 100644 index 63fa0393528..00000000000 --- a/Build/source/texk/web2c/lib/openclose.c +++ /dev/null @@ -1,471 +0,0 @@ -/* openclose.c: open and close files for TeX, Metafont, and BibTeX. - - Written 1995 Karl Berry. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" -#include <kpathsea/c-pathch.h> -#include <kpathsea/tex-file.h> -#include <kpathsea/variable.h> -#include <kpathsea/absolute.h> -#ifdef PTEX -#include <ptexenc/ptexenc.h> -#endif - -#ifdef _WIN32 -static int fsyscp_remove(char *s) -{ - wchar_t *sw = NULL; - int ret; - - if(!file_system_codepage) - return remove(s); - - sw = get_wstring_from_fsyscp(s, sw); - ret = _wremove(sw); - if(sw) free(sw); - return ret; -} - -static int fsyscp_rename(char *s1, char *s2) -{ - wchar_t *sw1 = NULL, *sw2 = NULL; - int ret; - - if(!file_system_codepage) - return rename(s1, s2); - - sw1 = get_wstring_from_fsyscp(s1, sw1); - sw2 = get_wstring_from_fsyscp(s2, sw2); - ret = _wrename(sw1, sw2); - if(sw1) free(sw1); - if(sw2) free(sw2); - return ret; -} - -FILE *f_fsyscp_fopen(const char *filename, const char *mode) -{ - if(!file_system_codepage) - return fopen(filename, mode); - - return fsyscp_fopen(filename, mode); -} - -FILE *f_fsyscp_xfopen(const char *filename, const char *mode) -{ - if(!file_system_codepage) - return xfopen(filename, mode); - - return fsyscp_xfopen(filename, mode); -} -#undef fopen -#undef xfopen -#define fopen f_fsyscp_fopen -#define xfopen f_fsyscp_xfopen -#define rename fsyscp_rename -#define remove fsyscp_remove -#endif /* _WIN32 */ - -/* The globals we use to communicate. */ -extern string nameoffile; -extern unsigned namelength; - -/* Define some variables. */ -/* For "file:line:error" style error messages. */ -string fullnameoffile; /* Defaults to NULL. */ -static string recorder_name; /* Defaults to NULL. */ -static FILE *recorder_file; /* Defaults to NULL. */ -/* For the filename recorder. */ -boolean recorder_enabled; /* Defaults to false. */ -/* For the output-dir option. */ -string output_directory; /* Defaults to NULL. */ - -/* For TeX and MetaPost. See below. Always defined so we don't have to - #ifdef, and thus this file can be compiled once and go in lib.a. */ -int tfmtemp; -int ocptemp; -int texinputtype; - -/* Helpers for the filename recorder... */ -/* Start the recorder */ -static void -recorder_start(void) -{ - /* Alas, while we'd like to use mkstemp it is not portable, - and doing the autoconfiscation (and providing fallbacks) is more - than we want to cope with. So we have to be content with using a - default name. Throw in the pid so at least parallel builds might - work (Debian bug 575731). */ - string cwd; - char pid_str[MAX_INT_LENGTH]; - - /* Windows (MSVC) seems to have no pid_t, so instead of storing the - value returned by getpid() we immediately consume it. */ - sprintf (pid_str, "%ld", (long) getpid()); - recorder_name = concat3(kpse_program_name, pid_str, ".fls"); - - /* If an output directory was specified, use it instead of cwd. */ - if (output_directory) { - string temp = concat3(output_directory, DIR_SEP_STRING, recorder_name); - free(recorder_name); - recorder_name = temp; - } - - recorder_file = xfopen(recorder_name, FOPEN_W_MODE); - - cwd = xgetcwd(); - fprintf(recorder_file, "PWD %s\n", cwd); - free(cwd); -} - -/* Change the name of the recorder file after we know the log file to - the usual thing -- no pid integer and the document file name instead - of the program name. Unfortunately, we have to explicitly take - -output-directory into account (again), since the NEW_NAME we are - called with does not; it is just the log file name with .log replaced - by .fls. */ - -void -recorder_change_filename (string new_name) -{ - string temp = NULL; - - if (!recorder_file) - return; - - /* On windows, an opened file cannot be renamed. */ -#if defined(_WIN32) - fclose (recorder_file); -#endif /* _WIN32 */ - - /* If an output directory was specified, use it. */ - if (output_directory) { - temp = concat3(output_directory, DIR_SEP_STRING, new_name); - new_name = temp; - } - - /* On windows, renaming fails if a file with new_name exists. */ -#if defined(_WIN32) - remove (new_name); -#endif /* _WIN32 */ - - rename(recorder_name, new_name); - free(recorder_name); - recorder_name = xstrdup(new_name); - - /* reopen the recorder file by FOPEN_A_MODE. */ -#if defined(_WIN32) - recorder_file = xfopen (recorder_name, FOPEN_A_MODE); -#endif /* _WIN32 */ - - if (temp) - free (temp); -} - -/* helper for recorder_record_* */ -static void -recorder_record_name (const_string prefix, const_string name) -{ - if (recorder_enabled) { - if (!recorder_file) - recorder_start(); - fprintf(recorder_file, "%s %s\n", prefix, name); - fflush(recorder_file); - } -} - -/* record an input file name */ -void -recorder_record_input (const_string name) -{ - recorder_record_name ("INPUT", name); -} - -/* record an output file name */ -void -recorder_record_output (const_string name) -{ - recorder_record_name ("OUTPUT", name); -} - -/* Open input file *F_PTR, using the kpathsea format FILEFMT and passing - FOPEN_MODE to fopen. The filename is in `nameoffile+1'. We return - whether or not the open succeeded. If it did, `nameoffile' is set to - the full filename opened, and `namelength' to its length. */ - -boolean -open_input (FILE **f_ptr, int filefmt, const_string fopen_mode) -{ - string fname = NULL; -#if defined(PTEX) && !defined(WIN32) - string fname0; -#endif -#ifdef FUNNY_CORE_DUMP - /* This only applies if a preloaded TeX/Metafont is being made; - it allows automatic creation of the core dump (typing ^\ loses - since that requires manual intervention). */ - if ((filefmt == kpse_tex_format || filefmt == kpse_mf_format - || filefmt == kpse_mp_format) - && STREQ (nameoffile + 1, "HackyInputFileNameForCoreDump.tex")) - funny_core_dump (); -#endif - - /* We havent found anything yet. */ - *f_ptr = NULL; - if (fullnameoffile) - free(fullnameoffile); - fullnameoffile = NULL; - - /* Look in -output-directory first, if the filename is not - absolute. This is because .aux and other such files will get - written to the output directory, and we have to be able to read - them from there. We only look for the name as-is. */ - -#if defined(PTEX) && !defined(WIN32) - fname0 = ptenc_from_internal_enc_string_to_utf8(nameoffile + 1); - if (fname0) { - free (nameoffile); - namelength = strlen (fname0); - nameoffile = xmalloc (namelength + 2); - strcpy (nameoffile + 1, fname0); - free (fname0); - } -#endif - if (output_directory && !kpse_absolute_p (nameoffile+1, false)) { - fname = concat3 (output_directory, DIR_SEP_STRING, nameoffile + 1); - *f_ptr = fopen (fname, fopen_mode); -#if !defined(_WIN32) -/* - if fname is a directory, discard it. -*/ - if (*f_ptr && dir_p (fname)) { - fclose (*f_ptr); - *f_ptr = NULL; - } -#endif - if (*f_ptr) { -#if defined(PTEX) && !defined(WIN32) - fname0 = ptenc_from_utf8_string_to_internal_enc(fname); - if (fname0) { - free (fname); - fname = fname0; - } -#endif - free (nameoffile); - namelength = strlen (fname); - nameoffile = xmalloc (namelength + 2); - strcpy (nameoffile + 1, fname); - fullnameoffile = fname; - } else { - free (fname); - } - } - - /* No file means do the normal search. */ - if (*f_ptr == NULL) { - /* A negative FILEFMT means don't use a path. */ - if (filefmt < 0) { - /* no_file_path, for BibTeX .aux files and MetaPost things. */ - *f_ptr = fopen(nameoffile + 1, fopen_mode); - /* FIXME... fullnameoffile = xstrdup(nameoffile + 1); */ - } else { - /* The only exception to `must_exist' being true is \openin, for - which we set `tex_input_type' to 0 in the change file. */ - /* According to the pdfTeX people, pounding the disk for .vf files - is overkill as well. A more general solution would be nice. */ - boolean must_exist; - must_exist = (filefmt != kpse_tex_format || texinputtype) - && (filefmt != kpse_vf_format); - fname = kpse_find_file (nameoffile + 1, - (kpse_file_format_type)filefmt, - must_exist); - if (fname) { - fullnameoffile = xstrdup(fname); - /* If we found the file in the current directory, don't leave - the `./' at the beginning of `nameoffile', since it looks - dumb when `tex foo' says `(./foo.tex ... )'. On the other - hand, if the user said `tex ./foo', and that's what we - opened, then keep it -- the user specified it, so we - shouldn't remove it. */ - if (fname[0] == '.' && IS_DIR_SEP (fname[1]) - && (nameoffile[1] != '.' || !IS_DIR_SEP (nameoffile[2]))) - { - unsigned i = 0; - while (fname[i + 2] != 0) { - fname[i] = fname[i + 2]; - i++; - } - fname[i] = 0; - } - - /* This fopen is not allowed to fail. */ -#if defined(PTEX) && !defined(WIN32) - if (filefmt == kpse_tex_format || - filefmt == kpse_bib_format) { - *f_ptr = nkf_open (fname, fopen_mode); - } else -#endif - *f_ptr = xfopen (fname, fopen_mode); - - /* kpse_find_file always returns a new string. */ -#if defined(PTEX) && !defined(WIN32) - fname0 = ptenc_from_utf8_string_to_internal_enc(fname); - if (fname0) { - free (fname); - fname = fname0; - } -#endif - free (nameoffile); - namelength = strlen (fname); - nameoffile = xmalloc (namelength + 2); - strcpy (nameoffile + 1, fname); - free (fname); - } - } - } - - if (*f_ptr) { - recorder_record_input (nameoffile + 1); - - /* If we just opened a TFM file, we have to read the first - byte, to pretend we're Pascal. See tex.ch and mp.ch. - Ditto for the ocp/ofm Omega file formats. */ - if (filefmt == kpse_tfm_format) { - tfmtemp = getc (*f_ptr); - /* We intentionally do not check for EOF here, i.e., an - empty TFM file. TeX will see the 255 byte and complain - about a bad TFM file, which is what we want. */ - } else if (filefmt == kpse_ocp_format) { - ocptemp = getc (*f_ptr); - } else if (filefmt == kpse_ofm_format) { - tfmtemp = getc (*f_ptr); - } - } - - return *f_ptr != NULL; -} - - -/* Open input file *F_PTR (of type FILEFMT), prepending the directory - part of the string FNAME to `nameoffile'+1, unless that is already - kpse_absolute_p. This is called from BibTeX, to open subsidiary .aux - files, with FNAME set to the top-level aux file. The idea is that if - we're invoked as bibtex somedir/foo.aux, and foo.aux has an - \@input{bar} statement, we should look for somedir/bar.aux too. (See - bibtex-auxinclude.test.) */ - -boolean -open_input_with_dirname (FILE **f_ptr, int filefmt, const char *fname) -{ - boolean ret = false; - char *top_dir = xdirname (fname); - - if (top_dir && *top_dir && !STREQ (top_dir, ".") - && !kpse_absolute_p (nameoffile+1, true)) { - char *newname = concat3 (top_dir, DIR_SEP_STRING, nameoffile+1); - free (nameoffile); - nameoffile = xmalloc (strlen (newname) + 2); - strcpy (nameoffile + 1, newname); - ret = open_input (f_ptr, filefmt, FOPEN_RBIN_MODE); - free (newname); - } - - free (top_dir); - return ret; -} - - -/* Open an output file F either in the current directory or in - $TEXMFOUTPUT/F, if the environment variable `TEXMFOUTPUT' exists. - (Actually, this also applies to the BibTeX and MetaPost output files, - but `TEXMFMPBIBOUTPUT' was just too long.) The filename is in the - global `nameoffile' + 1. We return whether or not the open - succeeded. If it did, `nameoffile' is reset to the name opened if - necessary, and `namelength' to its length. */ - -boolean -open_output (FILE **f_ptr, const_string fopen_mode) -{ - string fname; -#if defined(PTEX) && !defined(WIN32) - string fname0; -#endif - boolean absolute = kpse_absolute_p(nameoffile+1, false); - - /* If we have an explicit output directory, use it. */ - if (output_directory && !absolute) { - fname = concat3(output_directory, DIR_SEP_STRING, nameoffile + 1); - } else { - fname = nameoffile + 1; - } -#if defined(PTEX) && !defined(WIN32) - fname0 = ptenc_from_internal_enc_string_to_utf8(fname); - if (fname0) { - if (fname != nameoffile + 1) free(fname); - fname = fname0; - } -#endif - - /* Is the filename openable as given? */ - *f_ptr = fopen (fname, fopen_mode); - - if (!*f_ptr) { - /* Can't open as given. Try the envvar. */ - string texmfoutput = kpse_var_value("TEXMFOUTPUT"); - - if (texmfoutput && *texmfoutput && !absolute) { - if (fname != nameoffile + 1) - free(fname); - fname = concat3(texmfoutput, DIR_SEP_STRING, nameoffile+1); - *f_ptr = fopen(fname, fopen_mode); - } - } - /* If this succeeded, change nameoffile accordingly. */ - if (*f_ptr) { - if (fname != nameoffile + 1) { -#if defined(PTEX) && !defined(WIN32) - fname0 = ptenc_from_utf8_string_to_internal_enc(fname); - if (fname0) { - free(fname); - fname = fname0; - } -#endif - free (nameoffile); - namelength = strlen (fname); - nameoffile = xmalloc (namelength + 2); - strcpy (nameoffile + 1, fname); - } - recorder_record_output (fname); - } - if (fname != nameoffile +1) - free(fname); - return *f_ptr != NULL; -} - -/* Close F. */ - -void -close_file (FILE *f) -{ - /* If F is null, just return. bad_pool might close a file that has - never been opened. */ - if (!f) - return; - -#ifdef PTEX -#ifdef WIN32 - clear_infile_enc (f); - if (fclose (f) == EOF) { -#else - if (nkf_close (f) == EOF) { -#endif -#else - if (fclose (f) == EOF) { -#endif - /* It's not always nameoffile, we might have opened something else - in the meantime. And it's not easy to extract the filenames out - of the pool array. So just punt on the filename. Sigh. This - probably doesn't need to be a fatal error. */ - perror ("fclose"); - } -} diff --git a/Build/source/texk/web2c/lib/printversion.c b/Build/source/texk/web2c/lib/printversion.c deleted file mode 100644 index 8716e6db994..00000000000 --- a/Build/source/texk/web2c/lib/printversion.c +++ /dev/null @@ -1,78 +0,0 @@ -/* printversion.c: Output for the standard GNU option --version. - - Written in 1996 by Karl Berry. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" -#include <kpathsea/version.h> -#ifdef PTEX -#include <ptexenc/ptexenc.h> -#endif - -/* We're passed in the original WEB banner string, which has the form -This is PROGRAM, Version VERSION-NUMBER - We parse the PROGRAM and VERSION-NUMBER out of this. - - If COPYRIGHT_HOLDER is specified and AUTHOR isn't, then use the - former for the latter. If AUTHOR is specified and COPYRIGHT_HOLDER - isn't, it means the original program is public domain. - - Maybe I should have just done it all inline in each individual - program, but tangle doesn't allow multiline string constants ... */ - -void -printversionandexit (const_string banner, - const_string copyright_holder, - const_string author, - const_string extra_info) -{ - string prog_name; - unsigned len; - const_string prog_name_start; - const_string prog_name_end = strchr (banner, ','); - const_string prog_version = strrchr (banner, ' '); - assert (prog_name_end && prog_version); - prog_version++; - - len = prog_name_end - banner; - prog_name = xmalloc (len + 1); - strncpy (prog_name, banner, len); - prog_name[len] = 0; - - prog_name_start = strrchr (prog_name, ' '); - assert (prog_name_start); - prog_name_start++; - - /* The Web2c version string starts with a space. */ -#ifdef PTEX - printf ("%s %s (%s)%s\n", prog_name_start, prog_version, get_enc_string(), - versionstring); -#else - printf ("%s %s%s\n", prog_name_start, prog_version, versionstring); -#endif - puts (kpathsea_version_string); -#ifdef PTEX - puts (ptexenc_version_string); -#endif - - if (copyright_holder) { - printf ("Copyright 2021 %s.\n", copyright_holder); - if (!author) - author = copyright_holder; - } - - puts ("There is NO warranty. Redistribution of this software is"); - fputs ("covered by the terms of ", stdout); - printf ("both the %s copyright and\n", prog_name_start); - puts ("the Lesser GNU General Public License."); - puts ("For more information about these matters, see the file"); - printf ("named COPYING and the %s source.\n", prog_name_start); - printf ("Primary author of %s: %s.\n", prog_name_start, author); - - if (extra_info) - fputs (extra_info, stdout); - - free (prog_name); - - uexit (0); -} diff --git a/Build/source/texk/web2c/lib/setupvar.c b/Build/source/texk/web2c/lib/setupvar.c deleted file mode 100644 index b44ddc7e71c..00000000000 --- a/Build/source/texk/web2c/lib/setupvar.c +++ /dev/null @@ -1,33 +0,0 @@ -/* setupvar.c: Look up a value in texmf.cnf or use default. - - Adapted in 2010 by Peter Breitenlohner. Public domain. - Written in 1995 by Karl Berry. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" -#include <kpathsea/variable.h> - -/* Look up VAR_NAME in texmf.cnf; assign either the value found there or - DFLT to *VAR. */ - -void -setupboundvariable (integer *var, const_string var_name, integer dflt) -{ - string expansion = kpse_var_value (var_name); - *var = dflt; - - if (expansion) { - integer conf_val = atoi (expansion); - /* It's ok if the cnf file specifies 0 for extra_mem_{top,bot}, etc. - But negative numbers are always wrong. */ - if (conf_val < 0 || (conf_val == 0 && dflt > 0)) { - fprintf (stderr, - "%s: Bad value (%ld) in environment or texmf.cnf for %s, keeping %ld.\n", - kpse_invocation_name, - (long) conf_val, var_name, (long) dflt); - } else { - *var = conf_val; /* We'll make further checks later. */ - } - free (expansion); - } -} diff --git a/Build/source/texk/web2c/lib/texmfmp.c b/Build/source/texk/web2c/lib/texmfmp.c deleted file mode 100644 index 8b898176e8a..00000000000 --- a/Build/source/texk/web2c/lib/texmfmp.c +++ /dev/null @@ -1,4036 +0,0 @@ -/* texmfmp.c: Hand-coded routines for TeX or Metafont in C. Originally - written by Tim Morgan, drawing from other Unix ports of TeX. This is - a collection of miscellany, everything that's easier (or only - possible) to do in C. - - This file is public domain. */ - -/* This file is included from, e.g., texextra.c after - #define EXTERN - #include <texd.h> - to instantiate data from texd.h here. The ?d.h file is what - #defines TeX or MF, which avoids the need for a special - Makefile rule. */ - -#include <kpathsea/config.h> -#include <kpathsea/c-ctype.h> -#include <kpathsea/cnf.h> -#include <kpathsea/line.h> -#include <kpathsea/readable.h> -#include <kpathsea/variable.h> -#include <kpathsea/absolute.h> -#ifdef WIN32 -#include <kpathsea/concatn.h> -#endif - -#if defined (HAVE_SYS_TIME_H) -#include <sys/time.h> -#elif defined (HAVE_SYS_TIMEB_H) -#include <sys/timeb.h> -#endif -#include <time.h> /* For `struct tm'. Moved here for Visual Studio 2005. */ - -#if defined(__STDC__) -#include <locale.h> -#endif - -#include <signal.h> /* Catch interrupts. */ - -#include <texmfmp-help.h> - -/* {tex,mf}d.h defines TeX, MF, INI, and other such symbols. - Unfortunately there's no way to get the banner into this code, so - just repeat the text. */ -/* We also define predicates, e.g., IS_eTeX for all e-TeX like engines, so - the rest of this file can remain unchanged when adding a new engine. */ -#ifdef TeX -#if defined(XeTeX) -#define IS_eTeX 1 -#include <xetexdir/xetexextra.h> -#elif defined (eTeX) -#define IS_eTeX 1 -#include <etexdir/etexextra.h> -#elif defined (pdfTeX) -#define IS_eTeX 1 -#include <pdftexdir/pdftexextra.h> -#include <pdftexdir/ptexlib.h> -#elif defined (Aleph) -#define IS_eTeX 1 -#include <alephdir/alephextra.h> -#elif defined (pTeX) -#define IS_pTeX 1 -#include <ptexdir/ptexextra.h> -#elif defined (epTeX) -#define IS_eTeX 1 -#define IS_pTeX 1 -#include <eptexdir/eptexextra.h> -#elif defined (upTeX) -#define IS_pTeX 1 -#define IS_upTeX 1 -#include <uptexdir/uptexextra.h> -#elif defined (eupTeX) -#define IS_eTeX 1 -#define IS_pTeX 1 -#define IS_upTeX 1 -#include <euptexdir/euptexextra.h> -#else -#define BANNER "This is TeX, Version 3.141592653" -#define COPYRIGHT_HOLDER "D.E. Knuth" -#define AUTHOR NULL -#define PROGRAM_HELP TEXHELP -#define BUG_ADDRESS "tex-k@tug.org" -#define DUMP_VAR TEXformatdefault -#define DUMP_LENGTH_VAR formatdefaultlength -#define DUMP_OPTION "fmt" -#define DUMP_EXT ".fmt" -#define INPUT_FORMAT kpse_tex_format -#define INI_PROGRAM "initex" -#define VIR_PROGRAM "virtex" -#endif -#define edit_var "TEXEDIT" -#endif /* TeX */ -#ifdef MF -#if defined(MFLua) -#include <mfluadir/mfluaextra.h> -#elif defined(MFLuaJIT) -#include <mfluajitdir/mfluajitextra.h> -#else -#define BANNER "This is Metafont, Version 2.71828182" -#define COPYRIGHT_HOLDER "D.E. Knuth" -#define AUTHOR NULL -#define PROGRAM_HELP MFHELP -#define BUG_ADDRESS "tex-k@tug.org" -#define DUMP_VAR MFbasedefault -#define DUMP_LENGTH_VAR basedefaultlength -#define DUMP_OPTION "base" -#ifdef DOS -#define DUMP_EXT ".bas" -#else -#define DUMP_EXT ".base" -#endif -#define INPUT_FORMAT kpse_mf_format -#define INI_PROGRAM "inimf" -#define VIR_PROGRAM "virmf" -#endif -#define edit_var "MFEDIT" -#endif /* MF */ - -#if !defined(IS_eTeX) -# define IS_eTeX 0 -#endif -#if !defined(IS_pTeX) -# define IS_pTeX 0 -#endif -#if !defined(IS_upTeX) -# define IS_upTeX 0 -#endif - -#if defined(__SyncTeX__) -/* - SyncTeX file name should be full path in the case where - --output-directory option is given. - Borrowed from LuaTeX. -*/ -#if defined(_WIN32) -#if defined(pdfTeX) || defined(upTeX) || defined(eupTeX) || defined(XeTeX) -#define W32USYNCTEX 1 -#endif -#endif - -char * -generic_synctex_get_current_name (void) -{ - char *pwdbuf, *ret; -#if defined(W32USYNCTEX) - wchar_t *wpwd; -#endif /* W32USYNCTEX */ - if (!fullnameoffile) { - ret = xstrdup(""); - return ret; - } - if (kpse_absolute_p(fullnameoffile, false)) { - return xstrdup(fullnameoffile); - } - pwdbuf = xgetcwd(); -#if defined(W32USYNCTEX) - if (file_system_codepage != 0 && file_system_codepage != win32_codepage) { - wpwd = get_wstring_from_mbstring(win32_codepage, pwdbuf, wpwd=NULL); - free (pwdbuf); - pwdbuf = get_mbstring_from_wstring(file_system_codepage, wpwd, pwdbuf=NULL); - free (wpwd); - } -#endif /* W32USYNCTEX */ - ret = concat3(pwdbuf, DIR_SEP_STRING, fullnameoffile); - free(pwdbuf) ; - return ret; -} -#endif - -#ifdef _WIN32 -#if !IS_pTeX -FILE *Poptr; -#endif -#undef fopen -#undef xfopen -#define fopen fsyscp_fopen -#define xfopen fsyscp_xfopen -#include <wchar.h> -int -fsyscp_stat(const char *path, struct stat *buffer) -{ - wchar_t *wpath; - int ret; - wpath = get_wstring_from_mbstring(file_system_codepage, - path, wpath = NULL); - if (wpath == NULL) - return -1; - ret = _wstat(wpath, buffer); - free(wpath); - return ret; -} -#include <sys/stat.h> -int -fsyscp_dir_p(char *path) -{ - struct stat stats; - int ret; - - ret = fsyscp_stat(path, &stats) == 0 && S_ISDIR (stats.st_mode); - return ret; -} -int -fsyscp_access(const char *path, int mode) -{ - wchar_t *wpath; - int ret; - wpath = get_wstring_from_mbstring(file_system_codepage, - path, wpath = NULL); - if (wpath == NULL) - return -1; - ret = _waccess(wpath, mode); - free(wpath); - return ret; -} -#endif /* _WIN32 */ - -#if defined(TeX) || (defined(MF) && defined(WIN32)) -static int -Isspace (char c) -{ - return (c == ' ' || c == '\t'); -} -#endif /* TeX || (MF && WIN32) */ - -#ifdef TeX - -/* Shell escape. - - If shellenabledp == 0, all shell escapes are forbidden. - If (shellenabledp == 1 && restrictedshell == 0), any command - is allowed for a shell escape. - If (shellenabledp == 1 && restrictedshell == 1), only commands - given in the configuration file as - shell_escape_commands = kpsewhich,ebb,extractbb,mpost,metafun,... - (no spaces between commands) in texmf.cnf are allowed for a shell - escape in a restricted form: command name and arguments should be - separated by a white space. The first word should be a command - name. The quotation character for an argument with spaces, - including a pathname, should be ". ' should not be used. - - Internally, all arguments are quoted by ' (Unix) or " (Windows) - before calling the system() function in order to forbid execution - of any embedded command. - - If the --shell-escape option is given, we set - shellenabledp = 1 and restrictedshell = 0, i.e., any command is allowed. - If the --shell-restricted option is given, we set - shellenabledp = 1 and restrictedshell = 1, i.e., only given cmds allowed. - If the --no-shell-escape option is given, we set - shellenabledp = -1 (and restrictedshell is irrelevant). - If none of these option are given, there are three cases: - (1) In the case where - shell_escape = y or - shell_escape = t or - shell_escape = 1 - it becomes shellenabledp = 1 and restrictedshell = 0, - that is, any command is allowed. - (2) In the case where - shell_escape = p - it becomes shellenabledp = 1 and restrictedshell = 1, - that is, restricted shell escape is allowed. - (3) In all other cases, shellenabledp = 0, that is, shell - escape is forbidden. The value of restrictedshell is - irrelevant if shellenabledp == 0. -*/ - -/* cmdlist is a list of allowed commands which are given like this: - shell_escape_commands = kpsewhich,ebb,extractbb,mpost,metafun - in texmf.cnf. */ - -static char **cmdlist = NULL; - -static void -mk_shellcmdlist (char *v) -{ - char **p; - char *q, *r; - size_t n; - - q = v; - n = 1; - -/* analyze the variable shell_escape_commands = foo,bar,... - spaces before and after (,) are not allowed. */ - - while ((r = strchr (q, ',')) != 0) { - n++; - q = r + 1; - } - if (*q) - n++; - cmdlist = xmalloc (n * sizeof (char *)); - p = cmdlist; - q = v; - while ((r = strchr (q, ',')) != 0) { - *r = '\0'; - *p++ = xstrdup (q); - q = r + 1; - } - if (*q) - *p++ = xstrdup (q); - *p = NULL; -} - -static void -init_shell_escape (void) -{ - if (shellenabledp < 0) { /* --no-shell-escape on cmd line */ - shellenabledp = 0; - - } else { - if (shellenabledp == 0) { /* no shell options on cmd line, check cnf */ - char *v1 = kpse_var_value ("shell_escape"); - if (v1) { - if (*v1 == 't' || *v1 == 'y' || *v1 == '1') { - shellenabledp = 1; - } else if (*v1 == 'p') { - shellenabledp = 1; - restrictedshell = 1; - } - free (v1); - } - } - - /* If shell escapes are restricted, get allowed cmds from cnf. */ - if (shellenabledp && restrictedshell == 1) { - char *v2 = kpse_var_value ("shell_escape_commands"); - if (v2) { - mk_shellcmdlist (v2); - free (v2); - } - } - } -} - -#ifdef WIN32 -#define QUOTE '"' -#else -#define QUOTE '\'' -#endif - -#if 0 -#ifdef WIN32 -static int -char_needs_quote (int c) -{ -/* special characters of cmd.exe */ - - return (c == '&' || c == '|' || c == '%' || c == '<' || - c == '>' || c == ';' || c == ',' || c == '(' || - c == ')'); -} -#endif -#endif - -/* return values: - -1 : invalid quotation of an argument - 0 : command is not allowed - 2 : restricted shell escape, CMD is allowed. - - We set *SAFECMD to a safely-quoted version of *CMD; this is what - should get executed. And we set CMDNAME to its first word; this is - what is checked against the shell_escape_commands list. */ - -static int -shell_cmd_is_allowed (const char *cmd, char **safecmd, char **cmdname) -{ - char **p; - char *buf; - char *c, *d; - const char *s; - int pre, spaces; - int allow = 0; - - /* pre == 1 means that the previous character is a white space - pre == 0 means that the previous character is not a white space */ - buf = xmalloc (strlen (cmd) + 1); - strcpy (buf, cmd); - c = buf; - while (Isspace (*c)) - c++; - d = c; - while (!Isspace(*d) && *d) - d++; - *d = '\0'; - - /* *cmdname is the first word of the command line. For example, - *cmdname == "kpsewhich" for - \write18{kpsewhich --progname=dvipdfm --format="other text files" config} - */ - *cmdname = xstrdup (c); - free (buf); - - /* Is *cmdname listed in a texmf.cnf vriable as - shell_escape_commands = foo,bar,... ? */ - p = cmdlist; - if (p) { - while (*p) { - if (strcmp (*p, *cmdname) == 0) { - /* *cmdname is found in the list, so restricted shell escape - is allowed */ - allow = 2; - break; - } - p++; - } - } - if (allow == 2) { - spaces = 0; - for (s = cmd; *s; s++) { - if (Isspace (*s)) - spaces++; - } - - /* allocate enough memory (too much?) */ -#ifdef WIN32 - *safecmd = xmalloc (2 * strlen (cmd) + 3 + 2 * spaces); -#else - *safecmd = xmalloc (strlen (cmd) + 3 + 2 * spaces); -#endif - - /* make a safe command line *safecmd */ - s = cmd; - while (Isspace (*s)) - s++; - d = *safecmd; - while (!Isspace (*s) && *s) - *d++ = *s++; - - pre = 1; - while (*s) { - /* Quotation given by a user. " should always be used; we - transform it below. If ' is used, simply immediately - return a quotation error. */ - if (*s == '\'') { - return -1; - } - - if (*s == '"') { - /* All arguments are quoted as 'foo' (Unix) or "foo" (Windows) - before calling system(). Therefore closing QUOTE is necessary - if the previous character is not a white space. - example: - --format="other text files" becomes - '--format=''other text files' (Unix) - "--format"="other text files" (Windows) */ - - if (pre == 0) { -#ifdef WIN32 - if (*(s-1) == '=') { - *(d-1) = QUOTE; - *d++ = '='; - } else { - *d++ = QUOTE; - } -#else - *d++ = QUOTE; -#endif - } - pre = 0; - /* output the quotation mark for the quoted argument */ - *d++ = QUOTE; - s++; - - while (*s != '"') { - /* Illegal use of ', or closing quotation mark is missing */ - if (*s == '\'' || *s == '\0') - return -1; -#if 0 -/* - The following in WIN32 may not be necessary, because - all arguments are quoted. -*/ -#ifdef WIN32 - if (char_needs_quote (*s)) - *d++ = '^'; -#endif -#endif - *d++ = *s++; - } - - /* Closing quotation mark will be output afterwards, so - we do nothing here */ - s++; - - /* The character after the closing quotation mark - should be a white space or NULL */ - if (!Isspace (*s) && *s) - return -1; - - /* Beginning of a usual argument */ - } else if (pre == 1 && !Isspace (*s)) { - pre = 0; - *d++ = QUOTE; -#if 0 -/* - The following in WIN32 may not be necessary, because - all arguments are quoted. -*/ -#ifdef WIN32 - if (char_needs_quote (*s)) - *d++ = '^'; -#endif -#endif - *d++ = *s++; - /* Ending of a usual argument */ - - } else if (pre == 0 && Isspace (*s)) { - pre = 1; - /* Closing quotation mark */ - *d++ = QUOTE; - *d++ = *s++; - } else { - /* Copy a character from cmd to *safecmd. */ -#if 0 -/* - The following in WIN32 may not be necessary, because - all arguments are quoted. -*/ -#ifdef WIN32 - if (char_needs_quote (*s)) - *d++ = '^'; -#endif -#endif - *d++ = *s++; - } - } - /* End of the command line */ - if (pre == 0) { - *d++ = QUOTE; - } - *d = '\0'; -#ifdef WIN32 - { - char *p, *q, *r; - p = *safecmd; - if (strlen (p) > 2 && p[1] == ':' && !IS_DIR_SEP (p[2])) { - q = xmalloc (strlen (p) + 2); - q[0] = p[0]; - q[1] = p[1]; - q[2] = '/'; - q[3] = '\0'; - strcat (q, (p + 2)); - free (*safecmd); - *safecmd = q; - } else if (!IS_DIR_SEP (p[0]) && !(p[1] == ':' && IS_DIR_SEP (p[2]))) { - p = kpse_var_value ("SELFAUTOLOC"); - if (p) { - r = *safecmd; - while (*r && !Isspace(*r)) - r++; - if (*r == '\0') - q = concatn ("\"", p, "/", *safecmd, "\"", NULL); - else { - *r = '\0'; - r++; - while (*r && Isspace(*r)) - r++; - if (*r) - q = concatn ("\"", p, "/", *safecmd, "\" ", r, NULL); - else - q = concatn ("\"", p, "/", *safecmd, "\"", NULL); - } - free (p); - free (*safecmd); - *safecmd = q; - } - } - } -#endif - } - - return allow; -} - -/* We should only be called with shellenabledp == 1. - Return value: - -1 if a quotation syntax error. - 0 if CMD is not allowed; given shellenabledp==1, this is because - shell escapes are restricted and CMD is not allowed. - 1 if shell escapes are not restricted, hence any command is allowed. - 2 if shell escapes are restricted and CMD is allowed (possibly after - quoting). */ - -#ifdef WIN32 -#undef system -#define system fsyscp_system -#if ENABLE_PIPES -#undef popen -#define popen fsyscp_popen -#endif /* ENABLE_PIPES */ -#endif /* WIN32 */ - -int -runsystem (const char *cmd) -{ - int allow = 0; - char *safecmd = NULL; - char *cmdname = NULL; - int status = 0; - - if (shellenabledp <= 0) { - return 0; - } - - /* If restrictedshell == 0, any command is allowed. */ - if (restrictedshell == 0) - allow = 1; - else - allow = shell_cmd_is_allowed (cmd, &safecmd, &cmdname); - - if (allow == 1) - status = system (cmd); - else if (allow == 2) - status = system (safecmd); - - /* Not really meaningful, but we have to manage the return value of system. */ - if (status != 0) - fprintf(stderr,"system returned with code %d\n", status); - - if (safecmd) - free (safecmd); - if (cmdname) - free (cmdname); - - return allow; -} -#endif /* TeX */ - -#if ENABLE_PIPES -/* Like runsystem(), the runpopen() function is called only when - shellenabledp == 1. Unlike runsystem(), here we write errors to - stderr, since we have nowhere better to use; and of course we return - a file handle (or NULL) instead of a status indicator. */ - -static FILE * -runpopen (char *cmd, const char *mode) -{ - FILE *f = NULL; - char *safecmd = NULL; - char *cmdname = NULL; - int allow; - -#ifdef WIN32 - char *pp; - - for (pp = cmd; *pp; pp++) { - if (*pp == '\'') *pp = '"'; - } -#endif - - /* If restrictedshell == 0, any command is allowed. */ - if (restrictedshell == 0) - allow = 1; - else - allow = shell_cmd_is_allowed (cmd, &safecmd, &cmdname); - - if (allow == 1) - f = popen (cmd, mode); - else if (allow == 2) - f = popen (safecmd, mode); - else if (allow == -1) - fprintf (stderr, "\nrunpopen quotation error in command line: %s\n", - cmd); - else - fprintf (stderr, "\nrunpopen command not allowed: %s\n", cmdname); - - if (safecmd) - free (safecmd); - if (cmdname) - free (cmdname); - return f; -} -#endif /* ENABLE_PIPES */ - -/* The main program, etc. */ - -#ifdef XeTeX -#include "xetexdir/XeTeX_ext.h" -#endif - -/* What we were invoked as and with. */ -char **argv; -int argc; - -/* If the user overrides argv[0] with -progname. */ -static const_string user_progname; - -/* Array and count of values given with --config-line. */ -static string *user_cnf_lines = NULL; -static unsigned user_cnf_nlines = 0; - -/* The C version of the jobname, if given. */ -static const_string c_job_name; - -/* The filename for dynamic character translation, or NULL. */ -string translate_filename; -string default_translate_filename; - -#if defined(TeX) -/* Needed for --src-specials option. */ -static char *last_source_name; -static int last_lineno; -static boolean srcspecialsoption = false; -static void parse_src_specials_option (const_string); -#endif - -/* Parsing a first %&-line in the input file. */ -static void parse_first_line (const_string); - -/* Parse option flags. */ -static void parse_options (int, string *); - -/* Try to figure out if we have been given a filename. */ -static string get_input_file_name (void); - -/* Get a true/false value for a variable from texmf.cnf and the - environment. Not static because we call it from tex.ch. */ - -boolean -texmf_yesno(const_string var) -{ - string value = kpse_var_value (var); - return value && (*value == 't' || *value == 'y' || *value == '1'); -} - -#ifdef pdfTeX -const char *ptexbanner = BANNER; -#endif - -#ifdef WIN32 -/* forward declaration */ -static string -normalize_quotes (const_string name, const_string mesg); -#endif /* WIN32 */ - -/* maininit, called from main() - this is most of the main routine, - including our C-level option handling and concomitant kpse setup. - The original TeX/MF code for handling first lines is still live, and - we set up for that in `topenin' (which is called from the .web). */ - -void -maininit (int ac, string *av) -{ - string main_input_file; -#if (IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32) - string enc; -#endif - /* Save to pass along to topenin. */ - argc = ac; - argv = av; - - /* Must be initialized before options are parsed. */ - interactionoption = 4; - - /* Have things to record as we go along. */ - kpse_record_input = recorder_record_input; - kpse_record_output = recorder_record_output; - -#if defined(__SyncTeX__) - /* 0 means "disable Synchronize TeXnology". - synctexoption is a *.web variable. - We initialize it to a weird value to catch the -synctex command line flag. - At runtime, if synctexoption is not INT_MAX, then it contains the - command line option provided; otherwise, no such option was given - by the user. */ -# define SYNCTEX_NO_OPTION INT_MAX - synctexoption = SYNCTEX_NO_OPTION; -#endif - -#if IS_pTeX - kpse_set_program_name (argv[0], NULL); - initkanji (); -#endif -#if (defined(XeTeX) || defined(pdfTeX)) && defined(WIN32) - kpse_set_program_name (argv[0], NULL); -#endif -#if (IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32) -/* - -cnf-line=command_line_encoding=value cannot give effect because - command_line_encoding is read here before parsing the command - line. So we add the following. -*/ - { /* support old compilers which are incompatible with C99 */ - int n; - for (n = 1; n < ac; n++) { - if (!strncasecmp (av[n], "-cnf-line=command_line_encoding=", 32)) { - putenv (av[n] + 10); - break; - } - if (!strncasecmp (av[n], "--cnf-line=command_line_encoding=", 33)) { - putenv (av[n] + 11); - break; - } - if (n < ac - 1 && (!strncasecmp (av[n], "-cnf-line", 9) || - !strncasecmp (av[n], "--cnf-line", 10)) && - !strncasecmp (av[n+1], "command_line_encoding=", 22)) { - putenv (av[n+1]); - break; - } - } - } - enc = kpse_var_value("command_line_encoding"); - get_command_line_args_utf8(enc, &argc, &argv); -#endif -#if IS_pTeX && !IS_upTeX && !defined(WIN32) - ptenc_get_command_line_args(&argc, &argv); -#endif - - /* If the user says --help or --version, we need to notice early. And - since we want the --ini option, have to do it before getting into - the web (which would read the base file, etc.). */ -#if ((IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)) || (IS_pTeX && !IS_upTeX && !defined(WIN32)) - parse_options (argc, argv); -#else - parse_options (ac, av); -#endif - -#if IS_pTeX || ((defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)) - /* In pTeX and friends, or in WIN32, texmf.cnf is not recorded in - the case of --recorder, because parse_options() is executed - after the start of kpathsea due to special initializations. - Therefore we record texmf.cnf here. */ - if (recorder_enabled) { - string *p = kpse_find_file_generic ("texmf.cnf", kpse_cnf_format, 0, 1); - if (p && *p) { - string *pp = p; - while (*p) { - recorder_record_input (*p); - free (*p); - p++; - } - free (pp); - } - } -#endif /* IS_pTeX || (...) */ - - /* If -progname was not specified, default to the dump name. */ - if (!user_progname) - user_progname = dump_name; - - /* Do this early so we can inspect kpse_invocation_name and - kpse_program_name below, and because we have to do this before - any path searching. */ -#if IS_pTeX || ((defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)) - if (user_progname) - kpse_reset_program_name (user_progname); -#else - kpse_set_program_name (argv[0], user_progname); -#endif - -#if defined(MF) -#if defined(MFLua) - /* Reset mf*-nowin program names. */ - if (strncasecmp (kpse_invocation_name, "mflua-nowin", 11) == 0) - kpse_reset_program_name ("mflua"); -#elif defined(MFLuaJIT) - if (strncasecmp (kpse_invocation_name, "mfluajit-nowin", 14) == 0) - kpse_reset_program_name ("mfluajit"); -#else - if (strncasecmp (kpse_invocation_name, "mf-nowin", 8) == 0) - kpse_reset_program_name ("mf"); -#endif -#endif - - /* Make the given engine name available in the variable `engine'. */ - xputenv ("engine", TEXMFENGINENAME); - - if (user_cnf_lines) { - unsigned i; - for (i = 0; i < user_cnf_nlines; i++) { - /* debug printf ("ucnf%d: %s\n", i, user_cnf_lines[i]); */ - kpathsea_cnf_line_env_progname (kpse_def, user_cnf_lines[i]); - free (user_cnf_lines[i]); - } - } - - /* Were we given a simple filename? */ - main_input_file = get_input_file_name (); - -#ifdef WIN32 - if (main_input_file == NULL) { - string name; -#ifndef XeTeX - boolean quoted; -#endif - - name = argv[argc-1]; - if (name && name[0] != '-' && name[0] != '&' && name[0] != '\\') { - if (strlen (name) > 2 && isalpha (name[0]) && name[1] == ':' && - name[2] == '\\') { - string pp; - for (pp = name; *pp; pp++) { - if (IS_KANJI (pp)) - pp++; - else if (*pp == '\\') - *pp = '/'; - } - } - name = normalize_quotes(argv[argc-1], "argument"); -#ifdef XeTeX - main_input_file = kpse_find_file(argv[argc-1], INPUT_FORMAT, false); - argv[argc-1] = name; -#else - quoted = (name[0] == '"'); - if (quoted) { - /* Overwrite last quote and skip first quote. */ - name[strlen(name)-1] = '\0'; - name++; - } - main_input_file = kpse_find_file(name, INPUT_FORMAT, false); - if (quoted) { - /* Undo modifications */ - name[strlen(name)] = '"'; - name--; - } - argv[argc-1] = name; -#endif - } - } -#endif /* WIN32 */ - - /* Second chance to activate file:line:error style messages, this - time from texmf.cnf. */ - if (filelineerrorstylep < 0) { - filelineerrorstylep = 0; - } else if (!filelineerrorstylep) { - filelineerrorstylep = texmf_yesno ("file_line_error_style"); - } - - /* If no dump default yet, and we're not doing anything special on - this run, we may want to look at the first line of the main input - file for a %&<dumpname> specifier. */ - if (parsefirstlinep < 0) { - parsefirstlinep = 0; - } else if (!parsefirstlinep) { - parsefirstlinep = texmf_yesno ("parse_first_line"); - } - if (parsefirstlinep && (!dump_name || !translate_filename)) { - parse_first_line (main_input_file); - } - /* Check whether there still is no translate_filename known. If so, - use the default_translate_filename. */ - if (!translate_filename) { - translate_filename = default_translate_filename; - } - /* If we're preloaded, I guess everything is set up. I don't really - know any more, it's been so long since anyone truly preloaded. We - still use the word "preloaded" in the messages, though (via the - original .web sources), at Knuth's request. */ - if (readyalready != 314159) { - /* The `ini_version' variable is declared/used in the change files. */ - boolean virversion = false; - if (FILESTRCASEEQ (kpse_program_name, INI_PROGRAM)) { - iniversion = true; - } else if (FILESTRCASEEQ (kpse_program_name, VIR_PROGRAM)) { - virversion = true; -#ifdef TeX - } else if (FILESTRCASEEQ (kpse_program_name, "initex")) { - iniversion = true; - } else if (FILESTRCASEEQ (kpse_program_name, "virtex")) { - virversion = true; -#ifndef Aleph - } else if (FILESTRCASEEQ (kpse_program_name, "mltex")) { - mltexp = true; -#endif /* !Aleph */ -#endif /* TeX */ - } - - /* If run like `tex \&foo', reasonable to guess "foo" as the fmt name. */ - if (!main_input_file) { - if (argv[1] && *argv[1] == '&') { - dump_name = argv[1] + 1; - } - } - - if (!dump_name) { - /* If called as *vir{mf,tex,mpost} use `plain'. Otherwise, use the - name we were invoked under as our best guess. */ - dump_name = (virversion ? "plain" : kpse_program_name); - } - } - -#ifdef TeX - /* Sanity check: -mltex, -enc, -etex only work in combination with -ini. */ - if (!iniversion) { -#if !defined(Aleph) - if (mltexp) { - fprintf(stderr, "-mltex only works with -ini\n"); - } -#if !defined(XeTeX) && !IS_pTeX - if (enctexp) { - fprintf(stderr, "-enc only works with -ini\n"); - } -#endif -#endif -#if IS_eTeX - if (etexp) { - fprintf(stderr, "-etex only works with -ini\n"); - } -#endif - } -#endif - - /* If we've set up the fmt/base default in any of the various ways - above, also set its length. */ - if (dump_name) { - const_string with_ext = NULL; - unsigned name_len = strlen (dump_name); - unsigned ext_len = strlen (DUMP_EXT); - - /* Provide extension if not there already. */ - if (name_len > ext_len - && FILESTRCASEEQ (dump_name + name_len - ext_len, DUMP_EXT)) { - with_ext = dump_name; - } else { - with_ext = concat (dump_name, DUMP_EXT); - } - DUMP_VAR = concat (" ", with_ext); /* adjust array for Pascal */ - DUMP_LENGTH_VAR = strlen (DUMP_VAR + 1); - } else { - /* For dump_name to be NULL is a bug. */ - abort(); - } - - /* Additional initializations. No particular reason for doing them - here instead of first thing in the change file; less symbols to - propagate through Webc, that's all. */ -#ifdef MF - kpse_set_program_enabled (kpse_mf_format, MAKE_TEX_MF_BY_DEFAULT, - kpse_src_compile); - kpse_set_program_enabled (kpse_base_format, MAKE_TEX_FMT_BY_DEFAULT, - kpse_src_compile); -#endif /* MF */ -#ifdef TeX -#if defined (Aleph) - kpse_set_program_enabled (kpse_ocp_format, MAKE_OMEGA_OCP_BY_DEFAULT, - kpse_src_compile); - kpse_set_program_enabled (kpse_ofm_format, MAKE_OMEGA_OFM_BY_DEFAULT, - kpse_src_compile); - kpse_set_program_enabled (kpse_tfm_format, false, kpse_src_compile); -#else /* !Aleph */ - kpse_set_program_enabled (kpse_tfm_format, MAKE_TEX_TFM_BY_DEFAULT, - kpse_src_compile); -#endif /* !Aleph */ - kpse_set_program_enabled (kpse_tex_format, MAKE_TEX_TEX_BY_DEFAULT, - kpse_src_compile); - kpse_set_program_enabled (kpse_fmt_format, MAKE_TEX_FMT_BY_DEFAULT, - kpse_src_compile); - - init_shell_escape (); - - if (!outputcomment) { - outputcomment = kpse_var_value ("output_comment"); - } -#endif /* TeX */ -} - -/* main: Set up for reading the command line, which will happen in - `maininit' and `topenin', then call the main body, plus - special Windows/Kanji initializations. */ - -int -#if defined(DLLPROC) -DLLPROC (int ac, string *av) -#else -main (int ac, string *av) -#endif -{ -#ifdef __EMX__ - _wildcard (&ac, &av); - _response (&ac, &av); -#endif - -#ifdef WIN32 - av[0] = kpse_program_basename (av[0]); - _setmaxstdio(2048); - setmode(fileno(stdin), _O_BINARY); -#endif - - maininit (ac, av); - -#ifdef WIN32 - if (ac > 1) { - char *pp; - if ((strlen(av[ac-1]) > 2) && - isalpha(av[ac-1][0]) && - (av[ac-1][1] == ':') && - (av[ac-1][2] == '\\')) { - for (pp=av[ac-1]+2; *pp; pp++) { - if (IS_KANJI(pp)) { - pp++; - continue; - } - if (*pp == '\\') - *pp = '/'; - } - } - } -#endif - - /* Call the real main program. */ - mainbody (); - - return EXIT_SUCCESS; -} - -/* This is supposed to ``open the terminal for input'', but what we - really do is copy command line arguments into TeX's or Metafont's - buffer, so they can handle them. If nothing is available, or we've - been called already (and hence, argc==0), we return with - `last=first'. */ - -void -topenin (void) -{ - int i; - -#ifdef XeTeX - static UFILE termin_file; - if (termin == 0) { - termin = &termin_file; - termin->f = stdin; - termin->savedChar = -1; - termin->skipNextLF = 0; - termin->encodingMode = UTF8; - termin->conversionData = 0; - inputfile[0] = termin; - } -#endif - - buffer[first] = 0; /* In case there are no arguments. */ - - if (optind < argc) { /* We have command line arguments. */ - int k = first; - for (i = optind; i < argc; i++) { -#ifdef XeTeX - unsigned char *ptr = (unsigned char *)&(argv[i][0]); - /* need to interpret UTF8 from the command line */ - UInt32 rval; - while ((rval = *(ptr++)) != 0) { - UInt16 extraBytes = bytesFromUTF8[rval]; - switch (extraBytes) { /* note: code falls through cases! */ - case 5: rval <<= 6; if (*ptr) rval += *(ptr++); - case 4: rval <<= 6; if (*ptr) rval += *(ptr++); - case 3: rval <<= 6; if (*ptr) rval += *(ptr++); - case 2: rval <<= 6; if (*ptr) rval += *(ptr++); - case 1: rval <<= 6; if (*ptr) rval += *(ptr++); - case 0: ; - }; - rval -= offsetsFromUTF8[extraBytes]; - buffer[k++] = rval; - } -#else - char *ptr = &(argv[i][0]); - /* Don't use strcat, since in Aleph the buffer elements aren't - single bytes. */ - while (*ptr) { - buffer[k++] = *(ptr++); - } -#endif - buffer[k++] = ' '; - } - argc = 0; /* Don't do this again. */ - buffer[k] = 0; - } - - /* Find the end of the buffer. */ - for (last = first; buffer[last]; ++last) - ; - - /* Make `last' be one past the last non-space character in `buffer', - ignoring line terminators (but not, e.g., tabs). This is because - we are supposed to treat this like a line of TeX input. Although - there are pathological cases (SPC CR SPC CR) where this differs - from input_line below, and from previous behavior of removing all - whitespace, the simplicity of removing all trailing line terminators - seems more in keeping with actual command line processing. */ -#define IS_SPC_OR_EOL(c) ((c) == ' ' || (c) == '\r' || (c) == '\n') - for (--last; last >= first && IS_SPC_OR_EOL (buffer[last]); --last) - ; - last++; - - /* One more time, this time converting to TeX's internal character - representation. */ -#if !defined(Aleph) && !defined(XeTeX) - for (i = first; i < last; i++) - buffer[i] = xord[buffer[i]]; -#endif -} - -/* IPC for TeX. By Tom Rokicki for the NeXT; it makes TeX ship out the - DVI file in a pipe to TeXView so that the output can be displayed - incrementally. Shamim Mohamed adapted it for Web2c. */ -#if defined (TeX) && defined (IPC) - -#ifdef WIN32 -#undef _WINSOCKAPI_ -#include <winsock2.h> -#else -#include <sys/socket.h> -#include <fcntl.h> -#ifndef O_NONBLOCK /* POSIX */ -#ifdef O_NDELAY /* BSD */ -#define O_NONBLOCK O_NDELAY -#elif defined(O_FNDELAY) /* NeXT */ -#define O_NONBLOCK O_FNDELAY -#else -what the fcntl? cannot implement IPC without equivalent for O_NONBLOCK. -#endif -#endif /* no O_NONBLOCK */ -#endif /* !WIN32 */ - -#ifdef WIN32 -# define IPC_AF AF_INET -# ifndef IPC_LOCAL_HOST -# define IPC_LOCAL_HOST "127.0.0.1" -# define FIXED_PORT (unsigned short)4242 -# endif -#else -# define IPC_AF AF_UNIX -# ifndef IPC_PIPE_NAME /* $HOME is prepended to this. */ -# define IPC_PIPE_NAME "/.TeXview_Pipe" -# endif -#endif -#ifndef IPC_SERVER_CMD /* Command to run to start the server. */ -# ifdef WIN32 -# define IPC_SERVER_CMD "texview.exe" -# else -# define IPC_SERVER_CMD "open `which TeXview`" -# endif -#endif - -struct msg -{ - int namelength; /* length of auxiliary data */ - int eof; /* new eof for dvi file */ -#if 0 /* see usage of struct msg below */ - char more_data[0]; /* where the rest of the stuff goes */ -#endif -}; - -static struct sockaddr *ipc_addr; -static int ipc_addr_len; - -static int -ipc_make_name (void) -{ - if (ipc_addr_len == 0) { -#ifdef WIN32 - unsigned long remote_addr = inet_addr(IPC_LOCAL_HOST); - if (remote_addr != INADDR_NONE) { - struct sockaddr_in *ipc_sin_addr = xmalloc (sizeof (struct sockaddr_in)); - ipc_sin_addr->sin_family = AF_INET; - ipc_sin_addr->sin_addr.s_addr = remote_addr; - ipc_sin_addr->sin_port = htons (FIXED_PORT); - ipc_addr = ((struct sockaddr *) ipc_sin_addr); - ipc_addr_len = sizeof(struct sockaddr_in); - } -#else - string s = getenv ("HOME"); - if (s) { - char *ipc_name; - ipc_addr = xmalloc (strlen (s) + 40); - ipc_addr->sa_family = 0; - ipc_name = ipc_addr->sa_data; - strcpy (ipc_name, s); - strcat (ipc_name, IPC_PIPE_NAME); - ipc_addr_len = strlen (ipc_name) + 3; - } -#endif - } - return ipc_addr_len; -} - -static int sock = -1; - -#ifdef WIN32 -# define CLOSE_SOCKET(s) closesocket (s); WSACleanup () -#else -# define CLOSE_SOCKET(s) close (s) -#endif - -static int -ipc_is_open (void) -{ - return sock != -1; -} - -static void -ipc_open_out (void) { -#ifdef WIN32 - struct WSAData wsaData; - int nCode; - unsigned long mode = 1; -#endif -#ifdef IPC_DEBUG - fputs ("tex: Opening socket for IPC output ...\n", stderr); -#endif - if (sock != -1) { - return; - } - -#ifdef WIN32 - if ((nCode = WSAStartup(MAKEWORD(1, 1), &wsaData)) != 0) { - fprintf(stderr,"WSAStartup() returned error code %d.\n", nCode); - return; - } -#endif - - if (ipc_make_name () <= 0) - return; - - sock = socket (IPC_AF, SOCK_STREAM, 0); -#ifdef IPC_DEBUG - if(sock != -1) - fprintf(stderr, "tex: Socket handle is %d\n", sock); - else - fprintf(stderr, "tex: Socket is invalid.\n"); -#endif - - if (sock != -1) { - if (connect (sock, ipc_addr, ipc_addr_len) != 0 || -#ifdef WIN32 - ioctlsocket (sock, FIONBIO, &mode) < 0 -#else - fcntl (sock, F_SETFL, O_NONBLOCK) < 0 -#endif - ) { - CLOSE_SOCKET (sock); - sock = -1; -#ifdef IPC_DEBUG - fputs ("tex: IPC socket cannot be connected.\n", stderr); - fputs ("tex: Socket is closed.\n", stderr); -#endif - return; - } -#ifdef IPC_DEBUG - fputs ("tex: Successfully opened IPC socket.\n", stderr); -#endif - } -} - -static void -ipc_close_out (void) -{ -#ifdef IPC_DEBUG - fputs ("tex: Closing output socket ...\n", stderr); -#endif - if (ipc_is_open ()) { - CLOSE_SOCKET (sock); - sock = -1; - } -} - -static void -ipc_snd (int n, int is_eof, char *data) -{ - struct - { - struct msg msg; - char more_data[1024]; - } ourmsg; - - if (!ipc_is_open ()) { - return; - } - -#ifdef IPC_DEBUG - fprintf(stderr, "%d\t%d\n", ourmsg.msg.namelength, ourmsg.msg.eof); - fputs ("tex: Sending message to socket ...\n", stderr); -#endif - ourmsg.msg.namelength = n; - ourmsg.msg.eof = is_eof; - if (n) { - strcpy (ourmsg.more_data, data); - } - n += sizeof (struct msg); -#ifdef IPC_DEBUG - fprintf(stderr, "%d\t%d\n", ourmsg.msg.namelength, ourmsg.msg.eof); - fputs ("tex: Writing to socket...\n", stderr); -#endif -#if defined(WIN32) - if (send (sock, (char *)&ourmsg, n, 0) != n) { -#else - if (write (sock, &ourmsg, n) != n) { -#endif - ipc_close_out (); - } -#ifdef IPC_DEBUG - fputs ("tex: IPC message sent.\n", stderr); -#endif -} - -/* This routine notifies the server if there is an eof, or the filename - if a new DVI file is starting. This is the routine called by TeX. - Aleph defines str_start(#) as str_start_ar[# - too_big_char], with - too_big_char = biggest_char + 1 = 65536 (omstr.ch). */ - -void -ipcpage (int is_eof) -{ - static boolean begun = false; - unsigned len = 0; - string p = NULL; - - if (!begun) { - string name; /* Just the filename. */ - string cwd = xgetcwd (); - - ipc_open_out (); -#if !defined(Aleph) - len = strstart[outputfilename + 1] - strstart[outputfilename]; -#else - len = strstartar[outputfilename + 1 - 65536L] - - strstartar[outputfilename - 65536L]; -#endif - name = xmalloc (len + 1); -#if !defined(Aleph) - strncpy (name, (string)&strpool[strstart[outputfilename]], len); -#else - { - unsigned i; - for (i=0; i<len; i++) - name[i] = strpool[i+strstartar[outputfilename - 65536L]]; - } -#endif - name[len] = 0; - - /* Have to pass whole filename to the other end, since it may have - been started up and running as a daemon, e.g., as with the NeXT - preview program. */ - p = concat3 (cwd, DIR_SEP_STRING, name); - free (cwd); - free (name); - -#if defined (WIN32) - { char *q; - for (q = p; *q; q++) { - if (*q == '\\') - *q = '/'; - else if (IS_KANJI(q)) - q++; - } - } -#endif - len = strlen(p); - begun = true; - } - ipc_snd (len, is_eof, p); - - if (p) - free (p); -} -#endif /* TeX && IPC */ - -#if defined (TeX) || defined (MF) - /* TCX and Aleph&Co get along like sparks and gunpowder. */ -#if !defined(Aleph) && !defined(XeTeX) - -/* Return the next number following START, setting POST to the following - character, as in strtol. Issue a warning and return -1 if no number - can be parsed. */ - -static int -tcx_get_num (int upb, - unsigned line_count, - string start, - string *post) -{ - int num = strtol (start, post, 0); - assert (post && *post); - if (*post == start) { - /* Could not get a number. If blank line, fine. Else complain. */ - string p = start; - while (*p && ISSPACE (*p)) - p++; - if (*p != 0) - fprintf (stderr, "%s:%d: Expected numeric constant, not `%s'.\n", - translate_filename, line_count, start); - num = -1; - } else if (num < 0 || num > upb) { - fprintf (stderr, "%s:%d: Destination charcode %d <0 or >%d.\n", - translate_filename, line_count, num, upb); - num = -1; - } - - return num; -} - -/* Update the xchr, xord, and xprn arrays for TeX, allowing a - translation table specified at runtime via an external file. - Look for the character translation file FNAME along the same path as - tex.pool. If no suffix in FNAME, use .tcx (don't bother trying to - support extension-less names for these files). */ - -void -readtcxfile (void) -{ - string orig_filename; - if (!find_suffix (translate_filename)) { - translate_filename = concat (translate_filename, ".tcx"); - } - orig_filename = translate_filename; - translate_filename - = kpse_find_file (translate_filename, kpse_web2c_format, true); - if (translate_filename) { - string line; - unsigned line_count = 0; - FILE *translate_file = xfopen (translate_filename, FOPEN_R_MODE); - while ((line = read_line (translate_file))) { - int first; - string start2; - string comment_loc = strchr (line, '%'); - if (comment_loc) - *comment_loc = 0; - - line_count++; - - first = tcx_get_num (255, line_count, line, &start2); - if (first >= 0) { - string start3; - int second; - int printable; - - second = tcx_get_num (255, line_count, start2, &start3); - if (second >= 0) { - /* I suppose we could check for nonempty junk following the - "printable" code, but let's not bother. */ - string extra; - - /* If they mention a second code, make that the internal number. */ - xord[first] = second; - xchr[second] = first; - - printable = tcx_get_num (1, line_count, start3, &extra); - /* Not-a-number, may be a comment. */ - if (printable == -1) - printable = 1; - /* Don't allow the 7bit ASCII set to become unprintable. */ - if (32 <= second && second <= 126) - printable = 1; - } else { - second = first; /* else make internal the same as external */ - /* If they mention a charcode, call it printable. */ - printable = 1; - } - - xprn[second] = printable; - } - free (line); - } - xfclose(translate_file, translate_filename); - } else { - WARNING1 ("Could not open char translation file `%s'", orig_filename); - } -} -#endif /* !Aleph && !XeTeX */ -#endif /* TeX || MF [character translation] */ - -#ifdef XeTeX /* XeTeX handles this differently, and allows odd quotes within names */ -static string -normalize_quotes (const_string name, const_string mesg) -{ - int quote_char = 0; - boolean must_quote = false; - int len = strlen(name); - /* Leave room for quotes and NUL. */ - string ret; - string p; - const_string q; - for (q = name; *q; q++) { - if (*q == ' ') { - if (!must_quote) { - len += 2; - must_quote = true; - } - } - else if (*q == '\"' || *q == '\'') { - must_quote = true; - if (quote_char == 0) - quote_char = '\"' + '\'' - *q; - len += 2; /* this could sometimes add length we don't need */ - } - } - ret = xmalloc(len + 1); - p = ret; - if (must_quote) { - if (quote_char == 0) - quote_char = '\"'; - *p++ = quote_char; - } - for (q = name; *q; q++) { - if (*q == quote_char) { - *p++ = quote_char; - quote_char = '\"' + '\'' - quote_char; - *p++ = quote_char; - } - *p++ = *q; - } - if (quote_char != 0) - *p++ = quote_char; - *p = '\0'; - return ret; -} -#else -/* Normalize quoting of filename -- that is, only quote if there is a space, - and always use the quote-name-quote style. */ -static string -normalize_quotes (const_string name, const_string mesg) -{ - boolean quoted = false; - boolean must_quote = (strchr(name, ' ') != NULL); - /* Leave room for quotes and NUL. */ - string ret = xmalloc(strlen(name)+3); - string p; - const_string q; - p = ret; - if (must_quote) - *p++ = '"'; - for (q = name; *q; q++) { - if (*q == '"') - quoted = !quoted; - else - *p++ = *q; - } - if (must_quote) - *p++ = '"'; - *p = '\0'; - if (quoted) { - fprintf(stderr, "! Unbalanced quotes in %s %s\n", mesg, name); - uexit(1); - } - return ret; -} -#endif - -/* Getting the input filename. */ -string -get_input_file_name (void) -{ - string input_file_name = NULL; - - if (argv[optind] && argv[optind][0] != '&' && argv[optind][0] != '\\') { - /* Not &format, not \input, so assume simple filename. */ - string name; -#ifndef XeTeX - boolean quoted; -#endif - -#ifdef WIN32 - if (strlen (argv[optind]) > 2 && isalpha (argv[optind][0]) && - argv[optind][1] == ':' && argv[optind][2] == '\\') { - char *pp; - for (pp = argv[optind]; *pp; pp++) { - if (*pp == '\\') - *pp = '/'; - else if (IS_KANJI(pp)) - pp++; - } - } -#endif - name = normalize_quotes(argv[optind], "argument"); -#ifdef XeTeX - input_file_name = kpse_find_file(argv[optind], INPUT_FORMAT, false); -#else - quoted = (name[0] == '"'); - if (quoted) { - /* Overwrite last quote and skip first quote. */ - name[strlen(name)-1] = '\0'; - name++; - } - input_file_name = kpse_find_file(name, INPUT_FORMAT, false); - if (quoted) { - /* Undo modifications */ - name[strlen(name)] = '"'; - name--; - } -#endif - argv[optind] = name; - } - return input_file_name; -} - -/* Reading the options. */ - -/* Test whether getopt found an option ``A''. - Assumes the option index is in the variable `option_index', and the - option table in a variable `long_options'. */ -#define ARGUMENT_IS(a) STREQ (long_options[option_index].name, a) - -/* SunOS cc can't initialize automatic structs, so make this static. */ -static struct option long_options[] - = { { DUMP_OPTION, 1, 0, 0 }, -#ifdef TeX - /* Obsolete -- for backward compatibility only. */ - { "efmt", 1, 0, 0 }, -#endif - { "cnf-line", 1, 0, 0 }, - { "help", 0, 0, 0 }, - { "ini", 0, &iniversion, 1 }, - { "interaction", 1, 0, 0 }, - { "halt-on-error", 0, &haltonerrorp, 1 }, - { "kpathsea-debug", 1, 0, 0 }, - { "progname", 1, 0, 0 }, - { "recorder", 0, &recorder_enabled, 1 }, - { "version", 0, 0, 0 }, -#ifdef TeX -#ifdef IPC - { "ipc", 0, &ipcon, 1 }, - { "ipc-start", 0, &ipcon, 2 }, -#endif /* IPC */ -#if !defined(Aleph) - { "mltex", 0, &mltexp, 1 }, -#if !defined(XeTeX) && !IS_pTeX - { "enc", 0, &enctexp, 1 }, -#endif -#endif /* !Aleph */ -#if IS_eTeX - { "etex", 0, &etexp, 1 }, -#endif - { "output-comment", 1, 0, 0 }, -#if defined(pdfTeX) - { "draftmode", 0, 0, 0 }, - { "output-format", 1, 0, 0 }, -#endif /* pdfTeX */ - { "shell-escape", 0, &shellenabledp, 1 }, - { "no-shell-escape", 0, &shellenabledp, -1 }, - { "enable-write18", 0, &shellenabledp, 1 }, - { "disable-write18", 0, &shellenabledp, -1 }, - { "shell-restricted", 0, 0, 0 }, - { "debug-format", 0, &debugformatfile, 1 }, - { "src-specials", 2, 0, 0 }, -#if defined(__SyncTeX__) - /* Synchronization: just like "interaction" above */ - { "synctex", 1, 0, 0 }, -#endif -#endif /* TeX */ -#if defined (TeX) || defined (MF) - { "file-line-error-style", 0, &filelineerrorstylep, 1 }, - { "no-file-line-error-style", 0, &filelineerrorstylep, -1 }, - /* Shorter option names for the above. */ - { "file-line-error", 0, &filelineerrorstylep, 1 }, - { "no-file-line-error", 0, &filelineerrorstylep, -1 }, - { "jobname", 1, 0, 0 }, - { "output-directory", 1, 0, 0 }, - { "parse-first-line", 0, &parsefirstlinep, 1 }, - { "no-parse-first-line", 0, &parsefirstlinep, -1 }, -#if !defined(Aleph) - { "translate-file", 1, 0, 0 }, - { "default-translate-file", 1, 0, 0 }, - { "8bit", 0, &eightbitp, 1 }, -#endif /* !Aleph */ -#if defined(XeTeX) - { "no-pdf", 0, &nopdfoutput, 1 }, - { "output-driver", 1, 0, 0 }, - { "papersize", 1, 0, 0 }, -#endif /* XeTeX */ - { "mktex", 1, 0, 0 }, - { "no-mktex", 1, 0, 0 }, -#endif /* TeX or MF */ -#if IS_pTeX -#ifdef WIN32 - { "guess-input-enc", 0, &infile_enc_auto, 1 }, - { "no-guess-input-enc", 0, &infile_enc_auto, 0 }, -#endif - { "kanji", 1, 0, 0 }, - { "kanji-internal", 1, 0, 0 }, -#endif /* IS_pTeX */ - { 0, 0, 0, 0 } }; - -static void -parse_options (int argc, string *argv) -{ - int g; /* `getopt' return code. */ - int option_index; - - for (;;) { - g = getopt_long_only (argc, argv, "+", long_options, &option_index); - - if (g == -1) /* End of arguments, exit the loop. */ - break; - - if (g == '?') { /* Unknown option. */ - continue; - } - - assert (g == 0); /* We have no short option names. */ - - if (ARGUMENT_IS ("kpathsea-debug")) { - kpathsea_debug |= atoi (optarg); - -#ifdef XeTeX - } else if (ARGUMENT_IS ("papersize")) { - papersize = optarg; - } else if (ARGUMENT_IS ("output-driver")) { - outputdriver = optarg; -#endif - - } else if (ARGUMENT_IS ("progname")) { - user_progname = optarg; - - } else if (ARGUMENT_IS ("cnf-line")) { - if (user_cnf_lines == NULL) { - user_cnf_nlines = 1; - user_cnf_lines = xmalloc (sizeof (const_string)); - } else { - user_cnf_nlines++; - user_cnf_lines = xrealloc (user_cnf_lines, - user_cnf_nlines * sizeof (const_string)); - } - user_cnf_lines[user_cnf_nlines-1] = xstrdup (optarg); - - } else if (ARGUMENT_IS ("jobname")) { -#ifdef XeTeX - c_job_name = optarg; -#else - c_job_name = normalize_quotes (optarg, "jobname"); -#endif - - } else if (ARGUMENT_IS (DUMP_OPTION)) { - dump_name = optarg; - dumpoption = true; - -#ifdef TeX - /* For backward compatibility only. */ - } else if (ARGUMENT_IS ("efmt")) { - dump_name = optarg; - dumpoption = true; -#endif - - } else if (ARGUMENT_IS ("output-directory")) { - output_directory = optarg; - -#ifdef TeX - } else if (ARGUMENT_IS ("output-comment")) { - unsigned len = strlen (optarg); - if (len < 256) { - outputcomment = optarg; - } else { - WARNING2 ("Comment truncated to 255 characters from %d. (%s)", - len, optarg); - outputcomment = xmalloc (256); - strncpy (outputcomment, optarg, 255); - outputcomment[255] = 0; - } - -#ifdef IPC - } else if (ARGUMENT_IS ("ipc-start")) { - ipc_open_out (); - /* Try to start up the other end if it's not already. */ - if (!ipc_is_open ()) { -#ifdef WIN32 - if (_spawnlp (_P_NOWAIT, IPC_SERVER_CMD, IPC_SERVER_CMD, NULL) != -1) { -#else - if (system (IPC_SERVER_CMD) == 0) { -#endif - unsigned i; - for (i = 0; i < 20 && !ipc_is_open (); i++) { -#ifdef WIN32 - Sleep (100); /* 2000ms is too long for a simple w32 example */ -#else - sleep (2); -#endif - ipc_open_out (); - } - } - } -#endif /* IPC */ - - } else if (ARGUMENT_IS ("shell-restricted")) { - shellenabledp = 1; - restrictedshell = 1; - - } else if (ARGUMENT_IS ("src-specials")) { - last_source_name = xstrdup(""); - /* Option `--src" without any value means `auto' mode. */ - if (optarg == NULL) { - insertsrcspecialeverypar = true; - insertsrcspecialauto = true; - srcspecialsoption = true; - srcspecialsp = true; - } else { - parse_src_specials_option(optarg); - } -#endif /* TeX */ -#if defined(pdfTeX) - } else if (ARGUMENT_IS ("output-format")) { - pdfoutputoption = 1; - if (strcmp(optarg, "dvi") == 0) { - pdfoutputvalue = 0; - } else if (strcmp(optarg, "pdf") == 0) { - pdfoutputvalue = 2; - } else { - WARNING1 ("Ignoring unknown value `%s' for --output-format", optarg); - pdfoutputoption = 0; - } - } else if (ARGUMENT_IS ("draftmode")) { - pdfdraftmodeoption = 1; - pdfdraftmodevalue = 1; -#endif /* pdfTeX */ -#if defined (TeX) || defined (MF) -#if !defined(Aleph) - } else if (ARGUMENT_IS ("translate-file")) { - translate_filename = optarg; - } else if (ARGUMENT_IS ("default-translate-file")) { - default_translate_filename = optarg; -#endif /* !Aleph */ - } else if (ARGUMENT_IS ("mktex")) { - kpse_maketex_option (optarg, true); - } else if (ARGUMENT_IS ("no-mktex")) { - kpse_maketex_option (optarg, false); -#endif /* TeX or MF */ - } else if (ARGUMENT_IS ("interaction")) { - /* These numbers match @d's in *.ch */ - if (STREQ (optarg, "batchmode")) { - interactionoption = 0; - } else if (STREQ (optarg, "nonstopmode")) { - interactionoption = 1; - } else if (STREQ (optarg, "scrollmode")) { - interactionoption = 2; - } else if (STREQ (optarg, "errorstopmode")) { - interactionoption = 3; - } else { - WARNING1 ("Ignoring unknown argument `%s' to --interaction", optarg); - } -#if IS_pTeX - } else if (ARGUMENT_IS ("kanji")) { - if (!set_enc_string (optarg, NULL)) { - WARNING1 ("Ignoring unknown argument `%s' to --kanji", optarg); - } - } else if (ARGUMENT_IS ("kanji-internal")) { - if (!set_enc_string (NULL, optarg)) { - WARNING1 ("Ignoring unknown argument `%s' to --kanji-internal", optarg); - } -#endif - - } else if (ARGUMENT_IS ("help")) { - usagehelp (PROGRAM_HELP, BUG_ADDRESS); - -#if defined(__SyncTeX__) - } else if (ARGUMENT_IS ("synctex")) { - /* Synchronize TeXnology: catching the command line option as a long */ - synctexoption = (int) strtol(optarg, NULL, 0); -#endif - - } else if (ARGUMENT_IS ("version")) { - char *versions; -#if defined (pdfTeX) || defined(XeTeX) - initversionstring(&versions); -#else - versions = NULL; -#endif - printversionandexit (BANNER, COPYRIGHT_HOLDER, AUTHOR, versions); - - } /* Else it was a flag; getopt has already done the assignment. */ - } -} - -#if defined(TeX) -void -parse_src_specials_option (const_string opt_list) -{ - char * toklist = xstrdup(opt_list); - char * tok; - insertsrcspecialauto = false; - tok = strtok (toklist, ", "); - while (tok) { - if (strcmp (tok, "everypar") == 0 - || strcmp (tok, "par") == 0 - || strcmp (tok, "auto") == 0) { - insertsrcspecialauto = true; - insertsrcspecialeverypar = true; - } else if (strcmp (tok, "everyparend") == 0 - || strcmp (tok, "parend") == 0) - insertsrcspecialeveryparend = true; - else if (strcmp (tok, "everycr") == 0 - || strcmp (tok, "cr") == 0) - insertsrcspecialeverycr = true; - else if (strcmp (tok, "everymath") == 0 - || strcmp (tok, "math") == 0) - insertsrcspecialeverymath = true; - else if (strcmp (tok, "everyhbox") == 0 - || strcmp (tok, "hbox") == 0) - insertsrcspecialeveryhbox = true; - else if (strcmp (tok, "everyvbox") == 0 - || strcmp (tok, "vbox") == 0) - insertsrcspecialeveryvbox = true; - else if (strcmp (tok, "everydisplay") == 0 - || strcmp (tok, "display") == 0) - insertsrcspecialeverydisplay = true; - else if (strcmp (tok, "none") == 0) { - /* This one allows to reset an option that could appear in texmf.cnf */ - insertsrcspecialauto = insertsrcspecialeverypar = - insertsrcspecialeveryparend = insertsrcspecialeverycr = - insertsrcspecialeverymath = insertsrcspecialeveryhbox = - insertsrcspecialeveryvbox = insertsrcspecialeverydisplay = false; - } else { - WARNING1 ("Ignoring unknown argument `%s' to --src-specials", tok); - } - tok = strtok(0, ", "); - } - free(toklist); - srcspecialsp=insertsrcspecialauto | insertsrcspecialeverypar | - insertsrcspecialeveryparend | insertsrcspecialeverycr | - insertsrcspecialeverymath | insertsrcspecialeveryhbox | - insertsrcspecialeveryvbox | insertsrcspecialeverydisplay; - srcspecialsoption = true; -} -#endif - -/* If the first thing on the command line (we use the globals `argv' and - `optind') is a normal filename (i.e., does not start with `&' or - `\'), and if we can open it, and if its first line is %&FORMAT, and - FORMAT is a readable dump file, then set DUMP_VAR to FORMAT. - Also call kpse_reset_program_name to ensure the correct paths for the - format are used. */ -static void -parse_first_line (const_string filename) -{ - FILE *f = filename ? fopen (filename, FOPEN_R_MODE) : NULL; - if (f) { - string first_line = read_line (f); - xfclose (f, filename); - - /* We deal with the general format "%&fmt --translate-file=tcx" */ - /* The idea of using this format came from Wlodzimierz Bzyl - <matwb@monika.univ.gda.pl> */ - if (first_line && first_line[0] == '%' && first_line[1] == '&') { - /* Parse the first line into at most three space-separated parts. */ - char *s; - char *part[4]; - int npart; - char **parse; - - /* Here we use ISBLANK instead of IS_SPC_OR_EOL because we are - parsing the whitespace-delimited %& line, not TeX input. */ - for (s = first_line+2; ISBLANK(*s); ++s) - ; - npart = 0; - while (*s && npart != 3) { - part[npart++] = s; - while (*s && *s != ' ') s++; - while (*s == ' ') *s++ = '\0'; - } - part[npart] = NULL; - parse = part; - /* Look at what we've got. Very crude! */ - if (*parse && **parse != '-') { - /* A format name */ - if (dump_name) { - /* format already determined, do nothing. */ - } else { - string f_name = concat (part[0], DUMP_EXT); - string d_name = kpse_find_file (f_name, DUMP_FORMAT, false); - if (d_name && kpse_readable_file (d_name)) { - dump_name = xstrdup (part[0]); - kpse_reset_program_name (dump_name); - /* Tell TeX/MF/MP we have a %&name line... */ - dumpline = true; - } - free (f_name); - } - parse++; - } - /* The tcx stuff, if any. Should we support the -translate-file - form as well as --translate-file? */ - if (*parse) { - s = NULL; - if (translate_filename) { - /* TCX file already set, do nothing. */ - } else if (STREQ (*parse, "--translate-file")) { - s = *(parse+1); - } else if (STREQ (*parse, "-translate-file")) { - s = *(parse+1); - } else if (STRNEQ (*parse, "--translate-file=", 17)) { - s = *parse+17; - } else if (STRNEQ (*parse, "-translate-file=", 16)) { - s = *parse+16; - } - /* Just set the name, no sanity checks here. */ - if (s && *s) { - translate_filename = xstrdup(s); - } - } - } - if (first_line) - free (first_line); - } -} - -/* - piped I/O - */ - -/* The code that implements popen() needs an array for tracking - possible pipe file pointers, because these need to be - closed using pclose(). -*/ - -#if ENABLE_PIPES - -#define NUM_PIPES 16 - -static FILE *pipes [NUM_PIPES]; - -boolean -open_in_or_pipe (FILE **f_ptr, int filefmt, const_string fopen_mode) -{ - string fname = NULL; - int i; /* iterator */ - - /* opening a read pipe is straightforward, only have to - skip past the pipe symbol in the file name. filename - quoting is assumed to happen elsewhere (it does :-)) */ - - if (shellenabledp && *(nameoffile+1) == '|') { - /* the user requested a pipe */ - *f_ptr = NULL; - fname = xmalloc(strlen((const_string)(nameoffile+1))+1); - strcpy(fname,(const_string)(nameoffile+1)); - if (fullnameoffile) - free(fullnameoffile); - fullnameoffile = xstrdup(fname); - recorder_record_input (fname + 1); - *f_ptr = runpopen(fname+1,"r"); - free(fname); - for (i=0; i<NUM_PIPES; i++) { - if (pipes[i]==NULL) { - pipes[i] = *f_ptr; - break; - } - } - if (*f_ptr) - setvbuf (*f_ptr,NULL,_IONBF,0); -#ifdef WIN32 - Poptr = *f_ptr; -#endif - - return *f_ptr != NULL; - } - - return open_input(f_ptr,filefmt,fopen_mode) ; -} - -#ifdef XeTeX -boolean -u_open_in_or_pipe(unicodefile* f, integer filefmt, const_string fopen_mode, integer mode, integer encodingData) -{ - string fname = NULL; - int i; /* iterator */ - - /* opening a read pipe is straightforward, only have to - skip past the pipe symbol in the file name. filename - quoting is assumed to happen elsewhere (it does :-)) */ - - if (shellenabledp && *(nameoffile+1) == '|') { - /* the user requested a pipe */ - *f = malloc(sizeof(UFILE)); - (*f)->encodingMode = (mode == AUTO) ? UTF8 : mode; - (*f)->conversionData = 0; - (*f)->savedChar = -1; - (*f)->skipNextLF = 0; - (*f)->f = NULL; - fname = xmalloc(strlen((const_string)(nameoffile+1))+1); - strcpy(fname,(const_string)(nameoffile+1)); - if (fullnameoffile) - free(fullnameoffile); - fullnameoffile = xstrdup(fname); - recorder_record_input (fname + 1); - (*f)->f = runpopen(fname+1,"r"); - free(fname); - for (i=0; i<NUM_PIPES; i++) { - if (pipes[i]==NULL) { - pipes[i] = (*f)->f; - break; - } - } - if ((*f)->f) - setvbuf ((*f)->f,NULL,_IONBF,0); -#ifdef WIN32 - Poptr = (*f)->f; -#endif - - return (*f)->f != NULL; - } - - return u_open_in(f, filefmt, fopen_mode, mode, encodingData); -} -#endif - -boolean -open_out_or_pipe (FILE **f_ptr, const_string fopen_mode) -{ - string fname; - int i; /* iterator */ - - /* opening a write pipe takes a little bit more work, because TeX - will perhaps have appended ".tex". To avoid user confusion as - much as possible, this extension is stripped only when the command - is a bare word. Some small string trickery is needed to make - sure the correct number of bytes is free()-d afterwards */ - - if (shellenabledp && *(nameoffile+1) == '|') { - /* the user requested a pipe */ - fname = xmalloc(strlen((const_string)(nameoffile+1))+1); - strcpy(fname,(const_string)(nameoffile+1)); - if (strchr (fname,' ')==NULL && strchr(fname,'>')==NULL) { - /* mp and mf currently do not use this code, but it - is better to be prepared */ - if (STREQ((fname+strlen(fname)-4),".tex")) - *(fname+strlen(fname)-4) = 0; - *f_ptr = runpopen(fname+1,"w"); - *(fname+strlen(fname)) = '.'; - } else { - *f_ptr = runpopen(fname+1,"w"); - } - recorder_record_output (fname + 1); - free(fname); - - for (i=0; i<NUM_PIPES; i++) { - if (pipes[i]==NULL) { - pipes[i] = *f_ptr; - break; - } - } - - if (*f_ptr) - setvbuf(*f_ptr,NULL,_IONBF,0); - - return *f_ptr != NULL; - } - - return open_output(f_ptr,fopen_mode); -} - - -void -close_file_or_pipe (FILE *f) -{ - int i; /* iterator */ - - if (shellenabledp) { - /* if this file was a pipe, pclose() it and return */ - for (i=0; i<NUM_PIPES; i++) { - if (pipes[i] == f) { - if (f) { - pclose (f); -#ifdef WIN32 - Poptr = NULL; -#endif - } - pipes[i] = NULL; - return; - } - } - } - close_file(f); -} - -#ifdef XeTeX - -#include <unicode/ucnv.h> - -void -u_close_file_or_pipe (unicodefile* f) -{ - int i; /* iterator */ - - if (shellenabledp) { - /* if this file was a pipe, pclose() it and return */ - for (i=0; i<NUM_PIPES; i++) { - if (pipes[i] == (*f)->f) { - if ((*f)->f) { - pclose ((*f)->f); - if (((*f)->encodingMode == ICUMAPPING) && ((*f)->conversionData != NULL)) - ucnv_close((*f)->conversionData); - free(*f); - } - pipes[i] = NULL; - return; - } - } - } - close_file((*f)->f); -} - -#endif - -#endif /* ENABLE_PIPES */ - -/* All our interrupt handler has to do is set TeX's or Metafont's global - variable `interrupt'; then they will do everything needed. */ -#ifdef WIN32 -/* Win32 doesn't set SIGINT ... */ -static BOOL WINAPI -catch_interrupt (DWORD arg) -{ - switch (arg) { - case CTRL_C_EVENT: - case CTRL_BREAK_EVENT: - interrupt = 1; - return TRUE; - default: - /* No need to set interrupt as we are exiting anyway */ - return FALSE; - } -} -#else /* not WIN32 */ -static RETSIGTYPE -catch_interrupt (int arg) -{ - interrupt = 1; -#ifdef OS2 - (void) signal (SIGINT, SIG_ACK); -#else - (void) signal (SIGINT, catch_interrupt); -#endif /* not OS2 */ -} -#endif /* not WIN32 */ - -#if defined(_MSC_VER) -#define strtoull _strtoui64 -#endif - -static boolean start_time_set = false; -static time_t start_time = 0; - -static boolean SOURCE_DATE_EPOCH_set = false; -static boolean FORCE_SOURCE_DATE_set = false; - -void init_start_time() { - char *source_date_epoch; - unsigned long long epoch; - char *endptr; - if (!start_time_set) { - start_time_set = true; -#ifndef onlyTeX - source_date_epoch = getenv("SOURCE_DATE_EPOCH"); - if (source_date_epoch) { - errno = 0; - epoch = strtoull(source_date_epoch, &endptr, 10); - if (*endptr != '\0' || errno != 0) { -FATAL1 ("invalid epoch-seconds-timezone value for environment variable $SOURCE_DATE_EPOCH: %s", - source_date_epoch); - } -#if defined(_MSC_VER) - if (epoch > 32535291599ULL) - epoch = 32535291599ULL; -#endif - start_time = epoch; - SOURCE_DATE_EPOCH_set = true; - } else -#endif /* not onlyTeX */ - { - start_time = time((time_t *) NULL); - } - } -} - -/* Besides getting the date and time here, we also set up the interrupt - handler, for no particularly good reason. It's just that since the - `fix_date_and_time' routine is called early on (section 1337 in TeX, - ``Get the first line of input and prepare to start''), this is as - good a place as any. */ - -void -get_date_and_time (integer *minutes, integer *day, - integer *month, integer *year) -{ - struct tm *tmptr; -#ifndef onlyTeX - string sde_texprim = getenv ("FORCE_SOURCE_DATE"); - if (sde_texprim && STREQ (sde_texprim, "1")) { - init_start_time (); - tmptr = gmtime (&start_time); - FORCE_SOURCE_DATE_set = true; - } else -#endif /* not onlyTeX */ - { - /* whether the envvar was not set (usual case) or invalid, - use current time. */ - time_t myclock = time ((time_t *) 0); - tmptr = localtime (&myclock); - -#ifndef onlyTeX - /* warn if they gave an invalid value, empty (null string) ok. */ - if (sde_texprim && strlen (sde_texprim) > 0 - && !STREQ (sde_texprim, "0")) { -WARNING1 ("invalid value (expected 0 or 1) for environment variable $FORCE_SOURCE_DATE: %s", - sde_texprim); - } -#endif /* not onlyTeX */ - } - - *minutes = tmptr->tm_hour * 60 + tmptr->tm_min; - *day = tmptr->tm_mday; - *month = tmptr->tm_mon + 1; - *year = tmptr->tm_year + 1900; - - { -#ifdef SA_INTERRUPT - /* Under SunOS 4.1.x, the default action after return from the - signal handler is to restart the I/O if nothing has been - transferred. The effect on TeX is that interrupts are ignored if - we are waiting for input. The following tells the system to - return EINTR from read() in this case. From ken@cs.toronto.edu. */ - - struct sigaction a, oa; - - a.sa_handler = catch_interrupt; - sigemptyset (&a.sa_mask); - sigaddset (&a.sa_mask, SIGINT); - a.sa_flags = SA_INTERRUPT; - sigaction (SIGINT, &a, &oa); - if (oa.sa_handler != SIG_DFL) - sigaction (SIGINT, &oa, (struct sigaction *) 0); -#else /* no SA_INTERRUPT */ -#ifdef WIN32 - SetConsoleCtrlHandler(catch_interrupt, TRUE); -#else /* not WIN32 */ - RETSIGTYPE (*old_handler)(int); - - old_handler = signal (SIGINT, catch_interrupt); - if (old_handler != SIG_DFL) - signal (SIGINT, old_handler); -#endif /* not WIN32 */ -#endif /* no SA_INTERRUPT */ - } -} - -#if defined(pdfTeX) || defined(epTeX) || defined(eupTeX) || defined(XeTeX) -/* - Getting a high resolution time. - */ -void -get_seconds_and_micros (integer *seconds, integer *micros) -{ -#if defined (HAVE_GETTIMEOFDAY) - struct timeval tv; - gettimeofday(&tv, NULL); - *seconds = tv.tv_sec; - *micros = tv.tv_usec; -#elif defined (HAVE_FTIME) - struct timeb tb; - ftime(&tb); - *seconds = tb.time; - *micros = tb.millitm*1000; -#else - time_t myclock = time((time_t*)NULL); - *seconds = myclock; - *micros = 0; -#endif -} -#endif - -/* Read a line of input as efficiently as possible while still looking - like Pascal. We set `last' to `first' and return `false' if we get - to eof. Otherwise, we return `true' and set last = first + - length(line except trailing whitespace). */ - -#ifndef XeTeX /* for XeTeX, we have a replacement function in XeTeX_ext.c */ -boolean -input_line (FILE *f) -{ - int i = EOF; - - /* Recognize either LF or CR as a line terminator. */ -#if IS_pTeX - last = input_line2(f, (unsigned char *)buffer, first, bufsize, &i); -#else -#ifdef WIN32 - if (f != Poptr && fileno (f) != fileno (stdin)) { - long position = ftell (f); - - if (position == 0L) { /* Detect and skip Byte order marks. */ - int k1, k2, k3, k4; - k1 = getc (f); - - if (k1 != 0xff && k1 != 0xfe && k1 != 0xef) - rewind (f); - else { - k2 = getc (f); - - if (k2 != 0xff && k2 != 0xfe && k2 != 0xbb) - rewind (f); - else if ((k1 == 0xff && k2 == 0xfe) || /* UTF-16(LE) */ - (k1 == 0xfe && k2 == 0xff)) /* UTF-16(BE) */ - ; - else { - k3 = getc (f); - k4 = getc (f); - if (k1 == 0xef && k2 == 0xbb && k3 == 0xbf && - k4 >= 0 && k4 <= 0x7e) /* UTF-8 */ - ungetc (k4, f); - else - rewind (f); - } - } - } - } -#endif /* WIN32 */ - last = first; - do { - errno = 0; /* otherwise EINTR might wrongly persist */ - while (last < bufsize && (i = getc (f)) != EOF && i != '\n' && i != '\r') - buffer[last++] = i; - - /* The story on EINTR: because we tell libc to pass interrupts - through (see SA_INTERRUPT above), we have to make sure that we - check for and ignore EINTR when getc reads an EOF; hence the - outer do..while loop here (and a similar loop below). - - On the other hand, we have to make sure that we detect a real - EOF. Otherwise, for example, typing CTRL-C and then CTRL-D to the - ** prompt results in an infinite loop, because we - (input_line) would never return false. On glibc 2.28-10 (Debian - 10/buster), and probably other versions, errno is evidently not - cleared as a side effect of getc (and this is allowed). - Therefore we clear errno before calling getc above. - - Original report (thread following has many irrelevant diversions): - https://tug.org/pipermail/tex-k/2020-August/003297.html */ - - } while (i == EOF && errno == EINTR); -#endif /* not IS_pTeX */ - - if (i == EOF && last == first) - return false; - - /* We didn't get the whole line because our buffer was too small. */ - if (i != EOF && i != '\n' && i != '\r') { - fprintf (stderr, "! Unable to read an entire line---bufsize=%u.\n", - (unsigned) bufsize); - fputs ("Please increase buf_size in texmf.cnf.\n", stderr); - uexit (1); - } - - buffer[last] = ' '; - if (last >= maxbufstack) - maxbufstack = last; - - /* If next char is LF of a CRLF, read it. */ - if (i == '\r') { - while ((i = getc (f)) == EOF && errno == EINTR) - ; - if (i != '\n') - ungetc (i, f); - } - - /* Trim trailing space character (but not, e.g., tabs). We can't have - line terminators because we stopped reading at the first \r or \n. - TeX's rule is to strip only trailing spaces (and eols). David - Fuchs mentions that this stripping was done to ensure portability - of TeX documents given the padding with spaces on fixed-record - "lines" on some systems of the time, e.g., IBM VM/CMS and OS/360. */ - while (last > first && buffer[last - 1] == ' ') - --last; - - /* Don't bother using xord if we don't need to. */ -#if !defined(Aleph) - for (i = first; i <= last; i++) - buffer[i] = xord[buffer[i]]; -#endif - -#if IS_pTeX - for (i = last+1; (i < last + 5 && i < bufsize) ; i++) - buffer[i] = '\0'; -#endif - - return true; -} -#endif /* !XeTeX */ - -/* This string specifies what the `e' option does in response to an - error message. */ -static const_string edit_value = EDITOR; - -/* This procedure originally due to sjc@s1-c. TeX & Metafont call it when - the user types `e' in response to an error, invoking a text editor on - the erroneous source file. FNSTART is how far into FILENAME the - actual filename starts; FNLENGTH is how long the filename is. */ - -void -calledit (packedASCIIcode *filename, - poolpointer fnstart, - integer fnlength, - integer linenumber) -{ - char *temp, *command, *fullcmd; - char c; - int sdone, ddone; - -#ifdef WIN32 - char *fp, *ffp, *env, editorname[256], buffer[256]; - int cnt = 0; - int dontchange = 0; -#endif - - sdone = ddone = 0; - filename += fnstart; - - /* Close any open input files, since we're going to kill the job and - the editor might well want to open them for writing. On Windows, - at least, that would not be allowed when the file is still open. - - Unfortunately, the input_file array contains both the open files - that we want to close, and junk references to non-files for - terminal interaction that we must not try to close. For example, - consider this input sequence: - \input test % contains a single line \bla, that is, any undefined cs - i\bum x % insert another undefined control sequence - e % invoke the editor - At this point input_file will have an open file for test.tex, - and a non-file for the insert. https://tex.stackexchange.com/q/552113 - - Therefore, we have to traverse down input_stack (not input_file), - looking for name_field values >17, which correspond to open - files, and then the index_field value of that entry tells us the - corresponding element of input_file, which is what we need to close. - - We test for >17 because name_field=0 means the terminal, - name_field=1..16 means \openin stream n - 1, - name_field=17 means an invalid stream number (for read_toks). - Although ... seems like we should close any opened \openin files also. - Whoever is reading this, please implement that? Sigh. - - Description in modules 300--304 of tex.web: "Input stacks and states." - - Here, we do not have to look at cur_input, the global variable - which is effectively the top of input_stack, because it will always - be a terminal (non-file) interaction -- the one where the user - typed "e" to start the edit. */ - { - int is_ptr; /* element of input_stack, 0 < input_ptr */ - for (is_ptr = 0; is_ptr < inputptr; is_ptr++) { - if (inputstack[is_ptr].namefield <= 17) { - ; /* fprintf (stderr, "calledit: skipped input_stack[%d], ", is_ptr); - fprintf (stderr, "namefield=%d <= 17\n", - inputstack[is_ptr].namefield); */ - } else { - FILE *f; - /* when name_field > 17, index_field specifies the element of - the input_file array, 1 <= in_open */ - int if_ptr = inputstack[is_ptr].indexfield; - if (if_ptr < 1 || if_ptr > inopen) { - fprintf (stderr, "%s:calledit: unexpected if_ptr=%d not in range 1..%d,", - argv[0], if_ptr, inopen); - fprintf (stderr, "from input_stack[%d].namefield=%d\n", - is_ptr, inputstack[is_ptr].namefield); - exit (1); - } - -#ifdef XeTeX - f = inputfile[if_ptr]->f; -#else - f = inputfile[if_ptr]; -#endif - /* fprintf (stderr,"calledit: input_stack #%d -> input_file #%d = %x\n", - is_ptr, if_ptr, f); */ - /* Although it should never happen, if the file value happens to - be zero, let's not gratuitously abort. */ - if (f) { - xfclose (f, "inputfile"); - } else { - fprintf (stderr, "%s:calledit: not closing unexpected zero", argv[0]); - fprintf (stderr, " input_file[%d] from input_stack[%d].namefield=%d\n", - if_ptr, is_ptr, inputstack[is_ptr].namefield); - } - } /* end name_field > 17 */ - } /* end for loop for input_stack */ - } /* end block for variable declarations */ - - /* Replace the default with the value of the appropriate environment - variable or config file value, if it's set. */ - temp = kpse_var_value (edit_var); - if (temp != NULL) - edit_value = temp; - - /* Construct the command string. The `11' is the maximum length an - integer might be (64 bits). */ - command = xmalloc (strlen (edit_value) + fnlength + 11); - - /* So we can construct it as we go. */ - temp = command; - -#ifdef WIN32 - fp = editorname; - if ((isalpha(*edit_value) && *(edit_value + 1) == ':' - && IS_DIR_SEP (*(edit_value + 2))) - || (*edit_value == '"' && isalpha(*(edit_value + 1)) - && *(edit_value + 2) == ':' - && IS_DIR_SEP (*(edit_value + 3))) - ) - dontchange = 1; -#endif - - while ((c = *edit_value++) != 0) - { - if (c == '%') - { - int i; - switch (c = *edit_value++) - { - case 'd': - if (ddone) - FATAL ("call_edit: `%%d' appears twice in editor command"); - sprintf (temp, "%ld", (long int)linenumber); - while (*temp != '\0') - temp++; - ddone = 1; - break; - - case 's': - if (sdone) - FATAL ("call_edit: `%%s' appears twice in editor command"); - for (i =0; i < fnlength; i++) - *temp++ = Xchr (filename[i]); - sdone = 1; - break; - - case '\0': - *temp++ = '%'; - /* Back up to the null to force termination. */ - edit_value--; - break; - - default: - *temp++ = '%'; - *temp++ = c; - break; - } - } - else { -#ifdef WIN32 - if (dontchange) - *temp++ = c; - else { if(Isspace(c) && cnt == 0) { - cnt++; - temp = command; - *temp++ = c; - *fp = '\0'; - } else if(!Isspace(c) && cnt == 0) { - *fp++ = c; - } else { - *temp++ = c; - } - } -#else - *temp++ = c; -#endif - } - } - - *temp = 0; - -#ifdef WIN32 - if (dontchange == 0) { - if(editorname[0] == '.' || - editorname[0] == '/' || - editorname[0] == '\\') { - fprintf(stderr, "%s is not allowed to execute.\n", editorname); - uexit(1); - } - env = (char *)getenv("PATH"); - if(SearchPath(env, editorname, ".exe", 256, buffer, &ffp)==0) { - if(SearchPath(env, editorname, ".bat", 256, buffer, &ffp)==0) { - fprintf(stderr, "I cannot find %s in the PATH.\n", editorname); - uexit(1); - } - } - fullcmd = (char *)xmalloc(strlen(buffer)+strlen(command)+5); - strcpy(fullcmd, "\""); - strcat(fullcmd, buffer); - strcat(fullcmd, "\""); - strcat(fullcmd, command); - } else -#endif - fullcmd = command; - - /* Execute the command. */ - if (system (fullcmd) != 0) - fprintf (stderr, "! Trouble executing `%s'.\n", command); - - /* Quit, since we found an error. */ - uexit (1); -} - -/* Read and write dump files. As distributed, these files are - architecture dependent; specifically, BigEndian and LittleEndian - architectures produce different files. These routines always output - BigEndian files. This still does not guarantee them to be - architecture-independent, because it is possible to make a format - that dumps a glue ratio, i.e., a floating-point number. Fortunately, - none of the standard formats do that. */ - -#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE) /* this fn */ - -/* This macro is always invoked as a statement. It assumes a variable - `temp'. */ - -#define SWAP(x, y) temp = (x); (x) = (y); (y) = temp - - -/* Make the NITEMS items pointed at by P, each of size SIZE, be the - opposite-endianness of whatever they are now. */ - -static void -swap_items (char *p, int nitems, int size) -{ - char temp; - - /* Since `size' does not change, we can write a while loop for each - case, and avoid testing `size' for each time. */ - switch (size) - { - /* 16-byte items happen on the DEC Alpha machine when we are not - doing sharable memory dumps. */ - case 16: - while (nitems--) - { - SWAP (p[0], p[15]); - SWAP (p[1], p[14]); - SWAP (p[2], p[13]); - SWAP (p[3], p[12]); - SWAP (p[4], p[11]); - SWAP (p[5], p[10]); - SWAP (p[6], p[9]); - SWAP (p[7], p[8]); - p += size; - } - break; - - case 8: - while (nitems--) - { - SWAP (p[0], p[7]); - SWAP (p[1], p[6]); - SWAP (p[2], p[5]); - SWAP (p[3], p[4]); - p += size; - } - break; - - case 4: - while (nitems--) - { - SWAP (p[0], p[3]); - SWAP (p[1], p[2]); - p += size; - } - break; - - case 2: - while (nitems--) - { - SWAP (p[0], p[1]); - p += size; - } - break; - - case 1: - /* Nothing to do. */ - break; - - default: - FATAL1 ("Can't swap a %d-byte item for (un)dumping", size); - } -} -#endif /* not WORDS_BIGENDIAN and not NO_DUMP_SHARE */ - - -/* Here we write NITEMS items, each item being ITEM_SIZE bytes long. - The pointer to the stuff to write is P, and we write to the file - OUT_FILE. */ - -void -#ifdef FMT_COMPRESS -do_dump (char *p, int item_size, int nitems, gzFile out_file) -#else -do_dump (char *p, int item_size, int nitems, FILE *out_file) -#endif -{ -#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE) - swap_items (p, nitems, item_size); -#endif - -#ifdef FMT_COMPRESS - if (gzwrite (out_file, p, item_size * nitems) != item_size * nitems) -#else - if (fwrite (p, item_size, nitems, out_file) != nitems) -#endif - { - fprintf (stderr, "! Could not write %d %d-byte item(s) to %s.\n", - nitems, item_size, nameoffile+1); - uexit (1); - } - - /* Have to restore the old contents of memory, since some of it might - get used again. */ -#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE) - swap_items (p, nitems, item_size); -#endif -} - - -/* Here is the dual of the writing routine. */ - -void -#ifdef FMT_COMPRESS -do_undump (char *p, int item_size, int nitems, gzFile in_file) -#else -do_undump (char *p, int item_size, int nitems, FILE *in_file) -#endif -{ -#ifdef FMT_COMPRESS - if (gzread (in_file, p, item_size * nitems) != item_size * nitems) -#else - if (fread (p, item_size, nitems, in_file) != (size_t) nitems) -#endif - FATAL3 ("Could not undump %d %d-byte item(s) from %s", - nitems, item_size, nameoffile+1); - -#if !defined (WORDS_BIGENDIAN) && !defined (NO_DUMP_SHARE) - swap_items (p, nitems, item_size); -#endif -} - -/* Some (most?) of this could be moved to the WEB side, but oh well. */ -#if defined(TeX) || defined(MF) -#if !defined(pdfTeX) -static void -checkpoolpointer (poolpointer poolptr, size_t len) -{ - if (poolptr + len >= poolsize) { - fprintf (stderr, "\nstring pool overflow [%i bytes]\n", - (int)poolsize); /* fixme */ - exit(1); - } -} - -#ifndef XeTeX /* XeTeX uses this from XeTeX_ext.c */ -static -#endif -int -maketexstring(const_string s) -{ - size_t len; -#ifdef XeTeX - UInt32 rval; - const unsigned char *cp = (const unsigned char *)s; -#endif -#if defined(TeX) - if (s == NULL || *s == 0) - return getnullstr(); -#else - assert (s != 0); -#endif - len = strlen(s); - checkpoolpointer (poolptr, len); /* in the XeTeX case, this may be more than enough */ -#ifdef XeTeX - while ((rval = *(cp++)) != 0) { - UInt16 extraBytes = bytesFromUTF8[rval]; - switch (extraBytes) { /* note: code falls through cases! */ - case 5: rval <<= 6; if (*cp) rval += *(cp++); - case 4: rval <<= 6; if (*cp) rval += *(cp++); - case 3: rval <<= 6; if (*cp) rval += *(cp++); - case 2: rval <<= 6; if (*cp) rval += *(cp++); - case 1: rval <<= 6; if (*cp) rval += *(cp++); - case 0: ; - }; - rval -= offsetsFromUTF8[extraBytes]; - if (rval > 0xffff) { - rval -= 0x10000; - strpool[poolptr++] = 0xd800 + rval / 0x0400; - strpool[poolptr++] = 0xdc00 + rval % 0x0400; - } - else - strpool[poolptr++] = rval; - } -#else /* ! XeTeX */ - while (len-- > 0) - strpool[poolptr++] = *s++; -#endif /* ! XeTeX */ - - return makestring(); -} -#endif /* !pdfTeX */ - -strnumber -makefullnamestring(void) -{ - return maketexstring(fullnameoffile); -} - -/* Get the job name to be used, which may have been set from the - command line. */ -strnumber -getjobname(strnumber name) -{ - strnumber ret = name; - if (c_job_name != NULL) - ret = maketexstring(c_job_name); - return ret; -} -#endif - -#if defined(TeX) -static int -compare_paths (const_string p1, const_string p2) -{ - int ret; - while ( -#ifdef MONOCASE_FILENAMES - (((ret = (toupper(*p1) - toupper(*p2))) == 0) && (*p2 != 0)) -#else - (((ret = (*p1 - *p2)) == 0) && (*p2 != 0)) -#endif - || (IS_DIR_SEP(*p1) && IS_DIR_SEP(*p2))) { - p1++, p2++; - } - ret = (ret < 0 ? -1 : (ret > 0 ? 1 : 0)); - return ret; -} - -#ifdef XeTeX /* the string pool is UTF-16 but we want a UTF-8 string */ - -string -gettexstring (strnumber s) -{ - unsigned bytesToWrite = 0; - poolpointer len, i, j; - string name; - if (s >= 65536L) - len = strstart[s + 1 - 65536L] - strstart[s - 65536L]; - else - len = 0; - name = xmalloc(len * 3 + 1); /* max UTF16->UTF8 expansion - (code units, not bytes) */ - for (i = 0, j = 0; i < len; i++) { - unsigned c = strpool[i + strstart[s - 65536L]]; - if (c >= 0xD800 && c <= 0xDBFF) { - unsigned lo = strpool[++i + strstart[s - 65536L]]; - if (lo >= 0xDC00 && lo <= 0xDFFF) - c = (c - 0xD800) * 0x0400 + lo - 0xDC00; - else - c = 0xFFFD; - } - if (c < 0x80) - bytesToWrite = 1; - else if (c < 0x800) - bytesToWrite = 2; - else if (c < 0x10000) - bytesToWrite = 3; - else if (c < 0x110000) - bytesToWrite = 4; - else { - bytesToWrite = 3; - c = 0xFFFD; - } - - j += bytesToWrite; - switch (bytesToWrite) { /* note: everything falls through. */ - case 4: name[--j] = ((c | 0x80) & 0xBF); c >>= 6; - case 3: name[--j] = ((c | 0x80) & 0xBF); c >>= 6; - case 2: name[--j] = ((c | 0x80) & 0xBF); c >>= 6; - case 1: name[--j] = (c | firstByteMark[bytesToWrite]); - } - j += bytesToWrite; - } - name[j] = 0; - return name; -} - -#else - -string -gettexstring (strnumber s) -{ - poolpointer len; - string name; -#if !defined(Aleph) - len = strstart[s + 1] - strstart[s]; -#else - len = strstartar[s + 1 - 65536L] - strstartar[s - 65536L]; -#endif - name = (string)xmalloc (len + 1); -#if !defined(Aleph) - strncpy (name, (string)&strpool[strstart[s]], len); -#else - { - poolpointer i; - /* Don't use strncpy. The strpool is not made up of chars. */ - for (i=0; i<len; i++) name[i] = strpool[i+strstartar[s - 65536L]]; - } -#endif - name[len] = 0; - return name; -} - -#endif /* not XeTeX */ - -boolean -isnewsource (strnumber srcfilename, int lineno) -{ - char *name = gettexstring(srcfilename); - return (compare_paths(name, last_source_name) != 0 || lineno != last_lineno); -} - -void -remembersourceinfo (strnumber srcfilename, int lineno) -{ - if (last_source_name) - free(last_source_name); - last_source_name = gettexstring(srcfilename); - last_lineno = lineno; -} - -poolpointer -makesrcspecial (strnumber srcfilename, int lineno) -{ - poolpointer oldpoolptr = poolptr; - char *filename = gettexstring(srcfilename); - /* FIXME: Magic number. */ - char buf[40]; - char *s = buf; - - /* Always put a space after the number, which makes things easier - * to parse. - */ - sprintf (buf, "src:%d ", lineno); - - if (poolptr + strlen(buf) + strlen(filename) >= (size_t)poolsize) { - fprintf (stderr, "\nstring pool overflow\n"); /* fixme */ - exit (1); - } - s = buf; - while (*s) - strpool[poolptr++] = *s++; - - s = filename; - while (*s) - strpool[poolptr++] = *s++; - - return (oldpoolptr); -} - -/* pdfTeX routines also used for e-pTeX, e-upTeX, and XeTeX */ -#if defined (pdfTeX) || defined (epTeX) || defined (eupTeX) || defined(XeTeX) - -#include <kpathsea/c-stat.h> -#include "md5.h" - -#define check_nprintf(size_get, size_want) \ - if ((unsigned)(size_get) >= (unsigned)(size_want)) \ - pdftex_fail ("snprintf failed: file %s, line %d", __FILE__, __LINE__); -# define check_buf(size, buf_size) \ - if ((unsigned)(size) > (unsigned)(buf_size)) \ - pdftex_fail("buffer overflow at file %s, line %d", __FILE__, __LINE__ ) -# define xfree(p) do { if (p != NULL) free(p); p = NULL; } while (0) -# define MAX_CSTRING_LEN 1024 * 1024 - -#if !defined (pdfTeX) -# define PRINTF_BUF_SIZE 1024 -static char print_buf[PRINTF_BUF_SIZE]; - -/* Helper for pdftex_fail. */ -static void -safe_print(const char *str) -{ - const char *c; - for (c = str; *c; ++c) - print(*c); -} -/* pdftex_fail may be called when a buffer overflow has happened/is - happening, therefore may not call mktexstring. However, with the - current implementation it appears that error messages are misleading, - possibly because pool overflows are detected too late. - - The output format of this fuction must be the same as pdf_error in - pdftex.web! */ -__attribute__ ((noreturn, format(printf, 1, 2))) -void pdftex_fail(const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - println(); - safe_print("!error: "); - vsnprintf(print_buf, PRINTF_BUF_SIZE, fmt, args); - safe_print(print_buf); - va_end(args); - println(); - safe_print(" ==> Fatal error occurred, output file will be damaged!"); - println(); - if (kpathsea_debug) { - safe_print("kpathsea_debug enabled, calling abort()..."); - println(); - abort(); - } else { - exit(EXIT_FAILURE); - } -} -#endif /* not pdfTeX */ - -#define TIME_STR_SIZE 30 -char start_time_str[TIME_STR_SIZE]; -static char time_str[TIME_STR_SIZE]; - /* minimum size for time_str is 24: "D:YYYYmmddHHMMSS+HH'MM'" */ - -static void -makepdftime(time_t t, char *time_str, boolean utc) -{ - struct tm lt, gmt; - size_t size; - int i, off, off_hours, off_mins; - - /* get the time */ - if (utc) { - lt = *gmtime(&t); - } - else { - lt = *localtime(&t); - } - size = strftime(time_str, TIME_STR_SIZE, "D:%Y%m%d%H%M%S", <); - /* expected format: "YYYYmmddHHMMSS" */ - if (size == 0) { - /* unexpected, contents of time_str is undefined */ - time_str[0] = '\0'; - return; - } - - /* correction for seconds: %S can be in range 00..61, - the PDF reference expects 00..59, - therefore we map "60" and "61" to "59" */ - if (time_str[14] == '6') { - time_str[14] = '5'; - time_str[15] = '9'; - time_str[16] = '\0'; /* for safety */ - } - - /* get the time zone offset */ - gmt = *gmtime(&t); - - /* this calculation method was found in exim's tod.c */ - off = 60 * (lt.tm_hour - gmt.tm_hour) + lt.tm_min - gmt.tm_min; - if (lt.tm_year != gmt.tm_year) { - off += (lt.tm_year > gmt.tm_year) ? 1440 : -1440; - } else if (lt.tm_yday != gmt.tm_yday) { - off += (lt.tm_yday > gmt.tm_yday) ? 1440 : -1440; - } - - if (off == 0) { - time_str[size++] = 'Z'; - time_str[size] = 0; - } else { - off_hours = off / 60; - off_mins = abs(off - off_hours * 60); - i = snprintf(&time_str[size], 9, "%+03d'%02d'", off_hours, off_mins); - check_nprintf(i, 9); - } -} - -void -initstarttime(void) -{ - if (!start_time_set) { - init_start_time (); - if (getenv ("SOURCE_DATE_EPOCH")) { - makepdftime (start_time, start_time_str, /* utc= */true); - } else { - makepdftime (start_time, start_time_str, /* utc= */false); - } - } -} - -#if defined(_WIN32) -#undef access -#undef dir_p -#define access fsyscp_access -#define dir_p fsyscp_dir_p -#endif /* _WIN32 */ - -/* Search for an input file. If -output-directory is specified look - there first. If that fails, do the regular kpse search. */ -string -find_input_file(integer s) -{ - string filename; - -#if defined(XeTeX) - filename = gettexstring(s); -#else - filename = makecfilename(s); -#endif - /* Look in -output-directory first, if the filename is not - absolute. This is because we want the pdf* functions to - be able to find the same files as \openin */ - if (output_directory && !kpse_absolute_p (filename, false)) { - string pathname; - - pathname = concat3(output_directory, DIR_SEP_STRING, filename); - if (!access(pathname, R_OK) && !dir_p (pathname)) { - return pathname; - } - xfree (pathname); - } - if (! kpse_in_name_ok(filename)) { - return NULL; /* no permission */ - } - return kpse_find_tex(filename); -} - -#if !defined(XeTeX) -char * -makecstring(integer s) -{ - static char *cstrbuf = NULL; - char *p; - static int allocsize; - int allocgrow, i, l = strstart[s + 1] - strstart[s]; - check_buf(l + 1, MAX_CSTRING_LEN); - if (cstrbuf == NULL) { - allocsize = l + 1; - cstrbuf = xmallocarray(char, allocsize); - } else if (l + 1 > allocsize) { - allocgrow = allocsize * 0.2; - if (l + 1 - allocgrow > allocsize) - allocsize = l + 1; - else if (allocsize < MAX_CSTRING_LEN - allocgrow) - allocsize += allocgrow; - else - allocsize = MAX_CSTRING_LEN; - cstrbuf = xreallocarray(cstrbuf, char, allocsize); - } - p = cstrbuf; - for (i = 0; i < l; i++) - *p++ = strpool[i + strstart[s]]; - *p = 0; - return cstrbuf; -} - -/* makecfilename - input/ouput same as makecstring: - input: string number - output: C string with quotes removed. - That means, file names that are legal on some operation systems - cannot any more be used since pdfTeX version 1.30.4. -*/ -char * -makecfilename(integer s) -{ - char *name = makecstring(s); - char *p = name; - char *q = name; - - while (*p) { - if (*p != '"') - *q++ = *p; - p++; - } - *q = '\0'; - return name; -} -#endif /* !XeTeX */ - -void -getcreationdate(void) -{ - size_t len; -#if defined(XeTeX) - int i; -#endif - initstarttime(); - /* put creation date on top of string pool and update poolptr */ - len = strlen(start_time_str); - - /* In e-pTeX, "init len => call initstarttime()" (as pdftexdir/utils.c) - yields unintentional output. */ - - if ((unsigned) (poolptr + len) >= (unsigned) (poolsize)) { - poolptr = poolsize; - /* error by str_toks that calls str_room(1) */ - return; - } - -#if defined(XeTeX) - for (i = 0; i < len; i++) - strpool[poolptr++] = (uint16_t)start_time_str[i]; -#else - memcpy(&strpool[poolptr], start_time_str, len); - poolptr += len; -#endif -} - -void -getfilemoddate(integer s) -{ - struct stat file_data; - - char *file_name = find_input_file(s); - if (file_name == NULL) { - return; /* empty string */ - } - - recorder_record_input(file_name); - /* get file status */ -#ifdef _WIN32 - if (fsyscp_stat(file_name, &file_data) == 0) { -#else - if (stat(file_name, &file_data) == 0) { -#endif - size_t len; - boolean use_utc = FORCE_SOURCE_DATE_set && SOURCE_DATE_EPOCH_set; - makepdftime(file_data.st_mtime, time_str, use_utc); - len = strlen(time_str); - if ((unsigned) (poolptr + len) >= (unsigned) (poolsize)) { - poolptr = poolsize; - /* error by str_toks that calls str_room(1) */ - } else { -#if defined(XeTeX) - int i; - - for (i = 0; i < len; i++) - strpool[poolptr++] = (uint16_t)time_str[i]; -#else - memcpy(&strpool[poolptr], time_str, len); - poolptr += len; -#endif - } - } - /* else { errno contains error code } */ - - xfree(file_name); -} - -void -getfilesize(integer s) -{ - struct stat file_data; - int i; - - char *file_name = find_input_file(s); - if (file_name == NULL) { - return; /* empty string */ - } - - recorder_record_input(file_name); - /* get file status */ -#ifdef _WIN32 - if (fsyscp_stat(file_name, &file_data) == 0) { -#else - if (stat(file_name, &file_data) == 0) { -#endif - size_t len; - char buf[20]; - - /* st_size has type off_t */ - i = snprintf(buf, sizeof(buf), - "%lu", (long unsigned int) file_data.st_size); - check_nprintf(i, sizeof(buf)); - len = strlen(buf); - if ((unsigned) (poolptr + len) >= (unsigned) (poolsize)) { - poolptr = poolsize; - /* error by str_toks that calls str_room(1) */ - } else { -#if defined(XeTeX) - for (i = 0; i < len; i++) - strpool[poolptr++] = (uint16_t)buf[i]; -#else - memcpy(&strpool[poolptr], buf, len); - poolptr += len; -#endif - } - } - /* else { errno contains error code } */ - - xfree(file_name); -} - -void -getfiledump(integer s, int offset, int length) -{ - FILE *f; - int read, i; -#if defined(XeTeX) - unsigned char *readbuffer; - char strbuf[3]; - int j, k; -#else - poolpointer data_ptr; - poolpointer data_end; -#endif /* XeTeX */ - char *file_name; - - if (length == 0) { - /* empty result string */ - return; - } - - if (poolptr + 2 * length + 1 >= poolsize) { - /* no place for result */ - poolptr = poolsize; - /* error by str_toks that calls str_room(1) */ - return; - } - - file_name = find_input_file(s); - if (file_name == NULL) { - return; /* empty string */ - } - - /* read file data */ - f = fopen(file_name, FOPEN_RBIN_MODE); - if (f == NULL) { - xfree(file_name); - return; - } - recorder_record_input(file_name); - if (fseek(f, offset, SEEK_SET) != 0) { - xfree(file_name); - return; - } -#if defined(XeTeX) - readbuffer = (unsigned char *)xmalloc (length + 1); - read = fread(readbuffer, sizeof(char), length, f); - fclose(f); - for (j = 0; j < read; j++) { - i = snprintf (strbuf, 3, "%.2X", (unsigned int)readbuffer[j]); - check_nprintf(i, 3); - for (k = 0; k < i; k++) - strpool[poolptr++] = (uint16_t)strbuf[k]; - } - xfree (readbuffer); -#else - /* there is enough space in the string pool, the read - data are put in the upper half of the result, thus - the conversion to hex can be done without overwriting - unconverted bytes. */ - data_ptr = poolptr + length; - read = fread(&strpool[data_ptr], sizeof(char), length, f); - fclose(f); - - /* convert to hex */ - data_end = data_ptr + read; - for (; data_ptr < data_end; data_ptr++) { - i = snprintf((char *) &strpool[poolptr], 3, - "%.2X", (unsigned int) strpool[data_ptr]); - check_nprintf(i, 3); - poolptr += i; - } -#endif /* XeTeX */ - xfree(file_name); -} - -/* Converts any given string in into an allowed PDF string which is - * hexadecimal encoded; - * sizeof(out) should be at least lin*2+1. - */ -void -convertStringToHexString(const char *in, char *out, int lin) -{ - int i, j, k; - char buf[3]; - j = 0; - for (i = 0; i < lin; i++) { - k = snprintf(buf, sizeof(buf), - "%02X", (unsigned int) (unsigned char) in[i]); - check_nprintf(k, sizeof(buf)); - out[j++] = buf[0]; - out[j++] = buf[1]; - } - out[j] = '\0'; -} - -#define DIGEST_SIZE 16 -#define FILE_BUF_SIZE 1024 - -void -getmd5sum(strnumber s, boolean file) -{ - md5_state_t state; - md5_byte_t digest[DIGEST_SIZE]; - char outbuf[2 * DIGEST_SIZE + 1]; - int len = 2 * DIGEST_SIZE; -#if defined(XeTeX) - char *xname; - int i; -#endif - - if (file) { - char file_buf[FILE_BUF_SIZE]; - int read = 0; - FILE *f; - char *file_name; - - file_name = find_input_file(s); - if (file_name == NULL) { - return; /* empty string */ - } - - /* in case of error the empty string is returned, - no need for xfopen that aborts on error. - */ - f = fopen(file_name, FOPEN_RBIN_MODE); - if (f == NULL) { - xfree(file_name); - return; - } - recorder_record_input(file_name); - md5_init(&state); - while ((read = fread(&file_buf, sizeof(char), FILE_BUF_SIZE, f)) > 0) { - md5_append(&state, (const md5_byte_t *) file_buf, read); - } - md5_finish(&state, digest); - fclose(f); - - xfree(file_name); - } else { - /* s contains the data */ - md5_init(&state); -#if defined(XeTeX) - xname = gettexstring (s); - md5_append(&state, - (md5_byte_t *) xname, - strlen (xname)); - xfree (xname); -#else - md5_append(&state, - (md5_byte_t *) &strpool[strstart[s]], - strstart[s + 1] - strstart[s]); -#endif - md5_finish(&state, digest); - } - - if (poolptr + len >= poolsize) { - /* error by str_toks that calls str_room(1) */ - return; - } - convertStringToHexString((char *) digest, outbuf, DIGEST_SIZE); -#if defined(XeTeX) - for (i = 0; i < 2 * DIGEST_SIZE; i++) - strpool[poolptr++] = (uint16_t)outbuf[i]; -#else - memcpy(&strpool[poolptr], outbuf, len); - poolptr += len; -#endif -} - -#endif /* pdfTeX or e-pTeX or e-upTeX or XeTeX */ -#endif /* TeX */ - -/* Metafont/MetaPost fraction routines. Replaced either by assembler or C. - The assembler syntax doesn't work on Solaris/x86. */ -#ifndef TeX -#if defined (__sun__) || defined (__cplusplus) -#define NO_MF_ASM -#endif -/* The assembler code is not PIC safe on i?86 so use C code. */ -#if defined (__PIC__) && defined (__i386__) -#define NO_MF_ASM -#endif -#if defined(WIN32) && !defined(NO_MF_ASM) && !defined(__MINGW32__) -#include "lib/mfmpw32.c" -#elif defined (__i386__) && defined (__GNUC__) && !defined (NO_MF_ASM) -#include "lib/mfmpi386.asm" -#else -/* Replace fixed-point fraction routines from mf.web and mp.web with - Hobby's floating-point C code. */ - -/**************************************************************** -Copyright 1990 - 1995 by AT&T Bell Laboratories. - -Permission to use, copy, modify, and distribute this software -and its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the names of AT&T Bell Laboratories or -any of its entities not be used in advertising or publicity -pertaining to distribution of the software without specific, -written prior permission. - -AT&T disclaims all warranties with regard to this software, -including all implied warranties of merchantability and fitness. -In no event shall AT&T be liable for any special, indirect or -consequential damages or any damages whatsoever resulting from -loss of use, data or profits, whether in an action of contract, -negligence or other tortious action, arising out of or in -connection with the use or performance of this software. -****************************************************************/ - -/********************************************************** - The following is by John Hobby - **********************************************************/ - -#ifndef FIXPT - -/* These replacements for takefraction, makefraction, takescaled, makescaled - run about 3 to 11 times faster than the standard versions on modern machines - that have fast hardware for double-precision floating point. They should - produce approximately correct results on all machines and agree exactly - with the standard versions on machines that satisfy the following conditions: - 1. Doubles must have at least 46 mantissa bits; i.e., numbers expressible - as n*2^k with abs(n)<2^46 should be representable. - 2. The following should hold for addition, subtraction, and multiplcation but - not necessarily for division: - A. If the true answer is between two representable numbers, the computed - answer must be one of them. - B. When the true answer is representable, this must be the computed result. - 3. Dividing one double by another should always produce a relative error of - at most one part in 2^46. (This is why the mantissa requirement is - 46 bits instead of 45 bits.) - 3. In the absence of overflow, double-to-integer conversion should truncate - toward zero and do this in an exact fashion. - 4. Integer-to-double convesion should produce exact results. - 5. Dividing one power of two by another should yield an exact result. - 6. ASCII to double conversion should be exact for integer values. - 7. Integer arithmetic must be done in the two's-complement system. -*/ -#define ELGORDO 0x7fffffff -#define TWEXP31 2147483648.0 -#define TWEXP28 268435456.0 -#define TWEXP16 65536.0 -#define TWEXP_16 (1.0/65536.0) -#define TWEXP_28 (1.0/268435456.0) - -integer -ztakefraction (integer p, integer q) /* Approximate p*q/2^28 */ -{ register double d; - register integer i; - d = (double)p * (double)q * TWEXP_28; - if ((p^q) >= 0) { - d += 0.5; - if (d>=TWEXP31) { - if (d!=TWEXP31 || (((p&077777)*(q&077777))&040000)==0) - aritherror = true; - return ELGORDO; - } - i = (integer) d; - if (d==i && (((p&077777)*(q&077777))&040000)!=0) --i; - } else { - d -= 0.5; - if (d<= -TWEXP31) { - if (d!= -TWEXP31 || ((-(p&077777)*(q&077777))&040000)==0) - aritherror = true; - return -ELGORDO; - } - i = (integer) d; - if (d==i && ((-(p&077777)*(q&077777))&040000)!=0) ++i; - } - return i; -} - -integer -ztakescaled (integer p, integer q) /* Approximate p*q/2^16 */ -{ register double d; - register integer i; - d = (double)p * (double)q * TWEXP_16; - if ((p^q) >= 0) { - d += 0.5; - if (d>=TWEXP31) { - if (d!=TWEXP31 || (((p&077777)*(q&077777))&040000)==0) - aritherror = true; - return ELGORDO; - } - i = (integer) d; - if (d==i && (((p&077777)*(q&077777))&040000)!=0) --i; - } else { - d -= 0.5; - if (d<= -TWEXP31) { - if (d!= -TWEXP31 || ((-(p&077777)*(q&077777))&040000)==0) - aritherror = true; - return -ELGORDO; - } - i = (integer) d; - if (d==i && ((-(p&077777)*(q&077777))&040000)!=0) ++i; - } - return i; -} - -/* Note that d cannot exactly equal TWEXP31 when the overflow test is made - because the exact value of p/q cannot be strictly between (2^31-1)/2^28 - and 8/1. No pair of integers less than 2^31 has such a ratio. -*/ -integer -zmakefraction (integer p, integer q) /* Approximate 2^28*p/q */ -{ register double d; - register integer i; -#ifdef DEBUG - if (q==0) confusion(47); -#endif /* DEBUG */ - d = TWEXP28 * (double)p /(double)q; - if ((p^q) >= 0) { - d += 0.5; - if (d>=TWEXP31) {aritherror=true; return ELGORDO;} - i = (integer) d; - if (d==i && ( ((q>0 ? -q : q)&077777) - * (((i&037777)<<1)-1) & 04000)!=0) --i; - } else { - d -= 0.5; - if (d<= -TWEXP31) {aritherror=true; return -ELGORDO;} - i = (integer) d; - if (d==i && ( ((q>0 ? q : -q)&077777) - * (((i&037777)<<1)+1) & 04000)!=0) ++i; - } - return i; -} - -/* Note that d cannot exactly equal TWEXP31 when the overflow test is made - because the exact value of p/q cannot be strictly between (2^31-1)/2^16 - and 2^15/1. No pair of integers less than 2^31 has such a ratio. -*/ -integer -zmakescaled (integer p, integer q) /* Approximate 2^16*p/q */ -{ register double d; - register integer i; -#ifdef DEBUG - if (q==0) confusion(47); -#endif /* DEBUG */ - d = TWEXP16 * (double)p /(double)q; - if ((p^q) >= 0) { - d += 0.5; - if (d>=TWEXP31) {aritherror=true; return ELGORDO;} - i = (integer) d; - if (d==i && ( ((q>0 ? -q : q)&077777) - * (((i&037777)<<1)-1) & 04000)!=0) --i; - } else { - d -= 0.5; - if (d<= -TWEXP31) {aritherror=true; return -ELGORDO;} - i = (integer) d; - if (d==i && ( ((q>0 ? q : -q)&077777) - * (((i&037777)<<1)+1) & 04000)!=0) ++i; - } - return i; -} - -#endif /* not FIXPT */ -#endif /* not assembler */ -#endif /* not TeX, i.e., MF */ - -#ifdef MF -/* On-line display routines for Metafont. Here we use a dispatch table - indexed by the MFTERM or TERM environment variable to select the - graphics routines appropriate to the user's terminal. stdout must be - connected to a terminal for us to do any graphics. */ - -#ifdef MFNOWIN -#undef AMIGAWIN -#undef EPSFWIN -#undef HP2627WIN -#undef MFTALKWIN -#undef NEXTWIN -#undef REGISWIN -#undef SUNWIN -#undef TEKTRONIXWIN -#undef UNITERMWIN -#undef WIN32WIN -#undef X11WIN -#endif - -/* Prototypes for Metafont display routines: mf_XXX_initscreen, - mf_XXX_updatescreen, mf_XXX_blankrectangle, and mf_XXX_paintrow. */ -#include <window/mfdisplay.h> - -/* This variable, `mfwsw', contains the dispatch tables for each - terminal. We map the Pascal calls to the routines `init_screen', - `update_screen', `blank_rectangle', and `paint_row' into the - appropriate entry point for the specific terminal that MF is being - run on. */ - -struct mfwin_sw -{ - const char *mfwsw_type; /* Name of terminal a la TERMCAP. */ - int (*mfwsw_initscreen) (void); - void (*mfwsw_updatescrn) (void); - void (*mfwsw_blankrect) (screencol, screencol, screenrow, screenrow); - void (*mfwsw_paintrow) (screenrow, pixelcolor, transspec, screencol); -} mfwsw[] = -{ -#ifdef AMIGAWIN - { "amiterm", mf_amiga_initscreen, mf_amiga_updatescreen, - mf_amiga_blankrectangle, mf_amiga_paintrow }, -#endif -#ifdef EPSFWIN - { "epsf", mf_epsf_initscreen, mf_epsf_updatescreen, - mf_epsf_blankrectangle, mf_epsf_paintrow }, -#endif -#ifdef HP2627WIN - { "hp2627", mf_hp2627_initscreen, mf_hp2627_updatescreen, - mf_hp2627_blankrectangle, mf_hp2627_paintrow }, -#endif -#ifdef MFTALKWIN - { "mftalk", mf_mftalk_initscreen, mf_mftalk_updatescreen, - mf_mftalk_blankrectangle, mf_mftalk_paintrow }, -#endif -#ifdef NEXTWIN - { "next", mf_next_initscreen, mf_next_updatescreen, - mf_next_blankrectangle, mf_next_paintrow }, -#endif -#ifdef REGISWIN - { "regis", mf_regis_initscreen, mf_regis_updatescreen, - mf_regis_blankrectangle, mf_regis_paintrow }, -#endif -#ifdef SUNWIN - { "sun", mf_sun_initscreen, mf_sun_updatescreen, - mf_sun_blankrectangle, mf_sun_paintrow }, -#endif -#ifdef TEKTRONIXWIN - { "tek", mf_tektronix_initscreen, mf_tektronix_updatescreen, - mf_tektronix_blankrectangle, mf_tektronix_paintrow }, -#endif -#ifdef UNITERMWIN - { "uniterm", mf_uniterm_initscreen, mf_uniterm_updatescreen, - mf_uniterm_blankrectangle, mf_uniterm_paintrow }, -#endif -#ifdef WIN32WIN - { "win32term", mf_win32_initscreen, mf_win32_updatescreen, - mf_win32_blankrectangle, mf_win32_paintrow }, -#endif -#ifdef X11WIN - { "xterm", mf_x11_initscreen, mf_x11_updatescreen, - mf_x11_blankrectangle, mf_x11_paintrow }, -#endif - - /* Always support this. */ - { "trap", mf_trap_initscreen, mf_trap_updatescreen, - mf_trap_blankrectangle, mf_trap_paintrow }, - -/* Finally, we must have an entry with a terminal type of NULL. */ - { NULL, NULL, NULL, NULL, NULL } - -}; /* End of the array initialization. */ - - -/* This is a pointer to the mfwsw[] entry that we find. */ -static struct mfwin_sw *mfwp; - - -/* The following are routines that just jump to the correct - terminal-specific graphics code. If none of the routines in the - dispatch table exist, or they fail, we produce trap-compatible - output, i.e., the same words and punctuation that the unchanged - mf.web would produce. */ - - -/* This returns true if we can do window operations, else false. */ - -boolean -initscreen (void) -{ - int retval; - /* If MFTERM is set, use it. */ - const_string tty_type = kpse_var_value ("MFTERM"); - - if (tty_type == NULL) - { -#if defined (AMIGA) - tty_type = "amiterm"; -#elif defined (WIN32) - tty_type = "win32term"; -#elif defined (OS2) || defined (__DJGPP__) /* not AMIGA nor WIN32 */ - tty_type = "mftalk"; -#else /* not (OS2 or WIN32 or __DJGPP__ or AMIGA) */ - /* If DISPLAY is set, we are X11; otherwise, who knows. */ - boolean have_display = getenv ("DISPLAY") != NULL; - tty_type = have_display ? "xterm" : getenv ("TERM"); - - /* If we don't know what kind of terminal this is, or if Metafont - isn't being run interactively, don't do any online output. */ - if (tty_type == NULL - || (!STREQ (tty_type, "trap") && !isatty (fileno (stdout)))) - return 0; -#endif /* not (OS2 or WIN32 or __DJGPP__ or AMIGA) */ - } - - /* Test each of the terminals given in `mfwsw' against the terminal - type, and take the first one that matches, or if the user is running - under Emacs, the first one. */ - for (mfwp = mfwsw; mfwp->mfwsw_type != NULL; mfwp++) { - if (!strncmp (mfwp->mfwsw_type, tty_type, strlen (mfwp->mfwsw_type)) - || STREQ (tty_type, "emacs")) { - if (mfwp->mfwsw_initscreen) { - retval = (*mfwp->mfwsw_initscreen) (); -#ifdef WIN32 - Sleep(1000); /* Wait for opening a window */ -#endif - return retval; - } - else { - fprintf (stderr, "mf: Couldn't initialize online display for `%s'.\n", - tty_type); - break; - } - } - } - - /* The current terminal type wasn't found in any of the entries, or - initalization failed, so silently give up, assuming that the user - isn't on a terminal that supports graphic output. */ - return 0; -} - - -/* Make sure everything is visible. */ - -void -updatescreen (void) -{ - if (mfwp->mfwsw_updatescrn) - (*mfwp->mfwsw_updatescrn) (); -} - - -/* This sets the rectangle bounded by ([left,right], [top,bottom]) to - the background color. */ - -void -blankrectangle (screencol left, screencol right, - screenrow top, screenrow bottom) -{ - if (mfwp->mfwsw_blankrect) - (*mfwp->mfwsw_blankrect) (left, right, top, bottom); -} - - -/* This paints ROW, starting with the color INIT_COLOR. - TRANSITION_VECTOR then specifies the length of the run; then we - switch colors. This goes on for VECTOR_SIZE transitions. */ - -void -paintrow (screenrow row, pixelcolor init_color, - transspec transition_vector, screencol vector_size) -{ - if (mfwp->mfwsw_paintrow) - (*mfwp->mfwsw_paintrow) (row, init_color, transition_vector, vector_size); -} -#endif /* MF */ diff --git a/Build/source/texk/web2c/lib/uexit.c b/Build/source/texk/web2c/lib/uexit.c deleted file mode 100644 index 90a4d9f76a4..00000000000 --- a/Build/source/texk/web2c/lib/uexit.c +++ /dev/null @@ -1,20 +0,0 @@ -/* uexit.c: define uexit to do an exit with the right status. We can't - just call `exit' from the web files, since the webs use `exit' as a - loop label. Public domain. */ - -#include <w2c/config.h> - -void -uexit (int unix_code) -{ - int final_code; - - if (unix_code == 0) - final_code = EXIT_SUCCESS; - else if (unix_code == 1) - final_code = EXIT_FAILURE; - else - final_code = unix_code; - - exit (final_code); -} diff --git a/Build/source/texk/web2c/lib/usage.c b/Build/source/texk/web2c/lib/usage.c deleted file mode 100644 index 4c6bc5bbe0a..00000000000 --- a/Build/source/texk/web2c/lib/usage.c +++ /dev/null @@ -1,35 +0,0 @@ -/* usage.c: Output a help message (from help.h). - - Modified in 2001 by O. Weber. - Written in 1995 by K. Berry. Public domain. */ - -#include <w2c/config.h> - -/* Call usage if the program exits with an "usage error". STR is supposed - to be the program name. */ - -void -usage (const_string str) -{ - fprintf (stderr, "Try `%s --help' for more information.\n", str); - uexit (1); -} - -/* Call usage if the program exits by printing the help message. - MESSAGE is a NULL-terminated array of strings which make up the - help message. Each string is printed on a separate line. - We use arrays instead of a single string to work around compiler - limitations (sigh). -*/ -void -usagehelp (const_string *message, const_string bug_email) -{ - if (!bug_email) - bug_email = "tex-k@tug.org"; - while (*message) { - printf("%s\n", *message); - ++message; - } - printf("\nEmail bug reports to %s.\n", bug_email); - uexit(0); -} diff --git a/Build/source/texk/web2c/lib/version.c b/Build/source/texk/web2c/lib/version.c deleted file mode 100644 index 054b0abc0be..00000000000 --- a/Build/source/texk/web2c/lib/version.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <w2c/c-auto.h> - -/* This string is appended to all the banners and used in --version. */ -/* Public domain. */ - -const char *versionstring = WEB2CVERSION; diff --git a/Build/source/texk/web2c/lib/zround.c b/Build/source/texk/web2c/lib/zround.c deleted file mode 100644 index e51eed8fa2a..00000000000 --- a/Build/source/texk/web2c/lib/zround.c +++ /dev/null @@ -1,42 +0,0 @@ -/* zround.c: round R to the nearest whole number. This is supposed to - implement the predefined Pascal round function. Public domain. */ - -#include <w2c/config.h> -#include "lib.h" - -integer -zround (double r) -{ - integer i; - - /* R can be outside the range of an integer if glue is stretching or - shrinking a lot. We can't do any better than returning the largest - or smallest integer possible in that case. It doesn't seem to make - any practical difference. Here is a sample input file which - demonstrates the problem, from phil@cs.arizona.edu: - \documentstyle{article} - \begin{document} - \begin{flushleft} - $\hbox{} $\hfill - \filbreak - \eject - - djb@silverton.berkeley.edu points out we should testing against - TeX's largest or smallest integer (32 bits), not the machine's. So - we might as well use a floating-point constant, and avoid potential - compiler bugs (also noted by djb, on BSDI). */ - if (r > 2147483647.0) - i = 2147483647; - /* should be ...8, but atof bugs are too common */ - else if (r < -2147483647.0) - i = -2147483647; - /* Admittedly some compilers don't follow the ANSI rules of casting - meaning truncating toward zero; but it doesn't matter enough to do - anything more complicated here. */ - else if (r >= 0.0) - i = (integer)(r + 0.5); - else - i = (integer)(r - 0.5); - - return i; -} |