diff --git a/source/README.md b/source/README.md index ea585e1e6..8cb21c291 100644 --- a/source/README.md +++ b/source/README.md @@ -1,13 +1,21 @@ $Id$ + This README.md file exists for people browsing on github. The TeX-Live project on github (https://github.com/TeX-Live) is a mirror of the upstream Subversion repository (https://tug.org/texlive/svn). We use it primarily for automatic building of the sources on several platforms. -We prefer using mailing lists to github: tex-live@tug.org for general -bugs and discussion, tex-k@tug.org for bugs and patches for the compiled -programs, and so on. List of TL lists: https://tug.org/texlive/lists.html. +The releases built here (https://github.com/TeX-Live/texlive-source/releases) +are not usable TeX systems on their own, but bare binary directories. +They can be dropped into a TeX Live installation as some bin/newdir and +they should work, including resolving the dangling symlinks that are in +the bare tarballs. + +For reports and other feedback, we prefer using mailing lists: +tex-live@tug.org for general bugs and discussion, tex-k@tug.org for bugs +and patches for the compiled programs, and so on. All the TL mailing +lists: https://tug.org/texlive/lists.html. However, if you prefer to open issues or submit PRs on github, that's ok. We will see them and will reply as soon as we can. @@ -16,5 +24,5 @@ One common problem: Package bug reports should go to the package maintainer, however they wish to receive reports, not to any general TeX Live list. TL redistributes what is uploaded to CTAN without changes. -For information about the source tree here, see the ./README file here, -not this README.md. +For technical information about the source tree here, see the ./README +file here, not this README.md. diff --git a/source/build-aux/config.guess b/source/build-aux/config.guess index f6d217a49..48a684601 100755 --- a/source/build-aux/config.guess +++ b/source/build-aux/config.guess @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-01-01' +timestamp='2024-07-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -123,7 +123,7 @@ set_cc_for_build() { dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do + for driver in cc gcc c17 c99 c89 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break @@ -634,7 +634,8 @@ EOF sed 's/^ //' << EOF > "$dummy.c" #include - main() + int + main () { if (!__power_pc()) exit(1); @@ -718,7 +719,8 @@ EOF #include #include - int main () + int + main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); @@ -1621,6 +1623,7 @@ cat > "$dummy.c" <&2 exit 1 ;; - kfreebsd*-gnu*- | kopensolaris*-gnu*-) + kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) ;; vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; @@ -1864,6 +2245,8 @@ case $kernel-$os-$obj in ;; os2-emx-) ;; + rtmk-nova-) + ;; *-eabi*- | *-gnueabi*-) ;; none--*) @@ -1890,7 +2273,7 @@ case $vendor in *-riscix*) vendor=acorn ;; - *-sunos*) + *-sunos* | *-solaris*) vendor=sun ;; *-cnk* | *-aix*) diff --git a/source/libs/icu/icu-src/source/config.guess b/source/libs/icu/icu-src/source/config.guess index f6d217a49..48a684601 100755 --- a/source/libs/icu/icu-src/source/config.guess +++ b/source/libs/icu/icu-src/source/config.guess @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-01-01' +timestamp='2024-07-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -123,7 +123,7 @@ set_cc_for_build() { dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do + for driver in cc gcc c17 c99 c89 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break @@ -634,7 +634,8 @@ EOF sed 's/^ //' << EOF > "$dummy.c" #include - main() + int + main () { if (!__power_pc()) exit(1); @@ -718,7 +719,8 @@ EOF #include #include - int main () + int + main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); @@ -1621,6 +1623,7 @@ cat > "$dummy.c" <&2 exit 1 ;; - kfreebsd*-gnu*- | kopensolaris*-gnu*-) + kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) ;; vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; @@ -1864,6 +2245,8 @@ case $kernel-$os-$obj in ;; os2-emx-) ;; + rtmk-nova-) + ;; *-eabi*- | *-gnueabi*-) ;; none--*) @@ -1890,7 +2273,7 @@ case $vendor in *-riscix*) vendor=acorn ;; - *-sunos*) + *-sunos* | *-solaris*) vendor=sun ;; *-cnk* | *-aix*) diff --git a/source/texk/web2c/cwebdir/ChangeLog b/source/texk/web2c/cwebdir/ChangeLog index f295af73a..cb9274073 100644 --- a/source/texk/web2c/cwebdir/ChangeLog +++ b/source/texk/web2c/cwebdir/ChangeLog @@ -1,3 +1,35 @@ +2024-07-26 Andreas Scherer + + * cwebmac.tex: Reshuffle '\note' macro. + +2024-07-24 Andreas Scherer + + * cwebmac.tex, + * cwebman-w2c.ch, + * cwebman.tex: Recollect '\font' declarations. + +2024-07-23 Andreas Scherer + + * cwebman-w2c.ch, + * cwebman.tex: Adjust typewriter font size in page headers. + +2024-07-23 Andreas Scherer + + * cwebman.tex: Purge header for Appendix C. + +2024-07-22 Andreas Scherer + + * cwebman-w2c.ch, + * cwebman.tex: Purge unused '\font's. + +2024-07-17 Andreas Scherer + + * twinx.ch: Compile CWEB with G++-14. + +2024-07-15 Andreas Scherer + + * texinputs/pdfwebtocfront.tex: Release file resource early. + 2024-07-13 Andreas Scherer * ctwill-w2c.ch: Avoid double '\date' for CTWILL. diff --git a/source/texk/web2c/cwebdir/cwebmac.tex b/source/texk/web2c/cwebdir/cwebmac.tex index 99e899476..f9891daf1 100644 --- a/source/texk/web2c/cwebdir/cwebmac.tex +++ b/source/texk/web2c/cwebdir/cwebmac.tex @@ -1,5 +1,5 @@ % standard macros for CWEB listings (in addition to plain.tex) -% Version 4.12 --- May 2024 +% Version 4.12 --- July 2024 \ifx\renewenvironment\undefined\else\endinput\fi % LaTeX will use other macros \xdef\fmtversion{\fmtversion+CWEB4.12} \chardef\cwebversion=4 \chardef\cwebrevision=12 @@ -12,15 +12,6 @@ \font\ninerm=cmr9 \let\mc=\ninerm % medium caps -\def\CEE/{{\mc C\spacefactor1000}} -\def\UNIX/{{\mc U\kern-.05emNIX\spacefactor1000}} -\def\TEX/{\TeX} -\def\CPLUSPLUS/{{\mc C\PP\spacefactor1000}} -\def\Cee{\CEE/} % for backward compatibility -\def\Cpp{\CPLUSPLUS/} % for backward compatibility -\def\9#1{} - % with this definition of \9 you can say @:sort key}{TeX code@> - % to alphabetize an index entry by the sort key but format with the TeX code \font\eightrm=cmr8 \let\sc=\eightrm % for smallish caps (NOT a caps-and-small-caps font) \let\mainfont=\tenrm @@ -31,6 +22,16 @@ \font\tentex=cmtex10 % TeX extended character set (used in strings) \fontdimen7\tentex=0pt % no double space after sentences +\def\CEE/{{\mc C\spacefactor1000}} +\def\UNIX/{{\mc U\kern-.05emNIX\spacefactor1000}} +\def\TEX/{\TeX} +\def\CPLUSPLUS/{{\mc C\PP\spacefactor1000}} +\def\Cee{\CEE/} % for backward compatibility +\def\Cpp{\CPLUSPLUS/} % for backward compatibility +\def\9#1{} + % with this definition of \9 you can say @:sort key}{TeX code@> + % to alphabetize an index entry by the sort key but format with the TeX code + \def\\#1{\leavevmode\hbox{\it#1\/\kern.05em}} % italic type for identifiers \def\|#1{\leavevmode\hbox{$#1$}} % one-letter identifiers look better this way \def\{\leavevmode\hbox{\bf @@ -112,8 +113,6 @@ \let\yskip=\smallskip \def\?{\mathrel?} \def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} -\def\note#1#2.{\Y\noindent{\hangindent2em% - \baselineskip10pt\eightrm#1~\ifacrohint{\pdfnote#2.}\else#2\fi.\par}} \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newtoks\toksE \newtoks\toksF \newtoks\usersanitizer @@ -159,6 +158,8 @@ [ @thispage /FitH @ypos ]}\fi}}\fi} \let\startsection=\stsec \def\defin#1{\global\advance\ind by 2 \1\&{#1 }} % begin `define' or `format' +\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt% + \eightrm#1~\ifacrohint{\pdfnote#2.}\else#2\fi.\par}} \def\A{\note{See also section}} % xref for doubly defined section name \def\As{\note{See also sections}} % xref for multiply defined section name \def\B{\rightskip=0pt plus 100pt minus 10pt % go into C mode diff --git a/source/texk/web2c/cwebdir/cwebman-w2c.ch b/source/texk/web2c/cwebdir/cwebman-w2c.ch index 0b9c61568..9e7bceb20 100644 --- a/source/texk/web2c/cwebdir/cwebman-w2c.ch +++ b/source/texk/web2c/cwebdir/cwebman-w2c.ch @@ -33,7 +33,7 @@ \advance\footnotecount by 1\relax} @z -@x l.32 +@x l.28 \outer\def\section #1.{\penalty-500\bigskip \centerline{\sectionfont\def\.##1{{\twelvett##1}} #1}\nobreak\vskip 6pt \everypar{\hskip-\parindent\everypar{}}} @@ -93,21 +93,21 @@ \fi} @z -@x l.38 -\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.11)} +@x l.34 +\def\runninghead{{\ninett CWEB} USER MANUAL (VERSION 4.11)} @y \def\Kpathsea/{{\mc KPATHSEA\spacefactor1000}} -\def\runninghead{{\tentt CWEB} USER MANUAL (Version 4.11 [\TeX~Live])} +\def\runninghead{{\ninett CWEB} USER MANUAL (Version 4.11 [\TeX~Live])} @z -@x l.52 +@x l.48 \vskip 18pt\centerline{(Version 4.11 --- December 2023)} @y \vskip 18pt\centerline{(Version 4.11 --- December 2023)% \footnote*{This document describes the extended \.{CWEB} (Version 4.11 [\TeX~Live]).}} @z -@x l.83 +@x l.79 Internet page \.{http://www-cs-faculty.stanford.edu/\char`\~knuth/cweb.html} @y Internet page @@ -115,7 +115,7 @@ Internet page {http://www-cs-faculty.stanford.edu/\TILDE/knuth/cweb.html} @z -@x l.88 +@x l.84 \.{https://github.com/ascherer/cweb} with the really current news. @y \pdfURL{\.{https://github.com/ascherer/cweb}}% @@ -123,7 +123,7 @@ Internet page with the really current news. @z -@x l.106 +@x l.102 should be sent to the \TeX-related mailing list \.{tex-k@tug.org}. @y should be sent to the \TeX-related mailing list @@ -131,7 +131,7 @@ should be sent to the \TeX-related mailing list {mailto:tex-k@tug.org}. @z -@x l.108 +@x l.104 Readers who are familiar with Knuth's memo ``The \.{WEB} System of Structured Documentation'' will be able @y @@ -139,7 +139,7 @@ Readers who are familiar with Knuth's memo ``\pdfURL{The \.{WEB} System of Structured Documentation}{../web/webman.pdf}'' will be able @z -@x l.527 +@x l.523 email address in a \.{CWEB} file (e.g., \.{tex-k@@tug.org}). @y email address in a \.{CWEB} file (e.g., @@ -147,7 +147,7 @@ email address in a \.{CWEB} file (e.g., {mailto:tex-k@tug.org}). @z -@x l.922 +@x l.918 it cannot find them in the current directory. @y it cannot find them in the current directory.% @@ -160,7 +160,7 @@ for it. (This is true for any other input or change file lookup.)} @z -@x l.1029 +@x l.1025 except for error messages. @y except for error messages.% @@ -168,7 +168,7 @@ except for error messages.% options `\.{b}', `\.{h}', and `\.{p}' are `off' by default.} @z -@x l.1035 +@x l.1031 options are currently implemented: \yskip @@ -202,22 +202,24 @@ argument to switch between different user languages and macro packages. \yskip @z -@x l.1071 +@x l.1067 \option x Include indexes and a table of contents in the \TEX/ file output by \.{CWEAVE}. (On by default.) (Has no effect on \.{CTANGLE}.) @y \option x Include indexes and a table of contents in the \TEX/ file output by \.{CWEAVE}. (On by default.) (\.{CWEAVE} only.) + +\vfill\eject @z -@x l.1127 +@x l.1123 Sometimes things don't work as smoothly, and you get a bunch of @y \pdffalse\acrohintfalse Sometimes things don't work as smoothly, and you get a bunch of @z -@x l.1135 +@x l.1131 `$\\{main}(\\{argc},\39\\{argv}{}$)'. @y `$\\{main}(\\{argc},\39\\{argv}{}$)'. @@ -226,7 +228,7 @@ Sometimes things don't work as smoothly, and you get a bunch of \ifpdf\acrohinttrue\fi \ifhint\acrohinttrue\fi @z -@x l.1145 +@x l.1141 the `\.{@\#}' will put extra space after `$\langle\,$Other locals$\,\rangle$'. @y the `\.{@\#}' will put extra space after `$\langle\,$Other locals$\,\rangle$'.% @@ -234,14 +236,14 @@ the `\.{@\#}' will put extra space after `$\langle\,$Other locals$\,\rangle$'.% to suppress the extra space globally.} @z -@x l.1147 +@x l.1143 \section Hypertext and hyperdocumentation. @y \vfill\eject \section Hypertext and hyperdocumentation. @z -@x l.1171 +@x l.1167 from \.{https://hint.userweb.mwn.de/hint/hintview.html}. @y from @@ -249,7 +251,7 @@ from {https://hint.userweb.mwn.de/hint/hintview.html}.% @z -@x l.1180 +@x l.1176 the program sources at \.{ftp://ftp.cs.stanford.edu/pub/ctwill}. @y the program sources at @@ -259,13 +261,13 @@ the program sources at \.{ctwill} executable -- and its associated helpers -- out of the box.} @z -@x l.1184 +@x l.1180 As an example of a real program written in \.{CWEB}, Appendix~A @y As an example of a real program written in \.{CWEB}, \Appendix A @z -@x l.1189 +@x l.1185 Appendix B displays the files that set \TEX/ up to accept the output of \.{CWEAVE}, and Appendix~C discusses how to use some of those @y @@ -273,7 +275,7 @@ the output of \.{CWEAVE}, and Appendix~C discusses how to use some of those the output of \.{CWEAVE}, and \Appendix C discusses how to use some of those @z -@x l.1195 +@x l.1191 appendices D, E, and~F, which exhibit the complete source code for \.{CTANGLE} and \.{CWEAVE}. @@ -286,10 +288,10 @@ and~\pdfURL{F}{cweave.pdf}, which exhibit the complete source code for code for \.{COMMON}, and the additional \pdfURL{Appendix~G}{ctwill.pdf} exhibits the source code for \.{CTWILL}, which is based on \.{CWEAVE}.} -\eject\titletrue +\vfill\eject\titletrue @z -@x l.1201 +@x l.1197 \section Appendix A: Excerpts from a \.{CWEB} Program. @y \def\subsections{4} @@ -297,28 +299,28 @@ exhibits the source code for \.{CTWILL}, which is based on \.{CWEAVE}.} \subsection CWEB file format. @z -@x l.1205 +@x l.1201 generated sections 27--31 of the file \.{common.w}, which contains @y generated sections 27--31 of the file \pdfURL{\.{common.w}}{common.pdf}, which contains @z -@x l.1276 -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CTANGLE}} +@x l.1272 +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CTANGLE}} @y -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CTANGLE}} +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CTANGLE}} \subsection Translation by CTANGLE. @z -@x l.1344 -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CWEAVE}} +@x l.1340 +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CWEAVE}} @y -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CWEAVE}} +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CWEAVE}} \subsection Translation by CWEAVE. @z -@x l.1433 +@x l.1429 \def\runninghead{APPENDIX A --- FINAL DOCUMENT} And here's what the same excerpt looks like when typeset. @@ -335,22 +337,22 @@ And here's what the same excerpt looks like when typeset. \def\C#1{\5\5\quad$\triangleright\,${\cmntfont#1}$\,\triangleleft$} @z -@x l.1515 +@x l.1511 \vfil\eject\titletrue @y -\vfil\eject\titletrue +\vfill\eject\titletrue \ifx\pdf+\pdftrue\fi \ifxetex\pdftrue\fi \ifpdflua\ifnum\pdfoutput>0 \pdftrue\fi\fi \ifacro\acrohinttrue\fi \ifhint\acrohinttrue\fi @z -@x l.1617 +@x l.1613 \.{ { }\\vskip 15pt \\centerline\{(Version 4.11)\}{ }\\vfill\}}\cr}$$ @y \.{ { }\\vskip 15pt \\centerline\{(Version 4.11)\}{ }\\vfill\}}\cr}$$ @z -@x l.1732 +@x l.1728 if you have a duplex printer. Appendices D, E, and F of the complete version of this manual are printed using a commented-out option that substitutes `$\gets$' for `$=$' in the program listings. Looking at those @@ -364,22 +366,20 @@ also make use of the alternative format for \CEE/ comments.} Looking at those @z -@x l.1784 +@x l.1780 \point 20. Furthermore, group titles can be converted to an arbitrary @y \vfill\eject \point 20. Furthermore, group titles can be converted to an arbitrary @z -@x l.1796 -\vfill\end +@x l.1791 +\bye @y \point 21. With modern \TeX\ engines like `\.{luatex}', `\.{pdftex}', and `\.{xetex}' (but \\{not} with classic `\.{tex}') you can say `\.{\\input pdfwebtocfront}' as the last command in the limbo section and run \TeX\ \\{twice} on your woven \.{CWEB} document, in order to shift the table-of-contents to the front of the {\mc PDF} output. - -\vfill\end +\bye @z - diff --git a/source/texk/web2c/cwebdir/cwebman.tex b/source/texk/web2c/cwebdir/cwebman.tex index c75177e83..c4bc660df 100644 --- a/source/texk/web2c/cwebdir/cwebman.tex +++ b/source/texk/web2c/cwebdir/cwebman.tex @@ -7,13 +7,9 @@ \parskip 0pt plus 1pt \def\RA{\char'31 } % right arrow \def\hang{\hangindent 4em\ignorespaces} -\font\eightrm=cmr8 -\font\ninerm=cmr9 -\font\ninett=cmtt9 \font\eighttt=cmtt8 +\font\ninett=cmtt9 \font\twelvett=cmtt12 -\font\quoterm=cmssq8 -\font\quoteit=cmssqi8 \font\authorfont=cmr12 \font\sectionfont=cmbx12 @@ -35,7 +31,7 @@ \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill} \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno} -\def\runninghead{{\tentt CWEB} USER MANUAL (VERSION 4.11)} +\def\runninghead{{\ninett CWEB} USER MANUAL (VERSION 4.11)} % This verbatim mode assumes that ! marks are !! in the text being copied. \def\verbatim{\begingroup @@ -1197,7 +1193,7 @@ \vfil\eject\titletrue -\def\runninghead{APPENDIX A --- {\tentt CWEB} FILE FORMAT} +\def\runninghead{APPENDIX A --- {\ninett CWEB} FILE FORMAT} \section Appendix A: Excerpts from a \.{CWEB} Program. This appendix consists @@ -1271,9 +1267,9 @@ strncpy(change_buffer,buffer,(size_t)(limit-buffer+1)); !endgroup \endgroup -\vfill\eject +\vfil\eject -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CTANGLE}} +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CTANGLE}} Here's the portion of the \CEE/ code generated by \.{CTANGLE} that corresponds to the source on the preceding page. Notice that sections~29, 30 and~31 @@ -1339,9 +1335,9 @@ #line 296 "common.w" !endgroup \endgroup -\vfill\eject +\vfil\eject -\def\runninghead{APPENDIX A --- TRANSLATION BY {\tentt CWEAVE}} +\def\runninghead{APPENDIX A --- TRANSLATION BY {\ninett CWEAVE}} Here is the corresponding excerpt from \.{common.tex}. \ifhint\relax\else(Code for section 31 is omitted for space reasons.)\fi @@ -1538,7 +1534,7 @@ \vskip6pt \baselineskip9pt \printmacs{acro} \endgroup -\vfill\eject +\vfil\eject\titletrue \def\runninghead{APPENDIX C --- NOTES ON FORMATTING} \section Appendix C: How to use \.{CWEB} macros. @@ -1792,6 +1788,4 @@ `Chinese foo'. The corresponding bookmark is, however, `\.{Chinese} \.{bar}'. And the corresponding \.{.toc} file entry is `\.{\\ZZ \{Chinese \\klujj bar\\\\\}\{1\}\{1\}\{1\}\{Chinese bar\}}'. - -\vfill\end - +\bye diff --git a/source/texk/web2c/cwebdir/texinputs/pdfwebtocfront.tex b/source/texk/web2c/cwebdir/texinputs/pdfwebtocfront.tex index 237b9f39c..1d8fd1a0a 100644 --- a/source/texk/web2c/cwebdir/texinputs/pdfwebtocfront.tex +++ b/source/texk/web2c/cwebdir/texinputs/pdfwebtocfront.tex @@ -18,7 +18,7 @@ \newread\testread \openin\testread=\contentsfile\relax \ifeof\testread % First run -\else % Second run +\else\closein\testread % Second run % Fix page numbers in the PDF bootmarks with 'Page Labels' \def\tocpages{1} % Most programs have one-page Table-of-Contents \def\tocstart{2} % so we start with (fake) page 2 for the rest diff --git a/source/texk/web2c/cwebdir/twinx.ch b/source/texk/web2c/cwebdir/twinx.ch index 9d2aaa92b..af5248562 100644 --- a/source/texk/web2c/cwebdir/twinx.ch +++ b/source/texk/web2c/cwebdir/twinx.ch @@ -42,10 +42,12 @@ int main( if((f=fopen(*++argv,"r"))==NULL) @z -@x l.28 +@x l.27 + strncpy(*argv+strlen(*argv)-3,"idx",3); f=fopen(*argv,"r"); if (!f) @y + memcpy(*argv+strlen(*argv)-3,"idx",3); if((f=fopen(*argv,"r"))==NULL) @z