#! /bin/sh # # To apply this patch, cd to the top level Octave source directory and # run this file through /bin/sh. It will first remove any files that # have been deleted from the source distribution since the last # release and then update the sources with patch(1). # # Diffs for updating *.ps, *.dvi, and *.info* files are not included # because they can be recreated from the Texinfo files using TeX and # makeinfo. # # Diffs for updating parse.cc and y.tab.h are not included because # they can be recreated from the file parse.y using bison. # # Diffs for updating lex.cc are not included because it can be # recreated from lex.l using flex. # # John W. Eaton # jwe@bevo.che.wisc.edu # University of Wisconsin-Madison # Department of Chemical Engineering if test -f src/octave.cc ; then true else echo '***********************************************************' 1>&2 echo 'You must run this script in the top-level octave directory!' 1>&2 echo '***********************************************************' 1>&2 exit 1 fi ### ### Special commands should go here. ### rm -f install-octave kpathsea/.gdbinit kpathsea/CONFIGURE rm -f kpathsea/MakeTeX.site kpathsea/MakeTeXMF kpathsea/MakeTeXPK rm -f kpathsea/MakeTeXTFM kpathsea/MakeTeXcommon kpathsea/MakeTeXls-R rm -f kpathsea/MakeTeXmkdir kpathsea/MakeTeXnames kpathsea/MakeTeXnames.cnf rm -f kpathsea/MakeTeXupdate kpathsea/c-auto.h.in kpathsea/klibtool.version rm -f kpathsea/kpathsea.aux kpathsea/texmf.cnf.in rm -f scripts/miscellaneous/dump_1_pref.m echo 'patching existing files' patch -p1 << \PATCH_EOF diff -cNr octave-2.0.11/ChangeLog octave-2.0.12/ChangeLog *** octave-2.0.11/ChangeLog Tue Feb 24 16:30:55 1998 --- octave-2.0.12/ChangeLog Sun May 3 20:00:07 1998 *************** *** 1,3 **** --- 1,56 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Tue Apr 28 14:28:14 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_FLIBS): Really do skip -lkernel32. + + Thu Apr 23 23:26:29 1998 John W. Eaton + + * kpathsea: Update to version 3.2. + + Sat Apr 18 20:15:37 1998 John W. Eaton + + * configure.in (USE_GNU_INFO): Delete everything related to this. + * acconfig.h (USE_GNU_INFO): Delete undef. + + Tue Apr 14 09:41:24 1998 John W. Eaton + + * install-octave.in: Improve error messages if version number or + host architecture can't be found. + + * info: Delete subdirectory. + * Makefile.in (TARGETS, help): Delete info. + * octMakefile.in (DISTSUBDIRS, BINDISTSUBDIRS): Delete info + (binary-dist): Don't strip info/info. + * install-octave.in: Don't install info. + * configure.in: Don't run configure in info subdirectory. + + Fri Mar 27 02:54:59 1998 John W. Eaton + + * aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Use a Fortran subroutine + instead of a function. + + Mon Mar 2 00:02:26 1998 John W. Eaton + + * install-octave.in: Explicitly set permissions on ls-R files. + + * configure.in: Don't disable GNU Info on cygwin32 systems. + + * install-octave.in: New file. + * configure.in: Create install-octave. + * octMakefile.in (distclean, maintainer-clean): Delete install-octave. + (DISTFILES): Distribute install-octave.in, not install-octave. + + Sun Mar 1 23:15:04 1998 John W. Eaton + + * configure.in: Fix typo in test for glob and fnmatch headers. + + Fri Feb 27 15:43:14 1998 John W. Eaton + + * configure.in: Fix support for dlopen on SCO systems. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/Makeconf.in octave-2.0.12/Makeconf.in *** octave-2.0.11/Makeconf.in Fri Feb 20 14:15:46 1998 --- octave-2.0.12/Makeconf.in Wed Mar 18 23:04:10 1998 *************** *** 125,131 **** LIBGLOB = @LIBGLOB@ LIBPLPLOT = @LIBPLPLOT@ LIBDLFCN = @LIBDLFCN@ ! LIBDLFCN = @LIBREADLINE@ LIBKPATHSEA = @LIBKPATHSEA@ LIBOCTINTERP = @LIBOCTINTERP@ LIBOCTAVE = @LIBOCTAVE@ --- 125,131 ---- LIBGLOB = @LIBGLOB@ LIBPLPLOT = @LIBPLPLOT@ LIBDLFCN = @LIBDLFCN@ ! LIBREADLINE = @LIBREADLINE@ LIBKPATHSEA = @LIBKPATHSEA@ LIBOCTINTERP = @LIBOCTINTERP@ LIBOCTAVE = @LIBOCTAVE@ diff -cNr octave-2.0.11/Makefile octave-2.0.12/Makefile *** octave-2.0.11/Makefile Fri Feb 20 03:02:44 1998 --- octave-2.0.12/Makefile Sun May 3 20:07:08 1998 *************** *** 7,13 **** # University of Wisconsin-Madison # Department of Chemical Engineering ! TARGETS = octave-bug mkoctfile libcruft liboctave kpathsea info dlfcn \ readline src scripts doc check octave.info INSTALL.OCTAVE BUGS \ install uninstall tags TAGS dist conf-dist snapshot snapshot-version --- 7,13 ---- # University of Wisconsin-Madison # Department of Chemical Engineering ! TARGETS = octave-bug mkoctfile libcruft liboctave kpathsea dlfcn \ readline src scripts doc check octave.info INSTALL.OCTAVE BUGS \ install uninstall tags TAGS dist conf-dist snapshot snapshot-version *************** *** 95,101 **** @echo "" @echo " dlfcn make all in subdirectory dlfcn" @echo " doc make all in subdirectory doc" - @echo " info make all in subdirectory info" @echo " kpathsea make all in subdirectory kpathsea" @echo " libcruft make all in subdirectory libcruft" @echo " liboctave make all in subdirectory liboctave" --- 95,100 ---- diff -cNr octave-2.0.11/Makefile.in octave-2.0.12/Makefile.in *** octave-2.0.11/Makefile.in Fri Feb 6 02:00:41 1998 --- octave-2.0.12/Makefile.in Tue Apr 14 09:41:46 1998 *************** *** 6,12 **** # University of Wisconsin-Madison # Department of Chemical Engineering ! TARGETS = octave-bug mkoctfile libcruft liboctave kpathsea info dlfcn \ readline src scripts doc check octave.info INSTALL.OCTAVE BUGS \ install uninstall tags TAGS dist conf-dist snapshot snapshot-version --- 6,12 ---- # University of Wisconsin-Madison # Department of Chemical Engineering ! TARGETS = octave-bug mkoctfile libcruft liboctave kpathsea dlfcn \ readline src scripts doc check octave.info INSTALL.OCTAVE BUGS \ install uninstall tags TAGS dist conf-dist snapshot snapshot-version *************** *** 94,100 **** @echo "" @echo " dlfcn make all in subdirectory dlfcn" @echo " doc make all in subdirectory doc" - @echo " info make all in subdirectory info" @echo " kpathsea make all in subdirectory kpathsea" @echo " libcruft make all in subdirectory libcruft" @echo " liboctave make all in subdirectory liboctave" --- 94,99 ---- diff -cNr octave-2.0.11/NEWS octave-2.0.12/NEWS *** octave-2.0.11/NEWS Fri Feb 20 02:57:38 1998 --- octave-2.0.12/NEWS Sun May 3 20:01:26 1998 *************** *** 1,3 **** --- 1,45 ---- + Summary of changes for version 2.0.12: + ------------------------------------- + + * Tilde expansion is once again performed on the directories listed + in the LOADPATH variable. + + * gplot now supports the `axes' qualifier that is new with gnuplot + 3.6beta. + + * Timestamps on .m and .oct files are now only checked if a prompt + has been printed since the last timestamp check. + + * Octave now prints a warning if a .m or .oct file has a time stamp + in the future. + + * For matrices, x(:) now works no matter what the value of + do_fortran_indexing is. + + * New keywords __FILE__ and __LINE__ expand to the name of the file + that is being read and the current input line number, respectively. + + * The GNU Info reader is no longer distributed with Octave because + current releases of GNU Info now support all the features needed + by Octave. If your copy of GNU Info doesn't support the + --index-search option, you should install a newer version of GNU + Info, which is distributed as part of the GNU Texinfo package. + + * Running `make check' should work now before you run `make install', + even if you build a copy of Octave that depends on shared versions + of the Octave libraries. + + * Octave now uses kpathsea 3.2. + + * The new built-in variable kluge_procbuf_delay specifies the number + of microseconds to delay in the parent process after forking. By + default on gnu-win32 systems, it's set to 500000 (1/2 second). On + other systems, the default value is 0. Delaying for a short time + in the parent after forking seems to avoid problems in which + communicating with subprocesses via pipes would sometimes cause + Octave to hang. I doubt that the delay is really the right + solution. If anyone has a better idea, I'd love to hear it. + Summary of changes for version 2.0.11: ------------------------------------- diff -cNr octave-2.0.11/PROJECTS octave-2.0.12/PROJECTS *** octave-2.0.11/PROJECTS Sat Jan 31 02:37:09 1998 --- octave-2.0.12/PROJECTS Mon Apr 27 14:25:04 1998 *************** *** 1,3 **** --- 1,5 ---- + +
  Octave PROJECTS                                          -*- text -*-
  ===============
  
***************
*** 14,19 ****
--- 16,24 ----
  Numerical:
  ---------
  
+   * Allow sum, prod, cumsum, and cumprod to take a second argument
+     that specifies the dimension over which to operate.
+ 
    * Merge control stuff.
  
    * Improve logm, and sqrtm.
***************
*** 106,111 ****
--- 111,120 ----
      other faster method.d  Possibly just switch to this method if the
      dataset is larger than some value.
  
+   * Make QR more memory efficient for large matrices when not all the
+     columns of Q are required (apparently this is not handled by the
+     lapack code yet).
+ 
    * Consider making the behavior of the / and \ operators for
      non-square systems compatible with Matlab.
  
***************
*** 245,250 ****
--- 254,268 ----
  Interpreter:
  -----------
  
+   * Allow customization of the debug prompt.
+ 
+   * For the keyboard function, parse return (or quit) more
+     intelligently so that something like
+ 
+       debug> x = 1; return
+ 
+     will work as expected.
+ 
    * Fix the parser so that
  
        function foo ()
***************
*** 261,269 ****
  
      is parsed as IF expr STRING END.
  
-   * Consider making x(:) work no matter what the value of
-     do_fortran_indexing.
- 
    * For indexing operations, allow `$' to indicate the last element.
      For example, b = a (3:$, 1:$-1).  This means b is a, except for
      its first 2 rows and last column.  Note that `$' must be able to
--- 279,284 ----
***************
*** 303,320 ****
    * Allow `octave -c STRING' to execute commands from STRING then
      exit.
  
-   * Handle DOS style CRLFs in M files.  This should probably be
-     optional.
- 
    * Make the interpreter run faster.
  
    * Make it possible to disable or enable all warnings on an
      individual basis from the command line or via some built-in
      structure variable.
  
-   * Warn about complex comparisons?  Could just use double_value() or
-     matrix_value() instead of explicit conversions to real types.
- 
    * Make warnings also give some indication about the location of the
      code that triggers the warning.
  
--- 318,329 ----
***************
*** 333,341 ****
    * Recursive problems.
  
    * Improve the way ignore_function_time_stamp works to allow
!     selecting by individual directories or functions.  Also,
!     optionally allow checking only once between each prompt instead of
!     every time the function is called.
  
    * Make it possible to ask exist() to only look for certain classes
     of variables, functions, files, etc. rather than always looking for
--- 342,348 ----
    * Recursive problems.
  
    * Improve the way ignore_function_time_stamp works to allow
!     selecting by individual directories or functions.
  
    * Make it possible to ask exist() to only look for certain classes
     of variables, functions, files, etc. rather than always looking for
***************
*** 352,357 ****
--- 359,367 ----
    * Input stream class for parser files -- must manage buffers for
      flex and context for global variable settings.
  
+   * make parser do more semantic checking, continue after errors when
+     compiling functions, etc.
+ 
    * Make LEXICAL_ERROR have a value that is the error message for
      parse_error() to print?
  
***************
*** 442,456 ****
    * Make the type command handle script files too, by just reading and
      printing them.
  
!   * The wich and type commands should distinguish between dynamically
      linked functions and built-in functions.  For dynamically linked
      functions, the location of the .oct file should be displayed.
  
    * Clean up eye, eval, feval, keyboard, input, ones, zeros.
  
-   * Turn off printing when evaluating expressions in an eval()
-     statement, for compatibility with Matlab.
- 
    * It would be nice to have an interactive debugger.
  
    * Make whos report total memory used by variables (and functions?).
--- 452,463 ----
    * Make the type command handle script files too, by just reading and
      printing them.
  
!   * The which and type commands should distinguish between dynamically
      linked functions and built-in functions.  For dynamically linked
      functions, the location of the .oct file should be displayed.
  
    * Clean up eye, eval, feval, keyboard, input, ones, zeros.
  
    * It would be nice to have an interactive debugger.
  
    * Make whos report total memory used by variables (and functions?).
***************
*** 505,512 ****
  Configuration and Installation:
  ------------------------------
  
-   * Handle USE_READLINE so that --enable-readline will work.
- 
    * Make Octave as independent of the particular readline version as
      possible.
  
--- 512,517 ----
***************
*** 520,527 ****
  
    * Should --enable-dl imply --enable-shared?
  
-   * Make it possible to configure without readline.
- 
    * Makefile changes:
        -- eliminate for loops
        -- define shell commands or eliminate them
--- 525,530 ----
***************
*** 531,538 ****
    * Make it possible to configure so that installed binaries and
      shared libraries are stripped.
  
-   * Make installation of the static libraries optional.
- 
    * Create a docs-only distribution?
  
  ------------------------------
--- 534,539 ----
***************
*** 748,750 ****
--- 749,753 ----
    * Squash bugs.
  
  				--30--
+ 
+ diff -cNr octave-2.0.11/README.Windows octave-2.0.12/README.Windows *** octave-2.0.11/README.Windows Sat Feb 14 13:16:03 1998 --- octave-2.0.12/README.Windows Sun May 3 20:05:59 1998 *************** *** 1,6 **** ! Octave has been ported to Windows NT and Windows 95 using the beta 18 ! release of the Cygnus gnu-win32 tools. If you would like to volunteer ! to work on improving this port, please contact bug-octave@bevo.che.wisc.edu. The directory ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32 contains a binary distribution of Octave for Windows NT/95 along with --- 1,6 ---- ! Octave has been ported to Windows NT and Windows 95 using the gnu-win32 ! tools from Cygnus Support. If you would like to volunteer to work on ! improving this port, please contact bug-octave@bevo.che.wisc.edu. The directory ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32 contains a binary distribution of Octave for Windows NT/95 along with *************** *** 10,24 **** Here is a list of current problems (and workarounds, where available). * To compile and install Octave on a Windows NT/95 system, ! you will need to get the beta 18 release of the gnu-win32 tools. They are available from ftp://ftp.cygnus.com/pub/gnu-win32. - * There is a conflict between /gnu-win32/b18/include/g++/String.h - and /gnu-win32/b18/H-i386-cygwin32/i386-cygwin32/include/string.h. - You should rename or remove /gnu-win32/b18/include/g++/String.h. - (These file names assume that you have installed the gnu-win32 tools - in /gnu-win32/b18). - * You will need to have f2c and libf2c.a or g77 installed. I would recommend using g77. Mumit Khan has directions for building g77 at http://www.xraylith.wisc.edu/~khan/software/gnu-win32/g77.html. --- 10,18 ---- Here is a list of current problems (and workarounds, where available). * To compile and install Octave on a Windows NT/95 system, ! you will need to get the beta 19 release of the gnu-win32 tools. They are available from ftp://ftp.cygnus.com/pub/gnu-win32. * You will need to have f2c and libf2c.a or g77 installed. I would recommend using g77. Mumit Khan has directions for building g77 at http://www.xraylith.wisc.edu/~khan/software/gnu-win32/g77.html. *************** *** 29,34 **** --- 23,101 ---- to work. You can get it from any GNU archive site, including ftp://ftp.gnu.org/pub/gnu/termcap-1.3.tar.gz. + * It is possible to cross-compile Octave for Windows NT/95 systems. + On the same hardware, it's generally much faster to use gcc as a + cross compiler under Linux than as a native compiler under Windows. + + Here are some instructions for building a cross version of gcc and + then using it to compile Octave. I've done this using a Linux + system as the host, but it should work equally well on other systems + that can run gcc). + + + install cdk on your Windows system + + + build a cross version of binutils: + + tar zxf binutils-2.9.tar.gz + cd binutils-2.9 + ./configure --target=i386-pc-cygwin32 --prefix=/usr/local/cross-gcc + make + make install + + (You can choose whatever value for prefix that you prefer, of + course, just remember to also make the corresponding changes in the + following steps as well.) + + + copy libraries and include files from cdk. You'll need the + library files from the following directory trees: + + b19/H-i386-pc-cygwin32/lib + b19/H-i386-pc-cygwin32/i386-cygwin32/lib + + Copy them to /usr/local/cross-gcc/i386-pc-cygwin32/lib. + + You'll also need the include files from the following directory + trees: + + b19/include + b19/H-i386-pc-cygwin32/include + + Copy them to /usr/local/cross-gcc/i386-pc-cygwin32/include. + + + build cross version of egcs: + + tar zxf egcs-1.0.2.tar.gz + cd egcs-1.0.2 + export PATH=/usr/local/cross-gcc/bin:$PATH + ./configure --target=i386-pc-cygwin32 --prefix=/usr/local/cross-gcc + make + make install + + + cross-compile libtermcap: + + export PATH=/usr/local/cross-gcc/i386-pc-cygwin32/bin:$PATH + tar zxf termcap-1.3.tar.gz + cd termcap-1.3 + ./configure --host=i386-pc-cygwin3 + make + cp termcap.h /usr/local/cross-gcc/i386-pc-cygwin32/include + cp libtermcap.a /usr/local/cross-gcc/i386-pc-cygwin32/lib + + + cross-compile Octave using the compiler you just built: + + export PATH=/usr/local/cross-gcc/i386-pc-cygwin32/bin:$PATH + tar zxf octave-2.0.12.tar.gz + cd octave-2.0.10 + ./configure --host=i386-pc-cygwin3 + make + + + make a binary distribution to copy to your Windows system: + + make -f octMakefile binary-dist + + + copy the binary distribution to your Windows system and install + using the intall-octave shell script + * Octave requires gnuplot for plotting, but the normal Windows version of gnuplot will not work because it only reads from the GUI and refuses to read input from stdin. Mumit Khan has written a patch that fixes *************** *** 59,62 **** University of Wisconsin-Madison Department of Chemical Engineering ! Sat Feb 14 13:12:19 1998 --- 126,129 ---- University of Wisconsin-Madison Department of Chemical Engineering ! Thu Apr 16 23:39:13 1998 diff -cNr octave-2.0.11/acconfig.h octave-2.0.12/acconfig.h *** octave-2.0.11/acconfig.h Thu Feb 19 01:30:02 1998 --- octave-2.0.12/acconfig.h Sat Apr 18 20:18:21 1998 *************** *** 89,97 **** /* To quiet autoheader. */ #undef SMART_PUTENV - /* Use GNU info for extended help system. */ - #undef USE_GNU_INFO - /* Use plplot for plotting. */ #undef USE_PLPLOT --- 89,94 ---- diff -cNr octave-2.0.11/aclocal.m4 octave-2.0.12/aclocal.m4 *** octave-2.0.11/aclocal.m4 Fri Feb 6 13:43:14 1998 --- octave-2.0.12/aclocal.m4 Tue Apr 28 14:28:59 1998 *************** *** 207,212 **** --- 207,213 ---- -lkernel32) case "$canonical_host_type" in *-*-cygwin32) + arg= ;; *) lflags="$lflags $arg" *************** *** 360,372 **** [trap 'rm -f ftest* ctest* core; exit 1' 1 3 15 octave_cv_f2c_f77_compat=no cat > ftest.f < ftest.f < ctest.c < ctest.c <&6 ! echo "configure:602: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 596,602 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:600: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** *** 767,804 **** fi fi - ### Allow the user disable support for GNU info. - - case "$canonical_host_type" in - *-*-cygwin32) - USE_GNU_INFO=false - ;; - *) - USE_GNU_INFO=true - ;; - esac - - if $USE_GNU_INFO; then - INFO_DIR=info - fi - - # Check whether --enable-info or --disable-info was given. - if test "${enable_info+set}" = set; then - enableval="$enable_info" - if test "$enableval" = no; then - USE_GNU_INFO=false; - INFO_DIR=""; - fi - fi - - if $USE_GNU_INFO; then - cat >> confdefs.h <<\EOF - #define USE_GNU_INFO 1 - EOF - - fi - - USE_PLPLOT=false PLPLOT_DIR="" LIBPLPLOT="" --- 765,770 ---- *************** *** 850,856 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:854: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 816,822 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 881,887 **** echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:885: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 847,853 ---- echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:851: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 891,901 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 857,867 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 921,932 **** { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:925: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:930: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 887,898 ---- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:891: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:896: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 935,941 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:939: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no --- 901,907 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:905: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no *************** *** 950,956 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:954: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 916,922 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:920: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 978,984 **** fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:982: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 944,950 ---- fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:948: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 991,1002 **** cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : --- 957,968 ---- cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:966: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : *************** *** 1041,1047 **** echo $ac_n "checking for C++ support for new friend template declaration""... $ac_c" 1>&6 ! echo "configure:1045: checking for C++ support for new friend template declaration" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_new_friend_template_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1007,1013 ---- echo $ac_n "checking for C++ support for new friend template declaration""... $ac_c" 1>&6 ! echo "configure:1011: checking for C++ support for new friend template declaration" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_new_friend_template_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1068,1074 **** } EOB cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_cxx_new_friend_template_decl=no else --- 1044,1050 ---- ; return 0; } EOF ! if { (eval echo configure:1048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_cxx_new_friend_template_decl=no else *************** *** 1115,1121 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1119: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1081,1087 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1085: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1144,1150 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1148: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1110,1116 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1114: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1192,1198 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1196: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 1158,1164 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1162: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 1202,1212 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 1168,1178 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 1226,1237 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1230: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1235: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1192,1203 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1196: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1201: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1240,1246 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1206,1212 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** *** 1255,1261 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1259: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1221,1227 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1225: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1283,1289 **** fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1287: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 1249,1255 ---- fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1253: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** *** 1298,1310 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1308: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : --- 1264,1276 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : *************** *** 1315,1327 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : --- 1281,1293 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : *************** *** 1345,1357 **** if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ! echo "configure:1349: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP --- 1311,1323 ---- if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ! echo "configure:1315: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP *************** *** 1369,1375 **** if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA --- 1335,1341 ---- if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA *************** *** 1426,1432 **** ac_safe=`echo "-mieee-fp" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -mieee-fp""... $ac_c" 1>&6 ! echo "configure:1430: checking whether ${CC-cc} accepts -mieee-fp" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1392,1398 ---- ac_safe=`echo "-mieee-fp" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -mieee-fp""... $ac_c" 1>&6 ! echo "configure:1396: checking whether ${CC-cc} accepts -mieee-fp" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1442,1455 **** XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mieee-fp" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else --- 1408,1421 ---- XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mieee-fp" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else *************** *** 1478,1484 **** ac_safe=`echo "-mieee-fp" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -mieee-fp""... $ac_c" 1>&6 ! echo "configure:1482: checking whether ${CXX-c++} accepts -mieee-fp" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1444,1450 ---- ac_safe=`echo "-mieee-fp" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -mieee-fp""... $ac_c" 1>&6 ! echo "configure:1448: checking whether ${CXX-c++} accepts -mieee-fp" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1494,1507 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -mieee-fp" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 1460,1473 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -mieee-fp" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 1537,1543 **** ac_safe=`echo "-mieee-with-inexact" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -mieee-with-inexact""... $ac_c" 1>&6 ! echo "configure:1541: checking whether ${CC-cc} accepts -mieee-with-inexact" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1503,1509 ---- ac_safe=`echo "-mieee-with-inexact" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -mieee-with-inexact""... $ac_c" 1>&6 ! echo "configure:1507: checking whether ${CC-cc} accepts -mieee-with-inexact" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1553,1566 **** XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mieee-with-inexact" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else --- 1519,1532 ---- XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mieee-with-inexact" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else *************** *** 1588,1594 **** ac_safe=`echo "-mieee-with-inexact" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -mieee-with-inexact""... $ac_c" 1>&6 ! echo "configure:1592: checking whether ${CXX-c++} accepts -mieee-with-inexact" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1554,1560 ---- ac_safe=`echo "-mieee-with-inexact" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -mieee-with-inexact""... $ac_c" 1>&6 ! echo "configure:1558: checking whether ${CXX-c++} accepts -mieee-with-inexact" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1604,1617 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -mieee-with-inexact" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 1570,1583 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -mieee-with-inexact" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 1651,1657 **** ac_safe=`echo "-fno-rtti" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-rtti""... $ac_c" 1>&6 ! echo "configure:1655: checking whether ${CXX-c++} accepts -fno-rtti" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1617,1623 ---- ac_safe=`echo "-fno-rtti" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-rtti""... $ac_c" 1>&6 ! echo "configure:1621: checking whether ${CXX-c++} accepts -fno-rtti" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1667,1680 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-rtti" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 1633,1646 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-rtti" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 1707,1713 **** ac_safe=`echo "-fno-exceptions" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-exceptions""... $ac_c" 1>&6 ! echo "configure:1711: checking whether ${CXX-c++} accepts -fno-exceptions" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1673,1679 ---- ac_safe=`echo "-fno-exceptions" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-exceptions""... $ac_c" 1>&6 ! echo "configure:1677: checking whether ${CXX-c++} accepts -fno-exceptions" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1723,1736 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-exceptions" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 1689,1702 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-exceptions" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 1765,1771 **** ac_safe=`echo "-fno-implicit-templates" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-implicit-templates""... $ac_c" 1>&6 ! echo "configure:1769: checking whether ${CXX-c++} accepts -fno-implicit-templates" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1731,1737 ---- ac_safe=`echo "-fno-implicit-templates" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -fno-implicit-templates""... $ac_c" 1>&6 ! echo "configure:1735: checking whether ${CXX-c++} accepts -fno-implicit-templates" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1781,1794 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-implicit-templates" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 1747,1760 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-implicit-templates" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 1847,1853 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1851: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1813,1819 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1817: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1925,1931 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1929: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_F77'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1891,1897 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1895: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_F77'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1963,1969 **** else if test -n "$F77"; then echo $ac_n "checking for Fortran libraries""... $ac_c" 1>&6 ! echo "configure:1967: checking for Fortran libraries" >&5 if eval "test \"`echo '$''{'octave_cv_flibs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1929,1935 ---- else if test -n "$F77"; then echo $ac_n "checking for Fortran libraries""... $ac_c" 1>&6 ! echo "configure:1933: checking for Fortran libraries" >&5 if eval "test \"`echo '$''{'octave_cv_flibs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2055,2060 **** --- 2021,2027 ---- -lkernel32) case "$canonical_host_type" in *-*-cygwin32) + arg= ;; *) lflags="$lflags $arg" *************** *** 2115,2121 **** FLIBS="$octave_cv_flibs" echo "$ac_t""$FLIBS" 1>&6 echo $ac_n "checking whether $F77 uses uppercase external names""... $ac_c" 1>&6 ! echo "configure:2119: checking whether $F77 uses uppercase external names" >&5 if eval "test \"`echo '$''{'octave_cv_f77_uppercase_names'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2082,2088 ---- FLIBS="$octave_cv_flibs" echo "$ac_t""$FLIBS" 1>&6 echo $ac_n "checking whether $F77 uses uppercase external names""... $ac_c" 1>&6 ! echo "configure:2086: checking whether $F77 uses uppercase external names" >&5 if eval "test \"`echo '$''{'octave_cv_f77_uppercase_names'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2140,2146 **** fi echo $ac_n "checking whether $F77 appends underscores to external names""... $ac_c" 1>&6 ! echo "configure:2144: checking whether $F77 appends underscores to external names" >&5 if eval "test \"`echo '$''{'octave_cv_f77_append_underscore'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2107,2113 ---- fi echo $ac_n "checking whether $F77 appends underscores to external names""... $ac_c" 1>&6 ! echo "configure:2111: checking whether $F77 appends underscores to external names" >&5 if eval "test \"`echo '$''{'octave_cv_f77_append_underscore'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2172,2178 **** fi echo $ac_n "checking whether ${F77-f77} is the GNU Fortran compiler""... $ac_c" 1>&6 ! echo "configure:2176: checking whether ${F77-f77} is the GNU Fortran compiler" >&5 if eval "test \"`echo '$''{'octave_cv_f77_is_g77'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2139,2145 ---- fi echo $ac_n "checking whether ${F77-f77} is the GNU Fortran compiler""... $ac_c" 1>&6 ! echo "configure:2143: checking whether ${F77-f77} is the GNU Fortran compiler" >&5 if eval "test \"`echo '$''{'octave_cv_f77_is_g77'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2202,2221 **** fi else echo $ac_n "checking $F77/f2c compatibility""... $ac_c" 1>&6 ! echo "configure:2206: checking $F77/f2c compatibility" >&5 if eval "test \"`echo '$''{'octave_cv_f2c_f77_compat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else trap 'rm -f ftest* ctest* core; exit 1' 1 3 15 octave_cv_f2c_f77_compat=no cat > ftest.f <&6 ! echo "configure:2173: checking $F77/f2c compatibility" >&5 if eval "test \"`echo '$''{'octave_cv_f2c_f77_compat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else trap 'rm -f ftest* ctest* core; exit 1' 1 3 15 octave_cv_f2c_f77_compat=no cat > ftest.f < ctest.c < ctest.c <&6 ! echo "configure:2289: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_F2C'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2258,2264 ---- # Extract the first word of "f2c", so it can be a program name with args. set dummy f2c; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2262: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_F2C'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2349,2355 **** oct_conflib=libconflib.a oct_obj_ext=o ! if { (eval echo configure:2353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then $AR $ARFLAGS $oct_conflib conftest.$oct_obj_ext 1>&5 if test -n "$RANLIB"; then $RANLIB $oct_conflib 1>&5 --- 2322,2328 ---- oct_conflib=libconflib.a oct_obj_ext=o ! if { (eval echo configure:2326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then $AR $ARFLAGS $oct_conflib conftest.$oct_obj_ext 1>&5 if test -n "$RANLIB"; then $RANLIB $oct_conflib 1>&5 *************** *** 2357,2363 **** fi rm -f conftest* echo $ac_n "checking for f_open in -lf2c""... $ac_c" 1>&6 ! echo "configure:2361: checking for f_open in -lf2c" >&5 ac_lib_var=`echo f2c'_'f_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2330,2336 ---- fi rm -f conftest* echo $ac_n "checking for f_open in -lf2c""... $ac_c" 1>&6 ! echo "configure:2334: checking for f_open in -lf2c" >&5 ac_lib_var=`echo f2c'_'f_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2365,2371 **** ac_save_LIBS="$LIBS" LIBS="-lf2c -L. -lconflib -lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2349,2355 ---- f_open() ; return 0; } EOF ! if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2401,2407 **** if test -z "$FLIBS"; then echo $ac_n "checking for d_sin in -lF77""... $ac_c" 1>&6 ! echo "configure:2405: checking for d_sin in -lF77" >&5 ac_lib_var=`echo F77'_'d_sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2374,2380 ---- if test -z "$FLIBS"; then echo $ac_n "checking for d_sin in -lF77""... $ac_c" 1>&6 ! echo "configure:2378: checking for d_sin in -lF77" >&5 ac_lib_var=`echo F77'_'d_sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2409,2415 **** ac_save_LIBS="$LIBS" LIBS="-lF77 -lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2393,2399 ---- d_sin() ; return 0; } EOF ! if { (eval echo configure:2397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2443,2449 **** if test -n "$FLIBS"; then echo $ac_n "checking for f_rew in -lI77""... $ac_c" 1>&6 ! echo "configure:2447: checking for f_rew in -lI77" >&5 ac_lib_var=`echo I77'_'f_rew | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2416,2422 ---- if test -n "$FLIBS"; then echo $ac_n "checking for f_rew in -lI77""... $ac_c" 1>&6 ! echo "configure:2420: checking for f_rew in -lI77" >&5 ac_lib_var=`echo I77'_'f_rew | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2451,2457 **** ac_save_LIBS="$LIBS" LIBS="-lI77 -lF77 $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2435,2441 ---- f_rew() ; return 0; } EOF ! if { (eval echo configure:2439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2613,2618 **** --- 2586,2594 ---- i[3456789]86-*-linux*) RLD_FLAG='-Xlinker -rpath -Xlinker $(octlibdir)' ;; + i[3456789]86-*-sco3.2v5*) + SH_LDFLAGS=-G + ;; rs6000-ibm-aix* | powerpc-ibm-aix*) CPICFLAG= CXXPICFLAG= *************** *** 2704,2710 **** ### functions like gethostname and gettimeofday is in libsocket. echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:2708: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then --- 2680,2686 ---- ### functions like gethostname and gettimeofday is in libsocket. echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:2684: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then *************** *** 2726,2742 **** ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 ! echo "configure:2730: checking for minix/config.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2740: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 2702,2718 ---- ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 ! echo "configure:2706: checking for minix/config.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 2774,2782 **** fi echo $ac_n "checking for AIX""... $ac_c" 1>&6 ! echo "configure:2778: checking for AIX" >&5 cat > conftest.$ac_ext <&6 ! echo "configure:2754: checking for AIX" >&5 cat > conftest.$ac_ext <&6 ! echo "configure:2802: checking for getpwnam in -lsun" >&5 ac_lib_var=`echo sun'_'getpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2774,2780 ---- echo $ac_n "checking for getpwnam in -lsun""... $ac_c" 1>&6 ! echo "configure:2778: checking for getpwnam in -lsun" >&5 ac_lib_var=`echo sun'_'getpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2806,2812 **** ac_save_LIBS="$LIBS" LIBS="-lsun $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2793,2799 ---- getpwnam() ; return 0; } EOF ! if { (eval echo configure:2797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2845,2851 **** fi echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6 ! echo "configure:2849: checking for gethostname in -lsocket" >&5 ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2821,2827 ---- fi echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6 ! echo "configure:2825: checking for gethostname in -lsocket" >&5 ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2853,2859 **** ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2840,2846 ---- gethostname() ; return 0; } EOF ! if { (eval echo configure:2844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2895,2901 **** case "$canonical_host_type" in alpha*-dec-osf*) echo $ac_n "checking for dgemm_ in -ldxml""... $ac_c" 1>&6 ! echo "configure:2899: checking for dgemm_ in -ldxml" >&5 ac_lib_var=`echo dxml'_'dgemm_ | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2871,2877 ---- case "$canonical_host_type" in alpha*-dec-osf*) echo $ac_n "checking for dgemm_ in -ldxml""... $ac_c" 1>&6 ! echo "configure:2875: checking for dgemm_ in -ldxml" >&5 ac_lib_var=`echo dxml'_'dgemm_ | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2903,2909 **** ac_save_LIBS="$LIBS" LIBS="-ldxml $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2890,2896 ---- dgemm_() ; return 0; } EOF ! if { (eval echo configure:2894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2942,2948 **** ### be eliminated in favor of run-time checks. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:2946: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2918,2924 ---- ### be eliminated in favor of run-time checks. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:2922: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2950,2956 **** ac_cv_sizeof_short=2 else cat > conftest.$ac_ext < main() --- 2926,2932 ---- ac_cv_sizeof_short=2 else cat > conftest.$ac_ext < main() *************** *** 2961,2967 **** exit(0); } EOF ! if { (eval echo configure:2965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else --- 2937,2943 ---- exit(0); } EOF ! if { (eval echo configure:2941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else *************** *** 2981,2987 **** echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:2985: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2957,2963 ---- echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:2961: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2989,2995 **** ac_cv_sizeof_int=4 else cat > conftest.$ac_ext < main() --- 2965,2971 ---- ac_cv_sizeof_int=4 else cat > conftest.$ac_ext < main() *************** *** 3000,3006 **** exit(0); } EOF ! if { (eval echo configure:3004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else --- 2976,2982 ---- exit(0); } EOF ! if { (eval echo configure:2980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else *************** *** 3020,3026 **** echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:3024: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2996,3002 ---- echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:3000: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 3028,3034 **** ac_cv_sizeof_long=4 else cat > conftest.$ac_ext < main() --- 3004,3010 ---- ac_cv_sizeof_long=4 else cat > conftest.$ac_ext < main() *************** *** 3039,3045 **** exit(0); } EOF ! if { (eval echo configure:3043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else --- 3015,3021 ---- exit(0); } EOF ! if { (eval echo configure:3019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else *************** *** 3064,3082 **** # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:3068: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:3080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else --- 3040,3058 ---- # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:3044: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:3056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else *************** *** 3097,3108 **** fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:3101: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3077: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else --- 3101,3107 ---- char *p = (char *) alloca(1); ; return 0; } EOF ! if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else *************** *** 3157,3168 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:3161: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3137: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3191: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3167: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3191,3197 ---- ; return 0; } EOF ! if { (eval echo configure:3195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3242,3248 **** fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:3246: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3218,3224 ---- fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:3222: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 3250,3256 **** ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else --- 3245,3251 ---- exit (find_stack_direction() < 0); } EOF ! if { (eval echo configure:3249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else *************** *** 3291,3302 **** fi echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:3295: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3271: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else --- 3321,3327 ---- ; return 0; } EOF ! if { (eval echo configure:3325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else *************** *** 3369,3375 **** ### See if we should define NPOS. echo $ac_n "checking whether including defines NPOS""... $ac_c" 1>&6 ! echo "configure:3373: checking whether including defines NPOS" >&5 if eval "test \"`echo '$''{'octave_cv_string_npos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3345,3351 ---- ### See if we should define NPOS. echo $ac_n "checking whether including defines NPOS""... $ac_c" 1>&6 ! echo "configure:3349: checking whether including defines NPOS" >&5 if eval "test \"`echo '$''{'octave_cv_string_npos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 3382,3395 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { size_t foo = NPOS ; return 0; } EOF ! if { (eval echo configure:3393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* octave_cv_string_npos=yes else --- 3358,3371 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { size_t foo = NPOS ; return 0; } EOF ! if { (eval echo configure:3369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* octave_cv_string_npos=yes else *************** *** 3420,3431 **** ### Checks for header files. echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:3424: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3396,3407 ---- ### Checks for header files. echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:3400: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3433,3439 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 3409,3415 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3450,3456 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 3426,3432 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 3468,3474 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 3444,3450 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 3489,3495 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 3465,3471 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** *** 3500,3506 **** exit (0); } EOF ! if { (eval echo configure:3504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else --- 3476,3482 ---- exit (0); } EOF ! if { (eval echo configure:3480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else *************** *** 3528,3539 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:3532: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> --- 3504,3515 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:3508: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> *************** *** 3541,3547 **** DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:3545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else --- 3517,3523 ---- DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:3521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else *************** *** 3566,3572 **** # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:3570: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3542,3548 ---- # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:3546: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3574,3580 **** ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3561,3567 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:3565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3607,3613 **** else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:3611: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3583,3589 ---- else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:3587: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3615,3621 **** ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3602,3608 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:3606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3649,3660 **** fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:3653: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3625,3636 ---- fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:3629: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3663,3669 **** struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:3667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else --- 3639,3645 ---- struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:3643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else *************** *** 3684,3695 **** fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:3688: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3660,3671 ---- fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:3664: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 3705,3711 **** s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:3709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else --- 3681,3687 ---- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:3685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else *************** *** 3735,3751 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3739: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 3711,3727 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3715: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 3783,3793 **** GLOB_DIR=glob LIBGLOB='$(TOPDIR)/glob/libglob.$(LIBEXT)' GLOB_INCFLAGS='-I$(top_srcdir)/glob -I$(TOPDIR)/glob' ! if test "$ac_cv_header_fnmatch.h" = yes \ ! && test "$ac_cv_header_glob.h" = yes; then GLOB_DIR= echo $ac_n "checking for glob in -lglob""... $ac_c" 1>&6 ! echo "configure:3791: checking for glob in -lglob" >&5 ac_lib_var=`echo glob'_'glob | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3759,3769 ---- GLOB_DIR=glob LIBGLOB='$(TOPDIR)/glob/libglob.$(LIBEXT)' GLOB_INCFLAGS='-I$(top_srcdir)/glob -I$(TOPDIR)/glob' ! if test "$ac_cv_header_fnmatch_h" = yes \ ! && test "$ac_cv_header_glob_h" = yes; then GLOB_DIR= echo $ac_n "checking for glob in -lglob""... $ac_c" 1>&6 ! echo "configure:3767: checking for glob in -lglob" >&5 ac_lib_var=`echo glob'_'glob | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3795,3801 **** ac_save_LIBS="$LIBS" LIBS="-lglob $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3782,3788 ---- glob() ; return 0; } EOF ! if { (eval echo configure:3786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3836,3847 **** for ac_func in fnmatch glob do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3840: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3816: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3840,3846 ---- ; return 0; } EOF ! if { (eval echo configure:3844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3910,3921 **** strnicmp tempnam umask unlink usleep vfprintf vsprintf waitpid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3914: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3890: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3914,3920 ---- ; return 0; } EOF ! if { (eval echo configure:3918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3964,3970 **** echo $ac_n "checking whether putenv uses malloc""... $ac_c" 1>&6 ! echo "configure:3968: checking whether putenv uses malloc" >&5 if eval "test \"`echo '$''{'octave_cv_func_putenv_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3940,3946 ---- echo $ac_n "checking whether putenv uses malloc""... $ac_c" 1>&6 ! echo "configure:3944: checking whether putenv uses malloc" >&5 if eval "test \"`echo '$''{'octave_cv_func_putenv_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 3972,3978 **** octave_cv_func_putenv_malloc=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then octave_cv_func_putenv_malloc=yes else --- 4001,4007 ---- exit (rstr1 == rstr2 ? 0 : 1); } EOF ! if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then octave_cv_func_putenv_malloc=yes else *************** *** 4046,4064 **** fi echo $ac_n "checking whether program_invocation_name is predefined""... $ac_c" 1>&6 ! echo "configure:4050: checking whether program_invocation_name is predefined" >&5 if eval "test \"`echo '$''{'octave_cv_var_program_inv_name'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_var_program_inv_name=yes else --- 4022,4040 ---- fi echo $ac_n "checking whether program_invocation_name is predefined""... $ac_c" 1>&6 ! echo "configure:4026: checking whether program_invocation_name is predefined" >&5 if eval "test \"`echo '$''{'octave_cv_var_program_inv_name'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_var_program_inv_name=yes else *************** *** 4086,4094 **** DLFCN_INCFLAGS='-I$(top_srcdir)/dlfcn -I$(TOPDIR)/dlfcn' WITH_DL=true ;; *) echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ! echo "configure:4092: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4062,4073 ---- DLFCN_INCFLAGS='-I$(top_srcdir)/dlfcn -I$(TOPDIR)/dlfcn' WITH_DL=true ;; + i[3456]86-*-sco3.2v5*) + WITH_DL=true + ;; *) echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ! echo "configure:4071: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4096,4102 **** ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4086,4092 ---- dlopen() ; return 0; } EOF ! if { (eval echo configure:4090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 4137,4148 **** for ac_func in dlopen dlsym dlerror dlclose do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4120: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4144,4150 ---- ; return 0; } EOF ! if { (eval echo configure:4148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4217,4223 **** if test "$WITH_SHL" = yes || test "$WITH_SHL" = maybe; then echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ! echo "configure:4221: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4196,4202 ---- if test "$WITH_SHL" = yes || test "$WITH_SHL" = maybe; then echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ! echo "configure:4200: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4225,4231 **** ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4215,4221 ---- shl_load() ; return 0; } EOF ! if { (eval echo configure:4219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 4266,4277 **** for ac_func in shl_load shl_findsym do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4270: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4249: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4273,4279 ---- ; return 0; } EOF ! if { (eval echo configure:4277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4356,4367 **** ### which one (if any) appears in sys/time.h. echo $ac_n "checking for gettimeofday""... $ac_c" 1>&6 ! echo "configure:4360: checking for gettimeofday" >&5 if eval "test \"`echo '$''{'ac_cv_func_gettimeofday'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4339: checking for gettimeofday" >&5 if eval "test \"`echo '$''{'ac_cv_func_gettimeofday'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gettimeofday=yes" else --- 4363,4369 ---- ; return 0; } EOF ! if { (eval echo configure:4367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gettimeofday=yes" else *************** *** 4399,4412 **** if eval "test \"`echo '$ac_cv_func_'gettimeofday`\" = yes"; then echo "$ac_t""yes" 1>&6 cat > conftest.$ac_ext < int main() { gettimeofday ((struct timeval *) 0,(struct timezone *) 0); ; return 0; } EOF ! if { (eval echo configure:4410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 4378,4391 ---- if eval "test \"`echo '$ac_cv_func_'gettimeofday`\" = yes"; then echo "$ac_t""yes" 1>&6 cat > conftest.$ac_ext < int main() { gettimeofday ((struct timeval *) 0,(struct timezone *) 0); ; return 0; } EOF ! if { (eval echo configure:4389: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** *** 4431,4437 **** ### with functions from the BSD/NET2 math library. echo $ac_n "checking for quiet_nan in -lsunmath""... $ac_c" 1>&6 ! echo "configure:4435: checking for quiet_nan in -lsunmath" >&5 ac_lib_var=`echo sunmath'_'quiet_nan | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4410,4416 ---- ### with functions from the BSD/NET2 math library. echo $ac_n "checking for quiet_nan in -lsunmath""... $ac_c" 1>&6 ! echo "configure:4414: checking for quiet_nan in -lsunmath" >&5 ac_lib_var=`echo sunmath'_'quiet_nan | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4439,4445 **** ac_save_LIBS="$LIBS" LIBS="-lsunmath -lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4429,4435 ---- quiet_nan() ; return 0; } EOF ! if { (eval echo configure:4433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 4482,4488 **** case "$canonical_host_type" in *-*-linux*) echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:4486: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4461,4467 ---- case "$canonical_host_type" in *-*-linux*) echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:4465: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4490,4496 **** ac_save_LIBS="$LIBS" LIBS="-lm -lc $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4480,4486 ---- sin() ; return 0; } EOF ! if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 4531,4537 **** ;; *) echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:4535: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4510,4516 ---- ;; *) echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:4514: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 4539,4545 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4529,4535 ---- sin() ; return 0; } EOF ! if { (eval echo configure:4533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 4608,4619 **** for ac_func in finite isnan isinf infinity quiet_nan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4612: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4591: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4615,4621 ---- ; return 0; } EOF ! if { (eval echo configure:4619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4668,4679 **** for ac_func in acosh asinh atanh erf erfc do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4651: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4675,4681 ---- ; return 0; } EOF ! if { (eval echo configure:4679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 4724,4735 **** ### Checks for OS specific cruft. echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 ! echo "configure:4728: checking for st_blksize in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4703,4714 ---- ### Checks for OS specific cruft. echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 ! echo "configure:4707: checking for st_blksize in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4737,4743 **** struct stat s; s.st_blksize; ; return 0; } EOF ! if { (eval echo configure:4741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_blksize=yes else --- 4716,4722 ---- struct stat s; s.st_blksize; ; return 0; } EOF ! if { (eval echo configure:4720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_blksize=yes else *************** *** 4758,4769 **** fi echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6 ! echo "configure:4762: checking for st_blocks in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4737,4748 ---- fi echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6 ! echo "configure:4741: checking for st_blocks in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4771,4777 **** struct stat s; s.st_blocks; ; return 0; } EOF ! if { (eval echo configure:4775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_blocks=yes else --- 4750,4756 ---- struct stat s; s.st_blocks; ; return 0; } EOF ! if { (eval echo configure:4754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_blocks=yes else *************** *** 4794,4805 **** fi echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 ! echo "configure:4798: checking for st_rdev in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4773,4784 ---- fi echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 ! echo "configure:4777: checking for st_rdev in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4807,4813 **** struct stat s; s.st_rdev; ; return 0; } EOF ! if { (eval echo configure:4811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_rdev=yes else --- 4786,4792 ---- struct stat s; s.st_rdev; ; return 0; } EOF ! if { (eval echo configure:4790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_rdev=yes else *************** *** 4828,4839 **** fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:4832: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4807,4818 ---- fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:4811: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4841,4847 **** struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:4845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else --- 4820,4826 ---- struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:4824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else *************** *** 4862,4873 **** fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 ! echo "configure:4866: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> --- 4841,4852 ---- fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 ! echo "configure:4845: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> *************** *** 4875,4881 **** struct tm tm; tm.tm_zone; ; return 0; } EOF ! if { (eval echo configure:4879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else --- 4854,4860 ---- struct tm tm; tm.tm_zone; ; return 0; } EOF ! if { (eval echo configure:4858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else *************** *** 4895,4906 **** else echo $ac_n "checking for tzname""... $ac_c" 1>&6 ! echo "configure:4899: checking for tzname" >&5 if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ --- 4874,4885 ---- else echo $ac_n "checking for tzname""... $ac_c" 1>&6 ! echo "configure:4878: checking for tzname" >&5 if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ *************** *** 4910,4916 **** atoi(*tzname); ; return 0; } EOF ! if { (eval echo configure:4914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_var_tzname=yes else --- 4889,4895 ---- atoi(*tzname); ; return 0; } EOF ! if { (eval echo configure:4893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_var_tzname=yes else *************** *** 4932,4938 **** fi echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6 ! echo "configure:4936: checking whether closedir returns void" >&5 if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4911,4917 ---- fi echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6 ! echo "configure:4915: checking whether closedir returns void" >&5 if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 4940,4952 **** ac_cv_func_closedir_void=yes else cat > conftest.$ac_ext < #include <$ac_header_dirent> int closedir(); main() { exit(closedir(opendir(".")) != 0); } EOF ! if { (eval echo configure:4950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_closedir_void=no else --- 4919,4931 ---- ac_cv_func_closedir_void=yes else cat > conftest.$ac_ext < #include <$ac_header_dirent> int closedir(); main() { exit(closedir(opendir(".")) != 0); } EOF ! if { (eval echo configure:4929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_closedir_void=no else *************** *** 4970,4981 **** echo $ac_n "checking for gr_passwd in struct group""... $ac_c" 1>&6 ! echo "configure:4974: checking for gr_passwd in struct group" >&5 if eval "test \"`echo '$''{'octave_cv_struct_gr_passwd'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 4949,4960 ---- echo $ac_n "checking for gr_passwd in struct group""... $ac_c" 1>&6 ! echo "configure:4953: checking for gr_passwd in struct group" >&5 if eval "test \"`echo '$''{'octave_cv_struct_gr_passwd'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 4983,4989 **** struct group s; s.gr_passwd; ; return 0; } EOF ! if { (eval echo configure:4987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* octave_cv_struct_gr_passwd=yes else --- 4962,4968 ---- struct group s; s.gr_passwd; ; return 0; } EOF ! if { (eval echo configure:4966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* octave_cv_struct_gr_passwd=yes else *************** *** 5007,5013 **** TERMLIBS="" for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tputs in -l${termlib}""... $ac_c" 1>&6 ! echo "configure:5011: checking for tputs in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tputs | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4986,4992 ---- TERMLIBS="" for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tputs in -l${termlib}""... $ac_c" 1>&6 ! echo "configure:4990: checking for tputs in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tputs | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 5015,5021 **** ac_save_LIBS="$LIBS" LIBS="-l${termlib} $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5005,5011 ---- tputs() ; return 0; } EOF ! if { (eval echo configure:5009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 5067,5082 **** fi echo $ac_n "checking for struct exception in math.h""... $ac_c" 1>&6 ! echo "configure:5071: checking for struct exception in math.h" >&5 cat > conftest.$ac_ext < int main() { struct exception *x; x->type; x->name; ; return 0; } EOF ! if { (eval echo configure:5080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF --- 5046,5061 ---- fi echo $ac_n "checking for struct exception in math.h""... $ac_c" 1>&6 ! echo "configure:5050: checking for struct exception in math.h" >&5 cat > conftest.$ac_ext < int main() { struct exception *x; x->type; x->name; ; return 0; } EOF ! if { (eval echo configure:5059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF *************** *** 5094,5105 **** ### Signal stuff. echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:5098: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 5073,5084 ---- ### Signal stuff. echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:5077: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 5116,5122 **** int i; ; return 0; } EOF ! if { (eval echo configure:5120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else --- 5095,5101 ---- int i; ; return 0; } EOF ! if { (eval echo configure:5099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else *************** *** 5135,5146 **** echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 ! echo "configure:5139: checking for sys_siglist declaration in signal.h or unistd.h" >&5 if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 5114,5125 ---- echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 ! echo "configure:5118: checking for sys_siglist declaration in signal.h or unistd.h" >&5 if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 5152,5158 **** char *msg = *(sys_siglist + 1); ; return 0; } EOF ! if { (eval echo configure:5156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else --- 5131,5137 ---- char *msg = *(sys_siglist + 1); ; return 0; } EOF ! if { (eval echo configure:5135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else *************** *** 5173,5188 **** fi echo $ac_n "checking for sys_siglist variable""... $ac_c" 1>&6 ! echo "configure:5177: checking for sys_siglist variable" >&5 cat > conftest.$ac_ext < int main() { extern char *sys_siglist[]; printf ("%s\n", sys_siglist[1]); ; return 0; } EOF ! if { (eval echo configure:5186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF --- 5152,5167 ---- fi echo $ac_n "checking for sys_siglist variable""... $ac_c" 1>&6 ! echo "configure:5156: checking for sys_siglist variable" >&5 cat > conftest.$ac_ext < int main() { extern char *sys_siglist[]; printf ("%s\n", sys_siglist[1]); ; return 0; } EOF ! if { (eval echo configure:5165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF *************** *** 5198,5210 **** rm -f conftest* echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6 ! echo "configure:5202: checking for type of signal functions" >&5 if eval "test \"`echo '$''{'octave_cv_signal_vintage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { --- 5177,5189 ---- rm -f conftest* echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6 ! echo "configure:5181: checking for type of signal functions" >&5 if eval "test \"`echo '$''{'octave_cv_signal_vintage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { *************** *** 5217,5223 **** ; return 0; } EOF ! if { (eval echo configure:5221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=posix else --- 5196,5202 ---- ; return 0; } EOF ! if { (eval echo configure:5200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=posix else *************** *** 5226,5232 **** rm -rf conftest* cat > conftest.$ac_ext < int main() { --- 5205,5211 ---- rm -rf conftest* cat > conftest.$ac_ext < int main() { *************** *** 5236,5242 **** ; return 0; } EOF ! if { (eval echo configure:5240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=4.2bsd else --- 5215,5221 ---- ; return 0; } EOF ! if { (eval echo configure:5219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=4.2bsd else *************** *** 5245,5251 **** rm -rf conftest* cat > conftest.$ac_ext < --- 5224,5230 ---- rm -rf conftest* cat > conftest.$ac_ext < *************** *** 5258,5264 **** ; return 0; } EOF ! if { (eval echo configure:5262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=svr3 else --- 5237,5243 ---- ; return 0; } EOF ! if { (eval echo configure:5241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* octave_cv_signal_vintage=svr3 else *************** *** 5299,5305 **** echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6 ! echo "configure:5303: checking if signal handlers must be reinstalled when invoked" >&5 if eval "test \"`echo '$''{'octave_cv_must_reinstall_sighandlers'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5278,5284 ---- echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6 ! echo "configure:5282: checking if signal handlers must be reinstalled when invoked" >&5 if eval "test \"`echo '$''{'octave_cv_must_reinstall_sighandlers'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5311,5317 **** fi else cat > conftest.$ac_ext < --- 5290,5296 ---- fi else cat > conftest.$ac_ext < *************** *** 5353,5359 **** } EOF ! if { (eval echo configure:5357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then octave_cv_must_reinstall_sighandlers=no else --- 5332,5338 ---- } EOF ! if { (eval echo configure:5336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then octave_cv_must_reinstall_sighandlers=no else *************** *** 5383,5394 **** ### Type stuff. echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! echo "configure:5387: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5362,5373 ---- ### Type stuff. echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ! echo "configure:5366: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5416,5427 **** fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5420: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5395,5406 ---- fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5399: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5449,5460 **** fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:5453: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5428,5439 ---- fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:5432: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5482,5493 **** fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5486: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5461,5472 ---- fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5465: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5515,5526 **** fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:5519: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF --- 5494,5505 ---- fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:5498: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF *************** *** 5549,5560 **** fi echo $ac_n "checking for dev_t""... $ac_c" 1>&6 ! echo "configure:5553: checking for dev_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_dev_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5528,5539 ---- fi echo $ac_n "checking for dev_t""... $ac_c" 1>&6 ! echo "configure:5532: checking for dev_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_dev_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5582,5593 **** fi echo $ac_n "checking for ino_t""... $ac_c" 1>&6 ! echo "configure:5586: checking for ino_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5561,5572 ---- fi echo $ac_n "checking for ino_t""... $ac_c" 1>&6 ! echo "configure:5565: checking for ino_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5615,5626 **** fi echo $ac_n "checking for nlink_t""... $ac_c" 1>&6 ! echo "configure:5619: checking for nlink_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_nlink_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5594,5605 ---- fi echo $ac_n "checking for nlink_t""... $ac_c" 1>&6 ! echo "configure:5598: checking for nlink_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_nlink_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5648,5659 **** fi echo $ac_n "checking for sigset_t""... $ac_c" 1>&6 ! echo "configure:5652: checking for sigset_t" >&5 if eval "test \"`echo '$''{'octave_cv_type_sigset_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5627,5638 ---- fi echo $ac_n "checking for sigset_t""... $ac_c" 1>&6 ! echo "configure:5631: checking for sigset_t" >&5 if eval "test \"`echo '$''{'octave_cv_type_sigset_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 5701,5712 **** for ac_func in getrusage times do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5705: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5684: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5708,5714 ---- ; return 0; } EOF ! if { (eval echo configure:5712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 5800,5806 **** # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5804: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5779,5785 ---- # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5783: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5833,5839 **** *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:5837: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5812,5818 ---- *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:5816: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 5841,5847 **** ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5831,5837 ---- yywrap() ; return 0; } EOF ! if { (eval echo configure:5835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 5894,5900 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5898: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5873,5879 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5877: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5933,5939 **** esac echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:5937: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5912,5918 ---- esac echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:5916: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 5962,5968 **** # Extract the first word of "runtest", so it can be a program name with args. set dummy runtest; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5966: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RUNTEST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5941,5947 ---- # Extract the first word of "runtest", so it can be a program name with args. set dummy runtest; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:5945: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RUNTEST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6006,6012 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:6010: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5985,5991 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:5989: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 6076,6082 **** # Extract the first word of "gnuplot", so it can be a program name with args. set dummy gnuplot; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6080: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNUPLOT_BINARY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6055,6061 ---- # Extract the first word of "gnuplot", so it can be a program name with args. set dummy gnuplot; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6059: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNUPLOT_BINARY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6103,6109 **** if test -n "$GNUPLOT_BINARY"; then echo $ac_n "checking to see if your gnuplot supports multiplot""... $ac_c" 1>&6 ! echo "configure:6107: checking to see if your gnuplot supports multiplot" >&5 if test -z "`echo 'set term unknown; set multiplot' | \ $GNUPLOT_BINARY 2>&1`"; then echo "$ac_t""yes" 1>&6 --- 6082,6088 ---- if test -n "$GNUPLOT_BINARY"; then echo $ac_n "checking to see if your gnuplot supports multiplot""... $ac_c" 1>&6 ! echo "configure:6086: checking to see if your gnuplot supports multiplot" >&5 if test -z "`echo 'set term unknown; set multiplot' | \ $GNUPLOT_BINARY 2>&1`"; then echo "$ac_t""yes" 1>&6 *************** *** 6115,6121 **** echo "$ac_t""no" 1>&6 fi echo $ac_n "checking to see if your gnuplot supports multiple plot windows""... $ac_c" 1>&6 ! echo "configure:6119: checking to see if your gnuplot supports multiple plot windows" >&5 if test -z "`echo 'set term x11 2' | $GNUPLOT_BINARY 2>&1`"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF --- 6094,6100 ---- echo "$ac_t""no" 1>&6 fi echo $ac_n "checking to see if your gnuplot supports multiple plot windows""... $ac_c" 1>&6 ! echo "configure:6098: checking to see if your gnuplot supports multiple plot windows" >&5 if test -z "`echo 'set term x11 2' | $GNUPLOT_BINARY 2>&1`"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF *************** *** 6161,6167 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6165: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DEFAULT_PAGER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6140,6146 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6144: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DEFAULT_PAGER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6232,6238 **** ac_safe=`echo "-Wall" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -Wall""... $ac_c" 1>&6 ! echo "configure:6236: checking whether ${CC-cc} accepts -Wall" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6211,6217 ---- ac_safe=`echo "-Wall" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts -Wall""... $ac_c" 1>&6 ! echo "configure:6215: checking whether ${CC-cc} accepts -Wall" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6248,6261 **** XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wall" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else --- 6227,6240 ---- XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wall" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else *************** *** 6286,6292 **** ac_safe=`echo "-Wall" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -Wall""... $ac_c" 1>&6 ! echo "configure:6290: checking whether ${CXX-c++} accepts -Wall" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6265,6271 ---- ac_safe=`echo "-Wall" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts -Wall""... $ac_c" 1>&6 ! echo "configure:6269: checking whether ${CXX-c++} accepts -Wall" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6302,6315 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Wall" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 6281,6294 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -Wall" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 6361,6367 **** ac_safe=`echo "$flag" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts $flag""... $ac_c" 1>&6 ! echo "configure:6365: checking whether ${CC-cc} accepts $flag" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6340,6346 ---- ac_safe=`echo "$flag" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CC-cc} accepts $flag""... $ac_c" 1>&6 ! echo "configure:6344: checking whether ${CC-cc} accepts $flag" >&5 if eval "test \"`echo '$''{'octave_cv_cc_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6377,6390 **** XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS $flag" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else --- 6356,6369 ---- XCFLAGS="$CFLAGS" CFLAGS="$CFLAGS $flag" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cc_flag_$ac_safe=yes" else *************** *** 6416,6422 **** ac_safe=`echo "$flag" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts $flag""... $ac_c" 1>&6 ! echo "configure:6420: checking whether ${CXX-c++} accepts $flag" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6395,6401 ---- ac_safe=`echo "$flag" | sed 'y%./+-%__p_%'` echo $ac_n "checking whether ${CXX-c++} accepts $flag""... $ac_c" 1>&6 ! echo "configure:6399: checking whether ${CXX-c++} accepts $flag" >&5 if eval "test \"`echo '$''{'octave_cv_cxx_flag_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 6432,6445 **** XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $flag" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else --- 6411,6424 ---- XCXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $flag" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "octave_cv_cxx_flag_$ac_safe=yes" else *************** *** 6482,6489 **** export CXX export F77 ! subdirs="$GLOB_DIR kpathsea scripts $INFO_DIR \ ! $PLPLOT_DIR $READLINE_DIR" ### Do the substitutions in all the Makefiles. --- 6461,6467 ---- export CXX export F77 ! subdirs="$GLOB_DIR kpathsea scripts $PLPLOT_DIR $READLINE_DIR" ### Do the substitutions in all the Makefiles. *************** *** 6589,6595 **** ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" ! trap 'rm -fr `echo "Makefile octMakefile Makeconf test/Makefile dlfcn/Makefile doc/Makefile doc/faq/Makefile doc/interpreter/Makefile doc/liboctave/Makefile doc/refcard/Makefile emacs/Makefile emacs/Makefile examples/Makefile liboctave/Makefile --- 6567,6574 ---- ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" ! trap 'rm -fr `echo "Makefile octMakefile Makeconf install-octave ! test/Makefile dlfcn/Makefile doc/Makefile doc/faq/Makefile doc/interpreter/Makefile doc/liboctave/Makefile doc/refcard/Makefile emacs/Makefile emacs/Makefile examples/Makefile liboctave/Makefile *************** *** 6654,6660 **** s%@imagedir@%$imagedir%g s%@imagepath@%$imagepath%g s%@config_opts@%$config_opts%g - s%@INFO_DIR@%$INFO_DIR%g s%@LIBPLPLOT@%$LIBPLPLOT%g s%@PLPLOT_DIR@%$PLPLOT_DIR%g s%@LIBREADLINE@%$LIBREADLINE%g --- 6633,6638 ---- *************** *** 6764,6770 **** cat >> $CONFIG_STATUS <> $CONFIG_STATUS < + + * Version 2.0.12 released. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/doc/interpreter/basics.texi octave-2.0.12/doc/interpreter/basics.texi *** octave-2.0.11/doc/interpreter/basics.texi Tue Feb 17 12:31:46 1998 --- octave-2.0.12/doc/interpreter/basics.texi Sun Mar 22 22:09:55 1998 *************** *** 112,118 **** @item --no-line-editing @cindex @code{--no-line-editing} ! Disable command-line editing and history. @item --no-site-file @cindex @code{--no-site-file} --- 112,118 ---- @item --no-line-editing @cindex @code{--no-line-editing} ! Disable command-line editing. @item --no-site-file @cindex @code{--no-site-file} *************** *** 942,948 **** context. It marked the error at the @code{y} because the first name by itself was accepted as valid input. ! Another class of error message occurs occurs at evaluation time. These errors are called @dfn{run-time errors}, or sometimes @dfn{evaluation errors} because they occur when your program is being @dfn{run}, or @dfn{evaluated}. For example, if after correcting the --- 942,948 ---- context. It marked the error at the @code{y} because the first name by itself was accepted as valid input. ! Another class of error message occurs at evaluation time. These errors are called @dfn{run-time errors}, or sometimes @dfn{evaluation errors} because they occur when your program is being @dfn{run}, or @dfn{evaluated}. For example, if after correcting the diff -cNr octave-2.0.11/doc/interpreter/expr.texi octave-2.0.12/doc/interpreter/expr.texi *** octave-2.0.11/doc/interpreter/expr.texi Tue Feb 17 12:31:33 1998 --- octave-2.0.12/doc/interpreter/expr.texi Fri Mar 20 11:46:12 1998 *************** *** 181,187 **** @noindent (for @code{a} previously undefined) produce column vectors. Otherwise, row ! vectors are preferred. The default value is 0. If a variable is already defined to be a vector (a matrix with a single row or column), the original orientation is respected, regardless of the --- 181,187 ---- @noindent (for @code{a} previously undefined) produce column vectors. Otherwise, row ! vectors are preferred. The default value is 1. If a variable is already defined to be a vector (a matrix with a single row or column), the original orientation is respected, regardless of the diff -cNr octave-2.0.11/doc/interpreter/var.texi octave-2.0.12/doc/interpreter/var.texi *** octave-2.0.11/doc/interpreter/var.texi Tue Feb 24 01:15:24 1998 --- octave-2.0.12/doc/interpreter/var.texi Fri Mar 20 11:46:17 1998 *************** *** 477,483 **** @item prefer_column_vectors @xref{Index Expressions}. ! Default value: 0. @item print_answer_id_name @xref{Terminal Output}. --- 477,483 ---- @item prefer_column_vectors @xref{Index Expressions}. ! Default value: 1. @item print_answer_id_name @xref{Terminal Output}. diff -cNr octave-2.0.11/examples/oregonator.cc octave-2.0.12/examples/oregonator.cc *** octave-2.0.11/examples/oregonator.cc Tue Feb 18 00:32:38 1997 --- octave-2.0.12/examples/oregonator.cc Mon Apr 6 00:36:43 1998 *************** *** 1,9 **** #include - #include - DEFUN_DLD (oregonator, args, , ! "The `oregonator'.") { ColumnVector dx (3); --- 1,14 ---- #include DEFUN_DLD (oregonator, args, , ! "The `oregonator'.\n\ ! \n\ ! Reference:\n\ ! \n\ ! Oscillations in chemical systems. IV. Limit cycle behavior in a\n\ ! model of a real chemical reaction. Richard J. Field and Richard\n\ ! M. Noyes, The Journal of Chemical Physics, Volume 60 Number 5,\n\ ! March 1974.") { ColumnVector dx (3); diff -cNr octave-2.0.11/examples/oregonator.m octave-2.0.12/examples/oregonator.m *** octave-2.0.11/examples/oregonator.m Tue Feb 18 00:33:02 1997 --- octave-2.0.12/examples/oregonator.m Mon Apr 6 00:36:03 1998 *************** *** 1,4 **** --- 1,11 ---- ## The `oregonator'. + ## + ## Reference: + ## + ## Oscillations in chemical systems. IV. Limit cycle behavior in a + ## model of a real chemical reaction. Richard J. Field and Richard + ## M. Noyes, The Journal of Chemical Physics, Volume 60 Number 5, + ## March 1974. function dx = oregonator (x, t) diff -cNr octave-2.0.11/install-octave.in octave-2.0.12/install-octave.in *** octave-2.0.11/install-octave.in Wed Dec 31 18:00:00 1969 --- octave-2.0.12/install-octave.in Tue Apr 14 15:54:58 1998 *************** *** 0 **** --- 1,322 ---- + #!/bin/sh + # + # install-octave -- install script for binary distributions. + # + # John W. Eaton + # jwe@bevo.che.wisc.edu + # University of Wisconsin-Madison + # Department of Chemical Engineering + + # get version + version=`cat VERSION 2> /dev/null` + + if test -z "$version" + then + cat < /dev/null` + + if test -z "$canonical_host_type" + then + cat </dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + echo_n= + echo_c=' + ' + else + echo_n=-n + echo_c= + fi + else + echo_n= + echo_c='\c' + fi + + EXE=@EXE@ + + # ==================== Where To Install Things ==================== + + # The default location for installation. Everything is placed in + # subdirectories of this directory. The default values for many of + # the variables below are expressed in terms of this one, so you may + # not need to change them. This defaults to /usr/local. + prefix=@prefix@ + + alt_dir=false + if test $# -eq 1 + then + alt_dir=true + prefix=$1 + else + if test $# -gt 1 + then + echo "usage: install-octave [prefix-directory]" + exit 1 + fi + fi + + # Like `prefix', but used for architecture-specific files. + exec_prefix="$prefix" + + # Where to install Octave and other binaries that people will want to + # run directly. + bindir="$exec_prefix/bin" + + # Where to install architecture-independent data files. ${fcnfiledir} + # and ${localfcnfiledir} are subdirectories of this. + datadir="$prefix/share" + + libdir="$exec_prefix/lib" + + # Where to install and expect libraries like libcruft.a and liboctave.a. + octlibdir="$libdir/octave-$version" + + # Where to install and expect executable programs to be run by Octave + # rather than directly by users. + libexecdir="$exec_prefix/libexec" + + includedir="$prefix/include" + + # Where to install Octave's include files. The default is + # ${prefix}/include/octave-$version + octincludedir=$includedir/octave-$version + + # Where to install Octave's man pages, and what extension they should + # have. The default is ${prefix}/man/man1 + mandir="$prefix/man/man1" + manext="1" + + # Where to install and expect the info files describing Octave.. + infodir="$prefix/info" + + # The fill path to the default info file. + infofile="$infodir/octave.info" + + # ==================== Octave-specific directories ==================== + + # These variables hold the values Octave will actually use. They are + # based on the values of the standard Make variables above. + + # Where to install the function file distributed with + # Octave. This includes the Octave version, so that the + # function files for different versions of Octave will install + # themselves in separate directories. + fcnfiledir="$datadir/octave/$version/m" + + # Directories Octave should search for function files specific + # to this site (i.e. customizations), before consulting + # ${fcnfiledir}. This should be a colon-separated list of + # directories. + localfcnfiledir="$datadir/octave/site/m" + localfcnfilepath="$localfcnfiledir//" + + # Where to put executables to be run by Octave rather than + # the user. This path usually includes the Octave version + # and configuration name, so that multiple configurations + # for multiple versions of Octave may be installed at once. + archlibdir="$libexecdir/octave/$version/exec/$canonical_host_type" + + # Where to put executables to be run by Octave rather than by the + # user that are specific to this site. + localarchlibdir="$libexecdir/octave/site/exec/$canonical_host_type" + + # Where to put object files that will by dynamically loaded. + # This path usually includes the Octave version and configuration + # name, so that multiple configurations for multiple versions of + # Octave may be installed at once. + octfiledir="$libexecdir/octave/$version/oct/$canonical_host_type" + + # Directories Octave should search for object files that will be + # dynamically loaded and that are specific to this site + # (i.e. customizations), before consulting ${octfiledir}. This should + # be a colon-separated list of directories. + localoctfiledir="$libexecdir/octave/site/oct/$canonical_host_type" + localoctfilepath="$localoctfiledir//" + + # Where Octave will search to find its function files. Before + # changing this, check to see if your purpose wouldn't + # better be served by changing localfcnfilepath. This + # should be a colon-separated list of directories. + fcnfilepath=".:$localoctfilepath:$localfcnfilepath:$octfiledir//:$fcnfiledir//" + + # Where Octave will search to find image files.es. + imagedir="$datadir/octave/$version/imagelib" + imagepath=".:$imagedir//" + + cat << EOF + Installing octave in the following subdirectories of + $prefix: + + bindir: `echo $bindir | sed "s,^$prefix/,,"` + datadir: `echo $datadir | sed "s,^$prefix/,,"` + libdir: `echo $libdir | sed "s,^$prefix/,,"` + octlibdir: `echo $octlibdir | sed "s,^$prefix/,,"` + includedir: `echo $includedir | sed "s,^$prefix/,,"` + octincludedir: `echo $octincludedir | sed "s,^$prefix/,,"` + mandir: `echo $mandir | sed "s,^$prefix/,,"` + infodir: `echo $infodir | sed "s,^$prefix/,,"` + fcnfiledir: `echo $fcnfiledir | sed "s,^$prefix/,,"` + localfcnfiledir: `echo $localfcnfiledir | sed "s,^$prefix/,,"` + archlibdir: `echo $archlibdir | sed "s,^$prefix/,,"` + localarchlibdir: `echo $localarchlibdir | sed "s,^$prefix/,,"` + octfiledir: `echo $octfiledir | sed "s,^$prefix/,,"` + localoctfiledir: `echo $localoctfiledir | sed "s,^$prefix/,,"` + imagedir: `echo $imagedir | sed "s,^$prefix/,,"` + + EOF + + echo $echo_n "Is this correct [y/N]? " $echo_c + + read ans + + case "$ans" in + y | Y | yes | YES) + ;; + *) + exit 1 + ;; + esac + + DIRS_TO_MAKE="$bindir $datadir $libdir $octlibdir $libexecdir \ + $includedir $octincludedir $mandir $infodir $fcnfiledir \ + $localfcnfiledir $archlibdir $localarchlibdir \ + $octfiledir $localoctfiledir $imagedir" + + ./mkinstalldirs $DIRS_TO_MAKE + + if test "$prefix" = /usr/local + then + echo "installing src/octave as $bindir/octave" + cp src/octave $bindir/octave + chmod 755 $bindir/octave + else + echo "installing octave-sh as $bindir/octave" + sed "s|@OCTAVE_HOME@|$prefix|; s|@LD_LIBRARY_PATH@|$octlibdir|" octave-sh \ + > $bindir/octave + chmod 755 $bindir/octave + + echo "installing src/octave as $bindir/octave.bin" + cp src/octave $bindir/octave.bin + chmod 755 $bindir/octave.bin + fi + + echo "installing octave-bug as $bindir/octave-bug" + cp octave-bug $bindir/octave-bug + chmod 755 $bindir/octave-bug + + if test -f LIBRARIES; then + echo "installing shared libraries in $octlibdir" + for f in `cat LIBRARIES` + do + file=`basename $f` + cp $f $octlibdir/$file + chmod 644 $octlibdir/$file + done + fi + + if $have_find; then + oct_files=`find . -name '*.oct' -print` + if test -n "$oct_files"; then + echo "installing .oct files in $octfiledir" + cd src + for f in $oct_files + do + file=`basename $f` + cp $f $octfiledir/$file + chmod 755 $octfiledir/$file + done + if test -f links-to-make; then + cat links-to-make | while read src dest + do + if test -n "$src" && test -n "$dest"; then + cd $octfiledir + ln $src $dest + fi + done + fi + cd $distdir + fi + fi + + echo "installing .m files in $fcnfiledir" + cd scripts + tar cf - . | ( cd $fcnfiledir ; tar xf - ) + if $have_find; then + find $fcnfiledir -type f -print | xargs chmod 0644 + find $fcnfiledir -name '*.img' -print | xargs rm -f + fi + cd $distdir + + echo "installing image files in $imagedir" + cd scripts/image + cp *.img $imagedir + chmod 644 $imagedir/*.img + cd $distdir + + echo "creating ls-R file in $datadir/octave" + ls -LR $datadir/octave > $datadir/octave/ls-R + chmod 644 $datadir/octave/ls-R + + echo "creating ls-R file in $libexecdir/octave" + ls -LR $libexecdir/octave > $libexecdir/octave/ls-R + chmod 644 $libexecdir/octave/ls-R + + echo "installing info files in $infodir" + for f in doc/interpreter/octave.info* + do + file=`basename $f` + cp $f $infodir/$file + chmod 644 $infodir/$file + done + + echo "installing man page in $mandir" + cp doc/interpreter/octave.1 $mandir/octave.$manext + chmod 644 $mandir/octave.$manext + + case "$canonical_host_type" in + *-*-cygwin32) + if $alt_dir; then + echo "*** You have specified an installation directory different" + echo "*** from the default. For Octave to run properly, you must" + echo "*** set the environment variable OCTAVE_HOME to" + echo "***" + echo "*** $prefix" + echo "***" + echo "*** before starting Octave." + fi + ;; + esac + + exit 0 diff -cNr octave-2.0.11/kpathsea/BUGS octave-2.0.12/kpathsea/BUGS *** octave-2.0.11/kpathsea/BUGS Tue Jan 21 14:09:29 1997 --- octave-2.0.12/kpathsea/BUGS Thu Mar 5 14:19:00 1998 *************** *** 10,15 **** --- 10,16 ---- Slow path searching Unable to generate fonts TeX or Metafont failing + Empty Makefiles `XtStrings' `dlopen' `ShellWidgetClass' *************** *** 151,159 **** program-specific debugging options as well. You can also set the environment variable `KPATHSEA_DEBUG'; in this ! case, you should use the numbers below. Also, if you run the program ! under a debugger and set the variable `kpathsea_debug', Also use the ! numbers below In any case, by far the simplest value to use is `-1', which will turn on all debugging output. This is usually better than guessing --- 152,160 ---- program-specific debugging options as well. You can also set the environment variable `KPATHSEA_DEBUG'; in this ! case, you should use the numbers below. If you run the program under a ! debugger and set the variable `kpathsea_debug', also use the numbers ! below. In any case, by far the simplest value to use is `-1', which will turn on all debugging output. This is usually better than guessing *************** *** 215,220 **** --- 216,243 ---- most lookups). This can help you correlate what Kpathsea is doing with what is in your input file. + `KPSE_DEBUG_VARS (64)' + Report the value of each variable Kpathsea looks up. This is + useful for verifying that variables do indeed obtain their correct + values. + + `GSFTOPK_DEBUG (128)' + Activates debugging printout specific to `gsftopk' program. + + `MAKETEX_DEBUG (512)' + If you use the optional `mktex' programs instead of the + traditional shell scripts, this will report the name of the site + file (`mktex.cnf' by default) which is read, directories created by + `mktexdir', the full path of the `ls-R' database built by + `mktexlsr', font map searches, `MT_FEATURES' in effect, parameters + from `mktexnam', filenames added by `mktexupd', and some + subsidiary commands run by the programs. + + `MAKETEX_FINE_DEBUG (1024)' + When the optional `mktex' programs are used, this will print + additional debugging info from functions internal to these + programs. + Debugging output from Kpathsea is always written to standard error, and begins with the string `kdebug:'. (Except for hash table buckets, which just start with the number, but you can only get that output *************** *** 297,310 **** directory to be searched for subdirectories if you didn't want it to be. ! * If the fonts (or whatever) don't already exist, `MakeTeXPK' (or ! `MakeTeXMF' or `MakeTeXTFM') will try to create them. If these ! rather complicated shell scripts fail, you'll eventually get an ! error message saying something like `Can't find font FONTNAME'. ! The best solution is to fix (or at least report) the bug in ! `MakeTeXPK'; the workaround is to generate the necessary fonts by ! hand with Metafont, or to grab them from a CTAN site (*note ! unixtex.ftp::.). * There is a bug in the library. *Note Reporting bugs::. --- 320,332 ---- directory to be searched for subdirectories if you didn't want it to be. ! * If the fonts (or whatever) don't already exist, `mktexpk' (or ! `mktexmf' or `mktextfm') will try to create them. If these rather ! complicated shell scripts fail, you'll eventually get an error ! message saying something like `Can't find font FONTNAME'. The best ! solution is to fix (or at least report) the bug in `mktexpk'; the ! workaround is to generate the necessary fonts by hand with ! Metafont, or to grab them from a CTAN site (*note unixtex.ftp::.). * There is a bug in the library. *Note Reporting bugs::. *************** *** 338,353 **** Unable to generate fonts ........................ ! This can happen if either `MakeTeXPK' hasn't been installed properly, or if the local installation of Metafont isn't correct. ! If `mf' is a command not found by `MakeTeXPK', then you need to ! install Metafont (*note unixtex.ftp::.). If Metafont runs, but generates fonts at the wrong resolution, you need to be sure the `M' and `D' lines in your Dvips configuration file match (*note Config files: (dvips)Config files.). For example, if ! `MakeTeXPK' is generating 300dpi fonts, but you need 600dpi fonts, you should have: M ljfour D 600 --- 360,375 ---- Unable to generate fonts ........................ ! This can happen if either `mktexpk' hasn't been installed properly, or if the local installation of Metafont isn't correct. ! If `mf' is a command not found by `mktexpk', then you need to install ! Metafont (*note unixtex.ftp::.). If Metafont runs, but generates fonts at the wrong resolution, you need to be sure the `M' and `D' lines in your Dvips configuration file match (*note Config files: (dvips)Config files.). For example, if ! `mktexpk' is generating 300dpi fonts, but you need 600dpi fonts, you should have: M ljfour D 600 *************** *** 386,393 **** Also, if you have trouble with a system C compiler, I advise trying the GNU C compiler. And vice versa, unfortunately; but in that case I ! also recommend reporting a bug to the GCC mailing list; *note Bugs: ! (gcc)Bugs.. To report compiler bugs effectively requires perseverance and perspicacity: you must find the miscompiled line, and that usually --- 408,415 ---- Also, if you have trouble with a system C compiler, I advise trying the GNU C compiler. And vice versa, unfortunately; but in that case I ! also recommend reporting a bug to the GCC mailing list; see *Note Bugs: ! (gcc)Bugs. To report compiler bugs effectively requires perseverance and perspicacity: you must find the miscompiled line, and that usually *************** *** 395,400 **** --- 417,459 ---- through TeX's (or whatever program's) data structures. Things are not helped by all-too-common bugs in the debugger itself. Good luck. + One known cause of trouble is the way arrays are handled. Some of the + Pascal arrays have a lower index other than 0, and the C code will take + the pointer to the allocated memory, subtract the lower index, and use + the resulting pointer for the array. While this trick often works, ANSI + C doesn't guarantee that it will. It it known to fail on HP-UX 10 + mchines when the native compiler is used, unless the `+u' compiler + switch was specified. Using GCC will work on this platform as well. + + Empty Makefiles + ............... + + On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), `configure' + may fail to properly create the Makefiles. Instead, you get an error + which looks something like this: + + prompt$ ./configure + ... + creating Makefile + sed: 1: "\\@^ac_include make/pat ...": \ can not be used as a string delimiter + + So far as I know, the bug here is in `/bin/sh' on these systems. I + don't have access to a machine running any of them, so if someone can + find a workaround that avoids the quoting bug, I'd be most grateful. + (Search for `ac_include' in the `configure' script to get to the + problematic code.) + + It should work to run `bash configure', instead of using `/bin/sh'. + You can get Bash from `ftp://prep.ai.mit.edu/pub/gnu' and mirrors. + + Another possible cause (reported for NeXT) is a bug in the `sed' + command. In that case the error may look like this: + + Unrecognized command: \@^ac_include make/paths.make@r make/paths.make + + In this case, installing GNU `sed' should solve the problem. You can + get GNU `sed' from the same places as Bash. + `XtStrings' ........... *************** *** 453,460 **** * Statically link the `Xmu' library into the executable. ! * Avoid using `Xmu' at all. If you are compiling Metafont, *note ! Online Metafont graphics: (web2c)Online Metafont graphics.. If you are compiling Xdvi, see the `-DNOTOOL' option in `xdvik/INSTALL'. * Ignore the errors. The binary runs fine regardless. --- 512,519 ---- * Statically link the `Xmu' library into the executable. ! * Avoid using `Xmu' at all. If you are compiling Metafont, see *Note ! Online Metafont graphics: (web2c)Online Metafont graphics. If you are compiling Xdvi, see the `-DNOTOOL' option in `xdvik/INSTALL'. * Ignore the errors. The binary runs fine regardless. diff -cNr octave-2.0.11/kpathsea/ChangeLog octave-2.0.12/kpathsea/ChangeLog *** octave-2.0.11/kpathsea/ChangeLog Sun Jan 25 02:29:40 1998 --- octave-2.0.12/kpathsea/ChangeLog Thu Apr 23 23:41:57 1998 *************** *** 1,31 **** ! Sun Jan 25 02:28:04 1998 John W. Eaton ! * Makefile.in (install, uninstall): For use with Octave, do nothing. ! Thu Jun 5 12:38:35 1997 John W. Eaton ! * acklibtool.m4: For use with Octave, ignore --enable-static and ! --enable-shared and only build static libraries. ! Wed Jun 4 12:14:38 1997 John W. Eaton ! * progname.c (selfdir): Handle dir/exename case here. ! Patch from Karl Berry . ! Tue Jun 3 23:48:22 1997 John W. Eaton ! * common.ac: (program_invocation_name): AC_TRY_LINK only requires ! function body. Add declaration for program_invocation_name so gcc ! won't complain about undeclared variable. ! Thu May 22 22:04:26 1997 John W. Eaton ! * Makefile.in: Look in make instead of ../make for files to include. ! Do ac_includes by hand, since ac_include requires an extension to ! autoconf that doesn't seem to be distributed with kpathsea (yet). ! ($(kpathsea)): Add a rule to `install' libkpathsea.a locally so ! Octave will have something to link to. ! (hash.lo): Don't optimize. Fri Feb 7 11:53:09 1997 Karl Berry --- 1,1193 ---- ! Thu Apr 23 15:08:40 1998 John W. Eaton ! * withenable.ac (texmfmain): Don't print warning if main temf ! directory tree can't be found. ! * version.c (kpse_bug_address): Change address as requested. ! * Makefile.in: Do acincludes by hand. ! * common.ac: Require autoconf 2.12, not 2.12.1. ! Include acklibtool.m4, not ../akclibtool.m4. ! Include withenable.ac, not ../kpathsea/withenable.ac. ! * acklibtool.m4, config.guess, config.sub, install-sh, klibtool, ! klibtool.config: Files for `standalone' distribution'. ! * make: Directory for `standalone' distribution'. ! * withenable.ac: Don't use AC_MAINTAINER_MODE. ! * pathsearch.c: Avoid memory leak. ! Mon Mar 16 19:25:15 1998 Olaf Weber ! * configure.in (KPSEVERSION): version 3.2. ! * mktex.opt: Set MT_MKTEXNAM_OPT, MT_MKTEXDIR_OPT here. ! * mktexnam: Move setting of MT_MKTEXNAM_OPT to mktex.opt. ! Sun Mar 15 19:55:30 1998 Olaf Weber ! ! * c-proto.h: Add P7H and P7C macros. ! ! Sat Mar 14 00:10:20 1998 Olaf Weber ! ! * win32lib.h: Patch from Fabrice. ! ! * c-dir.h [WIN32]: Patch from Fabrice. ! ! Fri Mar 13 23:23:33 1998 Olaf Weber ! ! * texmf.in: Added XDVIINPUTS and TEX4HTINPUTS. ! ! Thu Mar 12 08:04:50 1998 Olaf Weber ! ! * win32lib.c: New version from Fabrice Popineau. ! ! Wed Mar 11 19:55:10 1998 Olaf Weber ! ! * install.texi: Correction for description of dosnames behaviour ! on MS-DOS. From Eli Zaretskii. ! ! Mon Mar 9 07:22:23 1998 Olaf Weber ! ! * mktexlsr: exit 0 if we succeeded. ! ! * withenable.ac: Remove double slashes from texmfmain variable. ! Strictly speaking, it is a user fault when this occurs, but... ! From Thomas Esser. ! ! Sun Mar 8 18:23:33 1998 Olaf Weber ! ! * tex-file.c: omkocp, omkofm -> mkocp, mkofm. ! ! * texmf.in: OMKOFM, OMKOCP -> MKOFM, MKOCP. ! ! * withenable.ac: omkofm, omkocp -> mkofm, mkocp. ! ! Thu Mar 5 15:32:48 1998 Olaf Weber ! ! * texmf.in: Add OMKOCP and OMKOFM analogous to MKTEXPK. ! ! * c-fopen.h [DOS]: Don't open files read-write if read suffices. ! ! Wed Mar 4 23:55:35 1998 Olaf Weber ! ! * withenable.ac: Add options for enabling/disabling ! omkocp/omkofm. From John Plaice. ! ! * tex-file.c (init_format): Support omkocp and omkofm instead of ! MakeOmegaOCP and MakeOmegaOFM programs. From John Plaice. ! (kpse_maketex_option): Some changes to handle ofm/ocp as well. ! ! Tue Mar 3 09:02:09 1998 Olaf Weber ! ! * tex-make.c (kpse_make_tex): Make same exception for AMIGA as for ! WIN32 and MSDOS. From Andreas Scherer. ! ! * PROJECTS: Update mail address. ! ! * mktex.opt: Print message if VARTEXMF is not defined, then ! default to '$KPSE_DOT'. ! ! * mktexnam: Remove use of "shell !" from tests involving varfonts ! feature. Simplify the code a bit. ! ! Fri Feb 27 19:55:11 1998 Olaf Weber ! ! * withenable.ac: Replace use of -a in test with && and second ! test. From Thomas Esser . ! ! Tue Feb 24 13:16:56 1998 Olaf Weber ! ! * Makefile.in: Corrections for building/installing outside source ! dir. From Vladimir Volovich . ! ! * mktexnam.opt: Correction MT_PKNAME -> MT_PKBASE to get dosnames ! feature to work. From Eli Zaretskii. ! ! Mon Feb 23 10:17:22 1998 Olaf Weber ! ! * mktex.opt, mktexlsr: Use test ... || test ... instead of test ! ... -o ... . ! ! * mktexnam.opt: Remove use of MT_PKPART, MT_MFPART, and MT_TFMPART ! variables, since they're no longer defined. ! ! * expand.c (kpse_expand_kpse_dot [MSDOS]): A very ugly hack to ! deal with a very broken feature on some MSDOS systems. After Eli ! Zaretskii. ! ! Fri Feb 20 17:18:19 1998 Olaf Weber ! ! * Makefile.in (texmf.sed): Remove VARTEXMF. ! ! * install.texi: Update for changes to varfonts. ! ! * kpathsea.texi: Remove references to format numbers. ! ! * kpsewhich.c (read_command_line): Remove printing of and support ! for format numbers. ! ! * mktex.opt: Remove VARTEXMF and related stuff, set dosnames for ! DOS. ! ! * mktexnam: Remove use of VARTEXMF, introduce SYSTEXMF, change ! semantics of varfonts. ! ! * mktexnam.opt: Remove reference to VARTEXMF, move setting of ! dosnames for DOS to mktex.opt. ! ! * mktexpk: Boilerplate tests. ! ! * mktexupd: Boilerplate tests. ! ! * progname.c: Move kpse_reset_program_name to tex-file.c. This ! move means progname.o doesn't use a common object from tex-file.o ! anymore. The NeXT linker would omit tex-file.o, then complain ! about an undefined symbol. Thanks to Gregor Hoffleit ! and Melissa O'Neill ! for their help solving this. ! ! * progname.h: Move kpse_reset_progname to tex-file.h. ! ! * tex-file.c: Move kpse_reset_program_name here from progname.c. ! ! * tex-file.h: Move kpse_reset_program_name here from progname.h. ! ! * texmf.in: Remove VARTEXMF, add SYSTEXMF. ! ! * withenable.ac: Boilerplating, a correction of the default case ! of the --enable-multiplatform test. ! ! Mon Feb 16 09:46:47 1998 Olaf Weber ! ! * mktexpk: Dropped a $ in the wrong place, which made chmod look ! for a non-existent file. ! ! * Makefile.in (texmf.sed): Include the substitution for @web2c@ in ! TEXMFCNF. ! ! * Makefile.in (texmf.sed): Remove traling / from VARTEXMF ! substitution. ! (stamp-paths): Replace @ with % as sed delimiter. The @ causes ! problems because it used in afs filenames. Spotted by Matthias ! Clasen. ! ! * bugs.texi: Since the NeXT(step) problem is likely to be solved ! now, make description of bug less definite. ! ! * common.ac: Remove check for readlink. ! ! * kpathsea.texi: Document changes to search algorithm. ! ! * mktexlsr: Use % not @ as sed delimiter. ! ! * mktexmf: Correct permissions problem. ! ! * mktexnam: Use % not @ as sed delimiter. ! ! * mktexpk: Use % not @ as sed delimiter. Correct permissions ! problem. Set permissions before the file is moved into place. ! ! * mktextfm: Use % not @ as sed delimiter. Correct permissions ! problem. Set permissions before the file is moved into place. ! ! * mktexupd: Use % not @ as delimiter for sed. ! ! * readlink.c (main): Use S_ISLNK instead of HAVE_READLINK to test ! whether readlink is a known function. ! ! * tex-file.c (kpse_init_format): Make changes corresponding to the ! movement of kpse_tfm_format. ! (kpse_find_file): Reorganize searches; fold code of search #3 into ! #1 and #2; fold #5 into #2. We now have two searches, plus an ! attempt to create missing files. ! ! * tex-file.h: Move kpse_tfm_format before kpse_ofm_format. Might ! as well put it near the front then, because it is an often-used ! format. ! ! * texmf.in: VARTEXFONTS uses @vartexfonts@ so it can be filled in ! from the Makefile. OFMFONTS changed to explicitly use TFMFONTS. ! TEXMCNF uses @web2c@ rather than @web2cdir@. ! ! * withenable.ac: Do not force default for --enable-multiplatform, ! so that we can inherit one from a script that calls us. ! ! Tue Feb 10 17:59:26 1998 Olaf Weber ! ! * withenable.ac: Don't abort configure run if the main texmf tree ! isn't found. ! ! * acconfig.h: Add EPSFWIN to the undefs. ! ! * install.texi: Update section on the handling of options by ! mktexpk. ! ! * mktex.opt: Comment on the duplication of the ls_R_magic string. ! ! * mktexlsr: Copy code from mktex.opt to mktexlsr, so the latter ! can run without the need to find the former. ! ! * mktextfm, mktexpk: Replace positional options with normal option ! handling. ! ! * mktextfm.man, mktexpk.man: Update documentation for the new ! option handling. ! ! * tex-file.c: Update the MKTEXPK_ARGS string for the new ! option-handling of mktexpk. ! ! * tex-make.c (kpse_make_tex): We pass the raw / to mktexpk in the ! --mfmode switch when appropriate; remove unset_mode variable. ! Update comments to reflect new situation. ! ! * kpathsea.texi: Note that empty path components are now ignored ! in stead of expanded to cwd. ! ! * line.c: Add prototype and clean up headers. ! ! * mktex.opt, mktexlsr, mktexmf, mktexnam, mktexpk, mktextfm, ! mktexdir, mktexupd: Make "caching" of some variables and file ! names in the environment possible. Provide defaults in case the ! 'web2c files' format doesn't work for finding files. Suggested by ! Thomas Esser. ! ! * withenable.ac: Give a better message when the main texmf tree ! isn't found. ! ! Sat Feb 7 01:00:49 1998 Olaf Weber ! ! * elt-dirs.c (kpse_element_dirs): Return NULL, not the cwd, if ! we're given an empty string. ! ! * mktex.opt: Determine VARTEXFONTS here. ! ! * mktexnam: Move determination of VARTEXFONTS to mktex.opt. ! ! Fri Feb 6 17:59:59 1998 Olaf Weber ! ! * config.h: Update definition of KPATHSEA to 32. ! ! * expand.c (kpse_path_expand): Do not recursively expand a leading ! //, as in pathsearch.c. ! ! * kpsewhich.man: Update for --epxand-braces option. ! ! * texmf.in: Put texmf.local before texmf in the TEXMFCNF path. ! ! * withenable.ac: Make code for finding texmfmain more robust. ! ! Wed Feb 4 20:39:10 1998 Olaf Weber ! ! * readable.c: Correct typo: '#elsif' -> '#elif'. ! ! Tue Feb 3 17:08:34 1998 Olaf Weber ! ! * kpathsea.texi: Update for changes to kpsewhich. ! ! Mon Feb 2 21:12:06 1998 Olaf Weber ! ! * xputenv.c: Undid last patch from Fabrice -- it was a "fix" that ! suppresses warnings on his compiler, and engenders them on mine. ! ! Sun Feb 1 16:08:49 1998 Olaf Weber ! ! * lib.h [!DOSISH]: Correct definition of FILESTRNCASEEQ. ! ! * mktexmf: Correct call to mktexnam. ! ! * kpsewhich.c: New option --expand-braces. ! (expand_path): Removed. ! (main): Add code for --expand-braces, account for new definition of ! kpse_path_expand. ! ! * expand.h: Rename kpse_path_expand to kpse_brace_expand. Add new ! kpse_path_expand. ! ! * expand.c (kpse_path_expand): New implementation, based on ! path_expand from kpsesewhich.c. ! (kpse_brace_expand): The old kpse_path_expand. Change calls to ! kpse_brace_expand to kpse_brace_expand_element. ! (kpse_brace_expand_element): The old kpse_brace_expand, but with ! static linkage. Changes calls to kpse_brace_expand to ! kpse_brace_expand_element. ! ! * tex-file.c (init_path): Replace kpse_path_expand with ! kpse_brace_expand. ! ! * texmf.in: Correct input variables for mltex variants. Add pdftex ! to TEXPSHEADERS path. ! ! Thu Jan 29 16:15:44 1998 Olaf Weber ! ! * Makefile.in: Update for readlink. ! ! * common.ac: Test for readlink function. ! ! * access.c, kpsestat.c: No need to explicitly include c-auto.h. ! ! * mktex.opt: Adapt to new way of finding the script. Do the ! actual lookup for mktexnam, mktexdir, and mktexupd here. Make a ! bit more robust. ! ! * mktexlsr: Make file handling more robust, use kpsewhich to find ! supporting scripts like mktex.opt and mktexnam, use readlink to ! trace symlinks. ! ! * mktexupd, mktexpk, mktextfm, mktexmf, mktexdir, mktexnam: Make ! file handling more robust, use kpsewhich to find supporting ! scripts like mktex.opt and mktexnam, simplify somewhat. ! ! * mktexnam.opt: Make handling of names more robust. ! ! * readlink.c, readlink.man: New files. ! ! * withenable.ac: Add --enable-multiplatform option. Attempt to ! find the texmf directory, and complain if we fail to do so. ! ! * Makefile.in (texmf.sed): Remove sed for dbtex, dbfonts, change ! VARTEXFONTS to comply with texmf.in, and update comment. ! ! * c-vararg.h: Comment update from Peter Breitenlohner. ! ! Wed Jan 28 20:36:56 1998 Olaf Weber ! ! * Makefile.in: Keep c-auto.h out of kpathsea.h. ! ! * c-stat.h [WIN32]: Modification from Fabrice. ! ! * dir.c [WIN32]: Extensive modifications from Fabrice. ! ! * kpsestat.c, kpsewhich.c: Replace exit with return from main. ! From Fabrice. ! ! * readable.c [WIN32]: Separate definition of READABLE. From ! Fabrice Popineau. ! ! * texmf.in: Remove almost all @var@ stuff, and just assume TDS for ! all. ! ! * win32lib.h: Modifications from Fabrice. ! ! * xputenv.c (xputenv): Minor fix from Fabrice. ! ! * win32lib.c: New file from Fabrice Popineau. Replacement ! functions for Win32. ! ! Sun Jan 25 20:02:21 1998 Olaf Weber ! ! * texmf.in: Increase buf_size to 50000 (from 10000). ! ! * tex-file.c (kpse_find_file): In the first search, postpone ! pounding the disk until all possible suffixes have been tried. ! ! * line.c (read_line): Accept any of NL, CR, and CRLF as ! end-of-line. ! ! Fri Jan 23 14:45:19 1998 Olaf Weber ! ! * access.c: Use return instead of exit to get rid of some compiler ! warnings. From Fabrice. ! ! * c-fopen.h: Changes for CYGWIN32. ! ! * c-proto.h: Patch from Fabrice Popineau for Win32. ! ! * kpathsea.texi: Document kpse_web2c_format, ! kpse_program_text_format, kpse_program_binary_format. ! ! * mktex.opt, mktexdir, mktexlsr, mktexmf, mktexnam, mktexpk, ! mktextfm, mktexupd: Use -expand-path instead of -expand-var where ! possible. This makes the handling of !! more robust. ! ! * tex-file.c (kpse_find_file): Handle other cases than precisely ! one extension in search number 3. ! (kpse_init_format): Add kpse_web2c_format, kpse_program_text_format, ! kpse_program_binary_format. ! ! * tex-file.h: Add kpse_web2c_format, kpse_program_text_format, ! kpse_program_binary_format. ! ! * tex-hush.c: Test the "path element" h, not the whole hush. ! ! * texmf.in: Add a definition for WEB2C. Add some Omega-related ! parameters, from John Plaice. ! ! Tue Jan 13 19:46:58 1998 Olaf Weber ! ! * mktexpk, mktextfm: Only move $NAME.log file if it exists and is ! not empty. ! ! Mon Jan 12 06:22:59 1998 Olaf Weber ! ! * kpathsea.texi: Fixes from Gerd Neugebauer . ! ! Sun Jan 11 18:26:56 1998 Olaf Weber ! ! * mktexupd: Two changes: absence of the current tree in the ls-R ! path is not an error; create an ls-R file if the current tree is ! in the ls-R path and the file doesn't yet exist. ! ! Sat Jan 10 09:55:47 1998 Olaf Weber ! ! * tex-hush.c: A null pointer could be fed to strcmp. ! ! Fri Jan 9 21:08:45 1998 Olaf Weber ! ! * mktexnam: Add $COMSPEC test, and use $SEP for path separator when ! splitting paths. From Eli Zaretskii. ! ! * mktexlsr: Correct usage for determining absolute paths. From ! Eli Zaretskii. ! ! * common.ac: Correct code in HAVE_PROTOTYPES test. ! ! Sun Jan 4 15:59:08 1998 Olaf Weber ! ! * Manual pages for access, kpsestat, kpsewhich, mktexlsr, mktexpk, ! mktexmf, mktextfm. ! ! * Makefile.in: Changes for manual pages. ! ! Thu Jan 1 10:11:49 1998 Olaf Weber ! ! * mktex.opt: Remove definition of $SEP; it is now needed before ! this script is sourced. ! ! * mktexlsr: If necessary, add location of script to PATH. ! ! * mktexupd: Put $SEP definition in script itself. ! ! * xputenv.c (xputenv): Move some declarations into the "not ! SMART_PUTENV" block to prevent "unused" warnings. ! ! Tue Dec 30 17:55:45 1997 Olaf Weber ! ! * install.texi, bugs.texi: Add comment about the need to use ! special compiler options in HP-UX. ! ! * mktexpk: Use nonstopmode for mf, in case of failure move log ! file to working directory. ! ! * mktextfm: Use nonstopmode for mf, in case of failure move log ! files to working directory. ! ! * mktexlsr: Add comment about use in cron scripts, use SEP ! variable for path separator. ! ! * mktexupd: Check for both new and old magic string in ls-R files, ! use SEP variable for path separator. ! ! * mktex.opt: Pick the correct path separator for MS-DOS and UNIX. ! Add a more appropriate magic string for ls-R files, but keep the ! old one around for compatibility. ! ! * Makefile.in (install-exec): Add check for original mktexlsr. ! ! Thu Dec 18 20:33:56 1997 Olaf Weber ! ! * tex-file.c (init_path): Rewrite test whether we're initializing ! the kpse_cnf_format paths. ! ! * tex-file.c (kpse_init_format): Initialise the binmode fields. ! (kpse_open_file): Use binmode field. ! ! * tex-file.h: Add binmode field to kpse_format_info_type. ! ! * kpsewhich.c: Correct option string. ! ! * tex-file.c (kpse_open_file): Assume kpse_truetype_format and ! kpse_type42_format are for binary files. ! ! Tue Dec 16 19:13:14 1997 Olaf Weber ! ! * texmf.in: Don't make PKFONTS.xdvi a special case. Let all ! programs look in modeless. If a program shouldn't look there, ! give it a special PKFONTS line. ! ! Mon Dec 15 18:58:01 1997 Olaf Weber ! ! * texmf.in: Add TTFONTS and T42FONTS. ! ! * Makefile.in (stamp-paths): The regular expression for variables ! had to be amended for T42FONTS. ! ! * tex-file.c (kpse_init_format): Add kpse_truetype_format and ! kpse_type42_format. ! ! * tex-file.h: Add kpse_truetype_format and kpse_type42_format to ! kpse_file_format_type. ! ! Sat Dec 13 11:24:23 1997 Olaf Weber ! ! * xputenv.c (xputenv [WIN32]): This system deletes an environment ! variable if it is set to "", with consequences for the code that ! reclaims the space. From Fabrice Popineau. ! ! Fri Dec 12 10:44:02 1997 Olaf Weber ! ! * acconfig.h: Add HAVE_PROTOTYPES. ! ! * c-proto.h, c-vararg.h: Test for HAVE_PROTOTYPES. ! ! * common.ac: Add explicit test for prototypes, instead of relying ! on __STDC__. ! ! * hash.c, hash.h (hash_remove): New function. ! ! * install.texi: Rewritten passage on font destinations, corrected ! reference to Triptrap node in web2c. ! ! * mktexpk, mktextfm: When mv fails, try cp. Matters on MS-DOS. ! ! * progname.c (selfdir): Test whether we are a directory, rather ! than whether we are not a link or file. ! ! * texmf.in: Change openout_any to paranoid. ! ! Tue Dec 9 19:08:04 1997 Olaf Weber ! ! * mktexpk: Restored test-and-move, which turns out not to be a ! no-op for fonts generated with gsftopk. ! ! Thu Dec 4 12:53:52 1997 Olaf Weber ! ! * texmf.in: Add TEXINPUTS.mltex and TEXINPUTS.mllatex. ! ! Tue Dec 2 12:58:04 1997 Olaf Weber ! ! * Makefile.in (distclean): Add stamp-paths. From Sebastian Rahtz ! . ! ! * progname.c (kpse_set_program_name [!HAVE_PROGRAM_INVOCATION_NAME ! && !WIN32 && !__DJGPP__]): Remember to set ! program_invocation_name. ! ! * getopt.c: A few changes for WIN32. From Fabrice Popineau. ! ! Mon Dec 1 19:08:07 1997 Olaf Weber ! ! * kpathsea.texi: Updated for absence of alternate TeX suffixes. ! ! * kpsewhich.c: Don't complain about unkown suffixes: it's all ! kpse_tex_format to us. ! ! * tex-file.c: Remove the interminable list of alternate TeX ! suffixes. ! ! * Makefile.in ($(library).h): Take win32lib.h into account: it ! should not be included by this file, as config.h will do so if ! needed. ! ! * progname.c (kpse_set_program_name [WIN32, __DJGPP__]): Changes ! from Fabrice Popineau. ! ! * win32lib.h: New file. From Fabrice Popineau. ! ! * config.h: Include instead of ! "../win32/win32-compat.h". From Fabrice Popineau. ! ! * access.c: Include . From Fabrice Popineau. ! ! * absolute.c (kpse_absolute_p [WIN32]): Filenames starting with \\ ! are absolute on this platform. From Fabrice Popineau. ! ! * tex-glyph.c (try_format): Oops, kpse_format_info[format].suffix ! is now a list of strings. ! ! Sun Nov 30 13:23:54 1997 Olaf Weber ! ! * texmf.in, mktex.opt, mktexdir, mktexdir.opt, mktexlsr, mktexmf, ! mktexnam, mktexnam.opt, mktexpk, mktextfm, mktexupd: Add a ! MKTEXSCRIPT variable, which is the directory where supporting ! scripts are found. Defaults to $TEXMFMAIN/web2c if not defined. ! ! * Makefile.in, bugs.texi, db.h, install.texi, kpathsea.texi, ! kpsewhich.c, proginit.c, tex-file.c, tex-file.h, tex-glyph.c, ! tex-make.c, tex-make.h, texmf.in, withenable.ac, mktex.opt, ! mktexdir, mktexdir.opt, mktexlsr, mktexmf, mktexnam, mktexnam.opt, ! mktexpk, mktextfm, mktexupd: Changes for the great renaming... ! ! Sat Nov 29 13:10:42 1997 Olaf Weber ! ! * The great renaming of the MakeTeX* scripts. ! MakeTeXPK -> mktexpk ! MakeTeXTFM -> mktextfm ! MakeTeXMF -> mktexmf ! MakeTeXls-R -> mktexlsr ! ! MakeTeX.site -> mktex.cnf ! MakeTeXcommon -> mktex.opt ! MakeTeXmkdir -> mktexdir ! MakeTeXmkdir.opt -> mktexdir.opt ! MakeTeXnames -> mktexnam ! MakeTeXnames.opt -> mktexnam.opt ! MakeTeXupdate -> mktexupd ! ! * Makefile.in (install-exec): Adapted for removal MakeTeX.cnf. ! ! * MakeTeX.cnf: Removed. ! ! * MakeTeXcommon: Fold MakeTeX.cnf into MakeTeXcommon. ! ! * tex-file.c (kpse_init_format): Add kpse_fmt_format add ".efmt" ! and ".efm" to additional suffixes. ! ! * db.c [DB_HASH_SIZE]: From 7603 increased to 15991. ! ! * tex-file.c: Yet more suffixes for kpse_tex_format. ! ! Tue Nov 25 18:19:17 1997 Olaf Weber ! ! * progname.c (kpse_set_program_name): Ensure that ! kpse_program_name doesn't get an .exe suffix. The ! program_invocation*name variables retain it. ! ! Mon Nov 24 22:03:12 1997 Olaf Weber ! ! * MakeTeXls-R: When creating the ls-R file from scratch, derive ! its permissions from the $db_dir, not from the current dir. ! ! Sun Nov 23 13:17:16 1997 Olaf Weber ! ! * texmf.in: Update to use : instead of , in braces. ! ! * kpathsea.texi: Document use of path separator in brace ! expansion, note that the comma is deprecated. ! ! * path-elt.c (element): Dont split within braces. ! ! * expand.c (expand_amble): Break text in pieces at ENV_SEP as well ! as commas. ! ! Sat Nov 22 19:35:30 1997 Olaf Weber ! ! * tex-file.c: Correction of description "PostScript header/font" ! to "PostScript header". ! ! * db.c (kpse_db_insert): Add cast for const correctness. ! ! * kpathsea.texi: Document kpse_set_program_name; updates. ! ! * kpsewhich.c: Many changes to support multiple standard suffixes. ! ! * progname.c (kpse_set_program_name): Add a few casts for const ! correctness. ! ! * tex-file.c: Many changes to support lists of standard suffixes. ! ! * tex-file.h: kpse_format_info_type: change type of suffix from ! const_string to const_string*. ! ! Fri Nov 21 15:17:35 1997 Olaf Weber ! ! * c-proto.h: Restored AA macro, needed by revised web2c. ! ! Thu Nov 20 14:23:33 1997 Olaf Weber ! ! * MakeTeXPK: Removed a test-and-move that is always a no-op. ! ! * MakeTeXnames: A shell on FreeBSD didn't like the ${foo:=`bar`} ! construct. ! ! Wed Nov 19 17:24:08 1997 Olaf Weber ! ! * MakeTeXls-R, MakeTeXMF, MakeTeXPK: Make temporary names fit into ! the 8.3 pattern. After Eli Zaretskii. ! ! * MakeTeXTFM: Make temporary names fit into the 8.3 pattern. ! Allow a second optional argument. Update usage message. After ! Eli Zaretskii. ! ! * MakeTeXcommon: Make temporary names fit into the 8.3 pattern. ! Do a 'cd /' before we cd to $KPSE_DOT, for MS-DOS' sake. After ! Eli Zaretskii. ! ! * MakeTeXnames: If $DEST starts with "letter-colon-slash", it ! still indicates an absolute path. After Eli Zaretskii. ! ! * MakeTeXnames.opt: Enable dosnames if we find COMSPEC set in the ! environment. This is apparently the canonical test for this kind ! of thing. After Eli Zaretskii. ! ! * Makefile.in: Numerous small changes to make building on MS-DOS ! easier. In particular to the rule for texmf.sed. ! ! * install.texi: Add table headers. After Eli Zaretskii. ! ! * tex-file.c (kpse_open_file): Open kpse_tex_ps_header_format and ! kpse_pict_format files in binary mode. After Eli Zaretskii. ! ! Tue Nov 18 11:50:35 1997 Olaf Weber ! ! * install.texi, README, Makefile.in: Changed the name of CONFIGURE ! to README.CONFIGURE. ! ! * Makefile.in (mostlyclean): delete klibtool.version. ! ! Sat Nov 15 21:13:46 1997 Olaf Weber ! ! * MakeTeXPK: Use quotes to ensure that test "$mf_bdpi" != $BDPI ! has a first argument. This occurs only in pathological ! circumstances, but is nevertheless annoying. ! ! * texmf.in: Add TEXINPUTS.foo for omega and lambda. ! ! Fri Nov 14 16:35:46 1997 Olaf Weber ! ! * texmf.in: Add TEXINPUTS.foo definitions for e-TeX and PDFTeX. ! ! * tex-file.h: Add kpse_find_ofm and kpse_find_ovf macros. ! ! * tex-file.c (kpse_find_file): Add a search for Omega. ! ! Thu Nov 13 22:43:06 1997 Olaf Weber ! ! * progname.c (expand_symlinks): Don't call fclose on a NULL ! pointer. After Gary Jennejohn . ! ! Wed Nov 12 16:20:02 1997 Olaf Weber ! ! * kpsewhich.c: Use kpse_set_program_name instead of ! kpse_set_progname. ! ! * tex-file.c, cnf.c: Use kpse_program_name instead of ! program_invocation_short_name. ! ! * progname.h (kpse_set_program_name, kpse_reset_program_name): New ! functions. ! (kpse_program_name): New global. ! ! * progname.c (kpse_set_program_name): New function, to replace ! kpse_set_progname. This fixes the problem the we may want to ! pretend to be a different program, but need the name by which we ! were called because that is the one for an executable is ! guaranteed to exist. The pretend-name is stored in ! kpse_program_name. ! (kpse_reset_program_name): To reset kpse_program_name to a ! different value. It makes a half-hearted attempt to clear the ! search path information, so that the new name is used there as ! well. ! ! Mon Nov 10 13:14:01 1997 Olaf Weber ! ! * configure.in (KPSEVERSION): version 3.1. ! ! Thu Nov 6 20:25:49 1997 Olaf Weber ! ! * texmf.in: Corrected comment on size of max_print_line: it must ! at least be 60. ! ! Tue Nov 4 19:08:37 1997 Olaf Weber ! ! * Makefile.in (install-data): Handle a split kpathsea.info. ! ! * common.ac: Add a test to ensure that autoconf 2.12.1 -- the one ! with our own hacks -- is used. ! ! Wed Oct 29 11:49:46 1997 Olaf Weber ! ! * c-fopen.h [!DOSISH]: Guard against redefining O_BINARY. From ! Andreas Scherer . ! ! Mon Oct 27 17:25:19 1997 Olaf Weber ! ! * install.texi: Update for new MakeTeX* scripts. ! ! * MakeTeXnames: Handling of empty namepart. ! ! Fri Oct 24 14:23:58 1997 Olaf Weber ! ! * getopt.[hc]: Changes for WIN32, which are likely to be a pain if ! these files are ever updated wholesale. After Fabrice Popineau. ! ! Thu Oct 23 11:16:26 1997 Olaf Weber ! ! * MakeTeXnames: Corrected bug in assignemnt to stdfontpath. ! ! Wed Oct 22 17:36:57 1997 Olaf Weber ! ! * MakeTeXmkdir: Added a bit of boilerplate to the use of ! MT_APPEND_MASK. ! ! * Makefile.in: It's acconfig.h, not c-auto.h, that we do not want ! to install. ! ! * lib.h: Remove kpathsea/config.h from the includes. Note that ! lib.h is itself included by config.h. ! ! * Makefile.in: Change generation of kpathsea.h to put config.h ! first. ! ! Tue Oct 21 23:15:28 1997 Olaf Weber ! ! * MakeTeX.site, MakeTeX.cnf: Remove MT_FILE_PERMS, MT_DIR_PERMS. ! ! * MakeTeXmkdir: Use kpsestat to obtain suitable directory ! permissions. ! ! * MakeTeXnames, MakeTeXnames.opt: Include code that infers ! destination directories from where the sources are found. Make ! use of fontmaps an option, move that part of the code to ! MakeTeXnames.opt. ! ! * MakeTeXls-R: Use kpsestat to obtain suitable file permissions; ! this means we no longer use unset. Use access rather than test to ! determine whether we can write the ls-R database. ! ! * MakeTeXTFM, MakeTeXMF, MakeTeXPK: Use kpsestat to obtain ! suitable file permissions. ! ! * Makefile.in: Minor changes, because of the new files and ! renaming. ! ! * MakeTeXnames.opt, MakeTeXmkdir.opt: renamed from ! MakeTeXnames.cnf and MakeTeXmkdir.cnf respectively. Now ! MakeTeX.cnf contains the standard configuration, and MakeTeX.site ! the local adjustments. ! ! * kpsestat.c, access.c: New files. ! ! Mon Oct 20 07:22:33 1997 Olaf Weber ! ! * common.ac, Makefile.in, acconfig.in, config.h, install.texi, ! kpathsea.texi: Rename texmf.cnf.in to texmf.in / c-auto.h.in to ! ! * Renamed texmf.cnf.in to texmf.in. ! ! * bugs.texi: Add descriptions of GSFTOPK_DEBUG, MAKETEX_DEBUG, and ! MAKETEX_FINE_DEBUG. From Fabrice Popineau. ! ! * c-fopen.h [WIN32]: Use setmode in stead of _setmode. From ! Fabrice Popineau. ! ! * c-pathch.h, absolute.c [NAME_BEGINS_WITH_DEVICE]: Corrected ! definition. From Fabrice Popineau. ! ! * c-proto.h: Cosmetic change in definition DllImport. From ! Fabrice Popineau. ! ! * debug.h [WIN32 && _DEBUG]: Extra debugging code for WIN32. From ! Fabrice Popineau. ! ! * install.texi: Extend description of the dosnames feature. After ! Fabrice Popineau. ! ! * lib.h: Add kpathsea/config.h to the includes. New macro STRNEQ. ! From Fabrice Popineau. ! ! * progname.c (kpse_set_progname [WIN32]): New environment variable ! KPSE_DEBUG_OUTPUT. If defined, it names a file to which stderr ! will be redirected. From Fabrice Popineau. ! ! * tex-make.c: Various cosmetic changes for WIN32/MS-DOS. From ! Fabrice Popineau. ! ! Fri Oct 17 10:41:08 1997 Olaf Weber ! ! * db.c (kpse_db_insert): Remove dubious cast of result of basename. ! ! * progname.c (kpse_set_progname [!HAVE_PROGRAM_INVOCATION_NAME]): ! Removed dubious cast of basename. ! ! * tex-file.c (kpse_find_file): Reorganize searches, so that ! foo.bar.tex is found before foo.bar. ! ! * tex-make.c (maketex) [MSDOS]: Redirect stderr to the null device ! without using the shell (which requires users to install a port of ! a Unixy shell, since stock DOS shells don't allow redirecting ! stderr). ! (kpse_make_tex) [MSDOS]: Don't use the shell to redirect stderr. ! From Eli Zaretskii . ! ! * readable.c (READABLE) [__DJGPP__]: Use `access' instead of ! `stat', since `stat' is expensive on MS-DOS. Eli Zaretskii ! . ! ! * pathsearch.c (search) [__DJGPP__]: Make `stat' work in the ! fastest possible way, since it can be very expensive on MS-DOS. ! (main): Use ENV_SEP_STRING instead of explicit ":". ! From Eli Zaretskii . ! ! * path-elt.c (main): Use ENV_SEP_STRING instead of explicit ":". ! From Eli Zaretskii . ! ! * kpsewhich.c (path_expand): Handle file names with device ! letters. ! (read_command_line): Use ENV_SEP_STRING instead of explicit ":". ! After Eli Zaretskii . ! ! * kdefault.c (main): Use ENV_SEP_STRING instead of explicit ":" ! (which is only true on Unix). From Eli Zaretskii ! . ! ! * cnf.c (do_line) [__DJGPP__]: Don't convert semi-colons to ! colons, even though DJGPP defines `unix'. From Eli Zaretskii ! . ! ! * absolute.c (kpse_absolute_p) [DOSISH]: Don't assume the drive ! letter is alphanumeric. From Eli Zaretskii . ! ! * xgetcwd.c (xgetcwd) [DOSISH]: Prepend drive letter before path. ! From Eli Zaretskii . ! ! * progname.c (kpse_set_progname) [__DJGPP__]: Compute the long ! file name of the program given its 8+3 alias. ! (kpse_set_progname) Compute SELFAUTOLOC before removing the ! ".exe" suffix, if any, because `selfdir' might look along the PATH ! for the file. ! After Eli Zaretskii . ! ! * config.h (DOSISH): Move the definition to the top, so we could ! define MONOCASE_FILENAMES right there. ! [__DJGPP__]: Include DJGPP-specific headers. ! [DOSISH]: Let DJGPP use ST_NLINK_TRICK, since it supports it. ! From Eli Zaretskii . ! ! * lib.h (FILESTRNCASEEQ): New macro, for partial compares of ! filenames. From Eli Zaretskii . ! ! * c-fopen.h (FOPEN_RBIN_MODE, FOPEN_WBIN_MODE): Let MS-DOS use ! these also. ! (FOPEN_ABIN_MODE): New macro, defines how to open a binary file for ! appending. ! (SET_BINARY): New macro, switches an already open file to binary ! mode (required for stdin/stdout on MS-DOS/MS-Windows). ! From Eli Zaretskii . ! ! * c-pathch.h (NAME_BEGINS_WITH_DEVICE): Don't assume the drive ! letter is A-Z only (DOS allows 6 characters beyond Z). After Eli ! Zaretskii . ! ! Thu Oct 16 10:22:42 1997 Olaf Weber ! ! * configure.in: Update stamp-auto after creating c-auto.h. From ! Peter Breitenlohner. ! ! * Makefile.in: Don't rewrite paths.h if it was not changed. After ! Peter Breitenlohner. ! ! Wed Oct 15 15:33:43 1997 Olaf Weber ! ! * xputenv.c (xputenv): Don't do anything if the old and new values ! of the environment variables are identical, because some libraries ! (DJGPP) will will optimize away such no-ops, and therefore freeing ! the old value will lead to disaster. Free new_item if it was ! copied by the library `putenv'. From Eli Zaretskii ! ! ! * tex-file.c (kpse_open_file): Open ! kpse_{pk,base,fmt,mem,type1}_format files in binary mode. ! ! * install.texi: Remove description of the feature that (say) ! MAKETEXPK in the environment can be used to provide a ! specification of the argument list of MakeTeXPK. Reason: the ! feature isn't implemented. ! ! Tue Oct 14 17:08:22 1997 Olaf Weber ! ! * xgetcwd.c: Rename DO_NOT_USE_GETCWD to GETCWD_FORKS. ! * common.ac: Add a test for GETCWD_FORKS. ! * acconfig.h: Include GETCWD_FORKS. ! ! Mon Oct 13 19:42:58 1997 Olaf Weber ! ! * path-elt.c (element): Always return a new string rather than a ! part of the path, as the returned string may be modified. ! ! * tex-file.c (remove_dbonly): Replaced hard-coded ':' with ! ENV_SEP. From Fabrice Popineau. ! ! * common.ac, configure.in: Move definition of KPSEVERSION from ! common.ac to configure.in. ! ! * common.ac: Check for presence of getcwd. ! ! * xgetcwd.c: Use getcwd in preference to getwd, unless ! DO_NOT_USE_GETCWD is defined. ! ! * MakeTeX.cnf: Made varfonts the default. ! ! * elt-dirs.c, path-elt.c, tilde.c, variable.c: Print (nil) instead ! of (null), so we can distinguish *printf being fed a null pointer. ! ! * tex-file.c: remove_dbonly: Corrected off-by-one error in ! allocation. ! ! Sat Oct 11 13:48:33 1997 Olaf Weber ! ! * elt-dirs.c (main) [TEST, AMIGA]: Changed test code for Amiga. ! From Andreas Scherer . ! ! Mon Oct 6 16:36:50 1997 Olaf Weber ! ! * install.texi: Document --enable-maintainer-mode switch. ! ! Sat Oct 4 19:27:22 1997 Olaf Weber ! ! * MakeTeXnames.cnf: Add "strip" feature for backwards ! compatibility with 7.0. ! * Use a new set of MakeTeX* scripts, from Thomas Esser. ! ! Fri Oct 3 09:54:47 1997 Olaf Weber ! ! * kpsewhich.c (path_expand): Don't scribble in the datastructures ! of the system to get rid of trailing slash, use "%.*s" format of ! printf instead. ! ! * Makefile.in (texmf.sed, paths.h): Take the changes to texmf.cnf.in ! into account. ! * texmf.cnf.in: Redo variable definitions for the sake of clarity. ! ! * hash.c (hash_create): Make ret static to work around a gcc ! optimizer bug on the Alpha. ! ! * elt-dirs.c (do_subdir,expand_elt): Cleanup by Greg Hudson ! , which might fix the '//' in path problem on the ! Amiga as well. ! ! * xrealloc.c: Get prototype for realloc from config.h, give ! prototype for xmalloc, prototype xrealloc itself. After Fabrice ! Popineau. ! ! * xmalloc.c: Give xmalloc a prototype, get prototype for malloc ! from config.h. After Fabrice Popineau. ! ! * tex-file.c [TEX_SUFFIXES]: Brought into sync with tex.ch. ! ! * install.texi: Extend comments on shared library support. ! ! Thu Oct 2 00:14:57 1997 Olaf Weber ! ! * texmf.cnf.in [buf_size]: Increased from 3000 to 10000. ! ! * tex-file.h (enum kpse_src_type): removed trailing comma. From ! Ezra Peisach . ! ! * c-proto.h [AA]: Obsolete due to changes to web2c.y; removed. ! ! * bugs.texi: Document KPSE_DEBUG_VARS. ! * debug.h [KPSE_DEBUG_VARS]: New #define for debugging. From ! Nicolai Langfeldt . ! * variable.c (kpse_var_value): Add code to report how variables ! were expanded. From Nicolai Langfeldt . ! ! * progname.c (selfdir) [!AMIGA]: Directories were mistaken for ! executables. From Matthias Clasen ! ! ! * tex-file.c (remove_dbonly): New function that strips the !! from ! path specifications. Called when creating the path for ! kpse_db_format. From Thomas Esser ! ! * install.texi: The default installation directory is not always ! /usr/local, as configure will pick the location of an existing tex ! installation. ! ! Wed Oct 1 13:43:18 1997 Olaf Weber ! ! * texmf.cnf.in: Various definitions have changed to take advantage ! of the new brace expansion code. The various intermediate ! variables (fontdir, web2cdir, ...) have been removed because you ! could burn yourself severely by accidentally setting these ! undocumented variables -- this happened with some versions of make ! during compilation. ! ! Tue Sep 30 16:14:48 1997 Olaf Weber ! ! * kpathsea.texi: Document changes in brace expansion. ! * expand.c (array_concat): reversed the order concatenation, which ! result in more usable brace expansion. ! (kpse_expand_kpse_dot): new function. ! (kpse_path_expand): call kpse_expand_kpse_dot to expand relative ! components using KPSE_DOT, if the latter is defined. ! ! * common.ac: Define the version string. ! * version.c: Replaced version string with a define. ! * acconfig.h: Added defines for version strings. ! * Makefile.in: Let version = @KPSEVERSION@. ! * common.ac: Introduce KPSEVERSION for version. ! ! * tex-file.c (kpse_maketex_option): choose proper mf and tfm ! formats rather than tex. ! ! Mon Sep 29 22:47:23 1997 Olaf Weber ! ! * db.c (match): Repaired several off-by-one bugs. ! ! Wed Sep 17 21:09:56 1997 Olaf Weber ! ! * withenable.ac: Added the --enable-maintainer-mode option. ! ! Tue Aug 5 17:26:16 1997 Karl Berry ! ! * config.h (KPATHSEA): Define for the sake of kpathsea code ! getting merged back into original distributions. ! ! Sun Aug 3 17:14:47 1997 Karl Berry ! ! * install.texi: simple.tex doesn't exist in LaTeX 2e; it's sample2e. ! From: "Jonathan I. Kamens" and others. ! ! * db.c (kpse_db_search): Preprocessor # commands must start in ! column 1 for DEC OSF/1 2.0 cc. ! From: Andrew Komornicki . ! ! * common.ac (program_inv_name): Correct usage of AC_TRY_LINK. ! From: "John W. Eaton" . ! ! * Makefile.in (.SUFFIXES): Put before the .c.lo rule for the sake ! of FreeBSD 2.1.7 make. ! From: Hiroto Kagotani . ! ! Thu Apr 17 17:35:37 1997 Karl Berry ! ! * Makefile.in (paths.h): Replace $web2cdir too, ! for the sake of DEFAULT_TEXMFCNF. ! From: M G Berberich . ! ! Tue Apr 1 17:48:18 1997 Karl Berry ! ! * fontmap.c: Doc fix. ! * kpsewhich.c (find_format): Try the long name if the file format ! has no suffix, e.g., `dvips config'. ! From: "Tomasz J. Cholewo" ! ! Sun Mar 23 16:44:21 1997 Karl Berry ! ! * tex-file.c (kpse_find_file): Don't assert that `name' is empty, ! only NULL, so \input\relax doesn't crash. ! From: "Tomasz J. Cholewo" . ! ! Fri Mar 21 16:09:47 1997 Karl Berry ! ! * MakeTeXPK, MakeTeXcommon: Support a redirect option to MTPK, ! from Thomas via Paul V. ! ! * progname.c (selfdir) [AMIGA]: Fix from Andreas. ! ! Sun Feb 16 15:49:07 1997 Karl Berry ! ! * withenable.ac: `enableval' should have been `withval', ! and value must be quoted. ! ! * MakeTeXTFM: Exit if mf fails, a la MakeTeXPK. ! From: Julian Gilbey . ! ! Thu Feb 13 16:08:30 1997 Karl Berry ! ! * texmf.cnf.in (latex2*_inputs): Put $dbtex/generic before the ! ``other'' latex version. ! From: Olaf Weber . ! ! * progname.c (selfdir): Protect against argv0 being dir/exename, ! not found in PATH. Happens under Solaris. ! From: Ross Alexander (and many others). ! ! Sun Feb 09 15:27:15 1997 Fabrice POPINEAU ! ! * progname.c (kpse_set_progname): Added braces around Win32 code, ! because of variables declaration. Fri Feb 7 11:53:09 1997 Karl Berry diff -cNr octave-2.0.11/kpathsea/HIER octave-2.0.12/kpathsea/HIER *** octave-2.0.11/kpathsea/HIER Sat Oct 5 16:28:39 1996 --- octave-2.0.12/kpathsea/HIER Fri Jan 23 04:57:21 1998 *************** *** 13,19 **** paths::.). One common desire is to put everything (binaries and all) under a single top-level directory such as `/usr/local/texmf' or `/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. ! For specific instructions on doing that, *note configure scenarios::.. Here is a skeleton of the default directory structure, extracted from the TDS document: --- 13,20 ---- paths::.). One common desire is to put everything (binaries and all) under a single top-level directory such as `/usr/local/texmf' or `/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. ! For specific instructions on doing that, see *Note configure ! scenarios::. Here is a skeleton of the default directory structure, extracted from the TDS document: diff -cNr octave-2.0.11/kpathsea/INSTALL octave-2.0.12/kpathsea/INSTALL *** octave-2.0.11/kpathsea/INSTALL Thu Feb 6 14:04:42 1997 --- octave-2.0.12/kpathsea/INSTALL Wed Mar 11 13:23:47 1998 *************** *** 18,27 **** Installing files Cleaning up Filename database generation ! `MakeTeX' scripts ! `MakeTeX' configuration ! `MakeTeX' script names ! `MakeTeX' script arguments Installation testing Security --- 18,27 ---- Installing files Cleaning up Filename database generation ! `mktex' scripts ! `mktex' configuration ! `mktex' script names ! `mktex' script arguments Installation testing Security *************** *** 30,50 **** ************ The procedure for Kpathsea (and Web2c, etc.) configuration and ! installation follows. If trouble, *note Common problems::., a copy of ! which is in the file `kpathsea/BUGS'. Simple installation =================== Installing TeX and friends for the first time can be a daunting experience. Thus, you may prefer to skip this whole thing and just get ! precompiled executables: *note unixtex.ftp::.. This section explains what to do if you wish to take the defaults for ! everything (installing under `/usr/local'), and generally to install in ! the simplest possible way. Most steps here refer to corresponding ! subsection in the next section which explains how to override defaults ! and generally gives more details. 1. Be sure you have enough disk space: approximately 8 megabytes for the compressed archives, 15MB for sources, 45MB for compilation, --- 30,54 ---- ************ The procedure for Kpathsea (and Web2c, etc.) configuration and ! installation follows. If you encounter trouble, see *Note Common ! problems::, a copy of which is in the file `kpathsea/BUGS'. Simple installation =================== Installing TeX and friends for the first time can be a daunting experience. Thus, you may prefer to skip this whole thing and just get ! precompiled executables: see *Note unixtex.ftp::. This section explains what to do if you wish to take the defaults for ! everything, and generally to install in the simplest possible way. Most ! steps here refer to corresponding subsection in the next section which ! explains how to override defaults and generally gives more details. ! ! By default everything will be installed under `/usr/local' and the ! following discussion assumes this. However, if you already have TeX ! installed, its location is used to derive the directory under which ! everything is to be installed. 1. Be sure you have enough disk space: approximately 8 megabytes for the compressed archives, 15MB for sources, 45MB for compilation, *************** *** 66,75 **** distribution files. *Note Changing search paths::. 4. At the top level of the distribution, run `sh configure'. (If you ! have the GNU Bash shell installed, run `bash configure'.) *Note Running configure::. ! 5. `make'. *Note Running make::. 6. `make install'. *Note Installing files::. --- 70,84 ---- distribution files. *Note Changing search paths::. 4. At the top level of the distribution, run `sh configure'. (If you ! have the GNU Bash shell installed, run `bash configure'.) *Note Running configure::. ! 5. `make'. *Note Running make::. If you are using a BSD 4.4 system ! such as FreeBSD or NetBSD, use GNU make (often installed in ! `/usr/local/bin'), not the BSD make. ! ! If you are using a HP-UX 10 system and the native compiler, ! specify the `+u' flag in `XCFLAGS'. 6. `make install'. *Note Installing files::. *************** *** 77,107 **** 8. Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight: ! 0 0 * * * cd /usr/local/share/texmf && /BINDIR/MakeTeXls-R *Note Filename database generation::, and *Note Filename database::. 9. If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts available. *Note Installation: (dvips)Installation. If you have ! any color printers, *note Color device configuration: (dvips)Color ! device configuration.. 10. The first time you run a DVI driver, a bunch of PK fonts will be ! built by Metafont via `MakeTeXPK' (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). ! By default, `MakeTeXPK' assumes `/usr/local/share/texmf/fonts' is ! globally writable. If you need a different arrangement, *note ! MakeTeX configuration::.. ! ! *Note MakeTeX scripts::. ! ! 11. For some simple tests, try `tex story \\bye' and `latex simple'. ! Then run `xdvi story' or `dvips simple' on the resulting DVI files ! to preview/print the documents. *Note Installation testing::. Custom installation =================== --- 86,118 ---- 8. Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight: ! 0 0 * * * cd /usr/local/share/texmf && /BINDIR/mktexlsr *Note Filename database generation::, and *Note Filename database::. 9. If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts available. *Note Installation: (dvips)Installation. If you have ! any color printers, see *Note Color device configuration: ! (dvips)Color device configuration. 10. The first time you run a DVI driver, a bunch of PK fonts will be ! built by Metafont via `mktexpk' (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). ! By default, `mktexpk' will create these fonts in a hierarchy under ! `/var/tmp/texfonts'; it simply assumes that `/var/tmp' exists and ! is globally writable. If you need a different arrangement, see ! *Note mktex configuration::. ! ! *Note mktex scripts::. ! ! 11. For some simple tests, try `tex story \\bye' and `latex sample2e'. ! Then run `xdvi story' or `dvips sample2e' on the resulting DVI ! files to preview/print the documents. *Note Installation ! testing::. Custom installation =================== *************** *** 135,140 **** --- 146,152 ---- don't enter into it. Sizes are in megabytes. All numbers are approximate. + Distribution .tar.gz Unpacked Compiled Installed dviljk .9 3.8 dvipsk .9 3.2 xdvik .7 2.5 *************** *** 177,197 **** If the search paths for your installation differ from the standard TeX directory structure (*note Introduction: (tds)Top.), edit the file ! `kpathsea/texmf.cnf.in' as desired, before running `configure'. For example, if you have all your fonts or macros in one big directory. ! You may also wish to edit the file `MakeTeXnames.cnf', either before ! or after installation, to control various aspects of `MakeTeXPK' and ! friends. *Note MakeTeX configuration::. ! ! You do not need to edit `texmf.cnf.in' to change the default ! top-level or other installation *directories* (only the paths). You ! can and should do that when you run `configure' (next step). ! ! You also do not need to edit `texmf.cnf.in' if you are willing to ! rely on `texmf.cnf' at runtime to define the paths, and let the ! compile-time default paths be incorrect. Usually there is no harm in ! doing this. The section below explains default generation in more detail. --- 189,208 ---- If the search paths for your installation differ from the standard TeX directory structure (*note Introduction: (tds)Top.), edit the file ! `kpathsea/texmf.in' as desired, before running `configure'. For example, if you have all your fonts or macros in one big directory. ! You may also wish to edit the file `mktex.cnf', either before or ! after installation, to control various aspects of `mktexpk' and ! friends. *Note mktex configuration::. ! ! You do not need to edit `texmf.in' to change the default top-level or ! other installation *directories* (only the paths). You can and should ! do that when you run `configure' (next step). ! ! You also do not need to edit `texmf.in' if you are willing to rely on ! `texmf.cnf' at runtime to define the paths, and let the compile-time ! default paths be incorrect. Usually there is no harm in doing this. The section below explains default generation in more detail. *************** *** 202,208 **** above is to avoid having the same information in more than one place. If you change the installation directories or top-level prefix at `configure'-time, those changes will propagate through the whole ! sequence. And if you change the default paths in `texmf.cnf.in', those changes are propagated to the compile-time defaults. The Make definitions are all repeated in several Makefile's; but --- 213,219 ---- above is to avoid having the same information in more than one place. If you change the installation directories or top-level prefix at `configure'-time, those changes will propagate through the whole ! sequence. And if you change the default paths in `texmf.in', those changes are propagated to the compile-time defaults. The Make definitions are all repeated in several Makefile's; but *************** *** 226,237 **** you arranged things that way because your site has only one printer, for example) or if the program is mode-independent (e.g., `pktype'). ! To make the paths independent of the mode, simply edit `texmf.cnf.in' before installation, or the installed `texmf.cnf', and remove the `$MAKETEX_MODE'. ! *Note MakeTeX script arguments::, for how this interacts with ! `MakeTeXPK'. *Note TeX directory structure: TeX directory structure, for a description of the default arrangement of the input files that comprise --- 237,247 ---- you arranged things that way because your site has only one printer, for example) or if the program is mode-independent (e.g., `pktype'). ! To make the paths independent of the mode, simply edit `texmf.in' before installation, or the installed `texmf.cnf', and remove the `$MAKETEX_MODE'. ! *Note mktex script arguments::, for how this interacts with `mktexpk'. *Note TeX directory structure: TeX directory structure, for a description of the default arrangement of the input files that comprise *************** *** 257,263 **** the installation directories. 3. `texmf.sed' (together with a little extra magic--see ! `kpathsea/Makefile') is applied to `texmf.cnf.in' to generate `texmf.cnf'. This is the file that will eventually be installed and used. --- 267,273 ---- the installation directories. 3. `texmf.sed' (together with a little extra magic--see ! `kpathsea/Makefile') is applied to `texmf.in' to generate `texmf.cnf'. This is the file that will eventually be installed and used. *************** *** 278,291 **** `configure' adapts the source distribution to the present system via `#define''s in `*/c-auto.h', which are created from the corresponding ! `c-auto.h.in'. It also creates a `Makefile' from the corresponding `Makefile.in', doing `@VAR@' and `ac_include' substitutions). `configure' is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before ! invoking it. For example, you can disable `MakeTeXPK' by default with ! the option `--disable-maketexpk'. *Note configure options::. `configure' shells .................. --- 288,301 ---- `configure' adapts the source distribution to the present system via `#define''s in `*/c-auto.h', which are created from the corresponding ! `c-auto.in'. It also creates a `Makefile' from the corresponding `Makefile.in', doing `@VAR@' and `ac_include' substitutions). `configure' is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before ! invoking it. For example, you can disable `mktexpk' by default with ! the option `--disable-mktexpk'. *Note configure options::. `configure' shells .................. *************** *** 312,334 **** ................... For a complete list of all `configure' options, run `configure ! --help' or *note Running `configure' scripts: (autoconf)Invoking ! configure. (a copy is in the file `kpathsea/CONFIGURE'). The generic ! options are listed first in the `--help' output, and the package-specific options come last. The environment variables `configure' pays attention to are listed below. Options particularly likely to be useful are `--prefix', `--datadir', ! and the like; *note configure scenarios::.. This section gives pointers to descriptions of the `--with' and `--enable' options to `configure' that Kpathsea-using programs accept. ! `--without-maketexmf-default' ! `--without-maketexpk-default' ! `--without-maketextfm-default' ! `--with-maketextex-default' ! Enable or disable the dynamic generation programs. *Note MakeTeX configuration::. `--enable-shared' --- 322,344 ---- ................... For a complete list of all `configure' options, run `configure ! --help' or see *Note Running `configure' scripts: (autoconf)Invoking ! configure, (a copy is in the file `kpathsea/README.CONFIGURE'). The ! generic options are listed first in the `--help' output, and the package-specific options come last. The environment variables `configure' pays attention to are listed below. Options particularly likely to be useful are `--prefix', `--datadir', ! and the like; see *Note configure scenarios::. This section gives pointers to descriptions of the `--with' and `--enable' options to `configure' that Kpathsea-using programs accept. ! `--without-mktexmf-default' ! `--without-mktexpk-default' ! `--without-mktextfm-default' ! `--with-mktextex-default' ! Enable or disable the dynamic generation programs. *Note mktex configuration::. `--enable-shared' *************** *** 336,342 **** build the usual static library. *Note Shared library::. `--disable-static' ! Build only the shared library. `configure' environment ....................... --- 346,358 ---- build the usual static library. *Note Shared library::. `--disable-static' ! Build only the shared library. Implies `--enable-shared'. ! ! `--enable-maintainer-mode' ! Enables make targets that are useful for the maintainer and likely ! to be a pain for anyone else; the makefiles created when this ! option is enabled may not work at all for you. You have been ! warned. `configure' environment ....................... *************** *** 391,400 **** configure --with-x-toolkit * Putting the binaries, TeX files, GNU info files, etc. into a single ! TeX hierarchy, say TEXMF, requires overriding defaults in both `configure' and `make': ! configure --prefix=TEXMF --datadir=TEXMF ! make texmf=TEXMF * You can compile on multiple architectures simultaneously either by building symbolic link trees with the `lndir' script from the X11 --- 407,416 ---- configure --with-x-toolkit * Putting the binaries, TeX files, GNU info files, etc. into a single ! TeX hierarchy, say `/texmf', requires overriding defaults in both `configure' and `make': ! configure --prefix=`/texmf' --datadir=`/texmf' ! make texmf=`/texmf' * You can compile on multiple architectures simultaneously either by building symbolic link trees with the `lndir' script from the X11 *************** *** 430,444 **** individual users do not need to set their system's environment variable (e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do this, you will need to add the necessary options to `LDFLAGS' yourself; ! for example, on Solaris, include something like `-R${prefix}/lib'. ! (Unfortunately, making this happen by default is very difficult, ! because of interactions with an existing installed shared library.) ! ! Currently, shared library support is implemented only on SunOS 4 ! (Solaris 1) and SunOS 5 (Solaris 2). If you're interested and willing ! in adding support for other systems, please see the `configure' mode in ! the `klibtool' script, especially the host-specific case statement ! around line 250. Running `make' -------------- --- 446,461 ---- individual users do not need to set their system's environment variable (e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do this, you will need to add the necessary options to `LDFLAGS' yourself; ! for example, on Solaris, include something like `-R${prefix}/lib', on ! IRIX or Linux, use `-rpath${prefix}/lib'. (Unfortunately, making this ! happen by default is very difficult, because of interactions with an ! existing installed shared library.) ! ! Currently, shared library support is implemented only on Linux, SunOS ! 4 (Solaris 1), SunOS 5 (Solaris 2), IRIX 5, and IRIX 6. If you're ! interested and willing in adding support for other systems, please see ! the `configure' mode in the `klibtool' script, especially the ! host-specific case statement around line 250. Running `make' -------------- *************** *** 541,547 **** Alternatively, * `make mostlyclean' if you intend to compile on another ! architecture. For Web2c, since the generated C files are portable, they are not removed. If the `lex' vs. `flex' situation is going to be different on the next machine, `rm web2c/lex.yy.c'. --- 558,564 ---- Alternatively, * `make mostlyclean' if you intend to compile on another ! architecture. For Web2C, since the generated C files are portable, they are not removed. If the `lex' vs. `flex' situation is going to be different on the next machine, `rm web2c/lex.yy.c'. *************** *** 562,582 **** You will probably want to set up a `cron' entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in: ! 0 0 * * * cd TEXMF && /BINDIR/MakeTeXls-R *Note Filename database::. ! Although the `MakeTeX...' scripts make every effort to add ! newly-created files on the fly, it can't hurt to make sure you get a ! fresh version every so often. ! `MakeTeX' scripts ! ----------------- If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it ! dynamically (*note MakeTeX configuration::.). This is most useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as ! the Sauter and DC fonts), since any given document can use fonts never before referenced. Trying to build all fonts in advance is therefore impractical, if not impossible. --- 579,599 ---- You will probably want to set up a `cron' entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in: ! 0 0 * * * cd TEXMF && /BINDIR/mktexlsr *Note Filename database::. ! Although the `mktex...' scripts make every effort to add newly-created ! files on the fly, it can't hurt to make sure you get a fresh version ! every so often. ! `mktex' scripts ! --------------- If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it ! dynamically (*note mktex configuration::.). This is most useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as ! the Sauter and EC fonts), since any given document can use fonts never before referenced. Trying to build all fonts in advance is therefore impractical, if not impossible. *************** *** 585,686 **** file it created (and nothing else) to standard output; it can write diagnostics to standard error. ! `MakeTeX' configuration ! ....................... The following file types can run an external program to create missing ! files: `pk', `tfm', `mf', `tex'; the scripts are named `MakeTeXPK', ! `MakeTeXTFM', `MakeTeXMF', and `MakeTeXTeX'. In the absence of `configure' options specifying otherwise, ! everything but `MakeTeXTeX' will be enabled by default. The `configure' options to change the defaults are: ! --without-maketexmf-default ! --without-maketexpk-default ! --without-maketextfm-default ! --with-maketextex-default The `configure' setting is overridden if the environment variable or ! configuration file value named for the script is set; e.g., `MAKETEXPK' ! (*note MakeTeX script arguments::.). ! As distributed, all the scripts source a file ! `texmf/web2c/MakeTeX.site' if it exists, so you can override various ! defaults. See `MakeTeXcommon', for instance, which defines the default ! mode, resolution, directory permissions, some special directory names, ! etc. If you prefer not to change the distributed scripts, you can ! simply create `MakeTeX.site' with the appropriate definitions (you do ! not need to create it if you have nothing to put in it). ! `MakeTeX.site' has no special syntax; it's an arbitrary Bourne shell ! script. The distribution contains a sample `MakeTeX.site' for you to ! copy and modify as you please (it is not installed anywhere). In addition, you can configure a number of features with the `MT_FEATURES' variable, which you can define: ! * in `MakeTeX.site', as just mentioned; ! * by editing the file `MakeTeXnames.cnf', either before `make ! install' (in the source hierarchy) or after (in the installed ! hierarchy); * or in the environment. ! By default, `MakeTeXPK' installs fonts into the standard TeX ! directory structure (*note TeX directory structure: TeX directory ! structure.). It uses aliases and directory names from the Fontname ! distribution (*note Introduction: (fontname)Top.). Most of the options ! here change that. `appendonlydir' ! Tell `MakeTeXmkdir' to create directories append-only, i.e., set ! their sticky bit (*note Mode Structure: (fileutils)Mode ! Structure.). `dosnames' Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. `nomode' Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode. `strip' ! Omit the font supplier and typeface name directory levels. `varfonts' ! Put `MakeTeXPK'-generated fonts under the directory named by ! `VARTEXFONTS'; the default value in `kpathsea/texmf.cnf.in' is ! `/var/tex/fonts', as recommended by the `Linux File System ! Standard' (but unless `varfonts' is enabled, nothing cares about ! that value). The `varfonts' setting in `MT_FEATURES' is overridden by the `USE_VARTEXFONTS' environment variable: if set to `1', the feature is enabled, and if set to `0', the feature is disabled. ! `MakeTeX' script names ! ...................... The following table shows the default name of the script for each possible file types. (The source is the variable `kpse_make_specs' in `kpathsea/tex-make.c'.) ! `MakeTeXPK' Glyph fonts. ! `MakeTeXTeX' TeX input files. ! `MakeTeXMF' Metafont input files. ! `MakeTeXTFM' TFM files. These names are overridden by an environment variable specific to the program--for example, `DVIPSMAKEPK' for Dvipsk. ! If a `MakeTeX...' script fails, the invocation is appended to a file `missfont.log' (by default) in the current directory. You can then execute the log file to create the missing files after fixing the problem. --- 602,737 ---- file it created (and nothing else) to standard output; it can write diagnostics to standard error. ! `mktex' configuration ! ..................... The following file types can run an external program to create missing ! files: `pk', `tfm', `mf', `tex'; the scripts are named `mktexpk', ! `mktextfm', `mktexmf', and `mktextex'. In the absence of `configure' options specifying otherwise, ! everything but `mktextex' will be enabled by default. The `configure' options to change the defaults are: ! --without-mktexmf-default ! --without-mktexpk-default ! --without-mktextfm-default ! --with-mktextex-default The `configure' setting is overridden if the environment variable or ! configuration file value named for the script is set; e.g., `MKTEXPK' ! (*note mktex script arguments::.). ! As distributed, all the scripts source a file `texmf/web2c/mktex.cnf' ! if it exists, so you can override various defaults. See `mktex.opt', ! for instance, which defines the default mode, resolution, some special ! directory names, etc. If you prefer not to change the distributed ! scripts, you can simply create `mktex.cnf' with the appropriate ! definitions (you do not need to create it if you have nothing to put in ! it). `mktex.cnf' has no special syntax; it's an arbitrary Bourne shell ! script. The distribution contains a sample `mktex.cnf' for you to copy ! and modify as you please (it is not installed anywhere). In addition, you can configure a number of features with the `MT_FEATURES' variable, which you can define: ! * in `mktex.opt', as just mentioned; ! * by editing the file `mktex.opt', either before `make install' (in ! the source hierarchy) or after (in the installed hierarchy); * or in the environment. ! If none of the options below are enabled, `mktexpk', `mktextfm', and ! `mktexmf' follow the following procedure to decide where fonts should ! be installed. Find the tree where the font's sources are, and test the ! permissions of the `fonts' directory of that tree to determine whether ! it is writable. If it is, put the files in the tree in appropriate ! locations. If it isn't writable, see whether the tree is a system tree ! (named in `SYSTEXMF'). If so, the `VARTEXFONTS' tree is used. In all ! other cases the working directory is used. ! ! The `appendonlydir' option is enabled by default. `appendonlydir' ! Tell `mktexdir' to create directories append-only, i.e., set their ! sticky bit (*note Mode Structure: (fileutils)Mode Structure.). ! This feature is silently ignored on non-Unix platforms (e.g. ! Windows/NT and MS-DOS) which don't support similar functionality. ! This feature is enabled by default. `dosnames' Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. + Note that this feature only affects filenames that would otherwise + clash with other TeX-related filenames; `mktex' scripts do nothing + about filenames which exceed the 8+3 MS-DOS limits but remain + unique when truncated (by the OS) to these limits, and nether do + the scripts care about possible clashes with files which aren't + related with TeX. For example, `cmr10.600pk' would clash with + `cmr10.600gf' and is therefore changed when `dosnames' is in + effect, but `mf.pool' and `mp.base' don't clash with any + TeX-related files and are therefore unchanged. + + This feature is turned on by default on MS-DOS. If you do not wish + `dosnames' to be set on an MS-DOS platform, you need to set the + `MT_FEATURES' environment variable to a value that doesn't include + `dosnames'. You can also change the default setting by editing + `mktex.opt', but only if you use the `mktex' shell scripts; the + emulation programs don't consult `mktex.opt'. + + `fontmaps' + Instead of deriving the location of a font in the destination tree + from the location of the sources, the aliases and directory names + from the Fontname distribution are used. (*note Introduction: + (fontname)Top.). `nomode' Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode. + `stripsupplier' + Omit the font supplier name directory level. + + `striptypeface' + Omit the font typeface name directory level. + `strip' ! Omit the font supplier and typeface name directory levels. This ! feature is deprecated in favour of `stripsupplier' and ! `striptypeface'. `varfonts' ! When this option is enabled, fonts that would otherwise be written ! in system texmf tree go to the `VARTEXFONTS' tree instead. The ! default value in `kpathsea/Makefile.in' is `/var/tmp/texfonts'. ! The `Linux File System Standard' recommends `/var/tex/fonts'. The `varfonts' setting in `MT_FEATURES' is overridden by the `USE_VARTEXFONTS' environment variable: if set to `1', the feature is enabled, and if set to `0', the feature is disabled. ! `mktex' script names ! .................... The following table shows the default name of the script for each possible file types. (The source is the variable `kpse_make_specs' in `kpathsea/tex-make.c'.) ! `mktexpk' Glyph fonts. ! `mktextex' TeX input files. ! `mktexmf' Metafont input files. ! `mktextfm' TFM files. These names are overridden by an environment variable specific to the program--for example, `DVIPSMAKEPK' for Dvipsk. ! If a `mktex...' script fails, the invocation is appended to a file `missfont.log' (by default) in the current directory. You can then execute the log file to create the missing files after fixing the problem. *************** *** 690,748 **** Otherwise, nothing is written. The name `missfont.log' is overridden by the `MISSFONT_LOG' environment variable or configuration file value. ! `MakeTeX' script arguments ! .......................... ! The first argument to a `MakeTeX' script is always the name of the ! file to be created. ! In the default `MakeTeXPK' implementation, from three to five ! additional arguments may also passed, via environment variables: ! 1. The resolution to make the font at (`KPATHSEA_DPI'). ! ! 2. The "base dpi" the program is operating at (`MAKETEX_BASE_DPI'), ! i.e., the assumed resolution of the output device. ! ! 3. A "magstep" string suitable for the Metafont `mag' variable ! (`MAKETEX_MAG'). ! ! 4. Optionally, a Metafont mode name to assign to the Metafont `mode' ! variable (`MAKETEX_MODE'). Otherwise, (the default) `MakeTeXPK' ! guesses the mode from the resolution. *Note TeX directory ! structure: TeX directory structure. ! ! 5. Optionally, a directory name. If the directory is absolute, it is ! used as-is. Otherwise, it is appended to the root destination ! directory set in the script (from environment variables `DESTDIR' ! or `MTP_DESTDIR' or a compile-time default). If this argument is ! not supplied, the mode name is appended to the root destination ! directory. ! ! Kpathsea sets `KPATHSEA_DPI' appropriately for each attempt at building ! a font. It's up to the program using Kpathsea to set the others. ! (*Note Calling sequence::.) ! ! You can change the specification for the arguments passed to the ! external script by setting the environment variable named as the script ! name, but all capitals--`MAKETEXPK', for example. If you've changed ! the script name by setting (say) `DVIPSMAKEPK' to `foo', then the spec ! is taken from the environment variable `FOO'. ! ! The spec can contain any variable references, to the above variables ! or any others. As an example, the default spec for `MakeTeXPK' is: ! $KPATHSEA_DPI $MAKETEX_BASE_DPI $MAKETEX_MAG $MAKETEX_MODE ! The convention of passing the name of the file to be created as the ! first argument cannot be changed. Installation testing -------------------- Besides the tests listed in *Note Simple installation::, you can try running `make check'. This includes the torture tests (trip, trap, and ! mptrap) that come with Web2c (*note Torture tests: (web2c)Torture ! tests.). Security ======== --- 741,780 ---- Otherwise, nothing is written. The name `missfont.log' is overridden by the `MISSFONT_LOG' environment variable or configuration file value. ! `mktex' script arguments ! ........................ ! ! The first argument to a `mktex' script is always the name of the file ! to be created. ! ! In the default `mktexpk' implementation, additional arguments may ! also be passed: ! ! `--dpi NUM' ! Sets the resolution of the generated font to NUM. ! `--mfmode NAME' ! Sets the Metafont mode to NAME. ! `--bdpi NUM' ! Sets the the "base dpi" for the font. This must match the mode ! being used. ! `--mag STRING' ! A "magstep" string suitable for the Metafont `mag' variable. This ! must match the combination of BDPI and DPI being used. ! `--destdir STRING' ! A directory name. If the directory is absolute, it is used as-is. ! Otherwise, it is appended to the root destination directory set in ! the script. Installation testing -------------------- Besides the tests listed in *Note Simple installation::, you can try running `make check'. This includes the torture tests (trip, trap, and ! mptrap) that come with Web2c (*note Triptrap: (web2c)Triptrap.). Security ======== *************** *** 764,790 **** invocation: (web2c)tex invocation, respectively. Another security issue arises because it's very useful--almost ! necessary--to make arbitrary fonts on user demand with `MakeTeXPK' and friends. Where do these files get installed? By default, the ! `MakeTeXPK' distributed with Kpathsea assumes a globally writable ! `texmf' tree; this is the simplest and most convenient approach, but it ! may not suit your situation. The first restriction you can apply is to make newly-created ! directories under `texmf' be append-only with an option in ! `MakeTeXnames.cnf'. *Note MakeTeX configuration::. Another approach is to establish a group (or user) for TeX files, make the `texmf' tree writable only to that group (or user), and make ! `MakeTeXPK' et al. setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.) ! Finally, using a central writable `texmf' tree may be completely ! impossible, because it's on an NFS filesystem that you cannot export ! read/write, or AFS is in use, or simply because "it's policy". Then ! you must resort to each user's machine having its own local directory of ! dynamically-created fonts; again, `MakeTeXnames.cnf' has an option to ! do this, and again, *note MakeTeX configuration::.. --- 796,830 ---- invocation: (web2c)tex invocation, respectively. Another security issue arises because it's very useful--almost ! necessary--to make arbitrary fonts on user demand with `mktexpk' and friends. Where do these files get installed? By default, the ! `mktexpk' distributed with Kpathsea assumes a world-writable `/var/tmp' ! directory; this is a simple and convenient approach, but it may not ! suit your situation because it means that a local cache of fonts is ! created on every machine. ! ! To avoid this duplication, many people consider a shared, globally ! writable font tree desirable, in spite of the potential security ! problems. To do this you should change the value of `VARTEXFONTS' in ! `texmf.cnf' to refer to some globally known directory. *Note mktex ! configuration::. The first restriction you can apply is to make newly-created ! directories under `texmf' be append-only with an option in `mktex.cnf'. ! *Note mktex configuration::. Another approach is to establish a group (or user) for TeX files, make the `texmf' tree writable only to that group (or user), and make ! `mktexpk' et al. setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.) ! The `mktex...' scripts install files with the same read and write ! permissions as the directory they are installed in. The executable, ! sgid, suid, and sticky bits are always cleared. ! ! Any directories created by the `mktex...' scripts have the same ! permissions as their parent directory, unless the `appendonlydir' ! feature is used, in which case the sticky bit is always set. diff -cNr octave-2.0.11/kpathsea/Makefile.in octave-2.0.12/kpathsea/Makefile.in *** octave-2.0.11/kpathsea/Makefile.in Sun Jan 25 02:29:16 1998 --- octave-2.0.12/kpathsea/Makefile.in Sat Apr 25 21:58:59 1998 *************** *** 1,12 **** # Makefile for kpathsea --kb@mail.tug.org. Public domain. ! version = 3.0 # Add -DNO_DEBUG to disable debugging, for vanishingly better performance. # paths.make -- installation directories. # # The compile-time paths are defined in kpathsea/paths.h, which is built ! # from kpathsea/paths.h.in and these definitions. See kpathsea/INSTALL # for how the various path-related files are used and created. # Do not change prefix and exec_prefix in Makefile.in! --- 1,12 ---- # Makefile for kpathsea --kb@mail.tug.org. Public domain. ! version = @KPSEVERSION@ # Add -DNO_DEBUG to disable debugging, for vanishingly better performance. # paths.make -- installation directories. # # The compile-time paths are defined in kpathsea/paths.h, which is built ! # from kpathsea/texmf.in and these definitions. See kpathsea/INSTALL # for how the various path-related files are used and created. # Do not change prefix and exec_prefix in Makefile.in! *************** *** 37,52 **** # Unix man pages. manext = 1 ! mandir = $(prefix)/man/man$(manext) # TeX system-specific directories. Not all of the following are relevant # for all programs, but it seems cleaner to collect everything in one place. ! # The default paths are now in kpathsea/paths.h.in. Passing all the # paths to sub-makes can make the arg list too long on system V. # The root of the main tree. ! texmf = $(datadir)/texmf # Regular input files. texinputdir = $(texmf)/tex --- 37,57 ---- # Unix man pages. manext = 1 ! mandir = @mandir@/man$(manext) # TeX system-specific directories. Not all of the following are relevant # for all programs, but it seems cleaner to collect everything in one place. ! # The default paths are now in kpathsea/texmf.in. Passing all the # paths to sub-makes can make the arg list too long on system V. + # Note that if you make changes below, you will have to make the + # corresponding changes to texmf.in or texmf.cnf yourself. # The root of the main tree. ! texmf = @texmfmain@ ! ! # The directory used by varfonts. ! vartexfonts = /var/tmp/texfonts # Regular input files. texinputdir = $(texmf)/tex *************** *** 59,65 **** dvips_plain_macrodir = $(texinputdir)/plain/dvips dvilj_latex2e_macrodir = $(texinputdir)/latex/dvilj ! # MakeTeXPK.site, texmf.cnf, etc. web2cdir = $(texmf)/web2c # The top-level font directory. --- 64,70 ---- dvips_plain_macrodir = $(texinputdir)/plain/dvips dvilj_latex2e_macrodir = $(texinputdir)/latex/dvilj ! # mktex.cnf, texmf.cnf, etc. web2cdir = $(texmf)/web2c # The top-level font directory. *************** *** 100,106 **** bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \ datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \ manext=$(manext) mandir=$(mandir) \ ! texmf=$(texmf) web2cdir=$(web2cdir) \ texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\ fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \ texpooldir=$(texpooldir) mfpooldir=$(mfpooldir) mppooldir=$(mppooldir) \ --- 105,111 ---- bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \ datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \ manext=$(manext) mandir=$(mandir) \ ! texmf=$(texmf) web2cdir=$(web2cdir) vartexfonts=$(vartexfonts)\ texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\ fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \ texpooldir=$(texpooldir) mfpooldir=$(mfpooldir) mppooldir=$(mppooldir) \ *************** *** 123,129 **** DEFS = @DEFS@ $(XDEFS) # Kpathsea needs this for compiling, programs need it for linking. ! LIBTOOL = $(kpathsea_srcdir)/klibtool # You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but # please don't change ALL_CPPFLAGS or ALL_CFLAGS. --- 128,134 ---- DEFS = @DEFS@ $(XDEFS) # Kpathsea needs this for compiling, programs need it for linking. ! LIBTOOL = $(top_srcdir)/klibtool # You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but # please don't change ALL_CPPFLAGS or ALL_CFLAGS. *************** *** 145,150 **** --- 150,158 ---- INSTALL_LIBTOOL_LIBS = INSTALL_DATA='$(INSTALL_DATA)' $(LIBTOOL) install-lib INSTALL_LIBTOOL_PROG = INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(LIBTOOL) install-prog + # Creating (symbolic) links. + LN = @LN_S@ + # We use these for many things. kpathsea_parent = .. kpathsea_dir = $(kpathsea_parent)/kpathsea *************** *** 152,161 **** kpathsea_srcdir = $(kpathsea_srcdir_parent)/kpathsea kpathsea = $(kpathsea_dir)/libkpathsea.la - ##ifeq ($(CC), gcc) - ##XDEFS = -D__USE_FIXED_PROTOTYPES__ -Wall -Wpointer-arith $(warn_more) - ##CFLAGS = -g $(XCFLAGS) - ##endif # End of common.make. # library.make -- stuff only useful for libraries. --- 160,165 ---- *************** *** 186,198 **** # texi.make -- making .dvi and .info from .texi. MAKEINFO = makeinfo ! MAKEINFO_FLAGS = --paragraph-indent=2 -I$(HOME)/gnu/gnuorg ! # That -I is purely for my own benefit in doing `make dist'. It won't ! # hurt anything for you (I hope). TEXI2DVI = texi2dvi TEXI2HTML = texi2html ! TEXI2HTML_FLAGS = -split_node -menu # If you prefer one big .html file instead of several, remove # -split-node or replace it by -split_chapter. --- 190,201 ---- # texi.make -- making .dvi and .info from .texi. MAKEINFO = makeinfo ! MAKEINFO_FLAGS = --paragraph-indent=2 -I$(srcdir) ! TEXI2DVI = texi2dvi TEXI2HTML = texi2html ! TEXI2HTML_FLAGS = -expandinfo -number -menu -split_chapter # If you prefer one big .html file instead of several, remove # -split-node or replace it by -split_chapter. *************** *** 208,221 **** $(TEXI2HTML) $(TEXI2HTML_FLAGS) $< # End of texi.make. - ##ifdef HOSTNAME - ##warn_more = -Wmissing-prototypes -Wwrite-strings -Wshadow - ##MAKEINFO_FLAGS := $(MAKEINFO_FLAGS) --no-split - ##malloc = /usr/local/src/malloc/onefile.o # gmalloc.o - ##endif ! # Install these header files (except c-auto.h). ! install_headers = *.h # Put tex-file.o first, because it's what depends on the paths, and may # reduce frustration if the paths are wrong by doing it first. --- 211,219 ---- $(TEXI2HTML) $(TEXI2HTML_FLAGS) $< # End of texi.make. ! # Install these header files (except acconfig.h). ! install_headers = *.h $(srcdir)/*.h # Put tex-file.o first, because it's what depends on the paths, and may # reduce frustration if the paths are wrong by doing it first. *************** *** 234,273 **** library = kpathsea # We want to compile almost everything with libtool ... ! KPATHSEA_CC = $(LIBTOOL) compile $(CC) .c.lo: $(KPATHSEA_CC) $< $(ALL_CFLAGS) - .SUFFIXES: .lo ! default all: kpsewhich $(library).info kpsewhich: $(kpathsea) kpsewhich.o $(kpathsea_link) kpsewhich.o $(LOADLIBES) ! $(kpathsea): $(objects) $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) $(INSTALL_LIBTOOL_LIBS) . lib$(library).la # All the objects depend on the klibtool configuration file. $(objects): klibtool.config ! # Make variable substitutions from paths.h. ! texmf.cnf: texmf.cnf.in texmf.sed ! sed -f texmf.sed $(srcdir)/texmf.cnf.in >$@ # The idea is to turn each var=value into s%@var@%value%g. Seems simpler # to put the substitutions in a file than to play shell quoting games. ! texmf.sed: $(top_srcdir)/make/makevars.make $(top_srcdir)/make/paths.make echo $(makevars) \ | tr ' ' '\012' \ | sed -e 's/^/s%@/' -e 's/=/@%/' -e 's/$$/%/' -e 's/$$/g/' \ ! >$@-t ! # Don't replace the rhs of the TEXMF assignment itself, then we'd ! # end up with TEXMF = $TEXMF. We replace all the other hardwired paths ! # with $TEXMF, though, for ease of modification. ! echo 's%$(texmf)%\$$TEXMF%g' >>$@-t ! echo '/^ *TEXMF[ =]/s%\$$TEXMF%$(texmf)%' >>$@-t ! mv $@-t $@ # First null out comments and leading/trailing whitespace, then remove # lines that define invalid C identifiers, then remove blank lines and --- 232,292 ---- library = kpathsea # We want to compile almost everything with libtool ... ! KPATHSEA_CC = $(LIBTOOL) compile "$(CC)" ! .SUFFIXES: .lo .c.lo: $(KPATHSEA_CC) $< $(ALL_CFLAGS) ! default all: kpsewhich kpsestat access readlink $(library).info manfiles kpsewhich: $(kpathsea) kpsewhich.o $(kpathsea_link) kpsewhich.o $(LOADLIBES) ! kpsestat: kpsestat.o ! $(link_command) kpsestat.o ! ! access: access.o ! $(link_command) access.o ! ! readlink: readlink.o ! $(link_command) readlink.o ! ! $(kpathsea): $(objects) klibtool.version $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) $(INSTALL_LIBTOOL_LIBS) . lib$(library).la # All the objects depend on the klibtool configuration file. $(objects): klibtool.config ! # Create klibtool.version in the build tree ! klibtool.version: ! $(LN) $(srcdir)/kpathsea.version $@ ! ! # Make variable substitutions for paths.h. ! texmf.cnf: texmf.in texmf.sed ! sed -f texmf.sed $(srcdir)/texmf.in >$@ # The idea is to turn each var=value into s%@var@%value%g. Seems simpler # to put the substitutions in a file than to play shell quoting games. ! texmf.sed: Makefile ! rm -f texmf.sed echo $(makevars) \ | tr ' ' '\012' \ | sed -e 's/^/s%@/' -e 's/=/@%/' -e 's/$$/%/' -e 's/$$/g/' \ ! >$@ ! # Insert $TEXMF in as many of the hardwired paths as possible. We could ! # use the slightly different rule 's%$(texmf)/%\$$TEXMF/%g' and avoid ! # the need for the corrections below. But if texmf.in is edited ! # the heuristic may no longer work. ! echo 's%$(texmf)%\$$TEXMF%g' >>$@ ! # Now we repair the damage this may have caused. Don't replace the rhs of ! # the TEXMFMAIN assignment itself, then we'd end up with TEXMFMAIN = $TEXMF ! # and TEXMF = $TEXMFMAIN. The (commented) assignment of TEXMFLOCAL is ! # likely to have been mangled as well. ! echo '/^ *TEXMFMAIN[ =]/s%\$$TEXMF%$(texmf)%' >>$@ ! echo '/^[% ]*TEXMFLOCAL[ =]/s%\$$TEXMF%$(texmf)%' >>$@ ! # And fill in the last clause of TEXMFCNF with an absolute path. ! echo '/^ *TEXMFCNF[ =]/s%@web2c@%$(web2cdir)%' >>$@ # First null out comments and leading/trailing whitespace, then remove # lines that define invalid C identifiers, then remove blank lines and *************** *** 281,287 **** # No backslash-newline escapes in the long sed replacement because that # will turn into a space in the output. # ! # Without the $TEXMF/dbtex/etc. substitutions, if the cnf file was # not found, the compile-time paths would be of little use, since TEXMF # (etc.) wouldn't be defined. Alternatively, we could have a way to # specify compile-time default values for variables in general, but I --- 300,306 ---- # No backslash-newline escapes in the long sed replacement because that # will turn into a space in the output. # ! # Without the $TEXMF/prefix/etc. substitutions, if the cnf file was # not found, the compile-time paths would be of little use, since TEXMF # (etc.) wouldn't be defined. Alternatively, we could have a way to # specify compile-time default values for variables in general, but I *************** *** 289,363 **** # # The definition of DEFAULT_TEXMF (and other variables) # that winds up in the final paths.h will not be used. ! $(kpathsea_dir)/paths.h: texmf.cnf ! echo "/* paths.h: Generated from texmf.cnf `date`. */" >$@ sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' texmf.cnf \ ! | grep '^[ ]*[A-Z1_]*[ =]' \ | sed '/^$$/d' \ | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1@#define DEFAULT_\1 "\2"@#endif/' \ ! | tr @ '\012' \ ! | sed -e 's@\$$TEXMF@$(texmf)@g' \ ! -e 's@\$$dbtex@$(texinputdir)@g' \ ! -e 's@\$$dbfonts@$(fontdir)@g' \ ! -e 's@\$$VARTEXFONTS@/var/tex/fonts@g' \ ! -e 's@\$$prefix@$(prefix)@g' \ ! >>$@ # Need an extra definition for this. Dependencies included below. tex-file.o: $(KPATHSEA_CC) -DDEFAULT_FONT_SIZES='\"$(default_texsizes)\"' $(srcdir)/tex-file.c - # Yes, this depends on GNU Make. So? We have to omit optimizaiton - # for this file on the DEC Alpha with some versions of gcc. It's - # simpler to just omit optimization for all platforms. --jwe - hash.lo: - $(KPATHSEA_CC) $(srcdir)/hash.c $(filter-out -O%, $(ALL_CFLAGS)) - check: kpsewhich ./kpsewhich -expand-var '$$TEXMF' - install uninstall: - #install: install-exec install-data #uninstall: uninstall-exec uninstall-data install-exec: kpsewhich ! $(SHELL) $(top_srcdir)/../mkdirchain $(bindir) $(scriptdir) \ $(libdir) $(web2cdir) ! if grep 'original MakeTeXPK --' $(scriptdir)/MakeTeXPK >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/MakeTeXPK; then \ ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXPK $(scriptdir)/MakeTeXPK; \ else true; fi ! if grep 'original MakeTeXMF --' $(scriptdir)/MakeTeXMF >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/MakeTeXMF; then \ ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXMF $(scriptdir)/MakeTeXMF; \ else true; fi ! if grep 'original MakeTeXTFM --' $(scriptdir)/MakeTeXTFM >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/MakeTeXTFM; then \ ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXTFM $(scriptdir)/MakeTeXTFM; \ else true; fi ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXls-R $(scriptdir)/MakeTeXls-R ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXcommon $(web2cdir)/MakeTeXcommon ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXmkdir $(web2cdir)/MakeTeXmkdir ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames $(web2cdir)/MakeTeXnames ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames.cnf $(web2cdir)/MakeTeXnames.cnf ! $(INSTALL_SCRIPT) $(srcdir)/MakeTeXupdate $(web2cdir)/MakeTeXupdate $(INSTALL_LIBTOOL_LIBS) $(libdir) lib$(library).la $(INSTALL_LIBTOOL_PROG) $(bindir) kpsewhich uninstall-exec: rm -f $(bindir)/kpsewhich ! install-data: texmf.cnf kpathsea.info ! $(SHELL) $(top_srcdir)/../mkdirchain $(texmf) $(infodir) $(web2cdir) if grep 'original texmf.cnf --' $(web2cdir)/texmf.cnf >/dev/null 2>&1 \ || test ! -r $(web2cdir)/texmf.cnf; then \ $(INSTALL_DATA) texmf.cnf $(web2cdir)/texmf.cnf; \ else true; fi ! $(INSTALL_DATA) $(srcdir)/kpathsea.info $(infodir)/kpathsea.info ! $(SHELL) $(top_srcdir)/../mkdirchain $(includedir)/kpathsea for f in $(install_headers); do \ ! $(INSTALL_DATA) $$f $(includedir)/kpathsea/$$f; done ! rm -f $(includedir)/kpathsea/c-auto.h $(POSTINSTALL) test -r $(infodir)/dir || $(INSTALL_DATA) $(top_srcdir)/../dir $(infodir) if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ --- 308,399 ---- # # The definition of DEFAULT_TEXMF (and other variables) # that winds up in the final paths.h will not be used. ! # ! # We don't want to rewrite paths.h when we have only changed comments ! # in texmf.in that have no effect on paths.h, since that would cause ! # almost everything to be rebuilt. ! $(kpathsea_dir)/paths.h: stamp-paths ! stamp-paths: texmf.cnf ! echo "/* paths.h: Generated from texmf.cnf. */" >paths.tmp sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' texmf.cnf \ ! | grep '^[ ]*[A-Z0-9_]*[ =]' \ | sed '/^$$/d' \ | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1@#define DEFAULT_\1 "\2"@#endif/' \ ! | tr '@' '\012' \ ! | sed -e 's%\$$TEXMFMAIN%$(texmf)%g' \ ! -e 's%\$$TEXMF%$(texmf)%g' \ ! -e 's%\$$VARTEXFONTS%$(vartexfonts)%g' \ ! -e 's%\$$web2cdir%$(web2cdir)%g' \ ! -e 's%\$$prefix%$(prefix)%g' \ ! >>paths.tmp ! @if cmp -s paths.h paths.tmp 2>/dev/null; then \ ! echo "paths.h is unchanged"; \ ! else \ ! echo "cp paths.tmp paths.h"; \ ! cp paths.tmp paths.h; \ ! fi ! rm -f paths.tmp ! date >stamp-paths # Need an extra definition for this. Dependencies included below. tex-file.o: $(KPATHSEA_CC) -DDEFAULT_FONT_SIZES='\"$(default_texsizes)\"' $(srcdir)/tex-file.c check: kpsewhich ./kpsewhich -expand-var '$$TEXMF' #install: install-exec install-data #uninstall: uninstall-exec uninstall-data + install uninstall: + install-exec: kpsewhich ! $(SHELL) $(top_srcdir)/../mkinstalldirs $(bindir) $(scriptdir) \ $(libdir) $(web2cdir) ! if grep 'original mktexpk --' $(scriptdir)/mktexpk >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/mktexpk; then \ ! $(INSTALL_SCRIPT) $(srcdir)/mktexpk $(scriptdir)/mktexpk; \ ! else true; fi ! if grep 'original mktexmf --' $(scriptdir)/mktexmf >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/mktexmf; then \ ! $(INSTALL_SCRIPT) $(srcdir)/mktexmf $(scriptdir)/mktexmf; \ else true; fi ! if grep 'original mktextfm --' $(scriptdir)/mktextfm >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/mktextfm; then \ ! $(INSTALL_SCRIPT) $(srcdir)/mktextfm $(scriptdir)/mktextfm; \ else true; fi ! if grep 'original mktexlsr --' $(scriptdir)/mktexlsr >/dev/null 2>&1\ ! || test ! -r $(scriptdir)/mktexlsr; then \ ! $(INSTALL_SCRIPT) $(srcdir)/mktexlsr $(scriptdir)/mktexlsr; \ else true; fi ! $(INSTALL_SCRIPT) $(srcdir)/mktex.opt $(web2cdir)/mktex.opt ! $(INSTALL_SCRIPT) $(srcdir)/mktexdir $(web2cdir)/mktexdir ! $(INSTALL_SCRIPT) $(srcdir)/mktexdir.opt $(web2cdir)/mktexdir.opt ! $(INSTALL_SCRIPT) $(srcdir)/mktexnam $(web2cdir)/mktexnam ! $(INSTALL_SCRIPT) $(srcdir)/mktexnam.opt $(web2cdir)/mktexnam.opt ! $(INSTALL_SCRIPT) $(srcdir)/mktexupd $(web2cdir)/mktexupd $(INSTALL_LIBTOOL_LIBS) $(libdir) lib$(library).la $(INSTALL_LIBTOOL_PROG) $(bindir) kpsewhich + $(INSTALL_PROGRAM) kpsestat $(bindir) + $(INSTALL_PROGRAM) access $(bindir) + $(INSTALL_PROGRAM) readlink $(bindir) uninstall-exec: rm -f $(bindir)/kpsewhich ! install-data: texmf.cnf kpathsea.info install-man ! $(SHELL) $(top_srcdir)/../mkinstalldirs $(texmf) $(infodir) $(web2cdir) if grep 'original texmf.cnf --' $(web2cdir)/texmf.cnf >/dev/null 2>&1 \ || test ! -r $(web2cdir)/texmf.cnf; then \ $(INSTALL_DATA) texmf.cnf $(web2cdir)/texmf.cnf; \ else true; fi ! test -r kpathsea.info || cd $(srcdir) && for i in kpathsea.i*; do \ ! $(INSTALL_DATA) $$i $(infodir)/$$i; done ! # Should we install the headers? They are not just system-dependent, ! # which is bad enough, but even compiler-dependent. ! $(SHELL) $(top_srcdir)/../mkinstalldirs $(includedir)/kpathsea for f in $(install_headers); do \ ! $(INSTALL_DATA) $$f $(includedir)/kpathsea/; done ! rm -f $(includedir)/kpathsea/acconfig.h $(POSTINSTALL) test -r $(infodir)/dir || $(INSTALL_DATA) $(top_srcdir)/../dir $(infodir) if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ *************** *** 365,439 **** else true; fi uninstall-data: ! rm -f $(infodir)/kpathsea.info* ! for f in $(install_headers); do rm -f $(includedir)/$$f; done # distdir is used by other distributions; they define $(distdir). distdir: doc $(library).dvi $(library).h rm -rf $(distdir) mkdir -p $(distdir) ! ln $(ln_files) klibtool.version $(distdir) touch *.info* ! ln MakeTeX* *.info* *.texi $(library).aux $(library).cps $(distdir) ! ln BUGS CONFIGURE HIER PROJECTS *.ac $(distdir) touch kpathsea.h # to avoid .cps.h rule on Solaris cd $(distdir) && rm -f paths.h - cd $(distdir) && add-version $(version) version.c # I don't use this, but other programmers want it. acconfig.h is an # autoheader input file, not an includable C header. Bad name. $(library).h: always rm -f $@ ! ls -1 *.h | grep -v acconfig.h \ ! | sed -e 's,^,#include ,' >$@ touch -r `ls -1t *.h | tail +2 | head -1` $@ always: .PHONY: always # config.make -- autoconf rules to remake the Makefile, c-auto.h, etc. - ##ifdef HOSTNAME - ##ac_dir = $(gnu)/share/autoconf - ##autoconf = $(ac_dir)/acspecific.m4 $(ac_dir)/acgeneral.m4 $(ac_dir)/acsite.m4 - ##autoheader = $(ac_dir)/acconfig.h $(ac_dir)/autoheader.m4 - ## - ### I define $(autoconf) to acgeneral.m4 and the other Autoconf files, so - ### configure automatically gets remade in the sources with a new Autoconf - ### release. But it would be bad for installers with Autoconf to remake - ### configure (not to mention require Autoconf), so I take out the variable - ### $(autoconf) definition before release. - ### - ### BTW, xt.ac isn't really required for dvipsk or dviljk, but it doesn't - ### seem worth the trouble. - ### - ##configure_in = $(srcdir)/configure.in $(kpathsea_srcdir)/common.ac \ - ## $(kpathsea_srcdir)/withenable.ac $(kpathsea_srcdir)/xt.ac \ - ## $(kpathsea_srcdir)/acklibtool.m4 - ##$(srcdir)/configure: $(configure_in) $(autoconf) - ## cd $(srcdir) && autoconf - ##endif config.status: $(srcdir)/configure ! $(SHELL) $(srcdir)/configure --no-create ! Makefile: $(srcdir)/Makefile.in config.status $(SHELL) config.status # This rule isn't used for the top-level Makefile, but it doesn't hurt. # We don't depend on config.status because configure always rewrites # config.status, even when it doesn't change. Thus it might be newer # than c-auto.h when we don't need to remake the latter. c-auto.h: stamp-auto ! stamp-auto: $(srcdir)/c-auto.h.in $(SHELL) config.status ! date >$(srcdir)/stamp-auto - ##ifdef HOSTNAME - ### autoheader reads acconfig.h (and c-auto.h.top) automatically. - ##$(srcdir)/c-auto.h.in: $(srcdir)/stamp-auto.in - ##$(srcdir)/stamp-auto.in: $(configure_in) $(autoheader) \ - ## $(kpathsea_srcdir)/acconfig.h - ## cd $(srcdir) && autoheader --localdir=$(kpathsea_srcdir) - ## date >$(srcdir)/stamp-auto.in - ##endif # End of config.make. --- 401,451 ---- else true; fi uninstall-data: ! rm -f $(infodir)/kpathsea.i* ! # for f in $(install_headers); do rm -f $(includedir)/`basename $$f`; done # distdir is used by other distributions; they define $(distdir). distdir: doc $(library).dvi $(library).h rm -rf $(distdir) mkdir -p $(distdir) ! ln $(ln_files) kpathsea.version $(distdir) touch *.info* ! ln mktex* *.info* *.texi $(library).aux $(library).cps $(distdir) ! rm -f $(distdir)/*.1 $(distdir)/*.man ! ln *.man $(distdir) ! ln BUGS README.CONFIGURE HIER PROJECTS *.ac $(distdir) touch kpathsea.h # to avoid .cps.h rule on Solaris cd $(distdir) && rm -f paths.h # I don't use this, but other programmers want it. acconfig.h is an # autoheader input file, not an includable C header. Bad name. $(library).h: always rm -f $@ ! echo '#include ' >$@ ! ls -1 *.h \ ! | grep -v '\(acconfig\|config\|kpathsea\|win32lib\|c-auto\)\.h' \ ! | sed -e 's,^,#include ,' >>$@ touch -r `ls -1t *.h | tail +2 | head -1` $@ always: .PHONY: always # config.make -- autoconf rules to remake the Makefile, c-auto.h, etc. config.status: $(srcdir)/configure ! $(SHELL) $(srcdir)/configure --no-create $(enablemaintflag) ! Makefile: $(srcdir)/Makefile.in config.status ! $(SHELL) config.status # This rule isn't used for the top-level Makefile, but it doesn't hurt. # We don't depend on config.status because configure always rewrites # config.status, even when it doesn't change. Thus it might be newer # than c-auto.h when we don't need to remake the latter. c-auto.h: stamp-auto ! stamp-auto: $(srcdir)/c-auto.in $(SHELL) config.status ! date >stamp-auto # End of config.make. *************** *** 442,460 **** $(library).info: bugs.texi hier.texi install.texi unixtex.texi - ##ifdef HOSTNAME - ##INSTALL: install.texi - ## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ - ## add-info-toc $@ - ##BUGS: bugs.texi - ## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ - ## add-info-toc $@ - ##HIER: hier.texi - ## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ - ##unixtex.ftp: unixtex.texi - ## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ - ##doc: info HIER BUGS INSTALL unixtex.ftp - ##endif # clean.make -- cleaning. mostlyclean:: --- 454,459 ---- *************** *** 462,523 **** clean:: mostlyclean rm -f $(program) $(programs) squeeze lib$(library).* $(library).a *.bad ! rm -f *.dvi *.lj ! distclean:: clean rm -f Makefile ! rm -f config.status config.log config.cache c-auto.h ! # Although we can remake configure and c-auto.h.in, we don't remove # them, since many people may lack Autoconf. Use configclean for that. maintainer-clean:: distclean rm -f *.info* extraclean:: ! rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.pl *.tfm *.vf *.vpl *gf *pk ! rm -f *.mpx *.i *.s *~ *.orig *.rej *\#* rm -f CONTENTS.tex a.out core mfput.* texput.* mpout.* configclean: ! rm -f configure c-auto.h.in c-auto.h # End of clean.make. mostlyclean:: ! rm -f kpsewhich *.lo rm -rf PROF PROF_SHARED SHARED STATIC distclean:: ! rm -f paths.h texmf.cnf texmf.sed # rdepend.make -- rules for remaking the dependencies. - # - # Have to use -M, not -MM, since we use instead of - # "kpathsea/..." in the sources. But that means we have to remove the - # directory prefixes and all the system include files. - # And is generated, not part of the distribution. - # - # And, there's no need for any installer/user to ever run this, it can - # only cause trouble. So comment it out in the distribution. - # (It doesn't work when the source and build directories are different.) - ##ifndef c_auto_h_dir - ##c_auto_h_dir = . - ##endif - ##ifdef HOSTNAME - ##depend depend.make:: $(c_auto_h_dir)/c-auto.h \ - ## $(top_srcdir)/../make/rdepend.make - ## $(CC) -M $(ALL_CPPFLAGS) -I$(c_auto_h_dir) *.c \ - ## | sed -e 's,\(\.\./\)\+kpathsea/,$$(kpathsea_srcdir)/,g' \ - ## -e 's,$$(kpathsea_srcdir)/paths.h,$$(kpathsea_dir)/paths.h,g' \ - ## -e 's,/usr[^ ]* ,,g' \ - ## -e 's,/usr[^ ]*$$,,g' \ - ## -e 's,dvi2xx.o,dvilj.o dvilj2p.o dvilj4.o dvilj4l.o,' \ - ## | grep -v '^ *\\$$' \ - ## >depend.make - ### If kpathsea, we're making .lo library objects instead of .o's. - ## pwd | grep -v kpathsea >/dev/null \ - ## || (sed -e 's/\.o:/.lo:/' -e 's/kpsewhich.lo:/kpsewhich.o:/' \ - ## depend-tmp.make; mv depend-tmp.make depend.make) - ##.PHONY: depend - ##endif # Let's stick a rule for TAGS here, just in case someone wants them. # (We don't put them in the distributions, to keep them smaller.) --- 461,574 ---- clean:: mostlyclean rm -f $(program) $(programs) squeeze lib$(library).* $(library).a *.bad ! rm -f *.exe *.dvi *.lj ! distclean:: extraclean clean rm -f Makefile ! rm -f config.status config.log config.cache c-auto.h ! rm -f stamp-auto stamp-tangle stamp-otangle ! # Although we can remake configure and c-auto.in, we don't remove # them, since many people may lack Autoconf. Use configclean for that. maintainer-clean:: distclean rm -f *.info* extraclean:: ! rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.pl *.tfm *.vf *.vpl ! rm -f *.*pk *.*gf *.mpx *.i *.s *~ *.orig *.rej *\#* rm -f CONTENTS.tex a.out core mfput.* texput.* mpout.* configclean: ! rm -f configure c-auto.in c-auto.h stamp-* # End of clean.make. mostlyclean:: ! rm -f kpsewhich kpsestat access readlink *.lo klibtool.version rm -rf PROF PROF_SHARED SHARED STATIC distclean:: ! rm -f paths.h texmf.cnf texmf.sed stamp-paths ! ! # The manual pages ! manfiles = access.1 kpsestat.1 kpsewhich.1 readlink.1 \ ! mktexlsr.1 mktexmf.1 mktextfm.1 mktexpk.1 ! ! # man.make: Makefile fragment for web2c manual pages. ! ! #DITROFF = ditroff ! DITROFF = groff ! ! # The edited file always has extension .1; we change it when we install. ! .SUFFIXES: .man .1 .txt .ps .dvi ! .man.1: ! sed -f sedscript $< >$@ ! .1.dvi: ! $(DITROFF) -Tdvi -man $< >$@ ! .1.ps: ! $(DITROFF) -Tps -man $< >$@ ! .1.txt: ! $(DITROFF) -Tascii -man $< | col -b | expand >$@ ! ! all: $(manfiles) ! .PHONY: dw ! ! $(manfiles): sedscript ! ! manfiles: $(manfiles) ! dvi: $(manfiles:.1=.dvi) ! ps: $(manfiles:.1=.ps) ! txt: $(manfiles:.1=.txt) ! ! # We do not depend on the top-level Makefile since the top-level ! # Makefile can change for reasons that do not affect the man pages. ! # At present, all but VERSION should be unused. ! sedscript: ! cp /dev/null sedscript ! for f in $(kpathsea_dir)/paths.h; do \ ! sed -n -e '/^#define/s/#define[ ][ ]*\([A-Z_a-z][A-Z_a-z]*\)[ ][ ]*\(.*\)/s%@\1@%\2%/p' \ ! $$f \ ! | sed -e 's/"//g' -e 's/[ ]*\/\*[^*]*\*\///g' >>sedscript;\ ! done ! echo 's%@VERSION@%$(version)%' >>sedscript ! echo 's%@BINDIR@%$(bindir)%' >>sedscript ! echo 's%@INFODIR@%$(infodir)%' >>sedscript ! echo 's%@TEXINPUTDIR@%$(texinputdir)%' >>sedscript ! echo 's%@MFINPUTDIR@%$(mfinputdir)%' >>sedscript ! echo 's%@MPINPUTDIR@%$(mpinputdir)%' >>sedscript ! echo 's%@FONTDIR@%$(fontdir)%' >>sedscript ! echo 's%@FMTDIR@%$(fmtdir)%' >>sedscript ! echo 's%@BASEDIR@%$(basedir)%' >>sedscript ! echo 's%@MEMDIR@%$(memdir)%' >>sedscript ! echo 's%@TEXPOOLDIR@%$(texpooldir)%' >>sedscript ! echo 's%@MFPOOLDIR@%$(mfpooldir)%' >>sedscript ! echo 's%@MPPOOLDIR@%$(mppooldir)%' >>sedscript ! echo 's%@FONTMAPDIR@%$(dvipsdir)%' >>sedscript ! echo 's%@LOCALMODES@%$(localmodes)%' >>sedscript ! ! install-man: manfiles ! $(top_srcdir)/../mkinstalldirs $(mandir) ! for nameone in $(manfiles); do \ ! name=`basename $${nameone} .1`; \ ! $(INSTALL_DATA) $${name}.1 $(mandir)/$${name}.$(manext); \ ! done ! ! uninstall-man: ! for nameone in $(manfiles); do \ ! name=`basename $${nameone} .1`; \ ! rm -f $(mandir)/$${name}.$(manext); \ ! done ! ! install-data: install-man ! uninstall-data: uninstall-man ! ! mostlyclean:: ! rm -f *.1 ! ! clean:: ! rm -f sedscript ! ! # end of man.make # rdepend.make -- rules for remaking the dependencies. # Let's stick a rule for TAGS here, just in case someone wants them. # (We don't put them in the distributions, to keep them smaller.) *************** *** 530,1023 **** # End of rdepend.make. ! absolute.lo: absolute.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ ! ../kpathsea/c-pathch.h ! atou.lo: atou.c config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! basename.lo: basename.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h ! cnf.lo: cnf.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ ! ../kpathsea/c-ctype.h \ ! ../kpathsea/cnf.h ../kpathsea/db.h ../kpathsea/str-list.h \ ! ../kpathsea/hash.h ../kpathsea/line.h ../kpathsea/paths.h \ ! ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/tex-file.h ../kpathsea/variable.h ! concat.lo: concat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! concat3.lo: concat3.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! concatn.lo: concatn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/concatn.h \ ! ../kpathsea/c-vararg.h ! db.lo: db.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ ! ../kpathsea/c-fopen.h ../kpathsea/c-pathch.h ../kpathsea/db.h \ ! ../kpathsea/str-list.h ../kpathsea/hash.h ../kpathsea/line.h \ ! ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/readable.h ../kpathsea/tex-file.h ../kpathsea/variable.h ! debug.lo: debug.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! dir.lo: dir.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-dir.h \ ! ../kpathsea/c-stat.h \ ! ../kpathsea/hash.h ! elt-dirs.lo: elt-dirs.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/expand.h ../kpathsea/fn.h ../kpathsea/pathsearch.h \ ! ../kpathsea/str-llist.h ../kpathsea/xopendir.h ../kpathsea/c-dir.h ! expand.lo: expand.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/expand.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/tilde.h ../kpathsea/variable.h ! extend-fname.lo: extend-fname.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! file-p.lo: file-p.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ ! ../kpathsea/c-stat.h ! find-suffix.lo: find-suffix.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h ! fn.lo: fn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/fn.h ! fontmap.lo: fontmap.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ ! ../kpathsea/c-fopen.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ ! ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/str-list.h ../kpathsea/tex-file.h ! getopt.lo: getopt.c config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h getopt.h ! getopt1.lo: getopt1.c config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h getopt.h ! hash.lo: hash.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/hash.h \ ! ../kpathsea/str-list.h ! kdefault.lo: kdefault.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/default.h ! kpsewhich.o: kpsewhich.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ ! ../kpathsea/c-pathch.h ../kpathsea/expand.h ../kpathsea/getopt.h \ ! ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/proginit.h ../kpathsea/tex-file.h ../kpathsea/tex-glyph.h \ ! ../kpathsea/variable.h ! line.lo: line.c ! magstep.lo: magstep.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/magstep.h ! make-suffix.lo: make-suffix.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h ! path-elt.lo: path-elt.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/pathsearch.h ../kpathsea/str-llist.h ! pathsearch.lo: pathsearch.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ ! ../kpathsea/absolute.h ../kpathsea/expand.h ../kpathsea/db.h \ ! ../kpathsea/str-list.h ../kpathsea/pathsearch.h \ ! ../kpathsea/str-llist.h ../kpathsea/readable.h ../kpathsea/variable.h ! proginit.lo: proginit.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/proginit.h ../kpathsea/tex-file.h ! progname.lo: progname.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ ! ../kpathsea/c-pathch.h ../kpathsea/c-stat.h \ ! ../kpathsea/pathsearch.h ../kpathsea/str-llist.h putenv.lo: putenv.c ! readable.lo: readable.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-stat.h \ ! ../kpathsea/readable.h ../kpathsea/tex-hush.h ../kpathsea/truncate.h ! rm-suffix.lo: rm-suffix.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! str-list.lo: str-list.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-list.h ! str-llist.lo: str-llist.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-llist.h ! strcasecmp.lo: strcasecmp.c config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h strstr.lo: strstr.c ! strtol.lo: strtol.c config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! tex-file.lo: tex-file.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ ! ../kpathsea/c-vararg.h ../kpathsea/cnf.h ../kpathsea/default.h \ ! ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ ! ../kpathsea/paths.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/tex-file.h ../kpathsea/tex-make.h ../kpathsea/variable.h ! tex-glyph.lo: tex-glyph.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ ! ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ ! ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ ! ../kpathsea/tex-glyph.h ../kpathsea/tex-file.h ../kpathsea/tex-make.h \ ! ../kpathsea/variable.h ! tex-hush.lo: tex-hush.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/pathsearch.h \ ! ../kpathsea/str-llist.h ../kpathsea/tex-hush.h ../kpathsea/variable.h ! tex-make.lo: tex-make.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ ! ../kpathsea/c-pathch.h ../kpathsea/concatn.h ../kpathsea/c-vararg.h \ ! ../kpathsea/db.h ../kpathsea/str-list.h ../kpathsea/fn.h \ ! ../kpathsea/magstep.h ../kpathsea/readable.h ../kpathsea/tex-make.h \ ! ../kpathsea/tex-file.h ../kpathsea/variable.h ! tilde.lo: tilde.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ ! ../kpathsea/tilde.h ! truncate.lo: truncate.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-namemx.h \ ! ../kpathsea/c-pathch.h ../kpathsea/c-pathmx.h ../kpathsea/truncate.h ! uppercasify.lo: uppercasify.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h ! variable.lo: variable.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ ! ../kpathsea/cnf.h ../kpathsea/fn.h ../kpathsea/variable.h ! version.lo: version.c ! xcalloc.lo: xcalloc.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! xfopen.lo: xfopen.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! xfseek.lo: xfseek.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! xftell.lo: xftell.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! xgetcwd.lo: xgetcwd.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathmx.h ! xmalloc.lo: xmalloc.c ! xopendir.lo: xopendir.c ../kpathsea/config.h c-auto.h \ ! ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xopendir.h \ ! ../kpathsea/c-dir.h ! xputenv.lo: xputenv.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ! xrealloc.lo: xrealloc.c ! xstat.lo: xstat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ ! ../kpathsea/c-stat.h ! xstrdup.lo: xstrdup.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ ! ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ ! ../kpathsea/c-memstr.h \ ! ../kpathsea/c-errno.h \ ! ../kpathsea/c-minmax.h \ ! ../kpathsea/c-limits.h \ ! ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ ! ../kpathsea/lib.h ../kpathsea/progname.h --- 581,1191 ---- # End of rdepend.make. ! absolute.lo: absolute.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-pathch.h \ ! $(kpathsea_srcdir)/c-ctype.h ! access.o: access.c \ ! $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h \ ! $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! atou.lo: atou.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! basename.lo: basename.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! cnf.lo: cnf.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/cnf.h $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h \ ! $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h $(kpathsea_dir)/paths.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h ! concat.lo: concat.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! concat3.lo: concat3.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! concatn.lo: concatn.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h ! db.lo: db.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/c-pathch.h \ ! $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/db.h \ ! $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h ! debug.lo: debug.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! dir.lo: dir.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-dir.h \ ! $(kpathsea_srcdir)/c-stat.h \ ! $(kpathsea_srcdir)/hash.h ! elt-dirs.lo: elt-dirs.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/fn.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/xopendir.h $(kpathsea_srcdir)/c-dir.h ! expand.lo: expand.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/pathsearch.h \ ! $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tilde.h $(kpathsea_srcdir)/variable.h \ ! $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h $(kpathsea_srcdir)/absolute.h ! extend-fname.lo: extend-fname.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! file-p.lo: file-p.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xstat.h $(kpathsea_srcdir)/c-stat.h ! find-suffix.lo: find-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h ! fn.lo: fn.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/fn.h ! fontmap.lo: fontmap.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/tex-file.h ! getopt.lo: getopt.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! getopt1.lo: getopt1.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h getopt.h ! hash.lo: hash.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/str-list.h ! kdefault.lo: kdefault.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/default.h ! kpsestat.o: kpsestat.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-stat.h ! kpsewhich.o: kpsewhich.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/getopt.h \ ! $(kpathsea_srcdir)/line.h $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-glyph.h \ ! $(kpathsea_srcdir)/variable.h ! line.lo: line.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/line.h ! magstep.lo: magstep.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/magstep.h ! make-suffix.lo: make-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h ! path-elt.lo: path-elt.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h ! pathsearch.lo: pathsearch.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/expand.h \ ! $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/pathsearch.h \ ! $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h ! proginit.lo: proginit.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h ! progname.lo: progname.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-pathch.h \ ! $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/c-stat.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/tex-file.h putenv.lo: putenv.c ! readable.lo: readable.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-stat.h \ ! $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-hush.h \ ! $(kpathsea_srcdir)/truncate.h ! readlink.o: readlink.c \ ! $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h \ ! $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathmx.h $(kpathsea_srcdir)/c-stat.h ! rm-suffix.lo: rm-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! str-list.lo: str-list.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/str-list.h ! str-llist.lo: str-llist.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/str-llist.h ! strcasecmp.lo: strcasecmp.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h strstr.lo: strstr.c ! strtol.lo: strtol.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! tex-file.lo: tex-file.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/c-vararg.h $(kpathsea_srcdir)/cnf.h \ ! $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/default.h $(kpathsea_srcdir)/expand.h \ ! $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_dir)/paths.h \ ! $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ ! $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-make.h $(kpathsea_srcdir)/variable.h ! tex-glyph.lo: tex-glyph.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/expand.h \ ! $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/pathsearch.h \ ! $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tex-glyph.h \ ! $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-make.h $(kpathsea_srcdir)/variable.h ! tex-hush.lo: tex-hush.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/pathsearch.h \ ! $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tex-hush.h $(kpathsea_srcdir)/variable.h ! tex-make.lo: tex-make.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ ! $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h \ ! $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/fn.h \ ! $(kpathsea_srcdir)/magstep.h $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-make.h \ ! $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h ! tilde.lo: tilde.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/tilde.h ! truncate.lo: truncate.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-namemx.h $(kpathsea_srcdir)/c-pathch.h \ ! $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/c-pathmx.h \ ! $(kpathsea_srcdir)/truncate.h ! uppercasify.lo: uppercasify.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h ! variable.lo: variable.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ ! $(kpathsea_srcdir)/cnf.h $(kpathsea_srcdir)/fn.h $(kpathsea_srcdir)/variable.h ! version.lo: version.c c-auto.h ! win32lib.lo: win32lib.c ! xcalloc.lo: xcalloc.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xfopen.lo: xfopen.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xfseek.lo: xfseek.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xftell.lo: xftell.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xgetcwd.lo: xgetcwd.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathmx.h ! xmalloc.lo: xmalloc.c \ ! $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h \ ! $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xopendir.lo: xopendir.c $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xopendir.h $(kpathsea_srcdir)/c-dir.h ! xputenv.lo: xputenv.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xrealloc.lo: xrealloc.c \ ! $(kpathsea_srcdir)/config.h c-auto.h \ ! $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h \ ! $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h ! xstat.lo: xstat.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xstat.h $(kpathsea_srcdir)/c-stat.h ! xstrdup.lo: xstrdup.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ ! $(kpathsea_srcdir)/c-unistd.h \ ! $(kpathsea_srcdir)/systypes.h \ ! $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ ! $(kpathsea_srcdir)/c-minmax.h \ ! $(kpathsea_srcdir)/c-limits.h \ ! $(kpathsea_srcdir)/c-proto.h \ ! $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ ! $(kpathsea_srcdir)/progname.h diff -cNr octave-2.0.11/kpathsea/NEWS octave-2.0.12/kpathsea/NEWS *** octave-2.0.11/kpathsea/NEWS Fri Feb 7 10:57:30 1997 --- octave-2.0.12/kpathsea/NEWS Sun Mar 15 13:16:23 1998 *************** *** 1,5 **** This file records noteworthy changes. ! 3.0 (7 February 1997) * Distribution terms changed to the GNU Library General Public License. * Default directory structure matches the TDS standard. The most --- 1,40 ---- This file records noteworthy changes. ! 3.2 (15 March 1998) ! * Brace expansion will accept the path separator as well as the comma, ! e.g., {foo:bar}. ! * For TeX, we only recognize one suffix, because there is no such thing ! as a canonical list of TeX suffixes. ! * We distinguish between two kinds of suffixes in the code: the standard ! suffixes which may be appended to filenames when searching; and the ! alternative suffixes which are never appended, but when found this ! prevents a search with one of the standard suffixes. ! * kpse_reset_program_name: change assumed program name, resets the search ! paths, so that searches will work as expected for the new name. ! * kpse_set_program_name: new function, replaces kpse_set_progname. ! * The MakeTeX* scripts have been renamed to mktex* forms. ! ! 3.1 (10 November 1997) ! * The support for multiple texmf trees is much improved. ! * New MakeTeX* scripts, based on teTeX's. These scripts now use ! heuristics to decide where generated files are placed and which ! permissions they should have. ! * The varfonts feature is enabled by default. ! * Some MSDOS/Win32 support added to the sources. ! * Change in searching algorithm: if a name doesn't have the default suffix ! we append it for the first search. Then we search for the bare name. ! Thus if you have foo.bar and foo.bar.tex, the latter will now be found ! first. Under the old system, you had to specify boo.bar.tex.tex to get ! foo.bar.tex instead of foo.bar. ! * Prepend the value of KPSE_DOT to relative paths from texmf.cnf if it ! defined in the environment. This means we can use . instead of ! $KPSE_DOT in paths. ! * Define brace expansion so that {a,b}{1,2} expands to a1:b1:a2:b2. This ! is different from how shells do it, and exploited in texmf.in. ! * Renamed texmf.cnf.in to texmf.in. ! * New value for debugging: DEBUG_VARS, equal to 64. ! * If a file format has no suffix, allow its long name as the argument to ! kpsewhich --format. ! 3.0 (7 February 1997) * Distribution terms changed to the GNU Library General Public License. * Default directory structure matches the TDS standard. The most diff -cNr octave-2.0.11/kpathsea/PROJECTS octave-2.0.12/kpathsea/PROJECTS *** octave-2.0.11/kpathsea/PROJECTS Sun Nov 24 13:35:02 1996 --- octave-2.0.12/kpathsea/PROJECTS Sat Feb 28 05:43:19 1998 *************** *** 1,5 **** Here are some ideas for improvements. If you would like to contribute, ! please send mail to me (kb@mail.tug.org) first. If the library is built shared, it would be nice if the binaries did not --- 1,5 ---- Here are some ideas for improvements. If you would like to contribute, ! please send mail to me (infovore@xs4all.nl) first. If the library is built shared, it would be nice if the binaries did not diff -cNr octave-2.0.11/kpathsea/README octave-2.0.12/kpathsea/README *** octave-2.0.11/kpathsea/README Sun Jun 2 06:19:35 1996 --- octave-2.0.12/kpathsea/README Tue Nov 18 05:03:27 1997 *************** *** 4,10 **** See `NEWS' for changes by release, `ChangeLog` for all changes. See `INSTALL' for installation instructions. See `BUGS' for bug reporting details. ! See `CONFIGURE' for details on running Autoconf-generated configure scripts. See `PROJECTS' for future improvements you might like to work on. Suggestions for improvements in either the library or the documentation, --- 4,10 ---- See `NEWS' for changes by release, `ChangeLog` for all changes. See `INSTALL' for installation instructions. See `BUGS' for bug reporting details. ! See `README.CONFIGURE' for details on running the configure scripts. See `PROJECTS' for future improvements you might like to work on. Suggestions for improvements in either the library or the documentation, diff -cNr octave-2.0.11/kpathsea/README.CONFIGURE octave-2.0.12/kpathsea/README.CONFIGURE *** octave-2.0.11/kpathsea/README.CONFIGURE Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/README.CONFIGURE Fri Apr 19 18:06:32 1996 *************** *** 0 **** --- 1,193 ---- + Contents: + + Basic Installation + Compilers and Options + Compiling For Multiple Architectures + Installation Names + Optional Features + Specifying the System Type + Sharing Defaults + Operation Controls + + + Basic Installation + ================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for + various system-dependent variables used during compilation. It uses + those values to create a `Makefile' in each directory of the package. + It may also create one or more `.h' files containing system-dependent + definitions. Finally, it creates a shell script `config.status' that + you can run in the future to recreate the current configuration, a file + `config.cache' that saves the results of its tests to speed up + reconfiguring, and a file `config.log' containing compiler output + (useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try + to figure out how `configure' could check whether to do them, and mail + diffs or instructions to the address given in the `README' so they can + be considered for the next release. If at some point `config.cache' + contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program + called `autoconf'. You only need `configure.in' if you want to change + it or regenerate `configure' using a newer version of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + + Compiling For Multiple Architectures + ==================================== + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their + own directory. To do this, you must use a version of `make' that + supports the `VPATH' variable, such as GNU `make'. `cd' to the + directory where you want the object files and executables to go and run + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another + architecture. + + Installation Names + ================== + + By default, `make install' will install the package's files in + `/usr/local/bin', `/usr/local/man', etc. You can specify an + installation prefix other than `/usr/local' by giving `configure' the + option `--prefix=PATH'. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you + give `configure' the option `--exec-prefix=PATH', the package will use + PATH as the prefix for installing programs and libraries. + Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give + options like `--bindir=PATH' to specify different values for particular + kinds of files. Run `configure --help' for a list of the directories + you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Optional Features + ================= + + Some packages pay attention to `--enable-FEATURE' options to + `configure', where FEATURE indicates an optional part of the package. + They may also pay attention to `--with-PACKAGE' options, where PACKAGE + is something like `gnu-as' or `x' (for the X Window System). The + `README' should mention any `--enable-' and `--with-' options that the + package recognizes. + + For packages that use the X Window System, `configure' can usually + find the X include and library files automatically, but if it doesn't, + you can use the `configure' options `--x-includes=DIR' and + `--x-libraries=DIR' to specify their locations. + + Specifying the System Type + ========================== + + There may be some features `configure' can not figure out + automatically, but needs to determine by the type of host the package + will run on. Usually `configure' can figure that out, but if it prints + a message saying it can not guess the host type, give it the + `--host=TYPE' option. TYPE can either be a short name for the system + type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + + See the file `config.sub' for the possible values of each field. If + `config.sub' isn't included in this package, then this package doesn't + need to know the host type. + + If you are building compiler tools for cross-compiling, you can also + use the `--target=TYPE' option to select the type of system they will + produce code for and the `--build=TYPE' option to select the type of + system on which you are compiling the package. + + Sharing Defaults + ================ + + If you want to set default values for `configure' scripts to share, + you can create a site shell script called `config.site' that gives + default values for variables like `CC', `cache_file', and `prefix'. + `configure' looks for `PREFIX/share/config.site' if it exists, then + `PREFIX/etc/config.site' if it exists. Or, you can set the + `CONFIG_SITE' environment variable to the location of the site script. + A warning: not all `configure' scripts look for a site script. + + Operation Controls + ================== + + `configure' recognizes the following options to control how it + operates. + + `--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + + `--help' + Print a summary of the options to `configure', and exit. + + `--quiet' + `--silent' + `-q' + Do not print messages saying which checks are being made. + + `--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + + `--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `configure' also accepts some other, not widely useful, options. + diff -cNr octave-2.0.11/kpathsea/absolute.c octave-2.0.12/kpathsea/absolute.c *** octave-2.0.11/kpathsea/absolute.c Wed Jun 4 12:17:39 1997 --- octave-2.0.12/kpathsea/absolute.c Fri Dec 12 03:51:58 1997 *************** *** 21,31 **** #include #include - #ifdef DOSISH - #include /* for ISALPHA */ - #endif /* DOS */ - - /* Sorry this is such a system-dependent mess, but I can't see any way to usefully generalize. */ --- 21,26 ---- *************** *** 38,45 **** #else /* not VMS */ boolean absolute = IS_DIR_SEP (*filename) #ifdef DOSISH ! || ISALPHA (*filename) && IS_DEVICE_SEP (filename[1]) #endif /* DOSISH */ #ifdef AMIGA /* Colon anywhere means a device. */ || strchr (filename, ':') --- 33,45 ---- #else /* not VMS */ boolean absolute = IS_DIR_SEP (*filename) #ifdef DOSISH ! /* Novell allows non-alphanumeric drive letters. */ ! || (*filename && IS_DEVICE_SEP (filename[1])) #endif /* DOSISH */ + #ifdef WIN32 + /* UNC names */ + || (*filename == '\\' && filename[1] == '\\') + #endif #ifdef AMIGA /* Colon anywhere means a device. */ || strchr (filename, ':') diff -cNr octave-2.0.11/kpathsea/access.c octave-2.0.12/kpathsea/access.c *** octave-2.0.11/kpathsea/access.c Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/access.c Thu Jan 29 11:53:35 1998 *************** *** 0 **** --- 1,94 ---- + /* access -- test for access permissions of a file. + Copyright (C) 1997 Olaf Weber. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + #include + #include + #include + + #ifdef WIN32 + #include + #endif + + /* + * access mode x + * Returns 0 is x exists and can be accessed in accordance with mode. + * We use this rather than test because test looks at the permissions + * only, which doesn't take read-only file systems into account. + */ + + int main (argc, argv) + int argc; + char *argv[]; + { + int mode; + int status; + char * i; + + if (argc > 1 && strcmp (argv[1], "--help") == 0) { + printf("Usage: %s -MODE FILE\n\ + MODE is one or more of rwx. Exit successfully if FILE exists and is\n\ + readable (r), writable (w), or executable (x).\n\ + \n\ + --help display this help and exit\n\ + --version output version information and exit\n\n", argv[0]); + fputs ("Email bug reports to tex-k@mail.tug.org.\n", stdout); + exit(0); + } else if (argc > 1 && strcmp (argv[1], "--version") == 0) { + printf ("%s (%s)\n\ + Copyright (C) 1997 Olaf Weber.\n\ + There is NO warranty. You may redistribute this software\n\ + under the terms of the GNU General Public License\n\ + For more information about these matters, see the file named COPYING.\n\ + Primary author of %s: Olaf Weber.\n", + argv[0], KPSEVERSION, argv[0]); + exit (0); + } + + /* insist on exactly two args */ + if (argc != 3) { + fprintf(stderr, "%s: Need exactly two arguments.\n\ + Try `access --help' for more information.\n", argv[0]); + exit(1); + } + + /* The option parsing is somewhat primitive: '-' need not be the first + * character of the mode. The mode must be specified in a single + * option. Both of these may change. + */ + mode = 0; + i = argv[1]; + for (i = argv[1]; *i; ++i) + switch (*i) { + case 'r': mode |= R_OK; break; + case 'w': mode |= W_OK; break; + case 'x': mode |= X_OK; break; + case '-': if (i == argv[1]) break; + default: + fprintf(stderr, "%s: Invalid MODE.\n", argv[0]); + exit(1); + } + + status = access(argv[2], mode); + + /* fail if the access call failed */ + if (status != 0) { + return 1; + } + + /* otherwise, succeed */ + return 0; + } diff -cNr octave-2.0.11/kpathsea/access.man octave-2.0.12/kpathsea/access.man *** octave-2.0.11/kpathsea/access.man Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/access.man Thu Jan 29 12:05:31 1998 *************** *** 0 **** --- 1,64 ---- + .TH ACCESS 1 "4 January 1998" "Kpathsea @VERSION@" + .\"===================================================================== + .if n .ds MP MetaPost + .if t .ds MP MetaPost + .if n .ds MF Metafont + .if t .ds MF M\s-2ETAFONT\s0 + .if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP + .if n .ds TX TeX + .ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff + .el .ds OX TeX\" for nroff + .\" the same but obliqued + .\" BX definition must follow TX so BX can use TX + .if t .ds BX \fRB\s-2IB\s0\fP\*(TX + .if n .ds BX BibTeX + .\" LX definition must follow TX so LX can use TX + .if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX + .if n .ds LX LaTeX + .\"===================================================================== + .SH NAME + access \- determine whether a file can be accessed + .SH SYNOPSIS + .B access + .I -mode + .I file + .\"===================================================================== + .SH DESCRIPTION + Exit successfully if + .I file + can be accessed with the specified mode. + .I mode + is one or more letters of + .IR rwx , + where + .I r + is for readable, + .I w + is for writable, and + .I x + is for executable. + .PP + The difference between + .B access + and + .B test + is that the latter looks at the permission bits, while the former + checks using the + .BR access (2) + system call. This makes a difference when file systems have been + mounted read-only. + .\"===================================================================== + .SH OPTIONS + .B access + accepts the following additional options: + .TP + .B --help + .rb + Print help message and exit. + .TP + .B --version + .rb + Print version information and exit. + .\"===================================================================== + .SH "SEE ALSO" + .BR access (2) diff -cNr octave-2.0.11/kpathsea/acconfig.h octave-2.0.12/kpathsea/acconfig.h *** octave-2.0.11/kpathsea/acconfig.h Thu Jan 16 14:34:45 1997 --- octave-2.0.12/kpathsea/acconfig.h Tue Feb 10 14:44:32 1998 *************** *** 1,9 **** ! /* acconfig.h -- used by autoheader when generating c-auto.h.in. If you're thinking of editing acconfig.h to fix a configuration problem, don't. Edit the c-auto.h file created by configure, instead. Even better, fix configure to give the right answer. */ /* kpathsea/configure.in tests for these functions with kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know about that macro. Since the shared library stuff is all preliminary --- 1,14 ---- ! /* acconfig.h -- used by autoheader when generating c-auto.in. If you're thinking of editing acconfig.h to fix a configuration problem, don't. Edit the c-auto.h file created by configure, instead. Even better, fix configure to give the right answer. */ + /* kpathsea: the version string. */ + #define KPSEVERSION "REPLACE-WITH-KPSEVERSION" + /* web2c: the version string. */ + #define WEB2CVERSION "REPLACE-WITH-WEB2CVERSION" + /* kpathsea/configure.in tests for these functions with kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know about that macro. Since the shared library stuff is all preliminary *************** *** 17,28 **** --- 22,41 ---- @TOP@ + /* Define if your compiler understands prototypes. */ + #undef HAVE_PROTOTYPES + /* Define if your putenv doesn't waste space when the same environment variable is assigned more than once, with different (malloced) values. This is true only on NetBSD/FreeBSD, as far as I know. See xputenv.c. */ #undef SMART_PUTENV + /* Define if getcwd if implemented using fork or vfork. Let me know + if you have to add this by hand because configure failed to detect + it. */ + #undef GETCWD_FORKS + /* Define if you are using GNU libc or otherwise have global variables `program_invocation_name' and `program_invocation_short_name'. */ #undef HAVE_PROGRAM_INVOCATION_NAME *************** *** 59,64 **** --- 72,78 ---- #define EDITOR "vi +%d %s" /* web2c: Window system support for Metafont. */ + #undef EPSFWIN #undef HP2627WIN #undef MFTALKWIN #undef NEXTWIN diff -cNr octave-2.0.11/kpathsea/acklibtool.m4 octave-2.0.12/kpathsea/acklibtool.m4 *** octave-2.0.11/kpathsea/acklibtool.m4 Thu Jun 5 16:27:07 1997 --- octave-2.0.12/kpathsea/acklibtool.m4 Fri Apr 24 22:49:00 1998 *************** *** 1,5 **** dnl Autoconf support for Klibtool. ! dnl $Id: acklibtool.m4,v 1.2 1997/06/05 21:27:07 jwe Exp $ dnl dnl dnl Find the script, check for subprogs, etc. --- 1,5 ---- dnl Autoconf support for Klibtool. ! dnl $Id: acklibtool.m4,v 1.5 1997/10/03 11:38:16 olaf Exp $ dnl dnl dnl Find the script, check for subprogs, etc. *************** *** 20,50 **** exit 1 fi # - ## For use with Octave, ignore these options and only build static libraries. - ## ## Argument parsing: we support --enable-shared and --enable-static. ! ##AC_ARG_ENABLE(shared, ! ##[ --enable-shared build shared libraries [default=no]],, ! ## enable_shared=no) ! ### ! ##AC_ARG_ENABLE(static, ! ##[ --enable-static build shared libraries [default=yes]],, ! ## enable_static=yes) ! enable_shared=no ! enable_static=yes # # If they explicitly --enable-static, make that the link type. # More commonly, they will just --enable-shared; make that the link type. ! # In either case, prepend to any existing LIBTOOL_OBJTYPES. # If they really want to build both and link statically, # then they set LIBTOOL_OBJTYPES to SHARED and --enable-static. test "$enable_static" = yes && LIBTOOL_OBJTYPES=STATIC:$LIBTOOL_OBJTYPES ! test "$enable_shared" = yes && LIBTOOL_OBJTYPES=SHARED:$LIBTOOL_OBJTYPES # Don't bother to remove the trailing :, it'll be ignored. # ## Finally: Run the klibtool configure command. LIBTOOL_OBJTYPES=$LIBTOOL_OBJTYPES RANLIB=$RANLIB \ ! $LIBTOOL --config-dir $ac_aux_dir configure "$host" AC_MSG_RESULT($LIBTOOL_OBJTYPES) ])dnl dnl --- 20,49 ---- exit 1 fi # ## Argument parsing: we support --enable-shared and --enable-static. ! AC_ARG_ENABLE(shared, ! [ --enable-shared build shared libraries [default=no]],, ! enable_shared=no) ! # ! AC_ARG_ENABLE(static, ! [ --enable-static build static libraries [default=yes]],, ! enable_static=yes) # # If they explicitly --enable-static, make that the link type. # More commonly, they will just --enable-shared; make that the link type. ! # If they --disable-static, implicitly --enable-shared. ! # In any case, prepend to any existing LIBTOOL_OBJTYPES. # If they really want to build both and link statically, # then they set LIBTOOL_OBJTYPES to SHARED and --enable-static. test "$enable_static" = yes && LIBTOOL_OBJTYPES=STATIC:$LIBTOOL_OBJTYPES ! (test "$enable_shared" = yes \ ! || test "$enable_static" = no) \ ! && LIBTOOL_OBJTYPES=SHARED:$LIBTOOL_OBJTYPES # Don't bother to remove the trailing :, it'll be ignored. # ## Finally: Run the klibtool configure command. LIBTOOL_OBJTYPES=$LIBTOOL_OBJTYPES RANLIB=$RANLIB \ ! $LIBTOOL --source-dir $ac_aux_dir --config-dir . configure "$host" AC_MSG_RESULT($LIBTOOL_OBJTYPES) ])dnl dnl diff -cNr octave-2.0.11/kpathsea/bugs.texi octave-2.0.12/kpathsea/bugs.texi *** octave-2.0.11/kpathsea/bugs.texi Tue Jan 21 13:02:52 1997 --- octave-2.0.12/kpathsea/bugs.texi Thu Mar 5 11:24:24 1998 *************** *** 211,219 **** @vindex KPATHSEA_DEBUG @vindex kpathsea_debug You can also set the environment variable @code{KPATHSEA_DEBUG}; in this ! case, you should use the numbers below. Also, if you run the program ! under a debugger and set the variable @code{kpathsea_debug}, Also use ! the numbers below @kindex -1 @r{debugging value} In any case, by far the simplest value to use is @samp{-1}, which will --- 211,219 ---- @vindex KPATHSEA_DEBUG @vindex kpathsea_debug You can also set the environment variable @code{KPATHSEA_DEBUG}; in this ! case, you should use the numbers below. If you run the program under a ! debugger and set the variable @code{kpathsea_debug}, also use the numbers ! below. @kindex -1 @r{debugging value} In any case, by far the simplest value to use is @samp{-1}, which will *************** *** 283,288 **** --- 283,308 ---- @file{texmf.cnf} and @file{texfonts.map}), or just the first (as with most lookups). This can help you correlate what Kpathsea is doing with what is in your input file. + + @item KPSE_DEBUG_VARS @r{(64)} + Report the value of each variable Kpathsea looks up. This is useful for + verifying that variables do indeed obtain their correct values. + + @item GSFTOPK_DEBUG @r{(128)} + Activates debugging printout specific to @code{gsftopk} program. + + @item MAKETEX_DEBUG @r{(512)} + If you use the optional @code{mktex} programs instead of the + traditional shell scripts, this will report the name of the site file + (@file{mktex.cnf} by default) which is read, directories created by + @code{mktexdir}, the full path of the @file{ls-R} database built by + @code{mktexlsr}, font map searches, @code{MT_FEATURES} in effect, + parameters from @code{mktexnam}, filenames added by + @code{mktexupd}, and some subsidiary commands run by the programs. + + @item MAKETEX_FINE_DEBUG @r{(1024)} + When the optional @code{mktex} programs are used, this will print + additional debugging info from functions internal to these programs. @end vtable @cindex @samp{kdebug:} *************** *** 354,362 **** @menu * Unable to find files:: If your program can't find fonts (or whatever). * Slow path searching:: If it takes forever to find anything. ! * Unable to generate fonts:: If MakeTeXPK fails. * TeX or Metafont failing:: Likely compiler bugs. * XtStrings:: When _XtStrings is undefined. * dlopen:: When dlopen is undefined. * ShellWidgetClass:: For dynamic linking troubles under OpenWindows. --- 374,383 ---- @menu * Unable to find files:: If your program can't find fonts (or whatever). * Slow path searching:: If it takes forever to find anything. ! * Unable to generate fonts:: If mktexpk fails. * TeX or Metafont failing:: Likely compiler bugs. + * Empty Makefiles:: When configure produces empty makefiles. * XtStrings:: When _XtStrings is undefined. * dlopen:: When dlopen is undefined. * ShellWidgetClass:: For dynamic linking troubles under OpenWindows. *************** *** 411,422 **** be searched for subdirectories if you didn't want it to be. @item ! If the fonts (or whatever) don't already exist, @code{MakeTeXPK} (or ! @code{MakeTeXMF} or @code{MakeTeXTFM}) will try to create them. If these rather complicated shell scripts fail, you'll eventually get an error message saying something like @samp{Can't find font @var{fontname}}. The best solution is to fix (or at least report) the ! bug in @code{MakeTeXPK}; the workaround is to generate the necessary fonts by hand with Metafont, or to grab them from a CTAN site (@pxref{unixtex.ftp}). --- 432,443 ---- be searched for subdirectories if you didn't want it to be. @item ! If the fonts (or whatever) don't already exist, @code{mktexpk} (or ! @code{mktexmf} or @code{mktextfm}) will try to create them. If these rather complicated shell scripts fail, you'll eventually get an error message saying something like @samp{Can't find font @var{fontname}}. The best solution is to fix (or at least report) the ! bug in @code{mktexpk}; the workaround is to generate the necessary fonts by hand with Metafont, or to grab them from a CTAN site (@pxref{unixtex.ftp}). *************** *** 466,476 **** @cindex unable to generate fonts @cindex font generation failures ! This can happen if either @code{MakeTeXPK} hasn't been installed properly, or if the local installation of Metafont isn't correct. @cindex Metafont installation ! If @code{mf} is a command not found by @code{MakeTeXPK}, then you need to install Metafont (@pxref{unixtex.ftp}). @cindex Metafont using the wrong resolution --- 487,497 ---- @cindex unable to generate fonts @cindex font generation failures ! This can happen if either @code{mktexpk} hasn't been installed properly, or if the local installation of Metafont isn't correct. @cindex Metafont installation ! If @code{mf} is a command not found by @code{mktexpk}, then you need to install Metafont (@pxref{unixtex.ftp}). @cindex Metafont using the wrong resolution *************** *** 478,484 **** If Metafont runs, but generates fonts at the wrong resolution, you need to be sure the @samp{M} and @samp{D} lines in your Dvips configuration file match (@pxref{Config files,,, dvips, Dvips}). For example, if ! @code{MakeTeXPK} is generating 300@dmn{dpi} fonts, but you need 600@dmn{dpi} fonts, you should have: @example M ljfour --- 499,505 ---- If Metafont runs, but generates fonts at the wrong resolution, you need to be sure the @samp{M} and @samp{D} lines in your Dvips configuration file match (@pxref{Config files,,, dvips, Dvips}). For example, if ! @code{mktexpk} is generating 300@dmn{dpi} fonts, but you need 600@dmn{dpi} fonts, you should have: @example M ljfour *************** *** 536,542 **** @cindex system C compiler bugs Also, if you have trouble with a system C compiler, I advise trying the GNU C compiler. And vice versa, unfortunately; but in that case I also ! recommend reporting a bug to the GCC mailing list; @pxref{Bugs,,, gcc, Using and Porting GNU CC}. @cindex compiler bugs, finding --- 557,563 ---- @cindex system C compiler bugs Also, if you have trouble with a system C compiler, I advise trying the GNU C compiler. And vice versa, unfortunately; but in that case I also ! recommend reporting a bug to the GCC mailing list; see @ref{Bugs,,, gcc, Using and Porting GNU CC}. @cindex compiler bugs, finding *************** *** 546,553 **** through @TeX{}'s (or whatever program's) data structures. Things are not helped by all-too-common bugs in the debugger itself. Good luck. - @ignore @node Empty Makefiles @subsubsection Empty Makefiles --- 567,583 ---- through @TeX{}'s (or whatever program's) data structures. Things are not helped by all-too-common bugs in the debugger itself. Good luck. + @cindex ANSI C + @cindex HP-UX, compiling on + @cindex compiling on HP-UX + One known cause of trouble is the way arrays are handled. Some of the + Pascal arrays have a lower index other than 0, and the C code will take + the pointer to the allocated memory, subtract the lower index, and use + the resulting pointer for the array. While this trick often works, ANSI + C doesn't guarantee that it will. It it known to fail on HP-UX 10 + mchines when the native compiler is used, unless the @samp{+u} compiler + switch was specified. Using GCC will work on this platform as well. @node Empty Makefiles @subsubsection Empty Makefiles *************** *** 558,567 **** @cindex FreeBSD @code{configure} error @cindex Mach10 @code{configure} error @cindex AIX 4.1 @code{configure} error On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), @code{configure} ! cannot properly create the Makefiles. Instead, you get an error ! something like this: @example prompt$ ./configure --- 588,598 ---- @cindex FreeBSD @code{configure} error @cindex Mach10 @code{configure} error @cindex AIX 4.1 @code{configure} error + @cindex NeXT @code{sed} error On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), @code{configure} ! may fail to properly create the Makefiles. Instead, you get an error ! which looks something like this: @example prompt$ ./configure *************** *** 580,586 **** --- 611,627 ---- @code{/bin/sh}. You can get Bash from @url{ftp://prep.ai.mit.edu/pub/gnu} and mirrors. + Another possible cause (reported for NeXT) is a bug in the @code{sed} + command. In that case the error may look like this: + @example + Unrecognized command: \@@^ac_include make/paths.make@@r make/paths.make + @end example + + In this case, installing GNU @code{sed} should solve the problem. You + can get GNU @code{sed} from the same places as Bash. + + @ignore @node wchar_t @subsubsection @code{wchar_t} *************** *** 718,724 **** @item Statically link the @code{Xmu} library into the executable. @item Avoid using @code{Xmu} at all. If you are compiling ! Metafont, @pxref{Online Metafont graphics,,, web2c, Web2c}. If you are compiling Xdvi, see the @code{-DNOTOOL} option in @file{xdvik/INSTALL}. @item Ignore the errors. The binary runs fine regardless. --- 759,765 ---- @item Statically link the @code{Xmu} library into the executable. @item Avoid using @code{Xmu} at all. If you are compiling ! Metafont, see @ref{Online Metafont graphics,,, web2c, Web2c}. If you are compiling Xdvi, see the @code{-DNOTOOL} option in @file{xdvik/INSTALL}. @item Ignore the errors. The binary runs fine regardless. diff -cNr octave-2.0.11/kpathsea/c-auto.in octave-2.0.12/kpathsea/c-auto.in *** octave-2.0.11/kpathsea/c-auto.in Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/c-auto.in Thu Feb 12 23:47:08 1998 *************** *** 0 **** --- 1,121 ---- + /* c-auto.in. Generated automatically from configure.in by autoheader. */ + /* acconfig.h -- used by autoheader when generating c-auto.in. + + If you're thinking of editing acconfig.h to fix a configuration + problem, don't. Edit the c-auto.h file created by configure, + instead. Even better, fix configure to give the right answer. */ + + /* kpathsea: the version string. */ + #define KPSEVERSION "REPLACE-WITH-KPSEVERSION" + /* web2c: the version string. */ + #define WEB2CVERSION "REPLACE-WITH-WEB2CVERSION" + + /* kpathsea/configure.in tests for these functions with + kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know + about that macro. Since the shared library stuff is all preliminary + anyway, I decided not to change Autoheader, but rather to hack them + in here. */ + #undef HAVE_BASENAME + #undef HAVE_PUTENV + #undef HAVE_STRCASECMP + #undef HAVE_STRTOL + #undef HAVE_STRSTR + + + /* Define if the closedir function returns void instead of int. */ + #undef CLOSEDIR_VOID + + /* Define to empty if the keyword does not work. */ + #undef const + + /* Define if you have the ANSI C header files. */ + #undef STDC_HEADERS + + /* Define if your compiler understands prototypes. */ + #undef HAVE_PROTOTYPES + + /* Define if your putenv doesn't waste space when the same environment + variable is assigned more than once, with different (malloced) + values. This is true only on NetBSD/FreeBSD, as far as I know. See + xputenv.c. */ + #undef SMART_PUTENV + + /* Define if getcwd if implemented using fork or vfork. Let me know + if you have to add this by hand because configure failed to detect + it. */ + #undef GETCWD_FORKS + + /* Define if you are using GNU libc or otherwise have global variables + `program_invocation_name' and `program_invocation_short_name'. */ + #undef HAVE_PROGRAM_INVOCATION_NAME + + /* all: Define to enable running scripts when missing input files. */ + #define MAKE_TEX_MF_BY_DEFAULT 0 + #define MAKE_TEX_PK_BY_DEFAULT 0 + #define MAKE_TEX_TEX_BY_DEFAULT 0 + #define MAKE_TEX_TFM_BY_DEFAULT 0 + #define MAKE_OMEGA_OFM_BY_DEFAULT 0 + #define MAKE_OMEGA_OCP_BY_DEFAULT 0 + + /* Define if you have the basename function. */ + #undef HAVE_BASENAME + + /* Define if you have the bcopy function. */ + #undef HAVE_BCOPY + + /* Define if you have the getcwd function. */ + #undef HAVE_GETCWD + + /* Define if you have the getwd function. */ + #undef HAVE_GETWD + + /* Define if you have the putenv function. */ + #undef HAVE_PUTENV + + /* Define if you have the strcasecmp function. */ + #undef HAVE_STRCASECMP + + /* Define if you have the strstr function. */ + #undef HAVE_STRSTR + + /* Define if you have the strtol function. */ + #undef HAVE_STRTOL + + /* Define if you have the header file. */ + #undef HAVE_ASSERT_H + + /* Define if you have the header file. */ + #undef HAVE_DIRENT_H + + /* Define if you have the header file. */ + #undef HAVE_FLOAT_H + + /* Define if you have the header file. */ + #undef HAVE_LIMITS_H + + /* Define if you have the header file. */ + #undef HAVE_MEMORY_H + + /* Define if you have the header file. */ + #undef HAVE_NDIR_H + + /* Define if you have the header file. */ + #undef HAVE_PWD_H + + /* Define if you have the header file. */ + #undef HAVE_STDLIB_H + + /* Define if you have the header file. */ + #undef HAVE_STRING_H + + /* Define if you have the header file. */ + #undef HAVE_SYS_DIR_H + + /* Define if you have the header file. */ + #undef HAVE_SYS_NDIR_H + + /* Define if you have the header file. */ + #undef HAVE_SYS_PARAM_H + + /* Define if you have the header file. */ + #undef HAVE_UNISTD_H diff -cNr octave-2.0.11/kpathsea/c-dir.h octave-2.0.12/kpathsea/c-dir.h *** octave-2.0.11/kpathsea/c-dir.h Sat Sep 30 11:00:49 1995 --- octave-2.0.12/kpathsea/c-dir.h Fri Mar 13 16:50:13 1998 *************** *** 19,24 **** --- 19,30 ---- #ifndef KPATHSEA_C_DIR_H #define KPATHSEA_C_DIR_H + #ifdef WIN32 + + #include + + #else /* not WIN32 */ + /* Use struct dirent instead of struct direct. */ #ifdef HAVE_DIRENT_H #include *************** *** 40,44 **** --- 46,52 ---- #endif #endif /* not DIRENT */ + + #endif /* not WIN32 */ #endif /* not KPATHSEA_C_DIR_H */ diff -cNr octave-2.0.11/kpathsea/c-fopen.h octave-2.0.12/kpathsea/c-fopen.h *** octave-2.0.11/kpathsea/c-fopen.h Mon Oct 14 12:36:34 1996 --- octave-2.0.12/kpathsea/c-fopen.h Thu Mar 5 08:21:53 1998 *************** *** 34,56 **** /* How to open a binary file for reading: */ #ifndef FOPEN_RBIN_MODE ! #ifdef DOS ! #define FOPEN_RBIN_MODE "r+b" ! #else ! #if defined (VMS) || defined (VMCMS) || defined (OS2) || defined (WIN32) #define FOPEN_RBIN_MODE "rb" #else #define FOPEN_RBIN_MODE "r" ! #endif /* not (VM/CMS or VMS or OS2 or WIN32) */ ! #endif /* not DOS */ #endif /* not FOPEN_RBIN_MODE */ /* How to open a binary file for writing: */ #ifndef FOPEN_WBIN_MODE ! #ifdef DOS ! #define FOPEN_WBIN_MODE "w+b" ! #else ! #if defined (OS2) || defined (WIN32) #define FOPEN_WBIN_MODE "wb" #else #ifdef VMCMS --- 34,49 ---- /* How to open a binary file for reading: */ #ifndef FOPEN_RBIN_MODE ! #if defined (VMS) || defined (VMCMS) || defined(DOS) || defined (OS2) || defined (WIN32) || defined (__DJGPP__) || defined (__CYGWIN32__) #define FOPEN_RBIN_MODE "rb" #else #define FOPEN_RBIN_MODE "r" ! #endif /* not (VM/CMS or VMS or DOS or OS2 or WIN32 or __DJGPP__ or __CYGWIN32__) */ #endif /* not FOPEN_RBIN_MODE */ /* How to open a binary file for writing: */ #ifndef FOPEN_WBIN_MODE ! #if defined (DOS) || defined (OS2) || defined (WIN32) || defined (__DJGPP__) || defined (__CYGWIN32__) #define FOPEN_WBIN_MODE "wb" #else #ifdef VMCMS *************** *** 58,65 **** #else #define FOPEN_WBIN_MODE "w" #endif /* not VM/CMS */ ! #endif /* not (OS2 or WIN32) */ ! #endif /* not DOS */ #endif /* not FOPEN_WBIN_MODE */ #endif /* not C_FOPEN_H */ --- 51,87 ---- #else #define FOPEN_WBIN_MODE "w" #endif /* not VM/CMS */ ! #endif /* not (DOS or OS2 or WIN32 or DJGPP or CYGWIN32) */ #endif /* not FOPEN_WBIN_MODE */ + + /* How to open a binary file for appending: */ + #ifndef FOPEN_ABIN_MODE + #if defined (DOS) || defined (OS2) || defined (WIN32) || defined (__DJGPP__) || defined (__CYGWIN32__) + #define FOPEN_ABIN_MODE "ab" + #else + #define FOPEN_ABIN_MODE "a" + #endif /* not (DOS or OS2 or WIN32 or DJGPP or CYGWIN32) */ + #endif /* not FOPEN_ABIN_MODE */ + + /* How to switch an already open file handle to binary mode. + Used on DOSISH systems when we need to switch a standard + stream, such as stdin or stdout, to binary mode. */ + #include + #ifdef DOSISH + #include + #ifndef O_BINARY + #ifdef _O_BINARY + #define O_BINARY _O_BINARY + #endif + #endif + #if defined (__DJGPP__) || defined (WIN32) || defined (__CYGWIN32__) + #define SET_BINARY(f) setmode((f), O_BINARY) + #endif + #else /* not DOSISH */ + #ifndef O_BINARY + #define O_BINARY 0 + #endif + #define SET_BINARY(f) 0 + #endif /* not DOSISH */ #endif /* not C_FOPEN_H */ diff -cNr octave-2.0.11/kpathsea/c-pathch.h octave-2.0.12/kpathsea/c-pathch.h *** octave-2.0.11/kpathsea/c-pathch.h Fri Feb 7 10:57:30 1997 --- octave-2.0.12/kpathsea/c-pathch.h Mon Oct 20 00:33:11 1997 *************** *** 34,41 **** #define DIR_SEP '/' #define DIR_SEP_STRING "/" #define IS_DEVICE_SEP(ch) ((ch) == ':') ! #define NAME_BEGINS_WITH_DEVICE(name) \ ! (ISALPHA(*(name)) && IS_DEVICE_SEP((name)[1])) /* On DOS, it's good to allow both \ and / between directories. */ #define IS_DIR_SEP(ch) ((ch) == '/' || (ch) == '\\') #else --- 34,40 ---- #define DIR_SEP '/' #define DIR_SEP_STRING "/" #define IS_DEVICE_SEP(ch) ((ch) == ':') ! #define NAME_BEGINS_WITH_DEVICE(name) (*(name) && IS_DEVICE_SEP((name)[1])) /* On DOS, it's good to allow both \ and / between directories. */ #define IS_DIR_SEP(ch) ((ch) == '/' || (ch) == '\\') #else diff -cNr octave-2.0.11/kpathsea/c-proto.h octave-2.0.12/kpathsea/c-proto.h *** octave-2.0.11/kpathsea/c-proto.h Sun Dec 8 16:20:40 1996 --- octave-2.0.12/kpathsea/c-proto.h Sun Mar 15 13:02:01 1998 *************** *** 19,25 **** #ifndef KPATHSEA_C_PROTO_H #define KPATHSEA_C_PROTO_H ! #if !defined(WIN32) || (defined(_DLL) && !defined(_IMPORT)) #define DllImport #else #define DllImport __declspec(dllimport) --- 19,28 ---- #ifndef KPATHSEA_C_PROTO_H #define KPATHSEA_C_PROTO_H ! #if !defined(WIN32) ! #define DllImport ! #define __cdecl ! #elif (defined(_DLL) && !defined(_IMPORT)) || !defined(_DLL) #define DllImport #else #define DllImport __declspec(dllimport) *************** *** 30,36 **** definitions. Cf. from the GNU C library. P1H(void) also works for definitions of routines which take no args. */ ! #if __STDC__ #define AA(args) args /* For an arbitrary number; ARGS must be in parens. */ --- 33,39 ---- definitions. Cf. from the GNU C library. P1H(void) also works for definitions of routines which take no args. */ ! #ifdef HAVE_PROTOTYPES #define AA(args) args /* For an arbitrary number; ARGS must be in parens. */ *************** *** 40,45 **** --- 43,49 ---- #define P4H(p1,p2,p3,p4) (p1, p2, p3, p4) #define P5H(p1,p2,p3,p4,p5) (p1, p2, p3, p4, p5) #define P6H(p1,p2,p3,p4,p5,p6) (p1, p2, p3, p4, p5, p6) + #define P7H(p1,p2,p3,p4,p5,p6,p7) (p1, p2, p3, p4, p5, p6, p7) #define P1C(t1,n1)(t1 n1) #define P2C(t1,n1, t2,n2)(t1 n1, t2 n2) *************** *** 49,65 **** (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) #define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) \ (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) ! #else /* not __STDC__ */ #define AA(args) () ! #define P1H(p1) () #define P2H(p1, p2) () #define P3H(p1, p2, p3) () #define P4H(p1, p2, p3, p4) () #define P5H(p1, p2, p3, p4, p5) () #define P6H(p1, p2, p3, p4, p5, p6) () #define P1C(t1,n1) (n1) t1 n1; #define P2C(t1,n1, t2,n2) (n1,n2) t1 n1; t2 n2; --- 53,72 ---- (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) #define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) \ (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) + #define P7C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6, t7,n7) \ + (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7) ! #else /* not HAVE_PROTOTYPES */ #define AA(args) () ! #define P1H(p1) () #define P2H(p1, p2) () #define P3H(p1, p2, p3) () #define P4H(p1, p2, p3, p4) () #define P5H(p1, p2, p3, p4, p5) () #define P6H(p1, p2, p3, p4, p5, p6) () + #define P7H(p1, p2, p3, p4, p5, p6, p7) () #define P1C(t1,n1) (n1) t1 n1; #define P2C(t1,n1, t2,n2) (n1,n2) t1 n1; t2 n2; *************** *** 70,76 **** t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; #define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) (n1,n2,n3,n4,n5,n6) \ t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; t6 n6; ! #endif /* not __STDC__ */ #endif /* not KPATHSEA_C_PROTO_H */ --- 77,86 ---- t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; #define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) (n1,n2,n3,n4,n5,n6) \ t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; t6 n6; + #define P7C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6, t7,n7) \ + (n1,n2,n3,n4,n5,n6,n7) \ + t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; t6 n6; t7 n7; ! #endif /* not HAVE_PROTOTYPES */ #endif /* not KPATHSEA_C_PROTO_H */ diff -cNr octave-2.0.11/kpathsea/c-stat.h octave-2.0.12/kpathsea/c-stat.h *** octave-2.0.11/kpathsea/c-stat.h Mon Oct 14 12:36:33 1996 --- octave-2.0.12/kpathsea/c-stat.h Wed Jan 28 13:25:34 1998 *************** *** 23,30 **** #include #ifdef WIN32 ! #include ! #define stat _stat #endif /* WIN32 */ /* POSIX predicates for testing file attributes. */ --- 23,29 ---- #include #ifdef WIN32 ! #include #endif /* WIN32 */ /* POSIX predicates for testing file attributes. */ diff -cNr octave-2.0.11/kpathsea/c-vararg.h octave-2.0.12/kpathsea/c-vararg.h *** octave-2.0.11/kpathsea/c-vararg.h Sat Sep 30 11:00:47 1995 --- octave-2.0.12/kpathsea/c-vararg.h Thu Jan 29 07:10:52 1998 *************** *** 19,31 **** #ifndef C_VARARG_H #define C_VARARG_H ! /* See `kpathsea/init-path.c' for an example of use. The idea is to say ! PVAR1(type1, parameter1, ap) in the function header, and then end ! the function with two }}'s. We do this to avoid having to specify ! the argument list (with types) twice -- once in the function header, ! and once in a (hypothetical) VA_START1. */ ! #if __STDC__ #include #define PVAR1H(p1) (p1, ...) --- 19,31 ---- #ifndef C_VARARG_H #define C_VARARG_H ! /* See function `init_path' in `kpathsea/tex-file.c' for an example of use. ! The idea is to say PVAR1C(type1, parameter1, ap) in the function header, ! and then end the function with two }}'s. We do this to avoid having to ! specify the argument list (with types) twice -- once in the function ! header, and once in a (hypothetical) VA_START1. */ ! #ifdef HAVE_PROTOTYPES #include #define PVAR1H(p1) (p1, ...) *************** *** 39,45 **** #define PVAR3C(t1, n1, t2, n2, t3, n3, ap) \ (t1 n1, t2 n2, t3 n3, ...) { va_list ap; va_start (ap, n3); ! #else /* not __STDC__ */ #include #define PVAR1H(p1) () --- 39,45 ---- #define PVAR3C(t1, n1, t2, n2, t3, n3, ap) \ (t1 n1, t2 n2, t3 n3, ...) { va_list ap; va_start (ap, n3); ! #else /* not HAVE_PROTOTYPES */ #include #define PVAR1H(p1) () *************** *** 56,61 **** (va_alist) va_dcl { t1 n1; t2 n2; t3 n3; va_list ap; va_start (ap); \ n1 = va_arg (ap, t1); n2 = va_arg (ap, t2); \ n3 = va_arg (ap, t3); ! #endif /* not __STDC__ */ #endif /* not C_VARARG_H */ --- 56,61 ---- (va_alist) va_dcl { t1 n1; t2 n2; t3 n3; va_list ap; va_start (ap); \ n1 = va_arg (ap, t1); n2 = va_arg (ap, t2); \ n3 = va_arg (ap, t3); ! #endif /* not HAVE_PROTOTYPES */ #endif /* not C_VARARG_H */ diff -cNr octave-2.0.11/kpathsea/cnf.c octave-2.0.12/kpathsea/cnf.c *** octave-2.0.11/kpathsea/cnf.c Thu Feb 6 14:04:05 1997 --- octave-2.0.12/kpathsea/cnf.c Wed Nov 12 09:23:38 1997 *************** *** 94,101 **** prog[len] = 0; /* If we are running `prog', fine; otherwise, we're done. */ ! assert (program_invocation_short_name); ! if (!FILESTRCASEEQ (prog, program_invocation_short_name)) { free (prog); free (var); return; --- 94,101 ---- prog[len] = 0; /* If we are running `prog', fine; otherwise, we're done. */ ! assert (kpse_program_name); ! if (!FILESTRCASEEQ (prog, kpse_program_name)) { free (prog); free (var); return; *************** *** 143,149 **** #endif #endif ! #if !defined (ALLOW_SEMICOLON_IN_FILENAMES) && defined (unix) { string loc; for (loc = value; *loc; loc++) { --- 143,151 ---- #endif #endif ! /* DJGPP defines `unix' (for portability), but generates MSDOS programs. */ ! #ifndef __DJGPP__ ! #if !defined (ALLOW_SEMICOLON_IN_FILENAMES) && defined (unix) { string loc; for (loc = value; *loc; loc++) { *************** *** 152,157 **** --- 154,160 ---- } } #endif + #endif /* We want TEXINPUTS.prog to override plain TEXINPUTS. The simplest way is to put both in the hash table (so we don't have to write *************** *** 238,246 **** kpse_init_db (); } ! /* First look up NAME.`program_invocation_short_name', then NAME. */ ! assert (program_invocation_short_name); ! try = concat3 (name, ".", program_invocation_short_name); ret_list = hash_lookup (cnf_hash, try); if (ret_list) { ret = *ret_list; --- 241,249 ---- kpse_init_db (); } ! /* First look up NAME.`kpse_program_name', then NAME. */ ! assert (kpse_program_name); ! try = concat3 (name, ".", kpse_program_name); ret_list = hash_lookup (cnf_hash, try); if (ret_list) { ret = *ret_list; diff -cNr octave-2.0.11/kpathsea/common.ac octave-2.0.12/kpathsea/common.ac *** octave-2.0.11/kpathsea/common.ac Tue Jun 3 23:45:35 1997 --- octave-2.0.12/kpathsea/common.ac Tue Apr 14 21:43:34 1998 *************** *** 2,12 **** dnl use the m4 `sinclude' builtin instead of `include', since Autoconf dnl disables `include'.) dnl Write output here, instead of putting a zillion -D's on the command line. ! AC_CONFIG_HEADER(c-auto.h) AC_PROG_CC AC_PROG_INSTALL AC_PROG_MAKE_SET AC_HEADER_DIRENT --- 2,16 ---- dnl use the m4 `sinclude' builtin instead of `include', since Autoconf dnl disables `include'.) + dnl These configure scripts won't work with anything else. + AC_PREREQ(2.12) + dnl Write output here, instead of putting a zillion -D's on the command line. ! AC_CONFIG_HEADER(c-auto.h:c-auto.in) AC_PROG_CC AC_PROG_INSTALL + AC_PROG_LN_S AC_PROG_MAKE_SET AC_HEADER_DIRENT *************** *** 28,37 **** dnl If the list of functions here changes, also change acconfig.h. */ kb_AC_KLIBTOOL_REPLACE_FUNCS(basename putenv strcasecmp strtol strstr) ! AC_CHECK_FUNCS(bcopy getwd) AC_C_CONST # This is a GNU libc invention. AC_MSG_CHECKING(whether program_invocation_name is predefined) AC_CACHE_VAL(kb_cv_var_program_inv_name, --- 32,51 ---- dnl If the list of functions here changes, also change acconfig.h. */ kb_AC_KLIBTOOL_REPLACE_FUNCS(basename putenv strcasecmp strtol strstr) ! AC_CHECK_FUNCS(bcopy getcwd getwd) AC_C_CONST + # Check whether prototypes work. + AC_MSG_CHECKING(whether the compiler accepts prototypes) + AC_CACHE_VAL(kb_cv_c_prototypes, + [AC_TRY_COMPILE([#include ], [extern void foo(int i,...);], + kb_cv_c_prototypes=yes, kb_cv_c_prototypes=no)])dnl + AC_MSG_RESULT($kb_cv_c_prototypes) + if test "$kb_cv_c_prototypes" = yes; then + AC_DEFINE(HAVE_PROTOTYPES) + fi + # This is a GNU libc invention. AC_MSG_CHECKING(whether program_invocation_name is predefined) AC_CACHE_VAL(kb_cv_var_program_inv_name, *************** *** 105,109 **** AC_DEFINE(SMART_PUTENV) fi # Common --with and --enable options. ! sinclude(../kpathsea/withenable.ac) --- 119,143 ---- AC_DEFINE(SMART_PUTENV) fi + if test $ac_cv_func_getcwd = yes; then + # We only need to run this if we have getcwd. + AC_MSG_CHECKING(whether getcwd uses fork or vfork) + AC_CACHE_VAL(kb_cv_func_getcwd_forks, + [AC_TRY_RUN([ + int fork() { exit(1); } + int vfork() { exit(1); } + extern char *getcwd(); + char path[100]; + int main() { + getcwd(path,100); + return 0; + }], kb_cv_func_getcwd_forks=no, kb_cv_func_getcwd_forks=yes, + kb_cv_func_getcwd_forks=no)])dnl + AC_MSG_RESULT($kb_cv_func_getcwd_forks) + if test $kb_cv_func_getcwd_forks = yes; then + AC_DEFINE(GETCWD_FORKS) + fi + fi + # Common --with and --enable options. ! sinclude(withenable.ac) diff -cNr octave-2.0.11/kpathsea/config.guess octave-2.0.12/kpathsea/config.guess *** octave-2.0.11/kpathsea/config.guess Tue Jan 7 13:28:32 1997 --- octave-2.0.12/kpathsea/config.guess Fri Apr 24 01:42:43 1998 *************** *** 1,6 **** #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # # 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 --- 1,6 ---- #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. # # 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 *************** *** 52,62 **** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:*:*) # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 --- 52,104 ---- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! cat <dummy.s ! .globl main ! .ent main ! main: ! .frame \$30,0,\$26,0 ! .prologue 0 ! .long 0x47e03d80 # implver $0 ! lda \$2,259 ! .long 0x47e20c21 # amask $2,$1 ! srl \$1,8,\$2 ! sll \$2,2,\$2 ! sll \$0,3,\$0 ! addl \$1,\$0,\$0 ! addl \$2,\$0,\$0 ! ret \$31,(\$26),1 ! .end main ! EOF ! ${CC-cc} dummy.s -o dummy 2>/dev/null ! if test "$?" = 0 ; then ! ./dummy ! case "$?" in ! 7) ! UNAME_MACHINE="alpha" ! ;; ! 15) ! UNAME_MACHINE="alphaev5" ! ;; ! 14) ! UNAME_MACHINE="alphaev56" ! ;; ! 10) ! UNAME_MACHINE="alphapca56" ! ;; ! 16) ! UNAME_MACHINE="alphaev6" ! ;; ! esac ! fi ! rm -f dummy.s dummy ! echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 *************** *** 68,78 **** echo m68k-cbm-netbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) ! echo m68k-cbm-openbsd${UNAME_RELEASE} ! exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; --- 110,141 ---- echo m68k-cbm-netbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! arc64:OpenBSD:*:*) ! echo mips64el-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! arc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! hkmips:OpenBSD:*:*) ! echo mips-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! pmax:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! sgi:OpenBSD:*:*) ! echo mips-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! wgrisc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; + arm32:NetBSD:*:*) + echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; *************** *** 111,116 **** --- 174,191 ---- sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; *************** *** 118,136 **** echo m68k-atari-netbsd${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) ! echo m68k-atari-openbsd${UNAME_RELEASE} exit 0 ;; sun3*:NetBSD:*:*) echo m68k-sun-netbsd${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) ! echo m68k-sun-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:NetBSD:*:*) echo m68k-apple-netbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) ! echo m68k-apple-openbsd${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} --- 193,217 ---- echo m68k-atari-netbsd${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3*:NetBSD:*:*) echo m68k-sun-netbsd${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:NetBSD:*:*) echo m68k-apple-netbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvme68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvme88k:OpenBSD:*:*) ! echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} *************** *** 144,149 **** --- 225,233 ---- VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; + 2020:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) sed 's/^ //' << EOF >dummy.c int main (argc, argv) int argc; char **argv; { *************** *** 378,385 **** hp3[0-9][05]:NetBSD:*:*) echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! hp3[0-9][05]:OpenBSD:*:*) ! echo m68k-hp-openbsd${UNAME_RELEASE} exit 0 ;; i?86:BSD/386:*:* | *:BSD/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} --- 462,469 ---- hp3[0-9][05]:NetBSD:*:*) echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! hp300:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; i?86:BSD/386:*:* | *:BSD/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} *************** *** 394,400 **** echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) ! echo i386-pc-cygwin32 exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin32 --- 478,487 ---- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) ! echo ${UNAME_MACHINE}-pc-cygwin32 ! exit 0 ;; ! i*:MINGW*:*) ! echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin32 *************** *** 403,435 **** echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) ! echo `echo ${UNAME_MACHINE}|sed -e 's,-.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. ld_help_string=`ld --help 2>&1` ! if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then ! echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then ! echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then ! echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then ! echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then ! echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then ! echo "powerpc-unknown-linux-gnu" ; exit 0 ! elif test "${UNAME_MACHINE}" = "alpha" ; then ! echo alpha-unknown-linux-gnu ; exit 0 ! elif test "${UNAME_MACHINE}" = "sparc" ; then ! echo sparc-unknown-linux-gnu ; exit 0 elif test "${UNAME_MACHINE}" = "mips" ; then cat >dummy.c <&1` ! ld_supported_emulations=`echo $ld_help_string \ ! | sed -ne '/supported emulations:/!d ! s/[ ][ ]*/ /g ! s/.*supported emulations: *// ! s/ .*// ! p'` ! case "$ld_supported_emulations" in ! i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; ! i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; ! sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; ! armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; ! m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; ! elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; ! esac ! ! if test "${UNAME_MACHINE}" = "alpha" ; then ! sed 's/^ //' <dummy.s ! .globl main ! .ent main ! main: ! .frame \$30,0,\$26,0 ! .prologue 0 ! .long 0x47e03d80 # implver $0 ! lda \$2,259 ! .long 0x47e20c21 # amask $2,$1 ! srl \$1,8,\$2 ! sll \$2,2,\$2 ! sll \$0,3,\$0 ! addl \$1,\$0,\$0 ! addl \$2,\$0,\$0 ! ret \$31,(\$26),1 ! .end main ! EOF ! LIBC="" ! ${CC-cc} dummy.s -o dummy 2>/dev/null ! if test "$?" = 0 ; then ! ./dummy ! case "$?" in ! 7) ! UNAME_MACHINE="alpha" ! ;; ! 15) ! UNAME_MACHINE="alphaev5" ! ;; ! 14) ! UNAME_MACHINE="alphaev56" ! ;; ! 10) ! UNAME_MACHINE="alphapca56" ! ;; ! 16) ! UNAME_MACHINE="alphaev6" ! ;; ! esac ! ! objdump --private-headers dummy | \ ! grep ld.so.1 > /dev/null ! if test "$?" = 0 ; then ! LIBC="libc1" ! fi ! fi ! rm -f dummy.s dummy ! echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 elif test "${UNAME_MACHINE}" = "mips" ; then cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 rm -f dummy.c dummy else ! # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us ! # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. ! test ! -d /usr/lib/ldscripts/. \ ! && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 # Determine whether the default compiler is a.out or elf cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 rm -f dummy.c dummy else ! # Either a pre-BFD a.out linker (linux-gnuoldld) ! # or one that does not give us useful --help. ! # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. ! # If ld does not provide *any* "supported emulations:" ! # that means it is gnuoldld. ! echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" ! test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 ! ! case "${UNAME_MACHINE}" in ! i?86) ! VENDOR=pc; ! ;; ! *) ! VENDOR=unknown; ! ;; ! esac # Determine whether the default compiler is a.out or elf cat >dummy.c < main(argc, argv) ! int argc; ! char *argv[]; { #ifdef __ELF__ ! # ifdef __GLIBC__ ! # if __GLIBC__ >= 2 ! printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); ! # else ! printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ! # endif ! # else ! printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ! # endif #else ! printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); #endif return 0; } *************** *** 469,474 **** --- 630,643 ---- i?86:DYNIX/ptx:4*:*) echo i386-sequent-sysv4 exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} *************** *** 490,495 **** --- 659,669 ---- echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; + pc:*:*:*) + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; *************** *** 564,569 **** --- 738,746 ---- exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:*:6*) + echo mips-sony-newsos6 exit 0 ;; R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) if [ -d /usr/nec ]; then diff -cNr octave-2.0.11/kpathsea/config.h octave-2.0.12/kpathsea/config.h *** octave-2.0.11/kpathsea/config.h Fri Feb 6 15:47:27 1998 --- octave-2.0.12/kpathsea/config.h Fri Feb 6 06:59:31 1998 *************** *** 1,7 **** /* config.h: master configuration file, included first by all compilable source files (not headers). ! Copyright (C) 1993, 95, 96 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public --- 1,7 ---- /* config.h: master configuration file, included first by all compilable source files (not headers). ! Copyright (C) 1993, 95, 96, 97 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public *************** *** 20,34 **** #ifndef KPATHSEA_CONFIG_H #define KPATHSEA_CONFIG_H #ifdef WIN32 #define __STDC__ 1 ! #include "../win32/win32-compat.h" #endif /* not WIN32 */ /* System dependencies that are figured out by `configure'. If we are compiling standalone, we get our c-auto.h. Otherwise, the package containing us must provide this (unless it can somehow generate ours ! from c-auto.h.in). We use <...> instead of "..." so that the current cpp directory (i.e., kpathsea/) won't be searched. */ #include --- 20,59 ---- #ifndef KPATHSEA_CONFIG_H #define KPATHSEA_CONFIG_H + /* System defines are for non-Unix systems only. (Testing for all Unix + variations should be done in configure.) Presently the defines used + are: AMIGA DOS OS2 VMCMS VMS WIN32. I do not use any of these systems + myself; if you do, I'd be grateful for any changes. --kb@mail.tug.org */ + + /* If we have either DOS or OS2, we are DOSISH. */ + #if defined (DOS) || defined (OS2) || defined (WIN32) || defined(__MSDOS__) + #define DOSISH + #endif + + #if defined (DOSISH) + #define MONOCASE_FILENAMES /* case-insensitive filename comparisons */ + #endif + #ifdef WIN32 #define __STDC__ 1 ! #include #endif /* not WIN32 */ + #ifdef __DJGPP__ + #include /* for long filenames' stuff */ + #include /* for `getdisk' */ + #include /* for `setmode' */ + #endif + + /* Some drivers have partially integrated kpathsea changes. */ + #ifndef KPATHSEA + #define KPATHSEA 32 + #endif + /* System dependencies that are figured out by `configure'. If we are compiling standalone, we get our c-auto.h. Otherwise, the package containing us must provide this (unless it can somehow generate ours ! from c-auto.in). We use <...> instead of "..." so that the current cpp directory (i.e., kpathsea/) won't be searched. */ #include *************** *** 41,61 **** #include /* , boolean, string, etc. */ #include /* for program_invocation_*name */ - /* System defines are for non-Unix systems only. (Testing for all Unix - variations should be done in configure.) Presently the defines used - are: AMIGA DOS OS2 VMCMS VMS WIN32. I do not use any of these systems - myself; if you do, I'd be grateful for any changes. --kb@mail.tug.org */ - /* If we have either DOS or OS2, we are DOSISH. */ - #if defined (DOS) || defined (OS2) || defined (WIN32) - #define DOSISH - #endif - /* If you want to find subdirectories in a directory with non-Unix semantics (specifically, if a directory with no subdirectories does not have exactly two links), define this. */ ! #if !defined (DOSISH) && !defined (VMS) && !defined (VMCMS) #define ST_NLINK_TRICK #endif /* not DOS and not VMS and not VMCMS */ #ifdef AMIGA --- 66,80 ---- #include /* , boolean, string, etc. */ #include /* for program_invocation_*name */ /* If you want to find subdirectories in a directory with non-Unix semantics (specifically, if a directory with no subdirectories does not have exactly two links), define this. */ ! #if !defined (VMS) && !defined (VMCMS) ! #if !defined (DOSISH) || defined(__DJGPP__) ! /* Surprise! DJGPP returns st_nlink exactly like on Unix. */ #define ST_NLINK_TRICK + #endif /* either not DOSISH or __DJGPP__ */ #endif /* not DOS and not VMS and not VMCMS */ #ifdef AMIGA diff -cNr octave-2.0.11/kpathsea/config.sub octave-2.0.12/kpathsea/config.sub *** octave-2.0.11/kpathsea/config.sub Tue Dec 31 14:53:03 1996 --- octave-2.0.12/kpathsea/config.sub Fri Apr 24 01:42:43 1998 *************** *** 1,6 **** #! /bin/sh # Configuration validation subroutine script, version 1.1. ! # Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. --- 1,6 ---- #! /bin/sh # Configuration validation subroutine script, version 1.1. ! # Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. *************** *** 149,167 **** case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. ! tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ ! | arme[lb] | pyramid \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ ! | alpha | we32k | ns16k | clipper | i370 | sh \ ! | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ ! | pdp11 | mips64el | mips64orion | mips64orionel \ ! | sparc | sparclet | sparclite | sparc64) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. ! i[3456]86) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. --- 149,168 ---- case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. ! tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ ! | arme[lb] | pyramid | mn10200 | mn10300 \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ ! | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ ! | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ ! | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ ! | mipstx39 | mipstx39el \ ! | sparc | sparclet | sparclite | sparc64 | v850) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. ! i[34567]86) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *************** *** 170,183 **** exit 1 ;; # Recognize the basic CPU types with company name. ! vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ ! | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ ! | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ ! | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ ! | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ ! | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ ! | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ ! | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. --- 171,188 ---- exit 1 ;; # Recognize the basic CPU types with company name. ! vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ ! | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ ! | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ ! | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ ! | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ ! | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ ! | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ ! | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ ! | sparc64-* | mips64-* | mipsel-* \ ! | mips64el-* | mips64orion-* | mips64orionel-* \ ! | mipstx39-* | mipstx39el-* \ ! | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. *************** *** 204,212 **** amiga | amiga-*) basic_machine=m68k-cbm ;; ! amigados) basic_machine=m68k-cbm ! os=-amigados ;; amigaunix | amix) basic_machine=m68k-cbm --- 209,217 ---- amiga | amiga-*) basic_machine=m68k-cbm ;; ! amigaos | amigados) basic_machine=m68k-cbm ! os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm *************** *** 345,363 **** os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? ! i[3456]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; ! i[3456]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; ! i[3456]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; ! i[3456]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; --- 350,368 ---- os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? ! i[34567]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; ! i[34567]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; ! i[34567]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; ! i[34567]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; *************** *** 391,401 **** ;; mipsel*-linux*) basic_machine=mipsel-unknown ! os=-linux ;; mips*-linux*) basic_machine=mips-unknown ! os=-linux ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` --- 396,406 ---- ;; mipsel*-linux*) basic_machine=mipsel-unknown ! os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown ! os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` *************** *** 464,488 **** pc532 | pc532-*) basic_machine=ns32k-pc532 ;; ! pentium | p5) ! basic_machine=i586-intel ;; ! pentiumpro | p6) ! basic_machine=i686-intel ;; ! pentium-* | p5-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! pentiumpro-* | p6-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! k5) ! # We don't have specific support for AMD's K5 yet, so just call it a Pentium ! basic_machine=i586-amd ! ;; ! nexen) ! # We don't have specific support for Nexgen yet, so just call it a Pentium ! basic_machine=i586-nexgen ;; pn) basic_machine=pn-gould --- 469,491 ---- pc532 | pc532-*) basic_machine=ns32k-pc532 ;; ! pentium | p5 | k5 | nexen) ! basic_machine=i586-pc ;; ! pentiumpro | p6 | k6 | 6x86) ! basic_machine=i686-pc ;; ! pentiumii | pentium2) ! basic_machine=i786-pc ! ;; ! pentium-* | p5-* | k5-* | nexen-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! pentiumpro-* | p6-* | k6-* | 6x86-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! pentiumii-* | pentium2-*) ! basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould *************** *** 566,571 **** --- 569,580 ---- basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; *************** *** 585,591 **** basic_machine=vax-dec os=-vms ;; ! vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) --- 594,600 ---- basic_machine=vax-dec os=-vms ;; ! vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) *************** *** 615,621 **** # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. mips) ! if [ x$os = x-linux ]; then basic_machine=mips-unknown else basic_machine=mips-mips --- 624,630 ---- # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. mips) ! if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips *************** *** 680,688 **** -solaris) os=-solaris2 ;; ! -unixware* | svr4*) os=-sysv4 ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; --- 689,700 ---- -solaris) os=-solaris2 ;; ! -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; *************** *** 693,699 **** -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ! | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ --- 705,712 ---- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ! | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ! | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ *************** *** 701,707 **** | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ! | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) --- 714,720 ---- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ! | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) *************** *** 827,833 **** os=-sysv ;; *-cbm) ! os=-amigados ;; *-dg) os=-dgux --- 840,846 ---- os=-sysv ;; *-cbm) ! os=-amigaos ;; *-dg) os=-dgux diff -cNr octave-2.0.11/kpathsea/configure octave-2.0.12/kpathsea/configure *** octave-2.0.11/kpathsea/configure Tue Feb 24 16:31:08 1998 --- octave-2.0.12/kpathsea/configure Sun May 3 20:06:41 1998 *************** *** 12,22 **** ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help ! --without-maketexmf-default do not run MakeTeXMF if MF source missing" ac_help="$ac_help ! --without-maketexpk-default do not run MakeTeXPK if PK font missing" ac_help="$ac_help ! --without-maketextfm-default do not run MakeTeXTFM if TFM file missing" # Initialize some variables set by options. # The variables have the same names as the options, with --- 12,32 ---- ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help ! --enable-shared build shared libraries [default=no]" ac_help="$ac_help ! --enable-static build static libraries [default=yes]" ac_help="$ac_help ! --without-mktexmf-default do not run mktexmf if MF source missing" ! ac_help="$ac_help ! --without-mktexpk-default do not run mktexpk if PK font missing" ! ac_help="$ac_help ! --without-mktextfm-default do not run mktextfm if TFM file missing" ! ac_help="$ac_help ! --without-mkocp-default do not run mkocp if OCP file missing" ! ac_help="$ac_help ! --without-mkofm-default do not run mkofm if OFM file missing" ! ac_help="$ac_help ! --enable-multiplatform put executables in bin/PLATFORM" # Initialize some variables set by options. # The variables have the same names as the options, with *************** *** 525,537 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:535: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 535,556 ---- + KPSEVERSION=3.2 + + cat >> confdefs.h <&6 ! echo "configure:554: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 560,566 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:564: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 579,585 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:583: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 608,614 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:612: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 627,633 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:631: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 618,628 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 637,647 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 642,653 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:646: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:651: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 661,672 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:665: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:670: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 656,662 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 675,681 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** *** 671,677 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:675: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 690,696 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:694: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 728,734 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:732: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 747,753 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:751: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 777,784 **** test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:782: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 796,824 ---- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 + echo "configure:801: checking whether ln -s works" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + rm -f conftestdata + if ln -s X conftestdata 2>/dev/null + then + rm -f conftestdata + ac_cv_prog_LN_S="ln -s" + else + ac_cv_prog_LN_S=ln + fi + fi + LN_S="$ac_cv_prog_LN_S" + if test "$ac_cv_prog_LN_S" = "ln -s"; then + echo "$ac_t""yes" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:822: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 810,821 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:814: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> --- 850,861 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:854: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> *************** *** 823,829 **** DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else --- 863,869 ---- DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else *************** *** 848,854 **** # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:852: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 888,894 ---- # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:892: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 856,862 **** ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 907,913 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 889,895 **** else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:893: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 929,935 ---- else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:933: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 897,903 **** ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 948,954 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 931,937 **** fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:935: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 971,977 ---- fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:975: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** *** 946,958 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : --- 986,998 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : *************** *** 963,975 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : --- 1003,1015 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : *************** *** 992,1003 **** echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:996: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 1032,1043 ---- echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:1036: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 1005,1011 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 1045,1051 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1022,1028 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 1062,1068 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 1040,1046 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 1080,1086 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 1061,1067 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 1101,1107 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** *** 1072,1078 **** exit (0); } EOF ! if { (eval echo configure:1076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else --- 1112,1118 ---- exit (0); } EOF ! if { (eval echo configure:1116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else *************** *** 1096,1102 **** fi echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6 ! echo "configure:1100: checking whether closedir returns void" >&5 if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1136,1142 ---- fi echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6 ! echo "configure:1140: checking whether closedir returns void" >&5 if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1104,1116 **** ac_cv_func_closedir_void=yes else cat > conftest.$ac_ext < #include <$ac_header_dirent> int closedir(); main() { exit(closedir(opendir(".")) != 0); } EOF ! if { (eval echo configure:1114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_closedir_void=no else --- 1144,1156 ---- ac_cv_func_closedir_void=yes else cat > conftest.$ac_ext < #include <$ac_header_dirent> int closedir(); main() { exit(closedir(opendir(".")) != 0); } EOF ! if { (eval echo configure:1154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_closedir_void=no else *************** *** 1137,1153 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1141: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 1177,1193 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1181: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1179,1185 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1183: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1219,1225 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1223: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1212,1218 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1216: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 1252,1258 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1256: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** *** 1236,1242 **** # echo $ac_n "checking for libtool object types""... $ac_c" 1>&6 ! echo "configure:1240: checking for libtool object types" >&5 # ## Check that the klibtool script is in ac_aux_dir. Don't bother to # scan PATH. For one thing, if we found it somewhere there, we couldn't --- 1276,1282 ---- # echo $ac_n "checking for libtool object types""... $ac_c" 1>&6 ! echo "configure:1280: checking for libtool object types" >&5 # ## Check that the klibtool script is in ac_aux_dir. Don't bother to # scan PATH. For one thing, if we found it somewhere there, we couldn't *************** *** 1249,1290 **** exit 1 fi # - ## For use with Octave, ignore these options and only build static libraries. - ## ## Argument parsing: we support --enable-shared and --enable-static. ! ##AC_ARG_ENABLE(shared, ! ##[ --enable-shared build shared libraries [default=no]],, ! ## enable_shared=no) ! ### ! ##AC_ARG_ENABLE(static, ! ##[ --enable-static build shared libraries [default=yes]],, ! ## enable_static=yes) ! enable_shared=no ! enable_static=yes # # If they explicitly --enable-static, make that the link type. # More commonly, they will just --enable-shared; make that the link type. ! # In either case, prepend to any existing LIBTOOL_OBJTYPES. # If they really want to build both and link statically, # then they set LIBTOOL_OBJTYPES to SHARED and --enable-static. test "$enable_static" = yes && LIBTOOL_OBJTYPES=STATIC:$LIBTOOL_OBJTYPES ! test "$enable_shared" = yes && LIBTOOL_OBJTYPES=SHARED:$LIBTOOL_OBJTYPES # Don't bother to remove the trailing :, it'll be ignored. # ## Finally: Run the klibtool configure command. LIBTOOL_OBJTYPES=$LIBTOOL_OBJTYPES RANLIB=$RANLIB \ ! $LIBTOOL --config-dir $ac_aux_dir configure "$host" echo "$ac_t""$LIBTOOL_OBJTYPES" 1>&6 for ac_func in basename putenv strcasecmp strtol strstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1283: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 for ac_func in basename putenv strcasecmp strtol strstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1332: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1356,1362 ---- ; return 0; } EOF ! if { (eval echo configure:1360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1334,1348 **** ! for ac_func in bcopy getwd do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1341: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1390: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1414,1420 ---- ; return 0; } EOF ! if { (eval echo configure:1418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1391,1402 **** echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:1395: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1444: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else --- 1494,1500 ---- ; return 0; } EOF ! if { (eval echo configure:1498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else *************** *** 1466,1486 **** fi # This is a GNU libc invention. echo $ac_n "checking whether program_invocation_name is predefined""... $ac_c" 1>&6 ! echo "configure:1472: checking whether program_invocation_name is predefined" >&5 if eval "test \"`echo '$''{'kb_cv_var_program_inv_name'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* kb_cv_var_program_inv_name=yes else --- 1515,1568 ---- fi + # Check whether prototypes work. + echo $ac_n "checking whether the compiler accepts prototypes""... $ac_c" 1>&6 + echo "configure:1521: checking whether the compiler accepts prototypes" >&5 + if eval "test \"`echo '$''{'kb_cv_c_prototypes'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + int main() { + extern void foo(int i,...); + ; return 0; } + EOF + if { (eval echo configure:1533: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + kb_cv_c_prototypes=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + kb_cv_c_prototypes=no + fi + rm -f conftest* + fi + echo "$ac_t""$kb_cv_c_prototypes" 1>&6 + if test "$kb_cv_c_prototypes" = yes; then + cat >> confdefs.h <<\EOF + #define HAVE_PROTOTYPES 1 + EOF + + fi + # This is a GNU libc invention. echo $ac_n "checking whether program_invocation_name is predefined""... $ac_c" 1>&6 ! echo "configure:1554: checking whether program_invocation_name is predefined" >&5 if eval "test \"`echo '$''{'kb_cv_var_program_inv_name'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* kb_cv_var_program_inv_name=yes else *************** *** 1504,1510 **** # We don't actually need to run this if we don't have putenv, but it # doesn't hurt. echo $ac_n "checking whether putenv uses malloc""... $ac_c" 1>&6 ! echo "configure:1508: checking whether putenv uses malloc" >&5 if eval "test \"`echo '$''{'kb_cv_func_putenv_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1586,1592 ---- # We don't actually need to run this if we don't have putenv, but it # doesn't hurt. echo $ac_n "checking whether putenv uses malloc""... $ac_c" 1>&6 ! echo "configure:1590: checking whether putenv uses malloc" >&5 if eval "test \"`echo '$''{'kb_cv_func_putenv_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1512,1518 **** kb_cv_func_putenv_malloc=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then kb_cv_func_putenv_malloc=yes else --- 1647,1653 ---- exit (rstr1 == rstr2 ? 0 : 1); } EOF ! if { (eval echo configure:1651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then kb_cv_func_putenv_malloc=yes else *************** *** 1586,1635 **** fi # Common --with and --enable options. ! # Check whether --with-maketexmf-default or --without-maketexmf-default was given. ! if test "${with_maketexmf_default+set}" = set; then ! withval="$with_maketexmf_default" : else ! enableval=yes fi ! if test $enableval = yes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_MF_BY_DEFAULT 1 EOF fi ! # Check whether --with-maketexpk-default or --without-maketexpk-default was given. ! if test "${with_maketexpk_default+set}" = set; then ! withval="$with_maketexpk_default" : else ! enableval=yes fi ! if test $enableval = yes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_PK_BY_DEFAULT 1 EOF fi ! # Check whether --with-maketextfm-default or --without-maketextfm-default was given. ! if test "${with_maketextfm_default+set}" = set; then ! withval="$with_maketextfm_default" : else ! enableval=yes fi ! if test $enableval = yes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_TFM_BY_DEFAULT 1 EOF fi --- 1668,1859 ---- fi + if test $ac_cv_func_getcwd = yes; then + # We only need to run this if we have getcwd. + echo $ac_n "checking whether getcwd uses fork or vfork""... $ac_c" 1>&6 + echo "configure:1675: checking whether getcwd uses fork or vfork" >&5 + if eval "test \"`echo '$''{'kb_cv_func_getcwd_forks'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test "$cross_compiling" = yes; then + kb_cv_func_getcwd_forks=no + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null + then + kb_cv_func_getcwd_forks=no + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + kb_cv_func_getcwd_forks=yes + fi + rm -fr conftest* + fi + + fi + echo "$ac_t""$kb_cv_func_getcwd_forks" 1>&6 + if test $kb_cv_func_getcwd_forks = yes; then + cat >> confdefs.h <<\EOF + #define GETCWD_FORKS 1 + EOF + + fi + fi + # Common --with and --enable options. ! # Check whether --with-mktexmf-default or --without-mktexmf-default was given. ! if test "${with_mktexmf_default+set}" = set; then ! withval="$with_mktexmf_default" : else ! withval=yes fi ! if test "x$withval" = xyes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_MF_BY_DEFAULT 1 EOF fi ! # Check whether --with-mktexpk-default or --without-mktexpk-default was given. ! if test "${with_mktexpk_default+set}" = set; then ! withval="$with_mktexpk_default" : else ! withval=yes fi ! if test "x$withval" = xyes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_PK_BY_DEFAULT 1 EOF fi ! # Check whether --with-mktextfm-default or --without-mktextfm-default was given. ! if test "${with_mktextfm_default+set}" = set; then ! withval="$with_mktextfm_default" : else ! withval=yes fi ! if test "x$withval" = xyes; then cat >> confdefs.h <<\EOF #define MAKE_TEX_TFM_BY_DEFAULT 1 EOF fi + # Check whether --with-mkocp-default or --without-mkocp-default was given. + if test "${with_mkocp_default+set}" = set; then + withval="$with_mkocp_default" + : + else + withval=yes + fi + + if test "x$withval" = xyes; then + cat >> confdefs.h <<\EOF + #define MAKE_OMEGA_OCP_BY_DEFAULT 1 + EOF + + fi + # Check whether --with-mkofm-default or --without-mkofm-default was given. + if test "${with_mkofm_default+set}" = set; then + withval="$with_mkofm_default" + : + else + withval=yes + fi + + if test "x$withval" = xyes; then + cat >> confdefs.h <<\EOF + #define MAKE_OMEGA_OFM_BY_DEFAULT 1 + EOF + + fi + + + # Make sure we can run config.sub. + if $ac_config_sub sun4 >/dev/null 2>&1; then : + else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 + echo "configure:1797: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in + NONE) + case $nonopt in + NONE) + if host_alias=`$ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; + esac + + host=`$ac_config_sub $host_alias` + host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` + host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` + host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + echo "$ac_t""$host" 1>&6 + + # Check whether --enable-multiplatform or --disable-multiplatform was given. + if test "${enable_multiplatform+set}" = set; then + enableval="$enable_multiplatform" + if test "x$enable_multiplatform" = xyes && + test "x$bindir" = 'x${exec_prefix}/bin' + then + bindir="$bindir/$host" + fi + fi + + + echo $ac_n "checking where the main texmf tree is located""... $ac_c" 1>&6 + echo "configure:1829: checking where the main texmf tree is located" >&5 + texmfmain= + if test "x$datadir" != 'x${prefix}/share'; then + # First case, datadir is defined... + eval p=\"$datadir\" + if test -d "$p/texmf"; then + texmfmain="$p/texmf" + fi + else + # Second case, datadir is default... + if test "x$prefix" = "xNONE"; then + p="$ac_default_prefix" + else + eval p=\"$prefix\" + fi + for e in share/texmf lib/texmf texmf; do + if test -d "$p/$e"; then + texmfmain="$p/$e" + break + fi + done + fi + texmfmain=`echo "$texmfmain" | sed 's,//*,/,g'` + if test -n "$texmfmain"; then + echo "$ac_t"""$texmfmain"" 1>&6 + else + echo "$ac_t""not found" 1>&6 + fi + *************** *** 1734,1740 **** ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" ! trap 'rm -fr `echo "Makefile c-auto.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi --- 2126,2132 ---- if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi *************** *** 1996,1998 **** --- 2223,2226 ---- rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + date >stamp-auto diff -cNr octave-2.0.11/kpathsea/configure.in octave-2.0.12/kpathsea/configure.in *** octave-2.0.11/kpathsea/configure.in Thu Nov 28 15:35:46 1996 --- octave-2.0.12/kpathsea/configure.in Tue Mar 3 05:46:05 1998 *************** *** 1,6 **** --- 1,12 ---- dnl Process this file with autoconf to produce a configure script. AC_INIT(pathsearch.c) + KPSEVERSION=3.2 + AC_SUBST(KPSEVERSION) + AC_DEFINE_UNQUOTED(KPSEVERSION, "kpathsea version $KPSEVERSION") + sinclude(common.ac) AC_OUTPUT(Makefile) + dnl Update stamp-auto, since we just remade `c-auto.h'. + date >stamp-auto diff -cNr octave-2.0.11/kpathsea/db.c octave-2.0.12/kpathsea/db.c *** octave-2.0.11/kpathsea/db.c Thu Feb 6 16:38:06 1997 --- octave-2.0.12/kpathsea/db.c Sat Nov 29 06:12:11 1997 *************** *** 30,37 **** #include static hash_table_type db; /* The hash table for all the ls-R's. */ #ifndef DB_HASH_SIZE ! #define DB_HASH_SIZE 7603 /* A minimal ls-R has about 3500 entries. */ #endif #ifndef DB_NAME #define DB_NAME "ls-R" --- 30,40 ---- #include static hash_table_type db; /* The hash table for all the ls-R's. */ + /* SMALL: The old size of the hash table was 7603, with the assumption + that a minimal ls-R bas about 3500 entries. But a typical ls-R will + be more like double that size. */ #ifndef DB_HASH_SIZE ! #define DB_HASH_SIZE 15991 #endif #ifndef DB_NAME #define DB_NAME "ls-R" *************** *** 166,172 **** if (db.buckets) { const_string dir_part; string fname = xstrdup (passed_fname); ! string baseptr = (string) basename (fname); const_string file_part = xstrdup (baseptr); *baseptr = '\0'; /* Chop off the filename. */ --- 169,175 ---- if (db.buckets) { const_string dir_part; string fname = xstrdup (passed_fname); ! string baseptr = (string)basename (fname); const_string file_part = xstrdup (baseptr); *baseptr = '\0'; /* Chop off the filename. */ *************** *** 185,193 **** { const_string original_filename = filename; boolean matched = false; - boolean done = false; ! for (; !done && *filename && *path_elt; filename++, path_elt++) { if (FILECHARCASEEQ (*filename, *path_elt)) /* normal character match */ ; --- 188,195 ---- { const_string original_filename = filename; boolean matched = false; ! for (; *filename && *path_elt; filename++, path_elt++) { if (FILECHARCASEEQ (*filename, *path_elt)) /* normal character match */ ; *************** *** 199,205 **** /* Trailing //, matches anything. We could make this part of the other case, but it seems pointless to do the extra work. */ matched = true; ! done = true; } else { /* Intermediate //, have to match rest of PATH_ELT. */ for (; !matched && *filename; filename++) { --- 201,207 ---- /* Trailing //, matches anything. We could make this part of the other case, but it seems pointless to do the extra work. */ matched = true; ! break; } else { /* Intermediate //, have to match rest of PATH_ELT. */ for (; !matched && *filename; filename++) { *************** *** 208,218 **** && FILECHARCASEEQ (*filename, *path_elt)) matched = match (filename, path_elt); } } } else /* normal character nonmatch, quit */ ! done = true; } /* If we've reached the end of PATH_ELT, check that we're at the last --- 210,222 ---- && FILECHARCASEEQ (*filename, *path_elt)) matched = match (filename, path_elt); } + /* Prevent filename++ when *filename='\0'. */ + break; } } else /* normal character nonmatch, quit */ ! break; } /* If we've reached the end of PATH_ELT, check that we're at the last *************** *** 457,466 **** string db_file = concat (*db_dirs, try); boolean matched = match (db_file, path_elt); ! #ifdef KPSE_DEBUG if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) DEBUGF3 ("db:match(%s,%s) = %d\n", db_file, path_elt, matched); ! #endif /* We got a hit in the database. Now see if the file actually exists, possibly under an alias. */ --- 461,470 ---- string db_file = concat (*db_dirs, try); boolean matched = match (db_file, path_elt); ! #ifdef KPSE_DEBUG if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) DEBUGF3 ("db:match(%s,%s) = %d\n", db_file, path_elt, matched); ! #endif /* We got a hit in the database. Now see if the file actually exists, possibly under an alias. */ diff -cNr octave-2.0.11/kpathsea/db.h octave-2.0.12/kpathsea/db.h *** octave-2.0.11/kpathsea/db.h Sat Sep 30 11:00:45 1995 --- octave-2.0.12/kpathsea/db.h Sun Nov 30 06:29:44 1997 *************** *** 36,42 **** const_string path_elt, boolean all); /* Insert the filename FNAME into the database. ! Called by MakeTeXPK et al. */ extern void kpse_db_insert P1H(const_string fname); #endif /* not KPATHSEA_DB_H */ --- 36,42 ---- const_string path_elt, boolean all); /* Insert the filename FNAME into the database. ! Called by mktexpk et al. */ extern void kpse_db_insert P1H(const_string fname); #endif /* not KPATHSEA_DB_H */ diff -cNr octave-2.0.11/kpathsea/debug.h octave-2.0.12/kpathsea/debug.h *** octave-2.0.11/kpathsea/debug.h Mon Oct 14 12:50:05 1996 --- octave-2.0.12/kpathsea/debug.h Mon Oct 20 00:30:05 1997 *************** *** 26,31 **** --- 26,54 ---- #include #include + #if defined(WIN32) + #if defined(_DEBUG) + /* This was needed at some time for catching errors in pdftex. */ + #include + #define SET_CRT_DEBUG_FIELD(a) \ + _CrtSetDbgFlag((a) | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)) + #define CLEAR_CRT_DEBUG_FIELD(a) \ + _CrtSetDbgFlag(~(a) & _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)) + #define SETUP_CRTDBG \ + { _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE ); \ + _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT ); \ + _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE ); \ + _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT ); \ + _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE ); \ + _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );\ + } + #else /* ! _DEBUG */ + #define SET_CRT_DEBUG_FIELD(a) + #define CLEAR_CRT_DEBUG_FIELD(a) + #define SETUP_CRTDBG + #endif /* _DEBUG */ + #endif /* WIN32 */ + /* OK, we'll have tracing support. */ #define KPSE_DEBUG *************** *** 44,50 **** #define KPSE_DEBUG_PATHS 3 /* search path initializations */ #define KPSE_DEBUG_EXPAND 4 /* path element expansion */ #define KPSE_DEBUG_SEARCH 5 /* searches */ ! #define KPSE_LAST_DEBUG KPSE_DEBUG_SEARCH /* A printf for the debugging. */ #define DEBUGF_START() do { fputs ("kdebug:", stderr) --- 67,74 ---- #define KPSE_DEBUG_PATHS 3 /* search path initializations */ #define KPSE_DEBUG_EXPAND 4 /* path element expansion */ #define KPSE_DEBUG_SEARCH 5 /* searches */ ! #define KPSE_DEBUG_VARS 6 /* variable values */ ! #define KPSE_LAST_DEBUG KPSE_DEBUG_VARS /* A printf for the debugging. */ #define DEBUGF_START() do { fputs ("kdebug:", stderr) diff -cNr octave-2.0.11/kpathsea/depend.make octave-2.0.12/kpathsea/depend.make *** octave-2.0.11/kpathsea/depend.make Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/depend.make Thu Mar 12 12:39:16 1998 *************** *** 0 **** --- 1,608 ---- + absolute.lo: absolute.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-pathch.h \ + $(kpathsea_srcdir)/c-ctype.h + access.o: access.c \ + $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h \ + $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + atou.lo: atou.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + basename.lo: basename.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + cnf.lo: cnf.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/cnf.h $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h \ + $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h $(kpathsea_dir)/paths.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h + concat.lo: concat.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + concat3.lo: concat3.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + concatn.lo: concatn.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h + db.lo: db.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/c-pathch.h \ + $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/db.h \ + $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h + debug.lo: debug.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + dir.lo: dir.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-dir.h \ + $(kpathsea_srcdir)/c-stat.h \ + $(kpathsea_srcdir)/hash.h + elt-dirs.lo: elt-dirs.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/fn.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/xopendir.h $(kpathsea_srcdir)/c-dir.h + expand.lo: expand.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/pathsearch.h \ + $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tilde.h $(kpathsea_srcdir)/variable.h \ + $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h $(kpathsea_srcdir)/absolute.h + extend-fname.lo: extend-fname.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + file-p.lo: file-p.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xstat.h $(kpathsea_srcdir)/c-stat.h + find-suffix.lo: find-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h + fn.lo: fn.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/fn.h + fontmap.lo: fontmap.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/line.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/tex-file.h + getopt.lo: getopt.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + getopt1.lo: getopt1.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h getopt.h + hash.lo: hash.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/str-list.h + kdefault.lo: kdefault.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/default.h + kpsestat.o: kpsestat.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-stat.h + kpsewhich.o: kpsewhich.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/expand.h $(kpathsea_srcdir)/getopt.h \ + $(kpathsea_srcdir)/line.h $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-glyph.h \ + $(kpathsea_srcdir)/variable.h + line.lo: line.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/line.h + magstep.lo: magstep.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/magstep.h + make-suffix.lo: make-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h + path-elt.lo: path-elt.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h + pathsearch.lo: pathsearch.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/expand.h \ + $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/pathsearch.h \ + $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/variable.h + proginit.lo: proginit.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/proginit.h $(kpathsea_srcdir)/tex-file.h + progname.lo: progname.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/c-pathch.h \ + $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/c-stat.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/tex-file.h + putenv.lo: putenv.c + readable.lo: readable.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-stat.h \ + $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-hush.h \ + $(kpathsea_srcdir)/truncate.h + readlink.o: readlink.c \ + $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h \ + $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathmx.h $(kpathsea_srcdir)/c-stat.h + rm-suffix.lo: rm-suffix.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + str-list.lo: str-list.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/str-list.h + str-llist.lo: str-llist.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/str-llist.h + strcasecmp.lo: strcasecmp.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + strstr.lo: strstr.c + strtol.lo: strtol.c config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + tex-file.lo: tex-file.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/c-vararg.h $(kpathsea_srcdir)/cnf.h \ + $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/default.h $(kpathsea_srcdir)/expand.h \ + $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_dir)/paths.h \ + $(kpathsea_srcdir)/pathsearch.h $(kpathsea_srcdir)/str-llist.h \ + $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-make.h $(kpathsea_srcdir)/variable.h + tex-glyph.lo: tex-glyph.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/absolute.h $(kpathsea_srcdir)/expand.h \ + $(kpathsea_srcdir)/fontmap.h $(kpathsea_srcdir)/hash.h $(kpathsea_srcdir)/pathsearch.h \ + $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tex-glyph.h \ + $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/tex-make.h $(kpathsea_srcdir)/variable.h + tex-hush.lo: tex-hush.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/pathsearch.h \ + $(kpathsea_srcdir)/str-llist.h $(kpathsea_srcdir)/tex-hush.h $(kpathsea_srcdir)/variable.h + tex-make.lo: tex-make.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-fopen.h \ + $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/concatn.h $(kpathsea_srcdir)/c-vararg.h \ + $(kpathsea_srcdir)/db.h $(kpathsea_srcdir)/str-list.h $(kpathsea_srcdir)/fn.h \ + $(kpathsea_srcdir)/magstep.h $(kpathsea_srcdir)/readable.h $(kpathsea_srcdir)/tex-make.h \ + $(kpathsea_srcdir)/tex-file.h $(kpathsea_srcdir)/variable.h + tilde.lo: tilde.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathch.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/tilde.h + truncate.lo: truncate.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-namemx.h $(kpathsea_srcdir)/c-pathch.h \ + $(kpathsea_srcdir)/c-ctype.h $(kpathsea_srcdir)/c-pathmx.h \ + $(kpathsea_srcdir)/truncate.h + uppercasify.lo: uppercasify.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h + variable.lo: variable.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-ctype.h \ + $(kpathsea_srcdir)/cnf.h $(kpathsea_srcdir)/fn.h $(kpathsea_srcdir)/variable.h + version.lo: version.c c-auto.h + win32lib.lo: win32lib.c + xcalloc.lo: xcalloc.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xfopen.lo: xfopen.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xfseek.lo: xfseek.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xftell.lo: xftell.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xgetcwd.lo: xgetcwd.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/c-pathmx.h + xmalloc.lo: xmalloc.c \ + $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h \ + $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xopendir.lo: xopendir.c $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xopendir.h $(kpathsea_srcdir)/c-dir.h + xputenv.lo: xputenv.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xrealloc.lo: xrealloc.c \ + $(kpathsea_srcdir)/config.h c-auto.h \ + $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h \ + $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h + xstat.lo: xstat.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h $(kpathsea_srcdir)/xstat.h $(kpathsea_srcdir)/c-stat.h + xstrdup.lo: xstrdup.c $(kpathsea_srcdir)/config.h c-auto.h $(kpathsea_srcdir)/c-std.h \ + $(kpathsea_srcdir)/c-unistd.h \ + $(kpathsea_srcdir)/systypes.h \ + $(kpathsea_srcdir)/c-memstr.h $(kpathsea_srcdir)/c-errno.h \ + $(kpathsea_srcdir)/c-minmax.h \ + $(kpathsea_srcdir)/c-limits.h \ + $(kpathsea_srcdir)/c-proto.h \ + $(kpathsea_srcdir)/debug.h $(kpathsea_srcdir)/types.h $(kpathsea_srcdir)/lib.h \ + $(kpathsea_srcdir)/progname.h diff -cNr octave-2.0.11/kpathsea/dir.c octave-2.0.12/kpathsea/dir.c *** octave-2.0.11/kpathsea/dir.c Sat Sep 30 11:00:44 1995 --- octave-2.0.12/kpathsea/dir.c Wed Jan 28 13:27:07 1998 *************** *** 29,38 **** --- 29,44 ---- boolean dir_p P1C(const_string, fn) { + #ifdef WIN32 + int fa = GetFileAttributes(fn); + return (fa != 0xFFFFFFFF && (fa & FILE_ATTRIBUTE_DIRECTORY)); + #else struct stat stats; return stat (fn, &stats) == 0 && S_ISDIR (stats.st_mode); + #endif } + #ifndef WIN32 /* Return -1 if FN isn't a directory, else its number of links. Duplicate the call to stat; no need to incur overhead of a function *************** *** 83,85 **** --- 89,93 ---- return ret; } + + #endif /* !WIN32 */ diff -cNr octave-2.0.11/kpathsea/elt-dirs.c octave-2.0.12/kpathsea/elt-dirs.c *** octave-2.0.11/kpathsea/elt-dirs.c Tue Jan 21 12:17:13 1997 --- octave-2.0.12/kpathsea/elt-dirs.c Fri Feb 6 19:02:18 1998 *************** *** 155,163 **** example, POST might be `pk/ljfour', and they might have a directory `$TEXMF/fonts/pk/ljfour' that we should find. */ fn_str_grow (&name, post); ! if (dir_p (FN_STRING (name))) ! dir_list_add (str_list_ptr, FN_STRING (name)); ! fn_shrink_to (&name, elt_length); } proceed = 1; while (proceed) { --- 155,162 ---- example, POST might be `pk/ljfour', and they might have a directory `$TEXMF/fonts/pk/ljfour' that we should find. */ fn_str_grow (&name, post); ! expand_elt (str_list_ptr, FN_STRING (name), elt_length); ! fn_shrink_to (&name, elt_length); } proceed = 1; while (proceed) { *************** *** 170,185 **** /* It's a directory, so append the separator. */ fn_str_grow (&name, DIR_SEP_STRING); - if (*post != 0) { - fn_str_grow (&name, post); - /* Unfortunately we can't check if the new element is - a leaf directory, because we don't have a directory - name here, we just have a path spec. This means we - may descend into a leaf directory cm/pk, if the - spec is ...fonts//pk//. */ - expand_elt (str_list_ptr, FN_STRING (name), potential_len); - fn_shrink_to (&name, potential_len); - } do_subdir (str_list_ptr, FN_STRING (name), potential_len, post); } --- 169,174 ---- *************** *** 208,215 **** example, POST might be `pk/ljfour', and they might have a directory `$TEXMF/fonts/pk/ljfour' that we should find. */ fn_str_grow (&name, post); ! if (dir_p (FN_STRING (name))) ! dir_list_add (str_list_ptr, FN_STRING (name)); fn_shrink_to (&name, elt_length); } --- 197,203 ---- example, POST might be `pk/ljfour', and they might have a directory `$TEXMF/fonts/pk/ljfour' that we should find. */ fn_str_grow (&name, post); ! expand_elt (str_list_ptr, FN_STRING (name), elt_length); fn_shrink_to (&name, elt_length); } *************** *** 233,250 **** /* It's a directory, so append the separator. */ fn_str_grow (&name, DIR_SEP_STRING); - if (*post != 0) - { - fn_str_grow (&name, post); - /* Unfortunately we can't check if the new element is - a leaf directory, because we don't have a directory - name here, we just have a path spec. This means we - may descend into a leaf directory cm/pk, if the - spec is ...fonts//pk//. */ - expand_elt (str_list_ptr, FN_STRING (name), potential_len); - fn_shrink_to (&name, potential_len); - } - /* Should we recurse? To see if the subdirectory is a leaf, check if it has two links (one for . and one for ..). This means that symbolic links to directories do --- 221,226 ---- *************** *** 295,302 **** expand_elt P3C(str_llist_type *, str_list_ptr, const_string, elt, unsigned, start) { ! boolean found_special = false; ! const_string dir = elt + start; while (*dir != 0) { --- 271,277 ---- expand_elt P3C(str_llist_type *, str_list_ptr, const_string, elt, unsigned, start) { ! const_string dir = elt + start, post; while (*dir != 0) { *************** *** 305,317 **** /* If two or more consecutive /'s, find subdirectories. */ if (IS_DIR_SEP (dir[1])) { ! unsigned slash_count; ! for (slash_count = 1; IS_DIR_SEP (dir[slash_count + 1]); ! slash_count++) ; ! do_subdir (str_list_ptr, elt, dir - elt + 1, ! dir + 1 + slash_count); ! found_special = true; ! dir += slash_count; /* Don't find this // again. */ } /* No special stuff at this slash. Keep going. */ --- 280,288 ---- /* If two or more consecutive /'s, find subdirectories. */ if (IS_DIR_SEP (dir[1])) { ! for (post = dir + 1; IS_DIR_SEP (*post); post++) ; ! do_subdir (str_list_ptr, elt, dir - elt + 1, post); ! return; } /* No special stuff at this slash. Keep going. */ *************** *** 320,328 **** dir++; } ! if (!found_special) ! /* When we reach the end of ELT, it will be a normal filename. */ ! checked_dir_list_add (str_list_ptr, elt); } /* Here is the entry point. Returns directory list for ELT. */ --- 291,298 ---- dir++; } ! /* When we reach the end of ELT, it will be a normal filename. */ ! checked_dir_list_add (str_list_ptr, elt); } /* Here is the entry point. Returns directory list for ELT. */ *************** *** 333,339 **** str_llist_type *ret; /* If given nothing, return nothing. */ ! if (!elt) return NULL; /* If we've already cached the answer for ELT, return it. */ --- 303,309 ---- str_llist_type *ret; /* If given nothing, return nothing. */ ! if (!elt || !*elt) return NULL; /* If we've already cached the answer for ELT, return it. */ *************** *** 344,365 **** /* We're going to have a real directory list to return. */ ret = XTALLOC1 (str_llist_type); *ret = NULL; - - /* If ELT is the empty string, just return cwd. */ - if (*elt == 0) - { /* Some old compilers do not support aggregate initialization. */ - char cwd[3]; - cwd[0] = '.'; - cwd[1] = DIR_SEP; - cwd[2] = 0; - - checked_dir_list_add (ret, cwd); - } ! /* OK, so much for the trivial cases. We handle the hard case in ! a subroutine. */ ! else ! expand_elt (ret, elt, 0); /* Remember the directory list we just found, in case future calls are made with the same ELT. */ --- 314,322 ---- /* We're going to have a real directory list to return. */ ret = XTALLOC1 (str_llist_type); *ret = NULL; ! /* We handle the hard case in a subroutine. */ ! expand_elt (ret, elt, 0); /* Remember the directory list we just found, in case future calls are made with the same ELT. */ *************** *** 396,402 **** dirs = kpse_element_dirs (elt); if (!dirs) ! printf ("(null)"); else { str_llist_elt_type *dir; --- 353,359 ---- dirs = kpse_element_dirs (elt); if (!dirs) ! printf ("(nil)"); else { str_llist_elt_type *dir; *************** *** 414,437 **** main () { /* DEBUG_SET (DEBUG_STAT); */ - #ifdef AMIGA - print_element_dirs (NULL); /* */ - print_element_dirs (""); /* ./ */ - print_element_dirs ("/kpathsea"); /* /kpathsea/ */ - print_element_dirs (".//"); /* ./ */ - print_element_dirs (":fonts//"); /* lots */ - print_element_dirs (":fonts//public/ascii//"); /* several */ - print_element_dirs (":fonts//"); /* lots again [cache] */ - print_element_dirs ("texmf:"); /* texmf: */ - print_element_dirs ("texmf:/"); /* texmf: and all subdirs */ - print_element_dirs ("${LOGNAME}"); /* ??? */ - #else /* not AMIGA */ /* All lists end with NULL. */ print_element_dirs (NULL); /* */ print_element_dirs (""); /* ./ */ print_element_dirs ("/k"); /* */ print_element_dirs (".//"); /* ./ ./archive/ */ print_element_dirs (".//archive"); /* ./ ./archive/ */ print_element_dirs ("/tmp/fonts//"); /* no need to stat anything */ print_element_dirs ("/usr/local/lib/tex/fonts//"); /* lots */ print_element_dirs ("/usr/local/lib/tex/fonts//times"); /* just one */ --- 371,389 ---- main () { /* DEBUG_SET (DEBUG_STAT); */ /* All lists end with NULL. */ print_element_dirs (NULL); /* */ print_element_dirs (""); /* ./ */ print_element_dirs ("/k"); /* */ print_element_dirs (".//"); /* ./ ./archive/ */ print_element_dirs (".//archive"); /* ./ ./archive/ */ + #ifdef AMIGA + print_element_dirs ("TeXMF:AmiWeb2c/texmf/fonts//"); /* lots */ + print_element_dirs ("TeXMF:AmiWeb2c/share/texmf/fonts//bakoma"); /* just one */ + print_element_dirs ("TeXMF:AmiWeb2c/texmf/fonts//"); /* lots again [cache] */ + print_element_dirs ("TeXMF:"); /* TeXMF: */ + print_element_dirs ("TeXMF:/"); /* TeXMF: and all subdirs */ + #else /* not AMIGA */ print_element_dirs ("/tmp/fonts//"); /* no need to stat anything */ print_element_dirs ("/usr/local/lib/tex/fonts//"); /* lots */ print_element_dirs ("/usr/local/lib/tex/fonts//times"); /* just one */ diff -cNr octave-2.0.11/kpathsea/expand.c octave-2.0.12/kpathsea/expand.c *** octave-2.0.11/kpathsea/expand.c Tue Jan 21 08:18:55 1997 --- octave-2.0.12/kpathsea/expand.c Mon Feb 23 14:05:41 1998 *************** *** 3,9 **** code in kpathsea. The part of the file that I wrote (the first couple of functions) is covered by the LGPL. ! Copyright (C) 1993, 94, 95, 96, 97 Karl Berry. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public --- 3,9 ---- code in kpathsea. The part of the file that I wrote (the first couple of functions) is covered by the LGPL. ! Copyright (C) 1993, 94, 95, 96, 97 Karl Berry & O. Weber. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public *************** *** 26,31 **** --- 26,33 ---- #include #include #include + #include + #include /* Do variable expansion first so ~${USER} works. (Besides, it's what the *************** *** 47,68 **** } static char **brace_expand P1H(const_string); static void free_array P1H(char **); /* Do brace expansion on ELT; then do variable and ~ expansion on each element of the result; then do brace expansion again, in case a variable definition contained braces (e.g., $TEXMF). Return a string comprising all of the results separated by ENV_SEP_STRING. */ static string ! kpse_brace_expand P1C(const_string, elt) { unsigned i; string *expansions = brace_expand (elt); string ret = xmalloc (1); *ret = 0; ! for (i = 0; expansions[i]; i++) { /* Do $ and ~ expansion on each element. */ string x = kpse_expand (expansions[i]); --- 49,128 ---- } + /* Forward declarations of functions from the original expand.c */ static char **brace_expand P1H(const_string); static void free_array P1H(char **); + /* If $KPSE_DOT is defined in the environment, prepend it to any relative + path components. */ + + static string + kpse_expand_kpse_dot P1C(string, path) + { + string ret, elt; + string kpse_dot = getenv("KPSE_DOT"); + #ifdef MSDOS + boolean malloced_kpse_dot = false; + #endif + + if (kpse_dot == NULL) + return path; + ret = xmalloc(1); + *ret = 0; + + #ifdef MSDOS + /* Some setups of ported Bash force $KPSE_DOT to have the //d/foo/bar + form (when `pwd' is used), which is not understood by libc and the OS. + Convert them back to the usual d:/foo/bar form. */ + if (kpse_dot[0] == '/' && kpse_dot[1] == '/' + && kpse_dot[2] >= 'A' && kpse_dot[2] <= 'z' && kpse_dot[3] == '/') { + kpse_dot++; + kpse_dot = xstrdup (kpse_dot); + kpse_dot[0] = kpse_dot[1]; /* drive letter */ + kpse_dot[1] = ':'; + malloced_kpse_dot = true; + } + #endif + + for (elt = kpse_path_element (path); elt; elt = kpse_path_element (NULL)) { + string save_ret = ret; + /* We assume that the !! magic is only used on absolute components. + Single "." get special treatment, as does "./" or its equivalent. */ + if (kpse_absolute_p (elt, false) || (elt[0] == '!' && elt[1] == '!')) { + ret = concat3(ret, elt, ENV_SEP_STRING); + } else if (elt[0] == '.' && elt[1] == 0) { + ret = concat3 (ret, kpse_dot, ENV_SEP_STRING); + #ifndef VMS + } else if (elt[0] == '.' && IS_DIR_SEP(elt[1])) { + ret = concatn (ret, kpse_dot, elt + 1, ENV_SEP_STRING, NULL); + } else { + ret = concatn (ret, kpse_dot, DIR_SEP_STRING, elt, ENV_SEP_STRING, NULL); + #endif + } + free (save_ret); + } + + #ifdef MSDOS + if (malloced_kpse_dot) free (kpse_dot); + #endif + + ret[strlen (ret) - 1] = 0; + return ret; + } + /* Do brace expansion on ELT; then do variable and ~ expansion on each element of the result; then do brace expansion again, in case a variable definition contained braces (e.g., $TEXMF). Return a string comprising all of the results separated by ENV_SEP_STRING. */ static string ! kpse_brace_expand_element P1C(const_string, elt) { unsigned i; string *expansions = brace_expand (elt); string ret = xmalloc (1); *ret = 0; ! for (i = 0; expansions[i]; i++) { /* Do $ and ~ expansion on each element. */ string x = kpse_expand (expansions[i]); *************** *** 73,98 **** must terminate. (In practice, it's unlikely there will ever be more than one level of recursion.) */ string save_x = x; ! x = kpse_brace_expand (x); free (save_x); } ret = concat3 (ret, x, ENV_SEP_STRING); free (save_ret); free (x); } ! free_array (expansions); ret[strlen (ret) - 1] = 0; /* waste the trailing null */ return ret; } - /* Be careful to not waste all the memory we allocate for each element. */ string ! kpse_path_expand P1C(const_string, path) { string elt; /* Must do variable expansion first because if we have foo = .:~ TEXINPUTS = $foo --- 133,159 ---- must terminate. (In practice, it's unlikely there will ever be more than one level of recursion.) */ string save_x = x; ! x = kpse_brace_expand_element (x); free (save_x); } ret = concat3 (ret, x, ENV_SEP_STRING); free (save_ret); free (x); } ! free_array (expansions); ret[strlen (ret) - 1] = 0; /* waste the trailing null */ return ret; } /* Be careful to not waste all the memory we allocate for each element. */ string ! kpse_brace_expand P1C(const_string, path) { + string kpse_dot_expansion; string elt; + unsigned len; /* Must do variable expansion first because if we have foo = .:~ TEXINPUTS = $foo *************** *** 102,126 **** string xpath = kpse_var_expand (path); string ret = xmalloc (1); *ret = 0; ! for (elt = kpse_path_element (xpath); elt; elt = kpse_path_element (NULL)) { string save_ret = ret; /* Do brace expansion first, so tilde expansion happens in {~ka,~kb}. */ ! string expansion = kpse_brace_expand (elt); ret = concat3 (ret, expansion, ENV_SEP_STRING); free (expansion); free (save_ret); } ! /* Waste the last byte by overwriting the trailing env_sep with a null. */ ! ret[strlen (ret) - 1] = 0; free (xpath); return ret; } /* braces.c -- code for doing word expansion in curly braces. Taken from ! bash 1.14.5. Copyright (C) 1987,1991 Free Software Foundation, Inc. --- 163,263 ---- string xpath = kpse_var_expand (path); string ret = xmalloc (1); *ret = 0; ! for (elt = kpse_path_element (xpath); elt; elt = kpse_path_element (NULL)) { string save_ret = ret; /* Do brace expansion first, so tilde expansion happens in {~ka,~kb}. */ ! string expansion = kpse_brace_expand_element (elt); ret = concat3 (ret, expansion, ENV_SEP_STRING); free (expansion); free (save_ret); } ! /* Waste the last byte by overwriting the trailing env_sep with a null. */ ! len = strlen (ret); ! if (len != 0) ! ret[len - 1] = 0; free (xpath); + + kpse_dot_expansion = kpse_expand_kpse_dot (ret); + if (kpse_dot_expansion != ret) + free (ret); + + return kpse_dot_expansion; + } + + /* Expand all special constructs in a path, and include only the actually + existing directories in the result. */ + string + kpse_path_expand P1C(const_string, path) + { + string ret; + string xpath; + string elt; + unsigned len; + + /* Initialise ret to the empty string. */ + ret = xmalloc (1); + *ret = 0; + len = 0; + /* Expand variables and braces first. */ + xpath = kpse_brace_expand (path); + + /* Now expand each of the path elements, printing the results */ + for (elt = kpse_path_element (xpath); elt; elt = kpse_path_element (NULL)) { + str_llist_type *dirs; + + /* Skip and ignore magic leading chars. */ + if (*elt == '!' && *(elt + 1) == '!') + elt += 2; + + /* Do not touch the device if present */ + if (NAME_BEGINS_WITH_DEVICE (elt)) { + while (IS_DIR_SEP (*(elt + 2)) && IS_DIR_SEP (*(elt + 3))) { + *(elt + 2) = *(elt + 1); + *(elt + 1) = *elt; + elt++; + } + } else { + /* We never want to search the whole disk. */ + while (IS_DIR_SEP (*elt) && IS_DIR_SEP (*(elt + 1))) + elt++; + } + + /* Search the disk for all dirs in the component specified. + Be faster to check the database, but this is more reliable. */ + dirs = kpse_element_dirs (elt); + if (dirs && *dirs) { + str_llist_elt_type *dir; + + for (dir = *dirs; dir; dir = STR_LLIST_NEXT (*dir)) { + string thedir = STR_LLIST (*dir); + unsigned dirlen = strlen (thedir); + string save_ret = ret; + /* Retain trailing slash if that's the root directory. */ + if (dirlen == 1 || (dirlen == 3 && NAME_BEGINS_WITH_DEVICE (thedir) + && IS_DIR_SEP (thedir[2]))) { + ret = concat3 (ret, thedir, ENV_SEP_STRING); + len += dirlen + 1; + ret[len - 1] = ENV_SEP; + } else { + ret = concat (ret, thedir); + len += dirlen; + ret [len - 1] = ENV_SEP; + } + free (save_ret); + } + } + } + /* Get rid of trailing ':', if any. */ + if (len != 0) + ret[len - 1] = 0; return ret; } /* braces.c -- code for doing word expansion in curly braces. Taken from ! bash 1.14.5. [Ans subsequently modified for kpatshea.] Copyright (C) 1987,1991 Free Software Foundation, Inc. *************** *** 274,280 **** for (start = 0, i = 0, c = 1; c; start = ++i) { ! c = brace_gobbler (text, &i, brace_arg_separator); tem = xmalloc (1 + (i - start)); strncpy (tem, &text[start], (i - start)); tem[i- start] = 0; --- 411,425 ---- for (start = 0, i = 0, c = 1; c; start = ++i) { ! int c0, c1; ! int i0, i1; ! i0 = i; ! c0 = brace_gobbler (text, &i0, brace_arg_separator); ! i1 = i; ! c1 = brace_gobbler (text, &i1, ENV_SEP); ! c = c0 | c1; ! i = (i0 < i1 ? i0 : i1); ! tem = xmalloc (1 + (i - start)); strncpy (tem, &text[start], (i - start)); tem[i- start] = 0; *************** *** 325,345 **** result = xmalloc ((1 + (len1 * len2)) * sizeof (char *)); len = 0; ! for (i = 0; i < len1; i++) { ! int strlen_1 = strlen (arr1[i]); ! for (j = 0; j < len2; j++) { result[len] = ! xmalloc (1 + strlen_1 + strlen (arr2[j])); ! strcpy (result[len], arr1[i]); ! strcpy (result[len] + strlen_1, arr2[j]); len++; } - free (arr1[i]); } ! free (arr1); result[len] = NULL; return (result); --- 470,491 ---- result = xmalloc ((1 + (len1 * len2)) * sizeof (char *)); len = 0; ! for (i = 0; i < len2; i++) { ! int strlen_2 = strlen (arr2[i]); ! for (j = 0; j < len1; j++) { + int strlen_1 = strlen (arr1[j]); + result[len] = ! xmalloc (1 + strlen_1 + strlen_2); ! strcpy (result[len], arr1[j]); ! strcpy (result[len] + strlen_1, arr2[i]); len++; } } ! free_array (arr1); result[len] = NULL; return (result); diff -cNr octave-2.0.11/kpathsea/expand.h octave-2.0.12/kpathsea/expand.h *** octave-2.0.11/kpathsea/expand.h Fri Dec 13 16:02:11 1996 --- octave-2.0.12/kpathsea/expand.h Sun Feb 1 07:23:02 1998 *************** *** 31,36 **** --- 31,42 ---- no expansions were done). We don't call `kpse_expand_default' because there is a whole sequence of defaults to run through; see `kpse_init_format'. */ + extern string kpse_brace_expand P1H(const_string path); + + /* Do brace expansion and call `kpse_expand' on each argument of the + result, then expand any `//' constructs. The final expansion (always + in fresh memory) is a path of all the existing directories that match + the pattern. */ extern string kpse_path_expand P1H(const_string path); #endif /* not KPATHSEA_EXPAND_H */ diff -cNr octave-2.0.11/kpathsea/fontmap.c octave-2.0.12/kpathsea/fontmap.c *** octave-2.0.11/kpathsea/fontmap.c Mon Jan 8 16:24:41 1996 --- octave-2.0.12/kpathsea/fontmap.c Tue Sep 16 07:54:40 1997 *************** *** 1,6 **** /* fontmap.c: read files for additional font names. ! Copyright (C) 1993, 94, 95, 96 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public --- 1,6 ---- /* fontmap.c: read files for additional font names. ! Copyright (C) 1993, 94, 95, 96, 97 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public *************** *** 69,77 **** filename (e.g., `ptmr'), the second word is the alias (e.g., `Times-Roman'), and any subsequent words are ignored. .tfm is added if either the filename or the alias have no extension. This is the ! same order as in Dvips' psfonts.map; unfortunately, we can't have TeX ! read that same file, since most of the real filenames start with an ! `r', because of the virtual fonts Dvips uses. */ static void map_file_parse P1C(const_string, map_filename) --- 69,76 ---- filename (e.g., `ptmr'), the second word is the alias (e.g., `Times-Roman'), and any subsequent words are ignored. .tfm is added if either the filename or the alias have no extension. This is the ! same order as in Dvips' psfonts.map. Perhaps someday the programs ! will both read the same file. */ static void map_file_parse P1C(const_string, map_filename) diff -cNr octave-2.0.11/kpathsea/getopt.c octave-2.0.12/kpathsea/getopt.c *** octave-2.0.11/kpathsea/getopt.c Wed Jan 22 16:17:00 1997 --- octave-2.0.12/kpathsea/getopt.c Tue Dec 2 05:58:03 1997 *************** *** 81,86 **** --- 81,87 ---- #if defined (WIN32) && !defined (__CYGWIN32__) /* It's not Unix, really. See? Capital letters. */ + #include #include #define getpid() GetCurrentProcessId() #endif *************** *** 198,204 **** /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; ! #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work --- 199,205 ---- /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; ! #if defined(__GNU_LIBRARY__) || defined(WIN32) /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work diff -cNr octave-2.0.11/kpathsea/getopt.h octave-2.0.12/kpathsea/getopt.h *** octave-2.0.11/kpathsea/getopt.h Wed Jan 22 00:31:00 1997 --- octave-2.0.12/kpathsea/getopt.h Fri Oct 24 07:24:27 1997 *************** *** 22,27 **** --- 22,33 ---- #ifndef _GETOPT_H #define _GETOPT_H 1 + #if !defined(WIN32) || (defined(_DLL) && !defined(_IMPORT)) || !defined(_DLL) + #define DllImport + #else + #define DllImport __declspec(dllimport) + #endif + #ifdef __cplusplus extern "C" { #endif *************** *** 32,38 **** Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ ! extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller --- 38,44 ---- Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ ! extern DllImport char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller *************** *** 46,61 **** Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ ! extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ ! extern int opterr; /* Set to an option character which was unrecognized. */ ! extern int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector --- 52,67 ---- Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ ! extern DllImport int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ ! extern DllImport int opterr; /* Set to an option character which was unrecognized. */ ! extern DllImport int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector diff -cNr octave-2.0.11/kpathsea/hash.c octave-2.0.12/kpathsea/hash.c *** octave-2.0.11/kpathsea/hash.c Sun Dec 29 16:29:47 1996 --- octave-2.0.12/kpathsea/hash.c Fri Dec 12 03:49:02 1997 *************** *** 1,6 **** /* hash.c: hash table operations. ! Copyright (C) 1994, 95, 96 Karl Berry. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public --- 1,6 ---- /* hash.c: hash table operations. ! Copyright (C) 1994, 95, 96, 97 Karl Berry & Olaf Weber. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public *************** *** 47,59 **** hash_table_type hash_create P1C(unsigned, size) { unsigned b; - hash_table_type ret; ret.buckets = XTALLOC (size, hash_element_type *); ret.size = size; ! /* calloc's zeroes aren't necessarily NULL, according to ANSI, so be ! safe. (Not that I know of any exceptions in reality.) */ for (b = 0; b next; loc->next = new_elt; /* Insert the new one after. */ } + } + + /* Remove a (KEY, VALUE) pair. */ + + void + hash_remove P3C(hash_table_type *, table, const_string, key, + const_string, value) + { + hash_element_type *p; + hash_element_type *q; + unsigned n = hash (*table, key); + + /* Find pair. */ + for (q = NULL, p = table->buckets[n]; p != NULL; q = p, p = p->next) + if (FILESTRCASEEQ (key, p->key) && STREQ (value, p->value)) + break; + if (p) { + /* We found something, remove it from the chain. */ + if (q) q->next = p->next; else table->buckets[n] = p->next; + /* We cannot dispose of the contents. */ + free (p); + } } /* Look up STR in MAP. Return a (dynamically-allocated) list of the diff -cNr octave-2.0.11/kpathsea/hash.h octave-2.0.12/kpathsea/hash.h *** octave-2.0.11/kpathsea/hash.h Sat Sep 30 11:00:42 1995 --- octave-2.0.12/kpathsea/hash.h Fri Dec 12 03:48:42 1997 *************** *** 51,56 **** --- 51,60 ---- extern void hash_insert P3H(hash_table_type *table, const_string key, const_string value); + /* Remove the (KEY,VALUE) association from TABLE. */ + extern void hash_remove P3H(hash_table_type *table, const_string key, + const_string value); + /* Look up KEY in MAP, and return NULL-terminated list of all matching values (not copies), in insertion order. If none, return NULL. */ extern string *hash_lookup P2H(hash_table_type table, const_string key); diff -cNr octave-2.0.11/kpathsea/hier.texi octave-2.0.12/kpathsea/hier.texi *** octave-2.0.11/kpathsea/hier.texi Sat Oct 5 12:51:23 1996 --- octave-2.0.12/kpathsea/hier.texi Mon Jan 12 07:00:59 1998 *************** *** 25,31 **** under a single top-level directory such as @file{/usr/local/texmf} or @file{/opt/texmf}---in the terms used below, make @var{prefix} and @var{texmf} the same. For specific instructions on doing that, ! @pxref{configure scenarios}. Here is a skeleton of the default directory structure, extracted from the TDS document: --- 25,31 ---- under a single top-level directory such as @file{/usr/local/texmf} or @file{/opt/texmf}---in the terms used below, make @var{prefix} and @var{texmf} the same. For specific instructions on doing that, ! see @ref{configure scenarios}. Here is a skeleton of the default directory structure, extracted from the TDS document: diff -cNr octave-2.0.11/kpathsea/install-sh octave-2.0.12/kpathsea/install-sh *** octave-2.0.11/kpathsea/install-sh Thu Jul 11 16:02:10 1996 --- octave-2.0.12/kpathsea/install-sh Tue Apr 14 22:05:36 1998 *************** *** 1,23 **** ! #! /bin/sh # # install - install a program, script, or datafile ! # This comes from X11R5 (mit/util/scripts/install.sh). ! # ! # Copyright 1991 by the Massachusetts Institute of Technology # ! # Permission to use, copy, modify, distribute, and sell this software and its ! # documentation for any purpose is hereby granted without fee, provided that ! # the above copyright notice appear in all copies and that both that ! # copyright notice and this permission notice appear in supporting ! # documentation, and that the name of M.I.T. not be used in advertising or ! # publicity pertaining to distribution of the software without specific, ! # written prior permission. M.I.T. makes no representations about the ! # suitability of this software for any purpose. It is provided "as is" ! # without express or implied warranty. ! # ! # Calling this script install-sh is preferred over install.sh, to prevent ! # `make' implicit rules from creating a file called install from it ! # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. --- 1,10 ---- ! #!/bin/sh ! # # install - install a program, script, or datafile ! # This comes from X11R5; it is not part of GNU. # ! # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ # # This script is compatible with the BSD install script, but was written # from scratch. *************** *** 39,50 **** chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" - mkdirprog="${MKDIRPROG-mkdir}" - transformbasename="" - transform_arg="" instcmd="$mvprog" ! chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" --- 26,34 ---- chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" instcmd="$mvprog" ! chmodcmd="" chowncmd="" chgrpcmd="" stripcmd="" *************** *** 52,58 **** mvcmd="$mvprog" src="" dst="" - dir_arg="" while [ x"$1" != x ]; do case $1 in --- 36,41 ---- *************** *** 60,69 **** shift continue;; - -d) dir_arg=true - shift - continue;; - -m) chmodcmd="$chmodprog $2" shift shift --- 43,48 ---- *************** *** 83,102 **** shift continue;; - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - *) if [ x"$src" = x ] then src=$1 else - # this colon is to work around a 386BSD /bin/sh bug - : dst=$1 fi shift --- 62,71 ---- *************** *** 106,250 **** if [ x"$src" = x ] then ! echo "install: no input file specified" exit 1 - else - true fi ! if [ x"$dir_arg" != x ]; then ! dst=$src ! src="" ! ! if [ -d $dst ]; then ! instcmd=: ! else ! instcmd=mkdir ! fi ! else ! ! # Waiting for this to be detected by the "$instcmd $src $dsttmp" command ! # might cause directories to be created, which would be especially bad ! # if $src (and thus $dsttmp) contains '*'. ! ! if [ -f $src -o -d $src ] ! then ! true ! else ! echo "install: $src does not exist" ! exit 1 ! fi ! ! if [ x"$dst" = x ] ! then ! echo "install: no destination specified" ! exit 1 ! else ! true ! fi ! ! # If destination is a directory, append the input filename; if your system ! # does not like double slashes in filenames, you may need to add some logic ! ! if [ -d $dst ] ! then ! dst="$dst"/`basename $src` ! else ! true ! fi fi - ## this sed command emulates the dirname command - dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ! # Make sure that the destination directory exists. ! # this part is taken from Noah Friedman's mkinstalldirs script ! ! # Skip lots of stat calls in the usual case. ! if [ ! -d "$dstdir" ]; then ! defaultIFS=' ! ' ! IFS="${IFS-${defaultIFS}}" ! ! oIFS="${IFS}" ! # Some sh's can't handle IFS=/ for some reason. ! IFS='%' ! set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` ! IFS="${oIFS}" ! ! pathcomp='' ! ! while [ $# -ne 0 ] ; do ! pathcomp="${pathcomp}${1}" ! shift ! ! if [ ! -d "${pathcomp}" ] ; ! then ! $mkdirprog "${pathcomp}" ! else ! true ! fi ! ! pathcomp="${pathcomp}/" ! done ! fi ! if [ x"$dir_arg" != x ] then ! $doit $instcmd $dst && ! ! if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && ! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && ! if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && ! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi ! else ! ! # If we're going to rename the final executable, determine the name now. ! ! if [ x"$transformarg" = x ] ! then ! dstfile=`basename $dst` ! else ! dstfile=`basename $dst $transformbasename | ! sed $transformarg`$transformbasename ! fi ! ! # don't allow the sed command to completely eliminate the filename ! ! if [ x"$dstfile" = x ] ! then ! dstfile=`basename $dst` ! else ! true ! fi # Make a temp file name in the proper directory. ! dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name ! $doit $instcmd $src $dsttmp && ! ! trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits ! # If any of these fail, we abort the whole thing. If we want to ! # ignore errors from any of these, just make sure not to ignore ! # errors from the above "$doit $instcmd $src $dsttmp" command. ! ! if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && ! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && ! if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && ! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. ! $doit $rmcmd -f $dstdir/$dstfile && ! $doit $mvcmd $dsttmp $dstdir/$dstfile ! ! fi && exit 0 --- 75,119 ---- if [ x"$src" = x ] then ! echo "install: no input file specified" exit 1 fi ! if [ x"$dst" = x ] ! then ! echo "install: no destination specified" ! exit 1 fi ! # If destination is a directory, append the input filename; if your system ! # does not like double slashes in filenames, you may need to add some logic ! if [ -d $dst ] then ! dst="$dst"/`basename $src` ! fi # Make a temp file name in the proper directory. ! dstdir=`dirname $dst` ! dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name ! $doit $instcmd $src $dsttmp # and set any options; do chmod last to preserve setuid bits ! if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi ! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi ! if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi ! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi # Now rename the file to the real destination. ! $doit $rmcmd $dst ! $doit $mvcmd $dsttmp $dst exit 0 diff -cNr octave-2.0.11/kpathsea/install.texi octave-2.0.12/kpathsea/install.texi *** octave-2.0.11/kpathsea/install.texi Thu Feb 6 12:40:44 1997 --- octave-2.0.12/kpathsea/install.texi Wed Mar 11 12:54:40 1998 *************** *** 16,23 **** @end ifset The procedure for Kpathsea (and Web2c, etc.) configuration and ! installation follows. If trouble, @pxref{Common problems}, a copy of ! which is in the file @file{kpathsea/BUGS}. @menu * Simple installation:: If you just want to do it. --- 16,23 ---- @end ifset The procedure for Kpathsea (and Web2c, etc.) configuration and ! installation follows. If you encounter trouble, see @ref{Common ! problems}, a copy of which is in the file @file{kpathsea/BUGS}. @menu * Simple installation:: If you just want to do it. *************** *** 39,51 **** @cindex installation, getting executables instead of Installing @TeX{} and friends for the first time can be a daunting experience. Thus, you may prefer to skip this whole thing and just get ! precompiled executables: @pxref{unixtex.ftp}. This section explains what to do if you wish to take the defaults for ! everything (installing under @file{/usr/local}), and generally to ! install in the simplest possible way. Most steps here refer to ! corresponding subsection in the next section which explains how to ! override defaults and generally gives more details. @enumerate @item --- 39,55 ---- @cindex installation, getting executables instead of Installing @TeX{} and friends for the first time can be a daunting experience. Thus, you may prefer to skip this whole thing and just get ! precompiled executables: see @ref{unixtex.ftp}. This section explains what to do if you wish to take the defaults for ! everything, and generally to install in the simplest possible way. Most ! steps here refer to corresponding subsection in the next section which ! explains how to override defaults and generally gives more details. ! ! By default everything will be installed under @file{/usr/local} and the ! following discussion assumes this. However, if you already have @TeX{} ! installed, its location is used to derive the directory under which ! everything is to be installed. @enumerate @item *************** *** 78,84 **** @xref{Running configure}. @item ! @samp{make}. @xref{Running make}. @item @samp{make install}. @xref{Installing files}. --- 82,93 ---- @xref{Running configure}. @item ! @samp{make}. @xref{Running make}. If you are using a BSD 4.4 system ! such as FreeBSD or NetBSD, use GNU make (often installed in ! @file{/usr/local/bin}), not the BSD make. ! ! If you are using a HP-UX 10 system and the native compiler, specify the ! @samp{+u} flag in @code{XCFLAGS}. @item @samp{make install}. @xref{Installing files}. *************** *** 90,96 **** Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight: @example ! 0 0 * * * cd /usr/local/share/texmf && @var{/bindir}/MakeTeXls-R @end example @xref{Filename database generation}, and @ref{Filename database}. --- 99,105 ---- Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight: @example ! 0 0 * * * cd /usr/local/share/texmf && @var{/bindir}/mktexlsr @end example @xref{Filename database generation}, and @ref{Filename database}. *************** *** 101,126 **** If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts available. @xref{Installation,,, dvips, Dvips}. If you have any color printers, ! @pxref{Color device configuration,,, dvips, Dvips}. @item The first time you run a DVI driver, a bunch of PK fonts will be built ! by Metafont via @code{MakeTeXPK} (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). ! By default, @code{MakeTeXPK} assumes @file{/usr/local/share/texmf/fonts} ! is globally writable. If you need a different arrangement, ! @pxref{MakeTeX configuration}. ! @xref{MakeTeX scripts}. @item @cindex fonts, being created ! @pindex MakeTeXPK @r{, initial runs} @cindex tests, simple For some simple tests, try @samp{tex story \\bye} and @samp{latex ! simple}. Then run @file{xdvi story} or @file{dvips simple} on the resulting DVI files to preview/print the documents. @xref{Installation testing}. @end enumerate --- 110,136 ---- If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts available. @xref{Installation,,, dvips, Dvips}. If you have any color printers, ! see @ref{Color device configuration,,, dvips, Dvips}. @item The first time you run a DVI driver, a bunch of PK fonts will be built ! by Metafont via @code{mktexpk} (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). ! By default, @code{mktexpk} will create these fonts in a hierarchy ! under @file{/var/tmp/texfonts}; it simply assumes that @file{/var/tmp} ! exists and is globally writable. If you need a different arrangement, ! see @ref{mktex configuration}. ! @xref{mktex scripts}. @item @cindex fonts, being created ! @pindex mktexpk @r{, initial runs} @cindex tests, simple For some simple tests, try @samp{tex story \\bye} and @samp{latex ! sample2e}. Then run @file{xdvi story} or @file{dvips sample2e} on the resulting DVI files to preview/print the documents. @xref{Installation testing}. @end enumerate *************** *** 166,172 **** * Installing files:: * Cleaning up:: * Filename database generation:: ! * MakeTeX scripts:: * Installation testing:: @end menu --- 176,182 ---- * Installing files:: * Cleaning up:: * Filename database generation:: ! * mktex scripts:: * Installation testing:: @end menu *************** *** 184,189 **** --- 194,200 ---- are approximate. @multitable {distribution} {.tar.gz} {unpacked} {compiled} {installed} + @item Distribution @tab .tar.gz @tab Unpacked @tab Compiled @tab Installed @item dviljk @tab .9 @tab 3.8 @tab @item dvipsk @tab .9 @tab 3.2 @tab @item xdvik @tab .7 @tab 2.5 @tab *************** *** 248,269 **** @cindex search paths, changing default @cindex paths, changing default ! @flindex texmf.cnf.in@r{, editing} If the search paths for your installation differ from the standard @TeX{} directory structure (@pxref{Top,, Introduction, tds, A Directory ! Structure for @TeX{} files}), edit the file @file{kpathsea/texmf.cnf.in} as desired, before running @code{configure}. For example, if you have all your fonts or macros in one big directory. ! You may also wish to edit the file @file{MakeTeXnames.cnf}, either ! before or after installation, to control various aspects of ! @code{MakeTeXPK} and friends. @xref{MakeTeX configuration}. ! You do not need to edit @file{texmf.cnf.in} to change the default top-level or other installation @emph{directories} (only the paths). You can and should do that when you run @code{configure} (next step). ! You also do not need to edit @file{texmf.cnf.in} if you are willing to rely on @file{texmf.cnf} at runtime to define the paths, and let the compile-time default paths be incorrect. Usually there is no harm in doing this. --- 259,280 ---- @cindex search paths, changing default @cindex paths, changing default ! @flindex texmf.in@r{, editing} If the search paths for your installation differ from the standard @TeX{} directory structure (@pxref{Top,, Introduction, tds, A Directory ! Structure for @TeX{} files}), edit the file @file{kpathsea/texmf.in} as desired, before running @code{configure}. For example, if you have all your fonts or macros in one big directory. ! You may also wish to edit the file @file{mktex.cnf}, either before or ! after installation, to control various aspects of @code{mktexpk} and ! friends. @xref{mktex configuration}. ! You do not need to edit @file{texmf.in} to change the default top-level or other installation @emph{directories} (only the paths). You can and should do that when you run @code{configure} (next step). ! You also do not need to edit @file{texmf.in} if you are willing to rely on @file{texmf.cnf} at runtime to define the paths, and let the compile-time default paths be incorrect. Usually there is no harm in doing this. *************** *** 286,292 **** above is to avoid having the same information in more than one place. If you change the installation directories or top-level prefix at @code{configure}-time, those changes will propagate through the whole ! sequence. And if you change the default paths in @file{texmf.cnf.in}, those changes are propagated to the compile-time defaults. The Make definitions are all repeated in several @t{Makefile}'s; but --- 297,303 ---- above is to avoid having the same information in more than one place. If you change the installation directories or top-level prefix at @code{configure}-time, those changes will propagate through the whole ! sequence. And if you change the default paths in @file{texmf.in}, those changes are propagated to the compile-time defaults. The Make definitions are all repeated in several @t{Makefile}'s; but *************** *** 316,325 **** is mode-independent (e.g., @code{pktype}). To make the paths independent of the mode, simply edit ! @file{texmf.cnf.in} before installation, or the installed @file{texmf.cnf}, and remove the @samp{$MAKETEX_MODE}. ! @xref{MakeTeX script arguments}, for how this interacts with @code{MakeTeXPK}. @flindex HIER @flindex kpathsea/HIER --- 327,336 ---- is mode-independent (e.g., @code{pktype}). To make the paths independent of the mode, simply edit ! @file{texmf.in} before installation, or the installed @file{texmf.cnf}, and remove the @samp{$MAKETEX_MODE}. ! @xref{mktex script arguments}, for how this interacts with @code{mktexpk}. @flindex HIER @flindex kpathsea/HIER *************** *** 358,367 **** define the installation directories. @item ! @flindex texmf.cnf.in @flindex texmf.cnf@r{, generated} @file{texmf.sed} (together with a little extra magic---see ! @file{kpathsea/Makefile}) is applied to @file{texmf.cnf.in} to generate @file{texmf.cnf}. This is the file that will eventually be installed and used. --- 369,378 ---- define the installation directories. @item ! @flindex texmf.in @flindex texmf.cnf@r{, generated} @file{texmf.sed} (together with a little extra magic---see ! @file{kpathsea/Makefile}) is applied to @file{texmf.in} to generate @file{texmf.cnf}. This is the file that will eventually be installed and used. *************** *** 381,387 **** @subsection Running @code{configure} @flindex configure@r{, running} ! @flindex c-auto.h.in @flindex Makefile.in @findex ac_include@r{, Autoconf extension} @cindex @@@var{var}@@ substitutions --- 392,398 ---- @subsection Running @code{configure} @flindex configure@r{, running} ! @flindex c-auto.in @flindex Makefile.in @findex ac_include@r{, Autoconf extension} @cindex @@@var{var}@@ substitutions *************** *** 392,408 **** @code{configure} adapts the source distribution to the present system via @code{#define}'s in @file{*/c-auto.h}, which are created from the ! corresponding @file{c-auto.h.in}. It also creates a @file{Makefile} from the corresponding @file{Makefile.in}, doing @samp{@@@var{var}@@} and @samp{ac_include} substitutions). ! @flindex CONFIGURE ! @flindex kpathsea/CONFIGURE @code{configure} is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before ! invoking it. For example, you can disable @code{MakeTeXPK} by default ! with the option @samp{--disable-maketexpk}. @xref{configure options}. @menu --- 403,419 ---- @code{configure} adapts the source distribution to the present system via @code{#define}'s in @file{*/c-auto.h}, which are created from the ! corresponding @file{c-auto.in}. It also creates a @file{Makefile} from the corresponding @file{Makefile.in}, doing @samp{@@@var{var}@@} and @samp{ac_include} substitutions). ! @flindex README.CONFIGURE ! @flindex kpathsea/README.CONFIGURE @code{configure} is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before ! invoking it. For example, you can disable @code{mktexpk} by default ! with the option @samp{--disable-mktexpk}. @xref{configure options}. @menu *************** *** 458,471 **** @cindex @code{configure} options For a complete list of all @code{configure} options, run @samp{configure ! --help} or @pxref{Invoking configure,, Running @code{configure} scripts, ! autoconf, Autoconf} (a copy is in the file @file{kpathsea/CONFIGURE}). The generic options are listed first in the @samp{--help} output, and the package-specific options come last. The environment variables @code{configure} pays attention to are listed below. Options particularly likely to be useful are @samp{--prefix}, ! @samp{--datadir}, and the like; @pxref{configure scenarios}. @opindex --with @r{options} @opindex --enable @r{options} --- 469,482 ---- @cindex @code{configure} options For a complete list of all @code{configure} options, run @samp{configure ! --help} or see @ref{Invoking configure,, Running @code{configure} scripts, ! autoconf, Autoconf}, (a copy is in the file @file{kpathsea/README.CONFIGURE}). The generic options are listed first in the @samp{--help} output, and the package-specific options come last. The environment variables @code{configure} pays attention to are listed below. Options particularly likely to be useful are @samp{--prefix}, ! @samp{--datadir}, and the like; see @ref{configure scenarios}. @opindex --with @r{options} @opindex --enable @r{options} *************** *** 476,496 **** accept. @table @samp ! @item --without-maketexmf-default ! @itemx --without-maketexpk-default ! @itemx --without-maketextfm-default ! @itemx --with-maketextex-default ! Enable or disable the dynamic generation programs. @xref{MakeTeX configuration}. @item --enable-shared Build Kpathsea as a shared library, and link against it. Also build the usual static library. @xref{Shared library}. @item --disable-static ! Build only the shared library. ! @end table @node configure environment @subsubsection @code{configure} environment --- 487,514 ---- accept. @table @samp ! @item --without-mktexmf-default ! @itemx --without-mktexpk-default ! @itemx --without-mktextfm-default ! @itemx --with-mktextex-default ! Enable or disable the dynamic generation programs. @xref{mktex configuration}. @item --enable-shared + @opindex --enable-shared Build Kpathsea as a shared library, and link against it. Also build the usual static library. @xref{Shared library}. @item --disable-static ! @opindex --disable-static ! Build only the shared library. Implies @samp{--enable-shared}. + @item --enable-maintainer-mode + @opindex --enable-maintainer-mode + Enables make targets that are useful for the maintainer and likely to be + a pain for anyone else; the makefiles created when this option is + enabled may not work at all for you. You have been warned. + @end table @node configure environment @subsubsection @code{configure} environment *************** *** 561,571 **** @item @cindex @TeX{} hierarchy, one Putting the binaries, @TeX{} files, GNU info files, etc.@: into a single ! @TeX{} hierarchy, say @var{texmf}, requires overriding defaults in both @code{configure} and @code{make}: @example ! configure --prefix=@var{texmf} --datadir=@var{texmf} ! make texmf=@var{texmf} @end example @item --- 579,589 ---- @item @cindex @TeX{} hierarchy, one Putting the binaries, @TeX{} files, GNU info files, etc.@: into a single ! @TeX{} hierarchy, say @file{/texmf}, requires overriding defaults in both @code{configure} and @code{make}: @example ! configure --prefix=@file{/texmf} --datadir=@file{/texmf} ! make texmf=@file{/texmf} @end example @item *************** *** 631,645 **** (e.g., @code{LD_LIBRARY_PATH}) to find shared libraries. If you want to do this, you will need to add the necessary options to @code{LDFLAGS} yourself; for example, on Solaris, include something like ! @samp{-R$@{prefix@}/lib}. (Unfortunately, making this happen by default ! is very difficult, because of interactions with an existing installed ! shared library.) ! ! Currently, shared library support is implemented only on SunOS 4 ! (Solaris 1) and SunOS 5 (Solaris 2). If you're interested and willing ! in adding support for other systems, please see the @samp{configure} ! mode in the @file{klibtool} script, especially the host-specific case ! statement around line 250. @node Running make --- 649,664 ---- (e.g., @code{LD_LIBRARY_PATH}) to find shared libraries. If you want to do this, you will need to add the necessary options to @code{LDFLAGS} yourself; for example, on Solaris, include something like ! @samp{-R$@{prefix@}/lib}, on IRIX or Linux, use ! @samp{-rpath$@{prefix@}/lib}. (Unfortunately, making this happen by ! default is very difficult, because of interactions with an existing ! installed shared library.) ! ! Currently, shared library support is implemented only on Linux, SunOS 4 ! (Solaris 1), SunOS 5 (Solaris 2), IRIX 5, and IRIX 6. If you're ! interested and willing in adding support for other systems, please see ! the @samp{configure} mode in the @file{klibtool} script, especially the ! host-specific case statement around line 250. @node Running make *************** *** 787,793 **** @item @findex mostlyclean @r{Make target} @code{make mostlyclean} if you intend to compile on another ! architecture. For Web2c, since the generated C files are portable, they are not removed. If the @code{lex} vs.@: @code{flex} situation is going to be different on the next machine, @code{rm web2c/lex.yy.c}. --- 806,812 ---- @item @findex mostlyclean @r{Make target} @code{make mostlyclean} if you intend to compile on another ! architecture. For Web2C, since the generated C files are portable, they are not removed. If the @code{lex} vs.@: @code{flex} situation is going to be different on the next machine, @code{rm web2c/lex.yy.c}. *************** *** 821,850 **** You will probably want to set up a @code{cron} entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in: @example ! 0 0 * * * cd @var{texmf} && @var{/bindir}/MakeTeXls-R @end example @noindent @xref{Filename database}. ! Although the @code{MakeTeX@dots{}} scripts make every effort to add newly-created files on the fly, it can't hurt to make sure you get a fresh version every so often. ! @node MakeTeX scripts ! @subsection @file{MakeTeX} scripts ! @cindex @file{MakeTeX} scripts @cindex scripts for file creation @cindex font set, infinite @cindex dynamic creation of files @cindex Sauter fonts, and dynamic source creation ! @cindex DC fonts, and dynamic source creation If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it ! dynamically (@pxref{MakeTeX configuration}). This is most useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as ! the Sauter and DC fonts), since any given document can use fonts never before referenced. Trying to build all fonts in advance is therefore impractical, if not impossible. --- 840,869 ---- You will probably want to set up a @code{cron} entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in: @example ! 0 0 * * * cd @var{texmf} && @var{/bindir}/mktexlsr @end example @noindent @xref{Filename database}. ! Although the @code{mktex@dots{}} scripts make every effort to add newly-created files on the fly, it can't hurt to make sure you get a fresh version every so often. ! @node mktex scripts ! @subsection @file{mktex} scripts ! @cindex @file{mktex} scripts @cindex scripts for file creation @cindex font set, infinite @cindex dynamic creation of files @cindex Sauter fonts, and dynamic source creation ! @cindex EC fonts, and dynamic source creation If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it ! dynamically (@pxref{mktex configuration}). This is most useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as ! the Sauter and EC fonts), since any given document can use fonts never before referenced. Trying to build all fonts in advance is therefore impractical, if not impossible. *************** *** 854,922 **** diagnostics to standard error. @menu ! * MakeTeX configuration:: ! * MakeTeX script names:: ! * MakeTeX script arguments:: @end menu ! @node MakeTeX configuration ! @subsubsection @file{MakeTeX} configuration ! @cindex @file{MakeTeX} script configuration ! @cindex configuration of @file{MakeTeX} scripts ! @cindex enabling @file{MakeTeX} scripts ! @cindex disabling @file{MakeTeX} scripts The following file types can run an external program to create missing files: @file{pk}, @file{tfm}, @file{mf}, @file{tex}; the scripts are ! named @file{MakeTeXPK}, @file{MakeTeXTFM}, @file{MakeTeXMF}, and ! @file{MakeTeXTeX}. In the absence of @code{configure} options specifying otherwise, ! everything but @file{MakeTeXTeX} will be enabled by default. The @code{configure} options to change the defaults are: ! @cindex @code{configure} options for @file{MakeTeX} scripts ! @opindex --without-maketexmf-default ! @opindex --without-maketexpk-default ! @opindex --without-maketextfm-default ! @opindex --with-maketextex-default @example ! --without-maketexmf-default ! --without-maketexpk-default ! --without-maketextfm-default ! --with-maketextex-default @end example The @code{configure} setting is overridden if the environment variable or configuration file value named for the script is set; e.g., ! @file{MAKETEXPK} (@pxref{MakeTeX script arguments}). ! @flindex MakeTeX.site ! @cindex site overrides for @code{MakeTeX@dots{}} As distributed, all the scripts source a file ! @file{texmf/web2c/MakeTeX.site} if it exists, so you can override ! various defaults. See @file{MakeTeXcommon}, for instance, which defines ! the default mode, resolution, directory permissions, some special ! directory names, etc. If you prefer not to change the distributed ! scripts, you can simply create @file{MakeTeX.site} with the appropriate ! definitions (you do not need to create it if you have nothing to put in ! it). @file{MakeTeX.site} has no special syntax; it's an arbitrary ! Bourne shell script. The distribution contains a sample ! @file{MakeTeX.site} for you to copy and modify as you please (it is not ! installed anywhere). ! @flindex MakeTeXnames.cnf @vindex MT_FEATURES In addition, you can configure a number of features with the @code{MT_FEATURES} variable, which you can define: @itemize @bullet @item ! in @file{MakeTeX.site}, as just mentioned; @item ! by editing the file @file{MakeTeXnames.cnf}, either before @samp{make install} (in the source hierarchy) or after (in the installed hierarchy); --- 873,940 ---- diagnostics to standard error. @menu ! * mktex configuration:: ! * mktex script names:: ! * mktex script arguments:: @end menu ! @node mktex configuration ! @subsubsection @file{mktex} configuration ! @cindex @file{mktex} script configuration ! @cindex configuration of @file{mktex} scripts ! @cindex enabling @file{mktex} scripts ! @cindex disabling @file{mktex} scripts The following file types can run an external program to create missing files: @file{pk}, @file{tfm}, @file{mf}, @file{tex}; the scripts are ! named @file{mktexpk}, @file{mktextfm}, @file{mktexmf}, and ! @file{mktextex}. In the absence of @code{configure} options specifying otherwise, ! everything but @file{mktextex} will be enabled by default. The @code{configure} options to change the defaults are: ! @cindex @code{configure} options for @file{mktex} scripts ! @opindex --without-mktexmf-default ! @opindex --without-mktexpk-default ! @opindex --without-mktextfm-default ! @opindex --with-mktextex-default @example ! --without-mktexmf-default ! --without-mktexpk-default ! --without-mktextfm-default ! --with-mktextex-default @end example The @code{configure} setting is overridden if the environment variable or configuration file value named for the script is set; e.g., ! @file{MKTEXPK} (@pxref{mktex script arguments}). ! @flindex mktex.cnf ! @cindex site overrides for @code{mktex@dots{}} As distributed, all the scripts source a file ! @file{texmf/web2c/mktex.cnf} if it exists, so you can override ! various defaults. See @file{mktex.opt}, for instance, which defines ! the default mode, resolution, some special directory names, etc. If you ! prefer not to change the distributed scripts, you can simply create ! @file{mktex.cnf} with the appropriate definitions (you do not need to ! create it if you have nothing to put in it). @file{mktex.cnf} has no ! special syntax; it's an arbitrary Bourne shell script. The distribution ! contains a sample @file{mktex.cnf} for you to copy and modify as you ! please (it is not installed anywhere). ! @flindex mktex.opt @vindex MT_FEATURES In addition, you can configure a number of features with the @code{MT_FEATURES} variable, which you can define: @itemize @bullet @item ! in @file{mktex.opt}, as just mentioned; @item ! by editing the file @file{mktex.opt}, either before @samp{make install} (in the source hierarchy) or after (in the installed hierarchy); *************** *** 924,969 **** or in the environment. @end itemize ! By default, @code{MakeTeXPK} installs fonts into the standard @TeX{} ! directory structure (@pxref{TeX directory structure,, @TeX{} directory ! structure}). It uses aliases and directory names from the Fontname ! distribution (@pxref{Top,, Introduction, fontname, Fontname}). Most of ! the options here change that. @vtable @samp @item appendonlydir @cindex directories, making append-only ! @flindex MakeTeXmkdir ! Tell @code{MakeTeXmkdir} to create directories append-only, i.e., set their sticky bit (@pxref{Mode Structure,,, fileutils, GNU File ! Utilities}). @item dosnames @cindex 8.3 filenames, using @cindex DOS compatible names @flindex dpi@var{nnn} directories Use 8.3 names; e.g., @file{dpi600/cmr10.pk} instead of ! @file{cmr10.600pk}. @item nomode @cindex mode directory, omitting Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode. @item strip @cindex supplier directory, omitting @cindex typeface directory, omitting ! Omit the font supplier and typeface name directory levels. @item varfonts ! @flindex /var/tex/fonts @vindex VARTEXFONTS @cindex Linux File System Standard ! Put @code{MakeTeXPK}-generated fonts under the directory named ! by @code{VARTEXFONTS}; the default value in @file{kpathsea/texmf.cnf.in} ! is @file{/var/tex/fonts}, as recommended by the @cite{Linux File System ! Standard} (but unless @samp{varfonts} is enabled, nothing cares about ! that value). @vindex USE_VARTEXFONTS The @samp{varfonts} setting in @code{MT_FEATURES} is overridden by the --- 942,1027 ---- or in the environment. @end itemize ! If none of the options below are enabled, @code{mktexpk}, ! @code{mktextfm}, and @code{mktexmf} follow the following procedure to ! decide where fonts should be installed. Find the tree where the font's ! sources are, and test the permissions of the @samp{fonts} directory of ! that tree to determine whether it is writable. If it is, put the files ! in the tree in appropriate locations. If it isn't writable, see whether ! the tree is a system tree (named in @code{SYSTEXMF}). If so, the ! @code{VARTEXFONTS} tree is used. In all other cases the working ! directory is used. ! ! The @samp{appendonlydir} option is enabled by default. @vtable @samp @item appendonlydir @cindex directories, making append-only ! @flindex mktexdir ! Tell @code{mktexdir} to create directories append-only, i.e., set their sticky bit (@pxref{Mode Structure,,, fileutils, GNU File ! Utilities}). This feature is silently ignored on non-Unix platforms ! (e.g. Windows/NT and MS-DOS) which don't support similar functionality. ! This feature is enabled by default. @item dosnames @cindex 8.3 filenames, using @cindex DOS compatible names @flindex dpi@var{nnn} directories Use 8.3 names; e.g., @file{dpi600/cmr10.pk} instead of ! @file{cmr10.600pk}. Note that this feature only affects filenames that ! would otherwise clash with other TeX-related filenames; @file{mktex} ! scripts do nothing about filenames which exceed the 8+3 MS-DOS limits ! but remain unique when truncated (by the OS) to these limits, and nether ! do the scripts care about possible clashes with files which aren't ! related with TeX. For example, @file{cmr10.600pk} would clash with ! @file{cmr10.600gf} and is therefore changed when @samp{dosnames} is in ! effect, but @file{mf.pool} and @file{mp.base} don't clash with any ! TeX-related files and are therefore unchanged. ! ! This feature is turned on by default on MS-DOS. If you do not wish ! @samp{dosnames} to be set on an MS-DOS platform, you need to set the ! @code{MT_FEATURES} environment variable to a value that doesn't include ! @samp{dosnames}. You can also change the default setting by editing ! @file{mktex.opt}, but only if you use the @file{mktex} shell scripts; ! the emulation programs don't consult @file{mktex.opt}. ! ! @item fontmaps ! @cindex fontmaps ! @cindex fontname ! Instead of deriving the location of a font in the destination tree from ! the location of the sources, the aliases and directory names from the ! Fontname distribution are used. (@pxref{Top,, Introduction, fontname, ! Fontname}). @item nomode @cindex mode directory, omitting Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode. + @item stripsupplier + @cindex supplier directory, omitting + Omit the font supplier name directory level. + + @item striptypeface + @cindex typeface directory, omitting + Omit the font typeface name directory level. + @item strip @cindex supplier directory, omitting @cindex typeface directory, omitting ! Omit the font supplier and typeface name directory levels. This feature ! is deprecated in favour of @samp{stripsupplier} and @samp{striptypeface}. @item varfonts ! @flindex /var/tmp/texfonts @vindex VARTEXFONTS @cindex Linux File System Standard ! When this option is enabled, fonts that would otherwise be written in ! system texmf tree go to the @code{VARTEXFONTS} tree instead. The ! default value in @file{kpathsea/Makefile.in} is ! @file{/var/tmp/texfonts}. The @cite{Linux File System Standard} ! recommends @file{/var/tex/fonts}. @vindex USE_VARTEXFONTS The @samp{varfonts} setting in @code{MT_FEATURES} is overridden by the *************** *** 972,982 **** @end vtable ! @node MakeTeX script names ! @subsubsection @file{MakeTeX} script names ! @cindex @file{MakeTeX} script names ! @cindex names for @file{MakeTeX} scripts @flindex tex-make.c @vindex kpse_make_specs --- 1030,1040 ---- @end vtable ! @node mktex script names ! @subsubsection @file{mktex} script names ! @cindex @file{mktex} script names ! @cindex names for @file{mktex} scripts @flindex tex-make.c @vindex kpse_make_specs *************** *** 985,1004 **** in @file{kpathsea/tex-make.c}.) @table @file ! @item MakeTeXPK ! @pindex MakeTeXPK Glyph fonts. ! @item MakeTeXTeX ! @pindex MakeTeXTeX @TeX{} input files. ! @item MakeTeXMF ! @pindex MakeTeXMF Metafont input files. ! @item MakeTeXTFM ! @pindex MakeTeXTFM TFM files. @end table --- 1043,1062 ---- in @file{kpathsea/tex-make.c}.) @table @file ! @item mktexpk ! @pindex mktexpk Glyph fonts. ! @item mktextex ! @pindex mktextex @TeX{} input files. ! @item mktexmf ! @pindex mktexmf Metafont input files. ! @item mktextfm ! @pindex mktextfm TFM files. @end table *************** *** 1010,1017 **** @comment next two paragraphs are repeated in dvips.texi @flindex missfont.log ! @cindex failed @code{MakeTeX@dots{}} script invocation ! If a @code{MakeTeX@dots{}} script fails, the invocation is appended to a file @file{missfont.log} (by default) in the current directory. You can then execute the log file to create the missing files after fixing the problem. --- 1068,1075 ---- @comment next two paragraphs are repeated in dvips.texi @flindex missfont.log ! @cindex failed @code{mktex@dots{}} script invocation ! If a @code{mktex@dots{}} script fails, the invocation is appended to a file @file{missfont.log} (by default) in the current directory. You can then execute the log file to create the missing files after fixing the problem. *************** *** 1025,1099 **** configuration file value. ! @node MakeTeX script arguments ! @subsubsection @file{MakeTeX} script arguments ! @cindex arguments to @file{MakeTeX} ! The first argument to a @file{MakeTeX} script is always the name of the file to be created. ! In the default @file{MakeTeXPK} implementation, from three to five ! additional arguments may also passed, via environment variables: ! ! @enumerate ! @item ! @vindex KPATHSEA_DPI ! The resolution to make the font at (@code{KPATHSEA_DPI}). ! ! @item ! @vindex MAKETEX_BASE_DPI ! @cindex base dpi ! The ``base dpi'' the program is operating at (@code{MAKETEX_BASE_DPI}), ! i.e., the assumed resolution of the output device. ! ! @item ! @vindex MAKETEX_MAG ! @vindex mag @r{Metafont variable} ! @cindex magstep for @code{MakeTeXPK} ! A ``magstep'' string suitable for the Metafont @code{mag} variable ! (@code{MAKETEX_MAG}). ! @item ! @vindex MAKETEX_MODE ! @vindex mode @r{Metafont variable} ! @cindex Metafont mode name for @code{MakeTeXPK} ! Optionally, a Metafont mode name to assign to the Metafont @code{mode} ! variable (@code{MAKETEX_MODE}). Otherwise, (the default) ! @code{MakeTeXPK} guesses the mode from the resolution. @xref{TeX ! directory structure,, @TeX{} directory structure}. ! ! @item ! @vindex mtp_destdir ! @cindex destination directory for @code{MakeTeXPK} ! Optionally, a directory name. If the directory is absolute, it is used ! as-is. Otherwise, it is appended to the root destination directory set ! in the script (from environment variables @code{DESTDIR} or ! @code{MTP_DESTDIR} or a compile-time default). If this argument is not ! supplied, the mode name is appended to the root destination directory. ! @end enumerate ! ! @noindent Kpathsea sets @code{KPATHSEA_DPI} appropriately for each ! attempt at building a font. It's up to the program using Kpathsea to ! set the others. (@xref{Calling sequence}.) ! ! @vindex MAKETEXPK @r{environment variable} ! @cindex specification for @code{MakeTeXPK} ! You can change the specification for the arguments passed to the ! external script by setting the environment variable named as the script ! name, but all capitals---@code{MAKETEXPK}, for example. If you've ! changed the script name by setting (say) @code{DVIPSMAKEPK} to ! @samp{foo}, then the spec is taken from the environment variable ! @code{FOO}. ! ! The spec can contain any variable references, to the above variables or ! any others. As an example, the default spec for @code{MakeTeXPK} is: ! @example ! $KPATHSEA_DPI $MAKETEX_BASE_DPI $MAKETEX_MAG $MAKETEX_MODE ! @end example ! @noindent The convention of passing the name of the file to be created ! as the first argument cannot be changed. @node Installation testing --- 1083,1138 ---- configuration file value. ! @node mktex script arguments ! @subsubsection @file{mktex} script arguments ! @cindex arguments to @file{mktex} ! The first argument to a @file{mktex} script is always the name of the file to be created. ! In the default @file{mktexpk} implementation, additional arguments may ! also be passed: ! @table @samp ! @item --dpi @var{num} ! Sets the resolution of the generated font to @var{num}. ! @item --mfmode @var{name} ! Sets the Metafont mode to @var{name}. ! @item --bdpi @var{num} ! Sets the the ``base dpi'' for the font. This must match the mode being ! used. ! @item --mag @var{string} ! A ``magstep'' string suitable for the Metafont @code{mag} variable. ! This must match the combination of @var{bdpi} and @var{dpi} being used. ! @item --destdir @var{string} ! A directory name. If the directory is absolute, it is used as-is. ! Otherwise, it is appended to the root destination directory set in the ! script. ! @end table ! @c The feature mentioned here doesn't seem to be implemented. ! @c Worse, the variable name clashed with the "switch" used to select ! @c whether a mktex program is run at all. However, a dearth of ! @c complains suggests that no-one was using it anyway. ! @c ! @c @vindex MKTEXPK @r{environment variable} ! @c @cindex specification for @code{mktexpk} ! @c You can change the specification for the arguments passed to the ! @c external script by setting the environment variable named as the script ! @c name, but all capitals---@code{MKTEXPK}, for example. If you've ! @c changed the script name by setting (say) @code{DVIPSMAKEPK} to ! @c @samp{foo}, then the spec is taken from the environment variable ! @c @code{FOO}. ! @c ! @c The spec can contain any variable references, to the above variables or ! @c any others. As an example, the default spec for @code{mktexpk} is: ! @c @example ! @c $KPATHSEA_DPI $MAKETEX_BASE_DPI $MAKETEX_MAG $MAKETEX_MODE ! @c @end example ! @c ! @c @noindent The convention of passing the name of the file to be created ! @c as the first argument cannot be changed. @node Installation testing *************** *** 1104,1110 **** Besides the tests listed in @ref{Simple installation}, you can try running @samp{make check}. This includes the torture tests (trip, trap, ! and mptrap) that come with Web2c (@pxref{Torture tests,,, web2c, Web2c}). @node Security --- 1143,1149 ---- Besides the tests listed in @ref{Simple installation}, you can try running @samp{make check}. This includes the torture tests (trip, trap, ! and mptrap) that come with Web2c (@pxref{Triptrap,,, web2c, Web2c}). @node Security *************** *** 1130,1162 **** details,,, dvips, Dvips}, the xdvi man page, and @ref{tex invocation,,, web2c, Web2c}, respectively. ! @cindex globally writable directories Another security issue arises because it's very useful---almost ! necessary---to make arbitrary fonts on user demand with @code{MakeTeXPK} and friends. Where do these files get installed? By default, the ! @code{MakeTeXPK} distributed with Kpathsea assumes a globally writable ! @file{texmf} tree; this is the simplest and most convenient approach, ! but it may not suit your situation. ! @cindex append-only directories and @code{MakeTeXPK} The first restriction you can apply is to make newly-created directories ! under @file{texmf} be append-only with an option in ! @file{MakeTeXnames.cnf}. @xref{MakeTeX configuration}. @cindex group-writable directories @cindex setgid scripts Another approach is to establish a group (or user) for @TeX{} files, make the @file{texmf} tree writable only to that group (or user), and ! make @code{MakeTeXPK} et al.@: setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.) ! @cindex local cache of fonts ! @cindex cache of fonts, loca ! Finally, using a central writable @file{texmf} tree may be completely ! impossible, because it's on an NFS filesystem that you cannot export ! read/write, or AFS is in use, or simply because ``it's policy''. Then ! you must resort to each user's machine having its own local directory of ! dynamically-created fonts; again, @file{MakeTeXnames.cnf} has an option ! to do this, and again, @pxref{MakeTeX configuration}. --- 1169,1214 ---- details,,, dvips, Dvips}, the xdvi man page, and @ref{tex invocation,,, web2c, Web2c}, respectively. ! @cindex local cache of fonts ! @cindex cache of fonts, local Another security issue arises because it's very useful---almost ! necessary---to make arbitrary fonts on user demand with @code{mktexpk} and friends. Where do these files get installed? By default, the ! @code{mktexpk} distributed with Kpathsea assumes a world-writable ! @file{/var/tmp} directory; this is a simple and convenient approach, but ! it may not suit your situation because it means that a local cache of ! fonts is created on every machine. ! ! @cindex globally writable directories ! To avoid this duplication, many people consider a shared, globally ! writable font tree desirable, in spite of the potential security ! problems. To do this you should change the value of @code{VARTEXFONTS} ! in @file{texmf.cnf} to refer to some globally known directory. ! @xref{mktex configuration}. ! @cindex append-only directories and @code{mktexpk} The first restriction you can apply is to make newly-created directories ! under @file{texmf} be append-only with an option in @file{mktex.cnf}. ! @xref{mktex configuration}. @cindex group-writable directories @cindex setgid scripts Another approach is to establish a group (or user) for @TeX{} files, make the @file{texmf} tree writable only to that group (or user), and ! make @code{mktexpk} et al.@: setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.) ! @cindex file permissions ! @cindex permissions, file ! The @file{mktex@dots{}} scripts install files with the same read and ! write permissions as the directory they are installed in. The ! executable, sgid, suid, and sticky bits are always cleared. ! ! @cindex directory permissions ! @cindex permissions, directory ! Any directories created by the @file{mktex@dots{}} scripts have the ! same permissions as their parent directory, unless the ! @code{appendonlydir} feature is used, in which case the sticky bit is ! always set. diff -cNr octave-2.0.11/kpathsea/kdefault.c octave-2.0.12/kpathsea/kdefault.c *** octave-2.0.11/kpathsea/kdefault.c Mon Nov 11 15:22:09 1996 --- octave-2.0.12/kpathsea/kdefault.c Fri Oct 17 04:17:53 1997 *************** *** 102,111 **** test_expand_default (NULL, default_path); test_expand_default ("", default_path); test_expand_default ("none", default_path); ! test_expand_default (":", default_path); ! test_expand_default (":first", default_path); ! test_expand_default ("last:", default_path); ! test_expand_default ("middle::elddim", default_path); return 0; } --- 102,111 ---- test_expand_default (NULL, default_path); test_expand_default ("", default_path); test_expand_default ("none", default_path); ! test_expand_default (ENV_SEP_STRING, default_path); ! test_expand_default (ENV_SEP_STRING "first", default_path); ! test_expand_default ("last" ENV_SEP_STRING, default_path); ! test_expand_default ("middle" ENV_SEP_STRING ENV_SEP_STRING "elddim", default_path); return 0; } diff -cNr octave-2.0.11/kpathsea/klibtool octave-2.0.12/kpathsea/klibtool *** octave-2.0.11/kpathsea/klibtool Thu May 22 22:09:13 1997 --- octave-2.0.12/kpathsea/klibtool Tue Apr 14 21:49:03 1998 *************** *** 16,22 **** # the binary, etc.) See the configure mode. I can send you the # hello,world Makefile I used for testing if you want it. # ! rcs_version='$Id: klibtool,v 1.1 1997/05/23 03:09:13 jwe Exp $' version=0.1 maint=tex-k@mail.tug.org help="Usage: $0 [OPTION]... MODE [ARG]... --- 16,22 ---- # the binary, etc.) See the configure mode. I can send you the # hello,world Makefile I used for testing if you want it. # ! rcs_version='$Id: klibtool,v 1.9 1997/12/12 09:53:46 olaf Exp $' version=0.1 maint=tex-k@mail.tug.org help="Usage: $0 [OPTION]... MODE [ARG]... *************** *** 32,37 **** --- 32,38 ---- version Options: + --source-dir DIR --config-dir DIR -n, --dry-run --help *************** *** 53,58 **** --- 54,60 ---- chicken= show=echo config_dir= + source_dir= # Yes, this option parsing is imperfect, e.g., -xcruddy will be # recognized as --config-dir. I don't think it's worth the trouble to *************** *** 61,66 **** --- 63,70 ---- case "$1" in configure|compile|archive|link|install-lib|install-prog|version) mode=$1; break;; + --source-dir) # --source-dir + shift; source_dir=$1;; -*c*) # --config-dir shift; config_dir=$1;; -n|-*d*) # -n, --dry-run *************** *** 92,109 **** # the user told us where it is, great. More likely, though, it's only # in the directory with the library that we're eventually going to # link with. We have no way of knowing what that is, so let's use the ! # location of this script itself as the default. if test -z "$config_dir"; then if test -r ./klibtool.config; then config_dir=. else dir=`echo $0 | sed 's,/[^/]*$,,'` test -r $dir/klibtool.config && config_dir=$dir fi fi if test -z "$config_dir"; then ! echo "$0: Cannot find klibtool.config in . or $dir," >&2 ! echo "$0: and no --config-dir option specified." >&2 exit 1 fi # Read the file. --- 96,120 ---- # the user told us where it is, great. More likely, though, it's only # in the directory with the library that we're eventually going to # link with. We have no way of knowing what that is, so let's use the ! # location of this script itself as the default if not in `.', `..', ! # or `../..'. ! test -z "$config_dir" && config_dir=$KLIBTOOL_CONFIG_DIR if test -z "$config_dir"; then if test -r ./klibtool.config; then config_dir=. + elif test -r ../klibtool.config; then + config_dir=.. + elif test -r ../../klibtool.config; then + config_dir=../.. else dir=`echo $0 | sed 's,/[^/]*$,,'` test -r $dir/klibtool.config && config_dir=$dir fi fi if test -z "$config_dir"; then ! echo "$0: Cannot find klibtool.config in . or .. or $dir," >&2 ! echo "$0: and no --config-dir option specified" >&2 ! echo "$0: or KLIBTOOL_CONFIG_DIR environment variable set." >&2 exit 1 fi # Read the file. *************** *** 165,178 **** config_dir=. # $0 is just the script name, no directory part. fi fi config_file=$config_dir/klibtool.config $verbose "$0: writing to config_file = $config_file." # If no specified HOSTTYPE, guess it. if test $# -eq 0; then ! config_guess=$config_dir/config.guess if test ! -r $config_guess; then ! echo "$0: config.guess not in $config_dir." >&2 echo "$0: Either specify a host type or get the scripts." >&2 exit 1 fi --- 176,193 ---- config_dir=. # $0 is just the script name, no directory part. fi fi + if test -z "$source_dir"; then + source_dir=$config_dir + fi config_file=$config_dir/klibtool.config + config_tmp=$config_dir/klt$$.tmp $verbose "$0: writing to config_file = $config_file." # If no specified HOSTTYPE, guess it. if test $# -eq 0; then ! config_guess=$source_dir/config.guess if test ! -r $config_guess; then ! echo "$0: config.guess not in $source_dir." >&2 echo "$0: Either specify a host type or get the scripts." >&2 exit 1 fi *************** *** 184,192 **** fi # Convert the original host type to canonical form. ! config_sub=$config_dir/config.sub if test ! -r $config_sub; then ! echo "$0: config.sub missing from $config_dir; it's required." >&2 exit 1 fi host_type=`$config_sub $host_alias` --- 199,207 ---- fi # Convert the original host type to canonical form. ! config_sub=$source_dir/config.sub if test ! -r $config_sub; then ! echo "$0: config.sub missing from $source_dir; it's required." >&2 exit 1 fi host_type=`$config_sub $host_alias` *************** *** 195,203 **** exit 1 fi - # Finally, we'll be creating something. - rm -f $config_file - # Define defaults, to be overridden in the system-specific cases. config_vars="LIBTOOL_OBJTYPES shared_support shared_ext libpath_var CC args_STATIC_compile args_SHARED_compile --- 210,215 ---- *************** *** 224,229 **** --- 236,244 ---- if test -f $dir/gcc; then CC=gcc break + elif test -f $dir/gcc.exe; then + CC=gcc + break fi done fi *************** *** 275,291 **** fi ;; *) echo "$0: $host_type not explicitly supported, using defaults." >&2 ;; esac # Output values. for v in $config_vars; do config_line=$v=\'`eval echo '$'$v`\' $verbose "$0: writing config line $config_line." ! echo $config_line >>$config_file done ;; --- 290,328 ---- fi ;; + *-*-irix5*|*-*-irix6*) + shared_support=true + args_SHARED_compile= + ;; + + *-*-*djgpp* | *-*-*go32* | *-*-msdos*) + shared_support=false + libpath_var=LIBRARY_PATH + ;; + *) echo "$0: $host_type not explicitly supported, using defaults." >&2 ;; esac + # Finally, we'll be creating something. + rm -f $config_tmp + # Output values. for v in $config_vars; do config_line=$v=\'`eval echo '$'$v`\' $verbose "$0: writing config line $config_line." ! echo $config_line >>$config_tmp done + + # Check if this changed anything. + if cmp -s $config_file $config_tmp 2>/dev/null; then + $verbose "$0: $config_file is unchanged" + rm -f $config_tmp + else + rm -f $config_file + mv $config_tmp $config_file + fi ;; *************** *** 312,318 **** # Construct and run the cmd. cmd="$compiler ""$@"" $ot_args $output_arg" $show $cmd ! $chicken $cmd status=$? test $status -eq 0 || break done # end of objtypes loop for compile mode --- 349,355 ---- # Construct and run the cmd. cmd="$compiler ""$@"" $ot_args $output_arg" $show $cmd ! $chicken eval "$cmd" status=$? test $status -eq 0 || break done # end of objtypes loop for compile mode *************** *** 368,374 **** # If it supports shared libraries, it supports symlinks. # Although this is unnecessary on (e.g.) SunOS, it # doesn't hurt, and it is necessary on (e.g.) Solaris. ! post="&& ln -s $lib_basename $lib_base" elif test $ot = STATIC; then ranlib=`eval echo '$'${ot}_ranlib` $verbose "${ot}_ranlib = $ranlib." --- 405,411 ---- # If it supports shared libraries, it supports symlinks. # Although this is unnecessary on (e.g.) SunOS, it # doesn't hurt, and it is necessary on (e.g.) Solaris. ! post="&& rm -f $lib_base && ln -s $lib_basename $lib_base" elif test $ot = STATIC; then ranlib=`eval echo '$'${ot}_ranlib` $verbose "${ot}_ranlib = $ranlib." *************** *** 392,399 **** fi # Remove old archive file because we recommend `ar q', not `r', ! # and the user can't necessarily know the library name. ! cmd="cd $lib_dir/$ot && rm -f $lib_base* && $cmdname $args $post" $show $cmd $chicken eval "($cmd)" status=$? --- 429,438 ---- fi # Remove old archive file because we recommend `ar q', not `r', ! # and the user can't necessarily know the library name. We remove ! # both $lib_base and $lib_base* because on MS-DOS the latter may not ! # match the former. ! cmd="cd $lib_dir/$ot && rm -f $lib_base $lib_base* && $cmdname $args $post" $show $cmd $chicken eval "($cmd)" status=$? *************** *** 491,497 **** # Do the link. cmd="$cmdname $args" $show $cmd ! $chicken $cmd status=$? if test $status -eq 0 && test -n "$real_output_name"; then --- 530,536 ---- # Do the link. cmd="$cmdname $args" $show $cmd ! $chicken eval "$cmd" status=$? if test $status -eq 0 && test -n "$real_output_name"; then *************** *** 566,572 **** # Link libfoo.so to libfoo.so.1.2.3. lib_base=`echo $lib_basename | sed 's/[.0-9]*$//'` $verbose "$0: linking $libdir/$lib_base to $lib_basename" ! (cd $libdir && ln -s $lib_basename $lib_base) fi # # Run ldconfig, etc. --- 605,611 ---- # Link libfoo.so to libfoo.so.1.2.3. lib_base=`echo $lib_basename | sed 's/[.0-9]*$//'` $verbose "$0: linking $libdir/$lib_base to $lib_basename" ! (cd $libdir && rm -f $lib_base && ln -s $lib_basename $lib_base) fi # # Run ldconfig, etc. *************** *** 608,614 **** # FIXME: On SunOS, AIX, and HP-UX, relink to avoid hardwired libdirs. cmd="${INSTALL_PROGRAM-cp} $arg$suffix $dir/$arg" $show $cmd ! $chicken $cmd done ;; --- 647,653 ---- # FIXME: On SunOS, AIX, and HP-UX, relink to avoid hardwired libdirs. cmd="${INSTALL_PROGRAM-cp} $arg$suffix $dir/$arg" $show $cmd ! $chicken eval "$cmd" done ;; diff -cNr octave-2.0.11/kpathsea/kpathsea.cps octave-2.0.12/kpathsea/kpathsea.cps *** octave-2.0.11/kpathsea/kpathsea.cps Thu Feb 6 17:21:13 1997 --- octave-2.0.12/kpathsea/kpathsea.cps Tue Mar 24 13:02:42 1998 *************** *** 1,788 **** \initial {!} ! \entry {\code {!! \r {in path specifications}}}{33} \initial {$} ! \entry {\code {$ \r {expansion}}}{30} \initial {-} ! \entry {\code {--color=tty}}{32} ! \entry {\code {--debug=\var {num}}}{36} ! \entry {\code {--dpi=\var {num}}}{34} ! \entry {\code {--enable \r {options}}}{7} ! \entry {\code {--enable-shared}}{9} ! \entry {\code {--expand-path=\var {string}}}{36} ! \entry {\code {--expand-var=\var {string}}}{36} ! \entry {\code {--format=\var {name}}}{35} ! \entry {\code {--help}}{37} ! \entry {\code {--interactive}}{36} ! \entry {\code {--mode=\var {string}}}{36} ! \entry {\code {--must-exist}}{36} ! \entry {\code {--path=\var {string}}}{36} ! \entry {\code {--progname=\var {name}}}{36} ! \entry {\code {--separator=\var {string}}}{36} ! \entry {\code {--show-path=\var {name}}}{36} ! \entry {\code {--srcdir\r {, for building multiple architectures}}}{8} ! \entry {\code {--version}}{37} ! \entry {\code {--with \r {options}}}{7} ! \entry {\code {--with-maketextex-default}}{12} ! \entry {\code {--without-maketexmf-default}}{12} ! \entry {\code {--without-maketexpk-default}}{12} ! \entry {\code {--without-maketextfm-default}}{12} ! \entry {\code {-1 \r {debugging value}}}{21} ! \entry {\code {-A \r {option to \code {ls}}}}{32} ! \entry {\code {-Bdynamic}}{26} ! \entry {\code {-Bstatic}}{26} ! \entry {\code {-D \var {num}}}{34} ! \entry {\code {-dynamic}}{26} ! \entry {\code {-g\r {, compiling without}}}{9} ! \entry {\code {-L \r {option to \code {ls}}}}{33} ! \entry {\code {-maketex=\var {filetype}}}{36} ! \entry {\code {-no-maketex=\var {filetype}}}{36} ! \entry {\code {-O\r {, compiling with}}}{9} ! \entry {\code {-static}}{26} \initial {.} ! \entry {\code {. \r {directories, ignored}}}{32} ! \entry {\code {. \r {files}}}{32} ! \entry {\code {.2602gf}}{24} ! \entry {\code {.afm}}{38} ! \entry {\code {.base}}{38} ! \entry {\code {.bib}}{38} ! \entry {\code {.bst}}{38} ! \entry {\code {.cnf}}{38} ! \entry {\code {.dtx}}{39} ! \entry {\code {.eps}}{39} ! \entry {\code {.epsi}}{39} ! \entry {\code {.fmt}}{38} ! \entry {\code {.gf}}{38} ! \entry {\code {.ist}}{38} ! \entry {\code {.ltx}}{39} ! \entry {\code {.map}}{38} ! \entry {\code {.mem}}{38} ! \entry {\code {.mf}}{39} ! \entry {\code {.mft}}{39} ! \entry {\code {.mp}}{39} ! \entry {\code {.ocp}}{39} ! \entry {\code {.ofm}}{39} ! \entry {\code {.opl}}{39} ! \entry {\code {.otp}}{39} ! \entry {\code {.ovf}}{39} ! \entry {\code {.ovp}}{39} ! \entry {\code {.pfa}}{39} ! \entry {\code {.pfb}}{39} ! \entry {\code {.pk}}{39} ! \entry {\code {.pool}}{39} ! \entry {\code {.pro}}{39} ! \entry {\code {.rhosts\r {, writable by \TeX{}}}}{14} ! \entry {\code {.tex}}{39} ! \entry {\code {.tex \r {file, included in \file {ls-R}}}}{32} ! \entry {\code {.texi}}{39} ! \entry {\code {.texinfo}}{39} ! \entry {\code {.tfm}}{39} ! \entry {\code {.txi}}{39} ! \entry {\code {.vf}}{40} \initial {/} ! \entry {\code {/ \r {may not be /}}}{27} ! \entry {\code {/\r {, trailing in home directory}}}{31} ! \entry {\code {//}}{31} ! \entry {\code {/afs/\dots {} \r {, installing into}}}{10} ! \entry {\code {/etc/profile}}{23} ! \entry {\code {/etc/profile \r {and aliases}}}{32} ! \entry {\code {/var/tex/fonts}}{12} \initial {:} ! \entry {\code {: \r {may not be :}}}{27} ! \entry {\code {:: \r {expansion}}}{29} \initial {@} ! \entry {@\var {var}@ substitutions}{7} \initial {{\tt\char '173}} ! \entry {\code {{\tt\char '173} \r {expansion}}}{31} \initial {{\tt\char '176}} ! \entry {\code {~ \r {expansion}}}{30} \initial {{\tt\indexbackslash }} ! \entry {\code {{\tt\rawbackslashxx }\r {, line continuation in \file {texmf.cnf}}}}{28} ! \entry {\code {{\tt\rawbackslashxx }openin}}{27} ! \entry {\code {{\tt\rawbackslashxx }special\r {, suppressing warnings about}}}{43} \initial {2} ! \entry {\code {2602gf}}{24} \initial {4} ! \entry {4all\TeX{} Live CD-ROM}{18} \initial {8} ! \entry {8.3 filenames, using}{12} \initial {A} ! \entry {absolute filenames}{27} ! \entry {\code {ac_include\r {, Autoconf extension}}}{7} ! \entry {access warnings}{27} ! \entry {Acorn \TeX{} implementations}{18} ! \entry {\code {AFMFONTS}}{38} ! \entry {AFS}{10} ! \entry {AIX shells and \code {configure}}{7} ! \entry {aliases for fonts}{41} ! \entry {aliases, for filenames}{33} ! \entry {\code {all}}{42} ! \entry {alphabetical order, not}{31} ! \entry {Amiga support}{4} ! \entry {Amiga \TeX{} implementations}{18} ! \entry {Andrew File System, installing with}{10} ! \entry {announcement mailing list}{20} ! \entry {append-only directories and \code {MakeTeXPK}}{14} ! \entry {\code {appendonlydir}}{12} ! \entry {architecture-(in)dependent files, installing only}{10} ! \entry {architectures, compiling multiple}{8} ! \entry {arguments to \file {MakeTeX}}{13} ! \entry {\code {argv[0]}}{44} ! \entry {\code {ash\r {, losing with \code {configure}}}}{7} ! \entry {\code {autoconf\r {, recommended}}}{45} ! \entry {automounter, and configuration}{9} ! \entry {automounter, and \file {ls-R}}{33} ! \entry {auxiliary tasks}{36} \initial {B} ! \entry {Babel}{5, 10} ! \entry {Bach, Johann Sebastian}{30} ! \entry {backbone of CTAN}{17} ! \entry {backslash-newline}{28} ! \entry {base dpi}{13} ! \entry {\code {bash\r {, recommended for running \code {configure}}}}{7} ! \entry {basic glyph lookup}{41} ! \entry {\code {BIBINPUTS}}{38} ! \entry {binary mode, for file transfers}{17} ! \entry {blank lines, in \file {texmf.cnf}}{28} ! \entry {brace expansion}{31} ! \entry {BSD universe}{10} ! \entry {\code {bsh\r {, ok with \code {configure}}}}{7} ! \entry {\code {BSTINPUTS}}{38} ! \entry {bug address}{19} ! \entry {bug checklist}{19} ! \entry {bug mailing list}{20} ! \entry {bugs, reporting}{19} \initial {C} ! \entry {\code {c-*.h}}{45} ! \entry {\code {c-auto.h.in}}{7} ! \entry {cache of fonts, loca}{14} ! \entry {calling sequence}{44} ! \entry {\code {CC}}{8} ! \entry {\code {cc \r {warnings}}}{26} ! \entry {\code {cc\r {, compiling with}}}{8} ! \entry {CD-ROM distributions}{18} ! \entry {\code {CFLAGS}}{8} ! \entry {\code {ChangeLog \r {entry}}}{20} ! \entry {checklist for bug reports}{19} ! \entry {\code {checksum}}{42} ! \entry {circle fonts}{41} ! \entry {\code {clean \r {Make target}}}{11} ! \entry {\code {client_path \r {in \code {kpse_format_info}}}}{45} ! \entry {\code {cmr10\r {, as fallback font}}}{42} ! \entry {\code {cmr10.vf}}{27} ! \entry {\code {cnf.c}}{29} ! \entry {\code {cnf.h}}{46} ! \entry {code sharing}{9} ! \entry {color printers, configuring}{3} ! \entry {comments, in fontmap files}{41} ! \entry {comments, in \file {texmf.cnf}}{28} \entry {comments, making}{1} ! \entry {common features in glyph lookup}{41} ! \entry {common problems}{22} ! \entry {\code {comp.sys.sun.admin \r {FAQ}}}{25} ! \entry {\code {comp.text.tex}}{20} ! \entry {compilation}{3} ! \entry {compilation value, source for path}{28} ! \entry {compiler bugs}{24} ! \entry {compiler bugs, finding}{24} ! \entry {compiler options, additional}{10} ! \entry {compiler options, specifying}{8} ! \entry {compiler, changing}{10} \entry {conditions for use}{1} ! \entry {config files}{28} ! \entry {config files, for Kpathsea-using programs}{45} ! \entry {config files, programming with}{45} ! \entry {\code {config.log}}{19} ! \entry {\code {config.ps\r {, search path for}}}{40} ! \entry {\code {config.status}}{19} ! \entry {configuration}{3} ! \entry {configuration bugs}{19} ! \entry {configuration compiler options}{8} ! \entry {configuration file, source for path}{28} ! \entry {configuration files as shell scripts.}{29} ! \entry {configuration of \file {MakeTeX} scripts}{12} ! \entry {configuration of optional features}{7} ! \entry {\code {CONFIGURE}}{7} ! \entry {\code {configure} options}{7} ! \entry {\code {configure} options for \file {MakeTeX} scripts}{12} ! \entry {\code {configure\r {, running}}}{7} ! \entry {context diff}{20} ! \entry {continuation character}{28} ! \entry {core dumps, reporting}{20} ! \entry {\code {CPPFLAGS}}{8} ! \entry {crashes, reporting}{20} ! \entry {CTAN, defined}{17} ! \entry {\code {CTAN.sites}}{17} ! \entry {custom installation}{4} \initial {D} ! \entry {database search}{27} ! \entry {database, for filenames}{32} ! \entry {database, format of}{33} ! \entry {DC fonts, and dynamic source creation}{11} ! \entry {\code {debug.h}}{21} ! \entry {debugger}{20} ! \entry {debugging}{21} ! \entry {debugging options, in Kpathsea-using program}{45} ! \entry {debugging output}{21} ! \entry {debugging with \samp {-g}, disabling}{9} ! \entry {DEC shells and \code {configure}}{7} ! \entry {default expansion}{29} ! \entry {default path features}{5} ! \entry {default paths, changing}{6} ! \entry {default paths, how they're made}{6} ! \entry {\code {default_texsizes}}{42} ! \entry {\code {DEFS}}{8} ! \entry {\code {depot}}{9} ! \entry {destination directory for \code {MakeTeXPK}}{13} ! \entry {directories, changing default installation}{6} ! \entry {directories, making append-only}{12} ! \entry {directory structure, for \TeX{} files}{15} ! \entry {disabling \file {MakeTeX} scripts}{12} ! \entry {disk search}{27} ! \entry {disk searching, avoiding}{33} ! \entry {disk space, needed}{4} ! \entry {disk usage, reducing}{22} ! \entry {\code {distclean \r {Make target}}}{11} ! \entry {distributions, compiling simultaneously}{5} ! \entry {distributions, not compiling}{5} ! \entry {distributions, on CD-ROM}{18} ! \entry {distributions, on tape}{18} ! \entry {distributions, via ftp}{17} ! \entry {\code {dlclose}}{25} ! \entry {\code {dlopen}}{25} ! \entry {\code {dlsym}}{25} ! \entry {\code {dlsym.c}}{25} ! \entry {\code {doc files}}{39} ! \entry {DOS compatible names}{12} ! \entry {DOS support}{4} ! \entry {DOS \TeX{} implementations}{18} ! \entry {\code {dosnames}}{12} ! \entry {dot files}{32} ! \entry {doubled colons}{29} ! \entry {\code {dpi\var {nnn} directories}}{12} ! \entry {DVI drivers}{5} ! \entry {\code {DVILJMAKEPK}}{13} ! \entry {\code {DVILJSIZES}}{42} ! \entry {\code {DVIPSFONTS}}{40} ! \entry {\code {DVIPSHEADERS}}{39} ! \entry {\code {DVIPSMAKEPK}}{13} ! \entry {\code {DVIPSSIZES}}{42} ! \entry {dynamic creation of files}{11} ! \entry {dynamic linking problems with OpenWin libraries}{25} \initial {E} ! \entry {\code {elt-dirs.c}}{32} ! \entry {email CTAN access}{17} ! \entry {enabling \file {MakeTeX} scripts}{12} ! \entry {environment variable, source for path}{28} ! \entry {environment variables for \TeX{}}{38} ! \entry {environment variables in paths}{30} ! \entry {environment variables, old}{23} ! \entry {epoch, seconds since}{22} ! \entry {error message macros}{44} ! \entry {excessive startup time}{23} ! \entry {\code {expand.c}}{31} ! \entry {expanding symlinks}{44} ! \entry {expansion, default}{29} ! \entry {expansion, path element}{27} ! \entry {expansion, search path}{29} ! \entry {expansion, subdirectory}{31} ! \entry {expansion, tilde}{30} ! \entry {expansion, variable}{30} ! \entry {explicitly relative filenames}{27} ! \entry {externally-built filename database}{32} ! \entry {extra colons}{29} ! \entry {\code {extraclean \r {Make target}}}{11} \initial {F} ! \entry {failed \code {MakeTeX\dots {}} script invocation}{13} ! \entry {fallback font}{42} ! \entry {fallback resolutions}{42} ! \entry {fallback resolutions, overriding}{9} ! \entry {FAQ, \t {comp.sys.sun.admin}}{25} ! \entry {FAQ, Kpathsea}{22} ! \entry {Farwell, Matthew}{31} ! \entry {features, of default paths}{5} ! \entry {file formats, supported}{38} ! \entry {file lookup}{40} ! \entry {file types, registering new}{44} ! \entry {filename aliases}{33} ! \entry {filename database}{32} ! \entry {filename database generation}{11} ! \entry {filenames, absolute or explicitly relative}{27} ! \entry {files, unable to find}{23} ! \entry {filesystem search}{27} ! \entry {floating directories}{27} ! \entry {font alias files}{41} ! \entry {font generation failures}{24} ! \entry {font of last resort}{42} ! \entry {font set, infinite}{11} ! \entry {fontmap files}{41} ! \entry {fontnames, arbitrary length}{41} ! \entry {fonts, being created}{4} ! \entry {\code {fopen\r {, redefined}}}{21} ! \entry {format of external database}{33} ! \entry {Free Software Foundation}{18} ! \entry {FreeBSD shells and \code {configure}}{7} ! \entry {FSF Source Code CD-ROM}{18} ! \entry {ftp retrieval}{17} ! \entry {\code {ftp.tug.org}}{16} \entry {fundamental purpose of Kpathsea}{1} \initial {G} ! \entry {\code {gcc\r {, compiling with}}}{8} ! \entry {\code {gdb\r {, recommended}}}{20} ! \entry {generation of filename database}{11} ! \entry {\code {get_applicationShellWidgetClass}}{25} ! \entry {\code {get_wmShellWidgetClass}}{25} ! \entry {\code {GFFONTS}}{38} ! \entry {globally writable directories}{14} ! \entry {glyph lookup}{40} ! \entry {glyph lookup bitmap tolerance}{41} ! \entry {\code {GLYPHFONTS}}{38, 39} ! \entry {GNU C compiler bugs}{24} \entry {GNU General Public License}{1} ! \entry {Gopher CTAN access}{17} ! \entry {group-writable directories}{14} ! \entry {GUTenberg}{18} \initial {H} ! \entry {hash table buckets, printing}{22} ! \entry {hash table routines}{45} ! \entry {\code {hash_summary_only \r {variable for debugging}}}{22} ! \entry {help, mailing list for general \TeX{}}{20} ! \entry {\code {HIER}}{6} ! \entry {history of Kpathsea}{1} ! \entry {home directories in paths}{30} ! \entry {\code {HOME\r {, as ~ expansion}}}{30} \initial {I} ! \entry {identifiers, characters valid in}{28} ! \entry {illegal pointer combination warnings}{26} ! \entry {\code {include \r {fontmap directive}}}{41} ! \entry {\code {INDEXSTYLE}}{38} ! \entry {\code {info-tex@shsu.edu}}{20} ! \entry {input lines, reading}{45} ! \entry {\code {install-data \r {Make target}}}{10} ! \entry {\code {install-exec \r {Make target}}}{10} ! \entry {installation}{3} ! \entry {installation testing}{14} ! \entry {installation, architecture-(in)dependent files only}{10} ! \entry {installation, changing default directories}{6} ! \entry {installation, customized}{4} ! \entry {installation, getting executables instead of}{3} ! \entry {installation, simple}{3} ! \entry {installing files}{10} ! \entry {interactive query}{36} \entry {interface, not frozen}{1} \entry {introduction}{1} \initial {K} ! \entry {\samp {kdebug:}}{22} ! \entry {\code {kdefault.c}}{30} ! \entry {Knuth, Donald E.}{1} ! \entry {Knuth, Donald E., archive of programs by}{19} ! \entry {Knuth, Donald E., original author}{17} ! \entry {Korn shell\r {, losing with \code {configure}}}{7} ! \entry {Kpathsea config file, source for path}{28} ! \entry {Kpathsea version number}{5} ! \entry {\code {kpathsea.h}}{44} ! \entry {\code {kpathsea/CONFIGURE}}{7} ! \entry {\code {kpathsea/HIER}}{6} ! \entry {\code {kpathsea_debug}}{21} ! \entry {\code {KPATHSEA_DEBUG}}{21, 44} ! \entry {\code {kpathsea_debug \r {variable}}}{45} ! \entry {\code {KPATHSEA_DPI}}{13} ! \entry {\code {KPSE_BITMAP_TOLERANCE}}{41} ! \entry {\code {kpse_cnf_get}}{46} ! \entry {\code {KPSE_DEBUG_EXPAND \r {(16)}}}{21, 22} ! \entry {\code {KPSE_DEBUG_FOPEN \r {(4)}}}{21} ! \entry {\code {KPSE_DEBUG_HASH \r {(2)}}}{21} ! \entry {\code {KPSE_DEBUG_PATHS \r {(8)}}}{21} ! \entry {\code {KPSE_DEBUG_SEARCH \r {(32)}}}{21, 22} ! \entry {\code {KPSE_DEBUG_STAT \r {(1)}}}{21} ! \entry {\code {kpse_fallback_font}}{42} ! \entry {\code {kpse_find_*}}{45} ! \entry {\code {kpse_find_file}}{40} ! \entry {\code {kpse_find_glyph_format}}{41} ! \entry {\code {kpse_format_info}}{45} ! \entry {\code {kpse_format_info_type}}{21} ! \entry {\code {kpse_init_prog}}{45} ! \entry {\code {kpse_init_prog\r {, and \code {MAKETEX_MODE}}}}{6} ! \entry {\code {kpse_make_specs}}{13} ! \entry {\code {kpse_open_file}}{45} ! \entry {\code {kpse_set_progname}}{44} ! \entry {\code {kpse_var_expand}}{45} ! \entry {\code {kpsewhich}}{34} ! \entry {Kpsewhich, and debugging}{21} ! \entry {\code {ksh\r {, losing with \code {configure}}}}{7} \initial {L} ! \entry {\code {labrea.stanford.edu}}{19} ! \entry {LaserJet drive}{5} ! \entry {last-resort font}{42} ! \entry {La\TeX{} help mailing list}{20} ! \entry {\code {lcircle10}}{41} ! \entry {\code {LDFLAGS}}{8} ! \entry {leading colons}{29} ! \entry {leaf directories wrongly guessed}{23} ! \entry {leaf directory trick}{31} ! \entry {\code {libdl.a}}{25} ! \entry {libraries, changing}{10} ! \entry {libraries, specifying additional}{8} ! \entry {\code {LIBS}}{8} ! \entry {\code {libucb\r {, avoiding}}}{10} \entry {license for using the library}{1} ! \entry {lines, reading arbitrary-length}{45} ! \entry {Linux File System Standard}{12} ! \entry {Linux shells and \code {configure}}{7} ! \entry {Linux, using Web2c}{18} ! \entry {\code {lndir \r {for building symlink trees}}}{8} ! \entry {loader options}{8} ! \entry {loader options, final}{10} ! \entry {loader options, initial}{10} ! \entry {local cache of fonts}{14} ! \entry {log file}{22} ! \entry {logging successful searches}{22} ! \entry {\code {lost+found \r {directory}}}{27} ! \entry {\code {lostchar}}{42, 43} ! \entry {\code {ls-R}}{38} ! \entry {\code {ls-R \r {and AFS}}}{11} ! \entry {\code {ls-R \r {database file}}}{32} ! \entry {\code {ls-R\r {, simplest build}}}{32} \initial {M} ! \entry {Macintosh \TeX{} implementations}{18} ! \entry {MacKenzie, David}{2, 31} ! \entry {\code {mag \r {Metafont variable}}}{13} ! \entry {magic characters}{27} ! \entry {magstep for \code {MakeTeXPK}}{13} ! \entry {mailing lists}{20} ! \entry {\code {maintainer-clean \r {Make target}}}{11} ! \entry {Make arguments, additional}{10} ! \entry {\code {make\r {, running}}}{9} ! \entry {\code {Makefile.in}}{7} ! \entry {\file {MakeTeX} script configuration}{12} ! \entry {\file {MakeTeX} script names}{13} ! \entry {\file {MakeTeX} scripts}{11} ! \entry {\code {MakeTeX.site}}{12} ! \entry {\code {MAKETEX_BASE_DPI}}{13} ! \entry {\code {MAKETEX_MAG}}{13} ! \entry {\code {MAKETEX_MODE}}{6, 13} ! \entry {\code {MakeTeXMF}}{13} ! \entry {\code {MakeTeXmkdir}}{12} ! \entry {\code {MakeTeXnames.cnf}}{12} ! \entry {\code {MakeTeXPK}}{13} ! \entry {\code {MakeTeXPK \r {, initial runs}}}{4} ! \entry {\code {MAKETEXPK \r {environment variable}}}{14} ! \entry {\code {MakeTeXTeX}}{13} ! \entry {\code {MakeTeXTFM}}{13} ! \entry {memory allocation routines}{45} ! \entry {Metafont failures}{24} ! \entry {Metafont installation}{24} ! \entry {Metafont making too-large fonts}{24} ! \entry {Metafont mode name for \code {MakeTeXPK}}{13} ! \entry {Metafont using the wrong resolution}{24} ! \entry {\code {MFBASES}}{38} ! \entry {\code {MFINPUTS}}{39} ! \entry {\code {MFPOOL}}{39} ! \entry {\code {MFTINPUTS}}{39} ! \entry {mirrors, FTP}{17} ! \entry {mismatched checksum warnings}{42} ! \entry {\code {missfont.log}}{13} ! \entry {\code {MISSFONT_LOG}}{13} ! \entry {missing character warnings}{43} ! \entry {mode directory, omitting}{12} ! \entry {\code {mode \r {Metafont variable}}}{13} ! \entry {Morgan, Tim}{1} ! \entry {\code {mostlyclean \r {Make target}}}{11} ! \entry {\code {MPINPUTS}}{39} ! \entry {\code {MPMEMS}}{38} ! \entry {\code {MPPOOL}}{39} ! \entry {\code {MPSUPPORT}}{39} ! \entry {\code {MT_FEATURES}}{12} ! \entry {\code {mtp_destdir}}{13} ! \entry {multiple architectures, compiling on}{8} ! \entry {multiple architectures, directories for}{9} ! \entry {multiple architectures, installing on}{10} ! \entry {multiple \TeX{} hierarchies}{31} ! \entry {must exist}{27} \initial {N} ! \entry {names for \file {MakeTeX} scripts}{13} ! \entry {NetBSD shells and \code {configure}}{7} \entry {Neumann, Gustaf}{2} ! \entry {newsgroup for \TeX{}}{20} ! \entry {NeXT, lacking X11}{5} ! \entry {NFS and \file {ls-R}}{33} ! \entry {NFS CTAN access}{17} ! \entry {\code {nomode}}{12} ! \entry {non-English typesetting}{5} ! \entry {non-Unix operating systems}{4} ! \entry {Northwest Computing Support Center}{18} ! \entry {NTG}{18} ! \entry {null pointers, dereferencing}{20} ! \entry {numeric debugging values}{21} \initial {O} ! \entry {obtaining \TeX{}}{16} ! \entry {obtaining \TeX{} on tape}{18} ! \entry {obtaining Web2c by ftp}{17} ! \entry {obtaining Web2c on CD-ROM}{18} ! \entry {\code {OCPINPUTS}}{39} ! \entry {\code {OFMFONTS}}{39} ! \entry {online Metafont display, spurious}{24} ! \entry {OpenWin libraries, dynamic linking problems}{25} ! \entry {optimization caveat}{24} ! \entry {optimization, enabling}{9} ! \entry {options for debugging}{21} ! \entry {options to \code {configure}}{7} ! \entry {OS/2 support}{4} ! \entry {other \TeX{} distributions}{18} ! \entry {\code {OTPINPUTS}}{39} ! \entry {overview of path searching}{27} ! \entry {overview of programming with Kpathsea}{44} ! \entry {\code {OVFFONTS}}{39} ! \entry {\code {OVPFONTS}}{39} \initial {P} ! \entry {patches, Sun OpenWin}{26} ! \entry {path expansion}{29} ! \entry {path searching}{27} ! \entry {path searching options}{34} ! \entry {path searching, overview}{27} ! \entry {path searching, standalone}{34} ! \entry {path sources}{28} ! \entry {paths, changing default}{5, 6} ! \entry {paths, device name included in}{6} ! \entry {\code {paths.h}}{6} ! \entry {\code {paths.h\r {, creating}}}{9} ! \entry {\code {pathsearch.h}}{44} ! \entry {\code {pc \r {Pascal compiler}}}{1} ! \entry {PCL driver}{5} ! \entry {PDF generation}{5} ! \entry {permission denied}{27} ! \entry {\code {PKFONTS}}{39} ! \entry {\code {plain.base}}{24} ! \entry {pointer combination warnings}{26} ! \entry {PostScript driver}{5} ! \entry {PostScript fonts, additional}{3} ! \entry {precompiled executables, instead of installation}{3} ! \entry {precompiled Unix binaries}{18} ! \entry {preprocessor options}{8} ! \entry {preprocessor options, additional}{9} ! \entry {Prime Time \TeX{}cetera CD-ROM}{18} ! \entry {printer configuration files}{3} ! \entry {privacy, semblance of}{22} ! \entry {problems, common}{22} ! \entry {\code {proginit.c}}{6} ! \entry {\code {proginit.h}}{45} ! \entry {program-varying paths}{38} ! \entry {\code {program_invocation_name}}{44} ! \entry {\code {program_invocation_short_name}}{44} ! \entry {programming overview}{44} ! \entry {programming with config files}{45} ! \entry {programming with Kpathsea}{44} \entry {programs using the library}{1} ! \entry {proof mode}{24} ! \entry {\code {PSHEADERS}}{39} ! \entry {\code {pxp \r {Pascal preprocessor}}}{1} \initial {Q} ! \entry {quoting variable values}{30} \initial {R} ! \entry {\code {readable}}{43} ! \entry {reading arbitrary-length lines}{45} ! \entry {\code {README.mirrors}}{17} ! \entry {recording successful searches}{22} ! \entry {relative filenames}{27} ! \entry {relative filenames in \file {ls-R}}{11} ! \entry {reporting bugs}{19} ! \entry {\code {resident.c}}{45} ! \entry {resolution, setting}{34} ! \entry {resolution, wrong}{24} ! \entry {resolutions, last-resort}{42} ! \entry {retrieving \TeX{}}{16} ! \entry {right-hand side of variable assignments}{29} ! \entry {Rokicki, Tom}{1} ! \entry {\t {root} user}{31} ! \entry {runtime configuration files}{28} ! \entry {runtime debugging}{21} \initial {S} ! \entry {Sauter fonts, and dynamic source creation}{11} ! \entry {scripts for file creation}{11} ! \entry {search path, defined}{27} ! \entry {search paths, changing default}{5} ! \entry {searching for files}{40} ! \entry {searching for glyphs}{40} ! \entry {searching overview}{27} ! \entry {searching the database}{27} ! \entry {searching the disk}{27} ! \entry {security considerations}{14} ! \entry {SELFAUTODIR}{44} ! \entry {SELFAUTOLOC}{44} ! \entry {SELFAUTOPARENT}{44} ! \entry {sending patches}{20} ! \entry {setgid scripts}{14} ! \entry {\code {sh5\r {, ok with \code {configure}}}}{7} ! \entry {shar\r {, recommended}}{20} ! \entry {shared library, making}{9} ! \entry {shell scripts as configuration files}{29} ! \entry {shell variables}{30} ! \entry {\code {shell_escape\r {, example for code}}}{45} ! \entry {shells and \code {configure}}{7} ! \entry {simple installation}{3} ! \entry {site overrides for \code {MakeTeX\dots {}}}{12} ! \entry {size of distribution archives}{4} ! \entry {skeleton \TeX{} directory}{15} ! \entry {slow startup time}{23} ! \entry {Solaris BSD compatibility, not}{10} ! \entry {\code {source files}}{39} ! \entry {sources for search paths}{28} ! \entry {\code {special}}{43} ! \entry {specification for \code {MakeTeXPK}}{14} ! \entry {\code {st_nlink}}{31} ! \entry {stack trace}{20} ! \entry {standalone path searching}{34} ! \entry {standard error and debugging output}{21} ! \entry {standard options}{37} ! \entry {startup time, excessive}{23} ! \entry {static linking}{26} ! \entry {static linking and \code {dlsym}}{25} ! \entry {string routines}{45} ! \entry {\code {strip}}{12} ! \entry {subdirectory searching}{31} \entry {suggestions, making}{1} ! \entry {Sun 2}{1} ! \entry {Sun OpenWin patches}{26} ! \entry {supplier directory, omitting}{12} ! \entry {support organization}{18} ! \entry {supported file formats}{38} ! \entry {suppressing warnings}{42} ! \entry {symbolic link trees, for multiple architectures}{8} ! \entry {symbolic links not found}{23} ! \entry {symbolic links, and \file {ls-R}}{33} ! \entry {symlinks, resolving}{44} ! \entry {system C compiler bugs}{24} ! \entry {system dependencies}{7} ! \entry {system V universe}{10} \initial {T} ! \entry {\code {T1FONTS}}{39} ! \entry {\code {T1INPUTS}}{39} ! \entry {tape distribution}{18} ! \entry {TDS}{15} ! \entry {testing, post-installation}{14} ! \entry {tests, simple}{4} ! \entry {te\TeX{}}{18} ! \entry {\code {tex-archive@math.utah.edu}}{20} ! \entry {\code {tex-file.c}}{40} ! \entry {\code {tex-file.h}}{44} ! \entry {\code {tex-glyph.c}}{41} ! \entry {\code {tex-glyph.h}}{44} ! \entry {\code {tex-k-request@mail.tug.org}}{20} ! \entry {\code {tex-k@mail.tug.org \r {(bug address)}}}{19} ! \entry {\code {tex-make.c}}{13} ! \entry {\code {TEX_HUSH}}{27, 42} ! \entry {\TeX{} directory structure}{15} ! \entry {\TeX{} distributions besides Web2c}{18} ! \entry {\TeX{} environment variables}{38} ! \entry {\TeX{} failures}{24} ! \entry {\TeX{} file lookup}{40} ! \entry {\TeX{} glyph lookup}{40} ! \entry {\TeX{} help mailing list}{20} ! \entry {\TeX{} hierarchy, one}{8} ! \entry {\TeX{} Live CD-ROM}{18} ! \entry {\TeX{} support}{38} \entry {\TeX{} Users Group}{1} ! \entry {\code {TEXBIB}}{38} ! \entry {\code {TEXCONFIG}}{40} ! \entry {\code {TEXDOCS}}{39} ! \entry {\code {TEXFONTMAPS}}{38} ! \entry {\code {TEXFONTS}}{38, 39, 40} ! \entry {\code {texfonts.map}}{41} ! \entry {\code {TEXFORMATS}}{38} ! \entry {\code {TEXINDEXSTYLE}}{38} ! \entry {\code {TEXINPUTS}}{39} ! \entry {\code {TEXMF}}{15} ! \entry {\code {texmf.cnf\r {, and variable expansion}}}{30} ! \entry {\code {texmf.cnf\r {, creating}}}{9} ! \entry {\code {texmf.cnf\r {, definition for}}}{28} ! \entry {\code {texmf.cnf\r {, generated}}}{6} ! \entry {\code {texmf.cnf\r {, source for path}}}{28} ! \entry {\code {texmf.cnf.in}}{6} ! \entry {\code {texmf.cnf.in\r {, editing}}}{5} ! \entry {\code {texmf.sed}}{6} ! \entry {\code {TEXMFCNF}}{28, 38} ! \entry {\code {TEXMFDBS}}{32, 38} ! \entry {\code {TEXMFINI}}{38} ! \entry {\code {TEXMFLOG}}{22} ! \entry {\code {TEXMFOUTPUT}}{13} ! \entry {\code {TEXPICTS}}{39} ! \entry {\code {TEXPKS}}{39} ! \entry {\code {TEXPOOL}}{39} ! \entry {\code {TEXPSHEADERS}}{39} ! \entry {\code {TEXSIZES}}{42} ! \entry {\code {TEXSOURCES}}{39} ! \entry {\code {TFMFONTS}}{39} ! \entry {tilde expansion}{30} ! \entry {\code {tilde.c}}{31} ! \entry {\code {time \r {system call}}}{22} ! \entry {tolerance for glyph lookup}{41} ! \entry {total disk space}{4} ! \entry {trailing \samp {/} in home directory}{31} ! \entry {trailing colons}{29} ! \entry {\code {TRFONTS}}{39} ! \entry {trick for detecting leaf directories}{31} ! \entry {trojan horse attack}{14} ! \entry {TUG}{18} ! \entry {\code {tug.cs.umb.edu}}{16} \entry {\code {tug@tug.org}}{1} ! \entry {typeface directory, omitting}{12} \initial {U} ! \entry {\code {ucbinclude\r {, avoiding}}}{10} ! \entry {UKTUG}{18} ! \entry {Ultrix shells and \code {configure}}{7} ! \entry {unable to find files}{23} ! \entry {unable to generate fonts}{24} ! \entry {\code {uname}}{19} ! \entry {universe, BSD vs.\spacefactor =1000 system V}{10} ! \entry {\code {UNIX_ST_LINK}}{31} ! \entry {\code {unixtex.ftp}}{16} ! \entry {\code {unixtex@u.washington.edu}}{18} ! \entry {unknown special warnings}{43} ! \entry {unreadable file warnings}{43} ! \entry {unreadable files}{27} ! \entry {unusable \file {ls-R} warning}{33} ! \entry {usage patterns, finding}{22} ! \entry {\code {USE_VARTEXFONTS}}{13} ! \entry {Usenet \TeX{} newsgroup}{20} \initial {V} ! \entry {\code {varfonts}}{12} ! \entry {variable expansion}{30} ! \entry {\code {variable.c}}{30} ! \entry {\code {variable.h}}{45} ! \entry {\code {VARTEXFONTS}}{12} ! \entry {VAX 11/750}{1} ! \entry {version number, of Kpathsea}{5} ! \entry {version numbers, determining}{19} ! \entry {VF files, not found}{27} ! \entry {\code {VFFONTS}}{40} ! \entry {VMS support}{4} ! \entry {VMS \TeX{} implementations}{18} \entry {Vojta, Paul}{2} \initial {W} ! \entry {Walnut Creek \TeX{} CD-ROM}{18} \entry {Walsh, Norman}{2} ! \entry {warning about unusable \file {ls-R}}{33} ! \entry {warnings, file access}{27} ! \entry {warnings, pointer combinations}{26} ! \entry {warnings, suppressing}{42} ! \entry {\code {wcstombs}}{25} ! \entry {whitespace, in fontmap files}{41} ! \entry {whitespace, not ignored on continuation lines}{28} ! \entry {Windows \TeX{} implementations}{18} ! \entry {World Wide Web CTAN access}{17} ! \entry {\code {www.tug.org}}{16} \initial {X} ! \entry {X11 previewer}{5} ! \entry {X11, lacking on NeXT}{5} ! \entry {\code {XCFLAGS}}{9, 10} ! \entry {\code {XCPPFLAGS}}{9} ! \entry {\code {XDEFS}}{9} ! \entry {\code {XDVIFONTS}}{40} ! \entry {\code {XDVIMAKEPK}}{13} ! \entry {\code {XDVISIZES}}{42} ! \entry {\code {XLDFLAGS}}{10} ! \entry {\code {XLOADLIBES}}{10} ! \entry {\code {XMAKEARGS}}{10} ! \entry {\code {Xmu \r {library problems}}}{25} ! \entry {\code {XtStrings}}{25} \initial {Z} \entry {zuhn, david}{2} --- 1,808 ---- \initial {!} ! \entry {\code {!! \r {in path specifications}}}{36} \initial {$} ! \entry {\code {$ \r {expansion}}}{33} \initial {-} ! \entry {\code {--color=tty}}{36} ! \entry {\code {--debug=\var {num}}}{40} ! \entry {\code {--disable-static}}{9} ! \entry {\code {--dpi=\var {num}}}{38} ! \entry {\code {--enable \r {options}}}{8} ! \entry {\code {--enable-maintainer-mode}}{9} ! \entry {\code {--enable-shared}}{9, 10} ! \entry {\code {--expand-braces=\var {string}}}{40} ! \entry {\code {--expand-path=\var {string}}}{40} ! \entry {\code {--expand-var=\var {string}}}{40} ! \entry {\code {--format=\var {name}}}{38} ! \entry {\code {--help}}{40} ! \entry {\code {--interactive}}{39} ! \entry {\code {--mode=\var {string}}}{39} ! \entry {\code {--must-exist}}{39} ! \entry {\code {--path=\var {string}}}{39} ! \entry {\code {--progname=\var {name}}}{39} ! \entry {\code {--show-path=\var {name}}}{40} ! \entry {\code {--srcdir\r {, for building multiple architectures}}}{10} ! \entry {\code {--version}}{40} ! \entry {\code {--with \r {options}}}{8} ! \entry {\code {--with-mktextex-default}}{13} ! \entry {\code {--without-mktexmf-default}}{13} ! \entry {\code {--without-mktexpk-default}}{13} ! \entry {\code {--without-mktextfm-default}}{13} ! \entry {\code {-1 \r {debugging value}}}{23} ! \entry {\code {-A \r {option to \code {ls}}}}{36} ! \entry {\code {-Bdynamic}}{29} ! \entry {\code {-Bstatic}}{29} ! \entry {\code {-D \var {num}}}{38} ! \entry {\code {-dynamic}}{29} ! \entry {\code {-g\r {, compiling without}}}{10} ! \entry {\code {-L \r {option to \code {ls}}}}{36} ! \entry {\code {-mktex=\var {filetype}}}{39} ! \entry {\code {-no-mktex=\var {filetype}}}{39} ! \entry {\code {-O\r {, compiling with}}}{10} ! \entry {\code {-static}}{29} \initial {.} ! \entry {\code {. \r {directories, ignored}}}{36} ! \entry {\code {. \r {files}}}{36} ! \entry {\code {.2602gf}}{27} ! \entry {\code {.afm}}{41} ! \entry {\code {.base}}{41} ! \entry {\code {.bib}}{41} ! \entry {\code {.bst}}{41} ! \entry {\code {.cnf}}{41} ! \entry {\code {.eps}}{42} ! \entry {\code {.epsi}}{42} ! \entry {\code {.fmt}}{41} ! \entry {\code {.ist}}{42} ! \entry {\code {.map}}{42} ! \entry {\code {.mem}}{42} ! \entry {\code {.mf}}{42} ! \entry {\code {.mft}}{42} ! \entry {\code {.mp}}{42} ! \entry {\code {.ocp}}{42} ! \entry {\code {.ofm}}{42} ! \entry {\code {.opl}}{42} ! \entry {\code {.otp}}{42} ! \entry {\code {.ovf}}{42} ! \entry {\code {.ovp}}{42} ! \entry {\code {.pfa}}{43} ! \entry {\code {.pfb}}{43} ! \entry {\code {.pk}}{42} ! \entry {\code {.pool}}{42, 43} ! \entry {\code {.pro}}{42} ! \entry {\code {.rhosts\r {, writable by \TeX{}}}}{16} ! \entry {\code {.tex}}{42} ! \entry {\code {.tex \r {file, included in \file {ls-R}}}}{36} ! \entry {\code {.tfm}}{43} ! \entry {\code {.ttc}}{43} ! \entry {\code {.ttf}}{43} ! \entry {\code {.vf}}{43} \initial {/} ! \entry {\code {/ \r {may not be /}}}{30} ! \entry {\code {/\r {, trailing in home directory}}}{34} ! \entry {\code {//}}{34} ! \entry {\code {/afs/\dots {} \r {, installing into}}}{12} ! \entry {\code {/etc/profile}}{25} ! \entry {\code {/etc/profile \r {and aliases}}}{36} ! \entry {\code {/var/tmp/texfonts}}{14} \initial {:} ! \entry {\code {: \r {may not be :}}}{30} ! \entry {\code {:: \r {expansion}}}{32} \initial {@} ! \entry {@\var {var}@ substitutions}{8} \initial {{\tt\char '173}} ! \entry {\code {{\tt\char '173} \r {expansion}}}{34} \initial {{\tt\char '176}} ! \entry {\code {~ \r {expansion}}}{33} \initial {{\tt\indexbackslash }} ! \entry {\code {{\tt\rawbackslashxx }\r {, line continuation in \file {texmf.cnf}}}}{31} ! \entry {\code {{\tt\rawbackslashxx }openin}}{30} ! \entry {\code {{\tt\rawbackslashxx }special\r {, suppressing warnings about}}}{46} \initial {2} ! \entry {\code {2602gf}}{27} \initial {4} ! \entry {4all\TeX{} Live CD-ROM}{20} \initial {8} ! \entry {8.3 filenames, using}{14} \initial {A} ! \entry {absolute filenames}{30} ! \entry {\code {ac_include\r {, Autoconf extension}}}{8} ! \entry {access warnings}{30} ! \entry {Acorn \TeX{} implementations}{21} ! \entry {\code {AFMFONTS}}{41} ! \entry {AFS}{12} ! \entry {AIX 4.1 \code {configure} error}{27} ! \entry {AIX shells and \code {configure}}{8} ! \entry {aliases for fonts}{45} ! \entry {aliases, for filenames}{36} ! \entry {\code {all}}{46} ! \entry {alphabetical order, not}{34} ! \entry {Amiga support}{5} ! \entry {Amiga \TeX{} implementations}{21} ! \entry {Andrew File System, installing with}{12} ! \entry {announcement mailing list}{22, 23} ! \entry {ANSI C}{27} ! \entry {append-only directories and \code {mktexpk}}{16} ! \entry {\code {appendonlydir}}{13, 14} ! \entry {architecture-(in)dependent files, installing only}{12} ! \entry {architectures, compiling multiple}{10} ! \entry {arguments to \file {mktex}}{15} ! \entry {\code {argv[0]}}{47, 48} ! \entry {\code {ash\r {, losing with \code {configure}}}}{8} ! \entry {\code {autoconf\r {, recommended}}}{48} ! \entry {automounter, and configuration}{10} ! \entry {automounter, and \file {ls-R}}{36} ! \entry {auxiliary tasks}{39} \initial {B} ! \entry {Babel}{6, 11} ! \entry {Bach, Johann Sebastian}{33} ! \entry {backbone of CTAN}{18} ! \entry {backslash-newline}{31} ! \entry {\code {bash\r {, recommended for running \code {configure}}}}{8} ! \entry {basic glyph lookup}{44} ! \entry {Berry, Karl}{2} ! \entry {\code {BIBINPUTS}}{41} ! \entry {binary mode, for file transfers}{19} ! \entry {blank lines, in \file {texmf.cnf}}{31} ! \entry {brace expansion}{34} ! \entry {BSD universe}{11} ! \entry {\code {bsh\r {, ok with \code {configure}}}}{8} ! \entry {\code {BSTINPUTS}}{41} ! \entry {bug address}{21} ! \entry {bug checklist}{21} ! \entry {bug mailing list}{22} ! \entry {bugs, reporting}{21} \initial {C} ! \entry {\code {c-*.h}}{48} ! \entry {\code {c-auto.in}}{8} ! \entry {cache of fonts, local}{16} ! \entry {calling sequence}{47} ! \entry {\code {CC}}{9} ! \entry {\code {cc \r {warnings}}}{29} ! \entry {\code {cc\r {, compiling with}}}{9} ! \entry {CD-ROM distributions}{20} ! \entry {\code {CFLAGS}}{9} ! \entry {\code {ChangeLog \r {entry}}}{22} ! \entry {checklist for bug reports}{21} ! \entry {\code {checksum}}{46} ! \entry {circle fonts}{45} ! \entry {\code {clean \r {Make target}}}{12} ! \entry {\code {client_path \r {in \code {kpse_format_info}}}}{48} ! \entry {\code {cmr10\r {, as fallback font}}}{46} ! \entry {\code {cmr10.vf}}{30} ! \entry {\code {cnf.c}}{32} ! \entry {\code {cnf.h}}{49} ! \entry {code sharing}{10} ! \entry {color printers, configuring}{5} ! \entry {comments, in fontmap files}{45} ! \entry {comments, in \file {texmf.cnf}}{31} \entry {comments, making}{1} ! \entry {common features in glyph lookup}{44} ! \entry {common problems}{25} ! \entry {\code {comp.sys.sun.admin \r {FAQ}}}{29} ! \entry {\code {comp.text.tex}}{23} ! \entry {compilation}{4} ! \entry {compilation value, source for path}{31} ! \entry {compiler bugs}{27} ! \entry {compiler bugs, finding}{27} ! \entry {compiler options, additional}{11} ! \entry {compiler options, specifying}{9} ! \entry {compiler, changing}{11} ! \entry {compiling on HP-UX}{27} \entry {conditions for use}{1} ! \entry {config files}{31} ! \entry {config files, for Kpathsea-using programs}{48} ! \entry {config files, programming with}{49} ! \entry {\code {config.log}}{22} ! \entry {\code {config.ps\r {, search path for}}}{41} ! \entry {\code {config.status}}{22} ! \entry {configuration}{4} ! \entry {configuration bugs}{22} ! \entry {configuration compiler options}{9} ! \entry {configuration file, source for path}{31} ! \entry {configuration files as shell scripts.}{32} ! \entry {configuration of \file {mktex} scripts}{13} ! \entry {configuration of optional features}{8} ! \entry {\code {configure \r {error from \code {sed}}}}{27} ! \entry {\code {configure} options}{8} ! \entry {\code {configure} options for \file {mktex} scripts}{13} ! \entry {\code {configure\r {, running}}}{8} ! \entry {context diff}{22} ! \entry {continuation character}{31} ! \entry {core dumps, reporting}{22} ! \entry {\code {CPPFLAGS}}{9} ! \entry {crashes, reporting}{22} ! \entry {CTAN, defined}{18} ! \entry {\code {CTAN.sites}}{19} ! \entry {custom installation}{5} \initial {D} ! \entry {Dante \TeX{} CD-ROM}{20} ! \entry {database search}{30} ! \entry {database, for filenames}{35} ! \entry {database, format of}{37} ! \entry {\code {debug.h}}{23} ! \entry {debugger}{22} ! \entry {debugging}{23} ! \entry {debugging options, in Kpathsea-using program}{48} ! \entry {debugging output}{23} ! \entry {debugging with \samp {-g}, disabling}{10} ! \entry {DEC shells and \code {configure}}{8} ! \entry {default expansion}{32} ! \entry {default path features}{7} ! \entry {default paths, changing}{7} ! \entry {default paths, how they're made}{7} ! \entry {\code {default_texsizes}}{46} ! \entry {\code {DEFS}}{9} ! \entry {\code {depot}}{10} ! \entry {directories, changing default installation}{7} ! \entry {directories, making append-only}{14} ! \entry {directory permissions}{16} ! \entry {directory structure, for \TeX{} files}{16} ! \entry {disabling \file {mktex} scripts}{13} ! \entry {disk search}{30} ! \entry {disk searching, avoiding}{36} ! \entry {disk space, needed}{5} ! \entry {disk usage, reducing}{25} ! \entry {\code {distclean \r {Make target}}}{12} ! \entry {distributions, compiling simultaneously}{6} ! \entry {distributions, not compiling}{6} ! \entry {distributions, on CD-ROM}{20} ! \entry {distributions, on tape}{20} ! \entry {distributions, via ftp}{18} ! \entry {\code {dlclose}}{28} ! \entry {\code {dlopen}}{28} ! \entry {\code {dlsym}}{28} ! \entry {\code {dlsym.c}}{28} ! \entry {\code {doc files}}{43} ! \entry {DOS compatible names}{14} ! \entry {DOS support}{5} ! \entry {DOS \TeX{} implementations}{21} ! \entry {\code {dosnames}}{14} ! \entry {dot files}{36} ! \entry {doubled colons}{32} ! \entry {\code {dpi\var {nnn} directories}}{14} ! \entry {DVI drivers}{6} ! \entry {\code {DVILJMAKEPK}}{15} ! \entry {\code {DVILJSIZES}}{46} ! \entry {\code {DVIPSFONTS}}{43} ! \entry {\code {DVIPSHEADERS}}{43} ! \entry {\code {DVIPSMAKEPK}}{15} ! \entry {\code {DVIPSSIZES}}{46} ! \entry {dynamic creation of files}{13} ! \entry {dynamic linking problems with OpenWin libraries}{29} \initial {E} ! \entry {EC fonts, and dynamic source creation}{13} ! \entry {\code {elt-dirs.c}}{35} ! \entry {email CTAN access}{19} ! \entry {enabling \file {mktex} scripts}{13} ! \entry {environment variable, source for path}{31} ! \entry {environment variables for \TeX{}}{41} ! \entry {environment variables in paths}{33} ! \entry {environment variables, old}{25} ! \entry {epoch, seconds since}{25} ! \entry {error message macros}{47} ! \entry {excessive startup time}{26} ! \entry {\code {expand.c}}{34} ! \entry {expanding symlinks}{47} ! \entry {expansion, default}{32} ! \entry {expansion, path element}{30} ! \entry {expansion, search path}{32} ! \entry {expansion, subdirectory}{34} ! \entry {expansion, tilde}{33} ! \entry {expansion, variable}{33} ! \entry {explicitly relative filenames}{30} ! \entry {externally-built filename database}{35} ! \entry {extra colons}{32} ! \entry {\code {extraclean \r {Make target}}}{12} \initial {F} ! \entry {failed \code {mktex\dots {}} script invocation}{15} ! \entry {fallback font}{46} ! \entry {fallback resolutions}{46} ! \entry {fallback resolutions, overriding}{11} ! \entry {FAQ, \t {comp.sys.sun.admin}}{29} ! \entry {FAQ, Kpathsea}{25} ! \entry {Farwell, Matthew}{35} ! \entry {features, of default paths}{7} ! \entry {file formats, supported}{41} ! \entry {file lookup}{44} ! \entry {file permissions}{16} ! \entry {file types, registering new}{47} ! \entry {filename aliases}{36} ! \entry {filename database}{35} ! \entry {filename database generation}{12} ! \entry {filenames, absolute or explicitly relative}{30} ! \entry {files, unable to find}{25} ! \entry {filesystem search}{30} ! \entry {floating directories}{30} ! \entry {font alias files}{45} ! \entry {font generation failures}{26} ! \entry {font of last resort}{46} ! \entry {font set, infinite}{13} ! \entry {fontmap files}{45} ! \entry {\code {fontmaps}}{14} ! \entry {fontname}{14} ! \entry {fontnames, arbitrary length}{45} ! \entry {fonts, being created}{5} ! \entry {\code {FOOINPUTS}}{43} ! \entry {\code {fopen\r {, redefined}}}{24} ! \entry {format of external database}{37} ! \entry {Free Software Foundation}{20} ! \entry {FreeBSD \code {configure} error}{27} ! \entry {FreeBSD shells and \code {configure}}{8} ! \entry {FSF Source Code CD-ROM}{20} ! \entry {ftp retrieval}{18} ! \entry {\code {ftp.tug.org}}{18} \entry {fundamental purpose of Kpathsea}{1} \initial {G} ! \entry {\code {gcc\r {, compiling with}}}{9} ! \entry {\code {gdb\r {, recommended}}}{22} ! \entry {generation of filename database}{12} ! \entry {German \TeX{} CD info}{20} ! \entry {\code {get_applicationShellWidgetClass}}{29} ! \entry {\code {get_wmShellWidgetClass}}{29} ! \entry {\code {gf}}{41} ! \entry {\code {GFFONTS}}{41} ! \entry {globally writable directories}{16} ! \entry {glyph lookup}{44} ! \entry {glyph lookup bitmap tolerance}{44} ! \entry {\code {GLYPHFONTS}}{41, 42} ! \entry {GNU C compiler bugs}{27} \entry {GNU General Public License}{1} ! \entry {Gopher CTAN access}{19} ! \entry {group-writable directories}{16} ! \entry {\code {GSFTOPK_DEBUG \r {(128)}}}{24} ! \entry {GUTenberg}{20} \initial {H} ! \entry {hash table buckets, printing}{24} ! \entry {hash table routines}{48} ! \entry {\code {hash_summary_only \r {variable for debugging}}}{24} ! \entry {help, mailing list for general \TeX{}}{23} ! \entry {\code {HIER}}{7} ! \entry {history of Kpathsea}{2} ! \entry {home directories in paths}{33} ! \entry {\code {HOME\r {, as ~ expansion}}}{33} ! \entry {HP-UX, compiling on}{27} \initial {I} ! \entry {identifiers, characters valid in}{31} ! \entry {illegal pointer combination warnings}{29} ! \entry {\code {include \r {fontmap directive}}}{45} ! \entry {\code {INDEXSTYLE}}{42} ! \entry {\code {info-tex@shsu.edu}}{23} ! \entry {input lines, reading}{48} ! \entry {\code {install-data \r {Make target}}}{12} ! \entry {\code {install-exec \r {Make target}}}{12} ! \entry {installation}{4} ! \entry {installation testing}{15} ! \entry {installation, architecture-(in)dependent files only}{12} ! \entry {installation, changing default directories}{7} ! \entry {installation, customized}{5} ! \entry {installation, getting executables instead of}{4} ! \entry {installation, simple}{4} ! \entry {installing files}{11} ! \entry {interactive query}{39} \entry {interface, not frozen}{1} \entry {introduction}{1} \initial {K} ! \entry {\samp {kdebug:}}{24} ! \entry {\code {kdefault.c}}{33} ! \entry {Knuth, Donald E.}{2} ! \entry {Knuth, Donald E., archive of programs by}{21} ! \entry {Knuth, Donald E., original author}{19} ! \entry {Korn shell\r {, losing with \code {configure}}}{8} ! \entry {Kpathsea config file, source for path}{31} ! \entry {Kpathsea version number}{6} ! \entry {\code {kpathsea.h}}{47} ! \entry {\code {kpathsea/HIER}}{7} ! \entry {\code {kpathsea/README.CONFIGURE}}{8} ! \entry {\code {kpathsea_debug}}{23} ! \entry {\code {KPATHSEA_DEBUG}}{23, 47} ! \entry {\code {kpathsea_debug \r {variable}}}{48} ! \entry {\code {KPSE_BITMAP_TOLERANCE}}{44} ! \entry {\code {kpse_cnf_get}}{49} ! \entry {\code {KPSE_DEBUG_EXPAND \r {(16)}}}{24} ! \entry {\code {KPSE_DEBUG_FOPEN \r {(4)}}}{23, 24} ! \entry {\code {KPSE_DEBUG_HASH \r {(2)}}}{23} ! \entry {\code {KPSE_DEBUG_PATHS \r {(8)}}}{24} ! \entry {\code {KPSE_DEBUG_SEARCH \r {(32)}}}{24} ! \entry {\code {KPSE_DEBUG_STAT \r {(1)}}}{23} ! \entry {\code {KPSE_DEBUG_VARS \r {(64)}}}{24} ! \entry {\code {KPSE_DOT \r {expansion}}}{34} ! \entry {\code {kpse_fallback_font}}{46} ! \entry {\code {kpse_find_*}}{48} ! \entry {\code {kpse_find_file}}{44, 48} ! \entry {\code {kpse_find_glyph_format}}{44} ! \entry {\code {kpse_format_info}}{48} ! \entry {\code {kpse_format_info_type}}{24} ! \entry {\code {kpse_init_prog}}{48} ! \entry {\code {kpse_init_prog\r {, and \code {MAKETEX_MODE}}}}{7} ! \entry {\code {kpse_make_specs}}{14} ! \entry {\code {kpse_open_file}}{48} ! \entry {\code {kpse_program_name}}{47} ! \entry {\code {kpse_set_progname}}{48} ! \entry {\code {kpse_set_program_name}}{47} ! \entry {\code {kpse_var_value}}{49} ! \entry {\code {kpsewhich}}{37} ! \entry {Kpsewhich, and debugging}{23} ! \entry {\code {ksh\r {, losing with \code {configure}}}}{8} \initial {L} ! \entry {\code {labrea.stanford.edu}}{21} ! \entry {LaserJet drive}{6} ! \entry {last-resort font}{46} ! \entry {La\TeX{} help mailing list}{23} ! \entry {\code {lcircle10}}{45} ! \entry {\code {LDFLAGS}}{9} ! \entry {leading colons}{32} ! \entry {leaf directories wrongly guessed}{25} ! \entry {leaf directory trick}{35} ! \entry {\code {libdl.a}}{28} ! \entry {libraries, changing}{11} ! \entry {libraries, specifying additional}{9} ! \entry {\code {LIBS}}{9} ! \entry {\code {libucb\r {, avoiding}}}{11} \entry {license for using the library}{1} ! \entry {lines, reading arbitrary-length}{48} ! \entry {Linux File System Standard}{14} ! \entry {Linux shells and \code {configure}}{8} ! \entry {Linux, using Web2c}{20} ! \entry {\code {lndir \r {for building symlink trees}}}{10} ! \entry {loader options}{9} ! \entry {loader options, final}{11} ! \entry {loader options, initial}{11} ! \entry {local cache of fonts}{16} ! \entry {log file}{25} ! \entry {logging successful searches}{25} ! \entry {\code {lost+found \r {directory}}}{30} ! \entry {\code {lostchar}}{46} ! \entry {\code {ls-R}}{42} ! \entry {\code {ls-R \r {and AFS}}}{12} ! \entry {\code {ls-R \r {database file}}}{35} ! \entry {\code {ls-R\r {, simplest build}}}{36} \initial {M} ! \entry {Mach10 \code {configure} error}{27} ! \entry {Macintosh \TeX{} implementations}{21} ! \entry {MacKenzie, David}{2, 35} ! \entry {magic characters}{30} ! \entry {mailing lists}{22} ! \entry {\code {maintainer-clean \r {Make target}}}{12} ! \entry {Make arguments, additional}{11} ! \entry {\code {make\r {, running}}}{11} ! \entry {\code {Makefile.in}}{8} ! \entry {Makefiles, empty}{27} ! \entry {\code {MAKETEX_DEBUG \r {(512)}}}{24} ! \entry {\code {MAKETEX_FINE_DEBUG \r {(1024)}}}{24} ! \entry {\code {MAKETEX_MODE}}{7} ! \entry {memory allocation routines}{48} ! \entry {Metafont failures}{27} ! \entry {Metafont installation}{26} ! \entry {Metafont making too-large fonts}{27} ! \entry {Metafont using the wrong resolution}{26} ! \entry {\code {MFBASES}}{41} ! \entry {\code {MFINPUTS}}{42} ! \entry {\code {MFPOOL}}{42} ! \entry {\code {MFTINPUTS}}{42} ! \entry {mirrors, FTP}{19} ! \entry {mismatched checksum warnings}{46} ! \entry {\code {missfont.log}}{15} ! \entry {\code {MISSFONT_LOG}}{15} ! \entry {missing character warnings}{46} ! \entry {\file {mktex} script configuration}{13} ! \entry {\file {mktex} script names}{14} ! \entry {\file {mktex} scripts}{13} ! \entry {\code {mktex.cnf}}{13} ! \entry {\code {mktex.opt}}{13} ! \entry {\code {mktexdir}}{14} ! \entry {\code {mktexmf}}{15} ! \entry {\code {mktexpk}}{15} ! \entry {\code {mktexpk \r {, initial runs}}}{5} ! \entry {\code {mktextex}}{15} ! \entry {\code {mktextfm}}{15} ! \entry {mode directory, omitting}{14} ! \entry {Morgan, Tim}{2} ! \entry {\code {mostlyclean \r {Make target}}}{12} ! \entry {\code {MPINPUTS}}{42} ! \entry {\code {MPMEMS}}{42} ! \entry {\code {MPPOOL}}{42} ! \entry {\code {MPSUPPORT}}{42} ! \entry {\code {MT_FEATURES}}{13} ! \entry {multiple architectures, compiling on}{10} ! \entry {multiple architectures, directories for}{10} ! \entry {multiple architectures, installing on}{12} ! \entry {multiple \TeX{} hierarchies}{34} ! \entry {must exist}{30} \initial {N} ! \entry {names for \file {mktex} scripts}{14} ! \entry {NetBSD \code {configure} error}{27} ! \entry {NetBSD shells and \code {configure}}{8} \entry {Neumann, Gustaf}{2} ! \entry {newsgroup for \TeX{}}{23} ! \entry {NeXT \code {sed} error}{27} ! \entry {NeXT, lacking X11}{6} ! \entry {NFS and \file {ls-R}}{36} ! \entry {NFS CTAN access}{19} ! \entry {\code {nomode}}{14} ! \entry {non-English typesetting}{6} ! \entry {non-Unix operating systems}{5} ! \entry {Northwest Computing Support Center}{20} ! \entry {NTG}{20} ! \entry {null pointers, dereferencing}{22} ! \entry {numeric debugging values}{23} \initial {O} ! \entry {obtaining \TeX{}}{18} ! \entry {obtaining \TeX{} on tape}{20} ! \entry {obtaining Web2c by ftp}{18} ! \entry {obtaining Web2c on CD-ROM}{20} ! \entry {\code {OCPINPUTS}}{42} ! \entry {\code {OFMFONTS}}{42} ! \entry {online Metafont display, spurious}{27} ! \entry {OpenWin libraries, dynamic linking problems}{29} ! \entry {optimization caveat}{27} ! \entry {optimization, enabling}{10} ! \entry {options for debugging}{23} ! \entry {options to \code {configure}}{8} ! \entry {OS/2 support}{5} ! \entry {other \TeX{} distributions}{21} ! \entry {\code {OTPINPUTS}}{42} ! \entry {overview of path searching}{30} ! \entry {overview of programming with Kpathsea}{47} ! \entry {\code {OVFFONTS}}{42} ! \entry {\code {OVPFONTS}}{42} \initial {P} ! \entry {patches, Sun OpenWin}{29} ! \entry {path expansion}{32} ! \entry {path searching}{30} ! \entry {path searching options}{38} ! \entry {path searching, overview}{30} ! \entry {path searching, standalone}{37} ! \entry {path sources}{31} ! \entry {paths, changing default}{6, 7} ! \entry {paths, device name included in}{7} ! \entry {\code {paths.h}}{8} ! \entry {\code {paths.h\r {, creating}}}{11} ! \entry {\code {pathsearch.h}}{47} ! \entry {\code {pc \r {Pascal compiler}}}{2} ! \entry {PCL driver}{6} ! \entry {PDF generation}{6} ! \entry {permission denied}{30} ! \entry {permissions, directory}{16} ! \entry {permissions, file}{16} ! \entry {\code {PKFONTS}}{42} ! \entry {\code {plain.base}}{27} ! \entry {pointer combination warnings}{29} ! \entry {PostScript driver}{6} ! \entry {PostScript fonts, additional}{5} ! \entry {precompiled executables, instead of installation}{4} ! \entry {precompiled Unix binaries}{21} ! \entry {preprocessor options}{9} ! \entry {preprocessor options, additional}{11} ! \entry {Prime Time \TeX{}cetera CD-ROM}{20} ! \entry {printer configuration files}{5} ! \entry {privacy, semblance of}{25} ! \entry {problems, common}{25} ! \entry {\code {proginit.c}}{7} ! \entry {\code {proginit.h}}{48} ! \entry {program-varying paths}{41} ! \entry {\code {program_invocation_name}}{47} ! \entry {\code {program_invocation_short_name}}{47} ! \entry {programming overview}{47} ! \entry {programming with config files}{49} ! \entry {programming with Kpathsea}{47} \entry {programs using the library}{1} ! \entry {proof mode}{27} ! \entry {\code {PSHEADERS}}{42} ! \entry {\code {pxp \r {Pascal preprocessor}}}{2} \initial {Q} ! \entry {quoting variable values}{33} \initial {R} ! \entry {\code {readable}}{46} ! \entry {reading arbitrary-length lines}{48} ! \entry {\code {README.CONFIGURE}}{8} ! \entry {\code {README.mirrors}}{19} ! \entry {recording successful searches}{25} ! \entry {relative filenames}{30} ! \entry {relative filenames in \file {ls-R}}{12} ! \entry {reporting bugs}{21} ! \entry {\code {resident.c}}{48} ! \entry {resolution, setting}{38} ! \entry {resolution, wrong}{26} ! \entry {resolutions, last-resort}{46} ! \entry {retrieving \TeX{}}{18} ! \entry {right-hand side of variable assignments}{32} ! \entry {Rokicki, Tom}{2} ! \entry {\t {root} user}{34} ! \entry {runtime configuration files}{31} ! \entry {runtime debugging}{23} \initial {S} ! \entry {Sauter fonts, and dynamic source creation}{13} ! \entry {scripts for file creation}{13} ! \entry {search path, defined}{30} ! \entry {search paths, changing default}{6} ! \entry {searching for files}{44} ! \entry {searching for glyphs}{44} ! \entry {searching overview}{30} ! \entry {searching the database}{30} ! \entry {searching the disk}{30} ! \entry {security considerations}{16} ! \entry {\code {sed \r {error from \code {configure}}}}{27} ! \entry {SELFAUTODIR}{47} ! \entry {SELFAUTOLOC}{47} ! \entry {SELFAUTOPARENT}{47} ! \entry {sending patches}{22} ! \entry {setgid scripts}{16} ! \entry {\code {sh5\r {, ok with \code {configure}}}}{8} ! \entry {shar\r {, recommended}}{22} ! \entry {shared library, making}{10} ! \entry {shell scripts as configuration files}{32} ! \entry {shell variables}{33} ! \entry {\code {shell_escape\r {, example for code}}}{49} ! \entry {shells and \code {configure}}{8} ! \entry {simple installation}{4} ! \entry {site overrides for \code {mktex\dots {}}}{13} ! \entry {size of distribution archives}{5} ! \entry {skeleton \TeX{} directory}{16} ! \entry {slow startup time}{26} ! \entry {Solaris BSD compatibility, not}{11} ! \entry {\code {source files}}{43} ! \entry {sources for search paths}{31} ! \entry {\code {special}}{46} ! \entry {\code {st_nlink}}{35} ! \entry {stack trace}{22} ! \entry {standalone path searching}{37} ! \entry {standard error and debugging output}{23} ! \entry {standard options}{40} ! \entry {startup time, excessive}{26} ! \entry {static linking}{29} ! \entry {static linking and \code {dlsym}}{28} ! \entry {string routines}{48} ! \entry {\code {strip}}{14} ! \entry {\code {stripsupplier}}{14} ! \entry {\code {striptypeface}}{14} ! \entry {subdirectory searching}{34} \entry {suggestions, making}{1} ! \entry {Sun 2}{2} ! \entry {Sun OpenWin patches}{29} ! \entry {supplier directory, omitting}{14} ! \entry {support organization}{20} ! \entry {supported file formats}{41} ! \entry {suppressing warnings}{46} ! \entry {symbolic link trees, for multiple architectures}{10} ! \entry {symbolic links not found}{25} ! \entry {symbolic links, and \file {ls-R}}{36} ! \entry {symlinks, resolving}{47} ! \entry {system C compiler bugs}{27} ! \entry {system dependencies}{8} ! \entry {system V universe}{11} \initial {T} ! \entry {\code {T1FONTS}}{43} ! \entry {\code {T1INPUTS}}{43} ! \entry {\code {T42FONTS}}{43} ! \entry {tape distribution}{20} ! \entry {TDS}{16} ! \entry {testing, post-installation}{15} ! \entry {tests, simple}{5} ! \entry {te\TeX{}}{21} ! \entry {\code {tex-archive@math.utah.edu}}{23} ! \entry {\code {tex-file.c}}{44} ! \entry {\code {tex-file.h}}{47} ! \entry {\code {tex-glyph.c}}{44} ! \entry {\code {tex-glyph.h}}{47} ! \entry {\code {tex-k-request@mail.tug.org}}{22} ! \entry {\code {tex-k@mail.tug.org \r {(bug address)}}}{21} ! \entry {\code {tex-make.c}}{14} ! \entry {\code {TEX_HUSH}}{30, 46} ! \entry {\TeX{} directory structure}{16} ! \entry {\TeX{} distributions besides Web2c}{21} ! \entry {\TeX{} environment variables}{41} ! \entry {\TeX{} failures}{27} ! \entry {\TeX{} file lookup}{44} ! \entry {\TeX{} glyph lookup}{44} ! \entry {\TeX{} help mailing list}{23} ! \entry {\TeX{} hierarchy, one}{10} ! \entry {\TeX{} Live CD-ROM}{20} ! \entry {\TeX{} support}{41} \entry {\TeX{} Users Group}{1} ! \entry {\code {TEXBIB}}{41} ! \entry {\code {TEXCONFIG}}{41} ! \entry {\code {TEXDOCS}}{43} ! \entry {\code {TEXFONTMAPS}}{42} ! \entry {\code {TEXFONTS}}{41, 42, 43} ! \entry {\code {texfonts.map}}{45} ! \entry {\code {TEXFORMATS}}{41} ! \entry {\code {TEXINDEXSTYLE}}{42} ! \entry {\code {TEXINPUTS}}{42} ! \entry {\code {TEXMF}}{16} ! \entry {\code {texmf.cnf\r {, and variable expansion}}}{33} ! \entry {\code {texmf.cnf\r {, creating}}}{11} ! \entry {\code {texmf.cnf\r {, definition for}}}{31} ! \entry {\code {texmf.cnf\r {, generated}}}{7} ! \entry {\code {texmf.cnf\r {, source for path}}}{31} ! \entry {\code {texmf.in}}{7} ! \entry {\code {texmf.in\r {, editing}}}{6} ! \entry {\code {texmf.sed}}{7} ! \entry {\code {TEXMFCNF}}{31, 41} ! \entry {\code {TEXMFDBS}}{35, 42} ! \entry {\code {TEXMFINI}}{41, 42} ! \entry {\code {TEXMFLOG}}{25} ! \entry {\code {TEXMFOUTPUT}}{15} ! \entry {\code {TEXPICTS}}{42} ! \entry {\code {TEXPKS}}{42} ! \entry {\code {TEXPOOL}}{43} ! \entry {\code {TEXPSHEADERS}}{42, 43} ! \entry {\code {TEXSIZES}}{46} ! \entry {\code {TEXSOURCES}}{43} ! \entry {\code {TFMFONTS}}{43} ! \entry {tilde expansion}{33} ! \entry {\code {tilde.c}}{34} ! \entry {\code {time \r {system call}}}{25} ! \entry {tolerance for glyph lookup}{44} ! \entry {total disk space}{5} ! \entry {trailing \samp {/} in home directory}{34} ! \entry {trailing colons}{32} ! \entry {\code {TRFONTS}}{43} ! \entry {trick for detecting leaf directories}{35} ! \entry {trojan horse attack}{16} ! \entry {\code {TTFONTS}}{43} ! \entry {TUG}{20} ! \entry {\code {tug.org}}{18} \entry {\code {tug@tug.org}}{1} ! \entry {typeface directory, omitting}{14} \initial {U} ! \entry {\code {ucbinclude\r {, avoiding}}}{11} ! \entry {UKTUG}{20} ! \entry {Ultrix shells and \code {configure}}{8} ! \entry {unable to find files}{25} ! \entry {unable to generate fonts}{26} ! \entry {\code {uname}}{21} ! \entry {universe, BSD vs.\spacefactor =1000 system V}{11} ! \entry {\code {UNIX_ST_LINK}}{35} ! \entry {\code {unixtex.ftp}}{18} ! \entry {\code {unixtex@u.washington.edu}}{20} ! \entry {unknown special warnings}{46} ! \entry {unreadable file warnings}{46} ! \entry {unreadable files}{30} ! \entry {unusable \file {ls-R} warning}{36} ! \entry {usage patterns, finding}{25} ! \entry {\code {USE_VARTEXFONTS}}{14} ! \entry {Usenet \TeX{} newsgroup}{23} \initial {V} ! \entry {\code {varfonts}}{14} ! \entry {variable expansion}{33} ! \entry {\code {variable.c}}{33} ! \entry {\code {variable.h}}{49} ! \entry {\code {VARTEXFONTS}}{14} ! \entry {VAX 11/750}{2} ! \entry {version number, of Kpathsea}{6} ! \entry {version numbers, determining}{21} ! \entry {VF files, not found}{30} ! \entry {\code {VFFONTS}}{43} ! \entry {VMS support}{5} ! \entry {VMS \TeX{} implementations}{21} \entry {Vojta, Paul}{2} \initial {W} ! \entry {Walnut Creek \TeX{} CD-ROM}{20} \entry {Walsh, Norman}{2} ! \entry {warning about unusable \file {ls-R}}{36} ! \entry {warnings, file access}{30} ! \entry {warnings, pointer combinations}{29} ! \entry {warnings, suppressing}{46} ! \entry {\code {wcstombs}}{28} ! \entry {Weber, Olaf}{3} ! \entry {whitespace, in fontmap files}{45} ! \entry {whitespace, not ignored on continuation lines}{31} ! \entry {Windows \TeX{} implementations}{21} ! \entry {World Wide Web CTAN access}{19} ! \entry {\code {www.tug.org}}{18} \initial {X} ! \entry {X11 previewer}{6} ! \entry {X11, lacking on NeXT}{6} ! \entry {\code {XCFLAGS}}{11} ! \entry {\code {XCPPFLAGS}}{11} ! \entry {\code {XDEFS}}{11} ! \entry {\code {XDVIFONTS}}{43} ! \entry {\code {XDVIMAKEPK}}{15} ! \entry {\code {XDVISIZES}}{46} ! \entry {\code {XLDFLAGS}}{11} ! \entry {\code {XLOADLIBES}}{11} ! \entry {\code {XMAKEARGS}}{11} ! \entry {\code {Xmu \r {library problems}}}{29} ! \entry {\code {XtStrings}}{28} \initial {Z} \entry {zuhn, david}{2} diff -cNr octave-2.0.11/kpathsea/kpathsea.h octave-2.0.12/kpathsea/kpathsea.h *** octave-2.0.11/kpathsea/kpathsea.h Fri Feb 7 12:33:52 1997 --- octave-2.0.12/kpathsea/kpathsea.h Tue Mar 24 13:02:55 1998 *************** *** 1,5 **** #include - #include #include #include #include --- 1,5 ---- + #include #include #include #include #include *************** *** 17,23 **** #include #include #include - #include #include #include #include --- 17,22 ---- diff -cNr octave-2.0.11/kpathsea/kpathsea.texi octave-2.0.12/kpathsea/kpathsea.texi *** octave-2.0.11/kpathsea/kpathsea.texi Thu Feb 6 16:46:11 1997 --- octave-2.0.12/kpathsea/kpathsea.texi Sat Mar 21 12:24:52 1998 *************** *** 2,9 **** @setfilename kpathsea.info @settitle Kpathsea: A library for path searching ! @set version 3.0 ! @set month-year February 1997 @c Define new indices for commands, filenames, and options. @defcodeindex cm --- 2,9 ---- @setfilename kpathsea.info @settitle Kpathsea: A library for path searching ! @set version 3.2 ! @set month-year October 1997 @c Define new indices for commands, filenames, and options. @defcodeindex cm *************** *** 22,40 **** @dircategory TeX @direntry ! * Kpathsea: (kpathsea). File lookup along search paths. ! * kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. ! * MakeTeXMF: (kpathsea)MakeTeX scripts. MF source generation. ! * MakeTeXPK: (kpathsea)MakeTeX scripts. PK bitmap generation. ! * MakeTeXTeX: (kpathsea)MakeTeX scripts. TeX source generation. ! * MakeTeXTFM: (kpathsea)MakeTeX scripts. TeX font metric generation. ! * MakeTeXls-R: (kpathsea)Filename database. Update ls-R. @end direntry @ifinfo This file documents the Kpathsea library for path searching. ! Copyright (C) 1993, 94, 95, 96, 97 K. Berry. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are --- 22,40 ---- @dircategory TeX @direntry ! * Kpathsea: (kpathsea). File lookup along search paths. ! * kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. ! * mktexmf: (kpathsea)mktex scripts. MF source generation. ! * mktexpk: (kpathsea)mktex scripts. PK bitmap generation. ! * mktextex: (kpathsea)mktex scripts. TeX source generation. ! * mktextfm: (kpathsea)mktex scripts. TeX font metric generation. ! * mktexlsr: (kpathsea)Filename database. Update ls-R. @end direntry @ifinfo This file documents the Kpathsea library for path searching. ! Copyright (C) 1993, 94, 95, 96, 97 K. Berry & O. Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are *************** *** 65,75 **** @subtitle for version @value{version} @subtitle @value{month-year} @author K. Berry (@email{kb@@mail.tug.org}) @page @vskip 0pt plus 1filll ! Copyright @copyright{} 1993, 94, 95, 96, 97 K. Berry. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are --- 65,76 ---- @subtitle for version @value{version} @subtitle @value{month-year} @author K. Berry (@email{kb@@mail.tug.org}) + @author O. Weber (@email{infovore@@xs4all.nl}) @page @vskip 0pt plus 1filll ! Copyright @copyright{} 1993, 94, 95, 96, 97 K. Berry & O. Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are *************** *** 123,129 **** looking up program names to execute. @cindex programs using the library ! The following software, all of which I maintain, uses this library: @itemize @bullet @item Dviljk (see the @samp{dvilj} man page) --- 124,130 ---- looking up program names to execute. @cindex programs using the library ! The following software, all of which we maintain, uses this library: @itemize @bullet @item Dviljk (see the @samp{dvilj} man page) *************** *** 135,165 **** @item Xdvik (see the @samp{xdvi} man page) @end itemize ! @noindent Other software that I do not maintain also uses it. @cindex interface, not frozen @cindex comments, making @cindex suggestions, making ! I am still actively maintaining the library (and probably always will ! be, despite my hopes). If you have comments or suggestions, please send ! them to me (@pxref{Reporting bugs}). @cindex conditions for use @cindex license for using the library @cindex GNU General Public License ! I distribute the library under the GNU Library General Public License (LGPL), with one exception (see below). In short, this means if you write a program using the library, you must (offer to) distribute the source to the library, along with any changes you have made, and allow anyone to modify the library source and distribute their modifications. It does not mean you have to distribute the source to your program, ! although I hope you will. The exception is the part of the file @file{expand.c} which implements ! brace expansion. I took this from Bash, which is covered by the GNU General Public License (GPL). Therefore, if you wish to redistribute the library under the LGPL, you must remove this code. (If you write a ! replacement I can distribute, I hope you'll share it with me.) See the files @file{COPYING} and @file{COPYING.LIB} for the text of the GNU licenses. @cindex @TeX{} Users Group --- 136,166 ---- @item Xdvik (see the @samp{xdvi} man page) @end itemize ! @noindent Other software that we do not maintain also uses it. @cindex interface, not frozen @cindex comments, making @cindex suggestions, making ! We are still actively maintaining the library (and probably always will ! be, despite our hopes). If you have comments or suggestions, please send ! them to us (@pxref{Reporting bugs}). @cindex conditions for use @cindex license for using the library @cindex GNU General Public License ! We distribute the library under the GNU Library General Public License (LGPL), with one exception (see below). In short, this means if you write a program using the library, you must (offer to) distribute the source to the library, along with any changes you have made, and allow anyone to modify the library source and distribute their modifications. It does not mean you have to distribute the source to your program, ! although we hope you will. The exception is the part of the file @file{expand.c} which implements ! brace expansion. We took this from Bash, which is covered by the GNU General Public License (GPL). Therefore, if you wish to redistribute the library under the LGPL, you must remove this code. (If you write a ! replacement we can distribute, we hope you'll share it with us.) See the files @file{COPYING} and @file{COPYING.LIB} for the text of the GNU licenses. @cindex @TeX{} Users Group *************** *** 173,182 **** @flindex tug@@tug.org @display @TeX{} Users Group ! 870 Market St. #801 ! San Francisco, CA 94102 USA ! phone: +1 (415) 982-8449 ! fax: +1 (415) 982-8559 email: @email{tug@@tug.org} @end display --- 174,184 ---- @flindex tug@@tug.org @display @TeX{} Users Group ! P.O. Box 1239 ! Three Rivers, CA 93271-1239 ! USA ! phone: 1 209 561 0112 ! fax: 1 209 561 4584 email: @email{tug@@tug.org} @end display *************** *** 192,215 **** @cindex Knuth, Donald E. (This section is for those people who are curious about how the library ! came about.) (If you like to read historical accounts of software, I urge you to seek out the GNU Autoconf manual and the ``Errors of @TeX{}'' paper by Don Knuth, published in @cite{Software---Practice and Experience} 19(7), July 1989.) @cindex Morgan, Tim @cindex Rokicki, Tom @cindex VAX 11/750 @cindex Sun 2 @pindex pxp @r{Pascal preprocessor} @pindex pc @r{Pascal compiler} ! My first ChangeLog entry for Web2c seems to be February 1990, but I may ! have done some work before then. In any case, Tim Morgan and I were ! jointly maintaining it for a time. (I should mention here that Tim had ! made Web2c into a real distribution long before I had ever used it or ! even heard of it, and Tom Rokicki did the original implementation. I ! was using @code{pxp} and @code{pc} on VAX 11/750's and the hot new Sun 2 ! machines.) It must have been later in 1990 and 1991 that I started working on @cite{@TeX{} for the Impatient}. Dvips, Xdvi, Web2c, and the GNU --- 194,218 ---- @cindex Knuth, Donald E. (This section is for those people who are curious about how the library ! came about.) (If you like to read historical accounts of software, we urge you to seek out the GNU Autoconf manual and the ``Errors of @TeX{}'' paper by Don Knuth, published in @cite{Software---Practice and Experience} 19(7), July 1989.) @cindex Morgan, Tim @cindex Rokicki, Tom + @cindex Berry, Karl @cindex VAX 11/750 @cindex Sun 2 @pindex pxp @r{Pascal preprocessor} @pindex pc @r{Pascal compiler} ! [Karl writes.] My first ChangeLog entry for Web2c seems to be February ! 1990, but I may have done some work before then. In any case, Tim ! Morgan and I were jointly maintaining it for a time. (I should mention ! here that Tim had made Web2c into a real distribution long before I had ! ever used it or even heard of it, and Tom Rokicki did the original ! implementation. I was using @code{pxp} and @code{pc} on VAX 11/750's ! and the hot new Sun 2 machines.) It must have been later in 1990 and 1991 that I started working on @cite{@TeX{} for the Impatient}. Dvips, Xdvi, Web2c, and the GNU *************** *** 269,274 **** --- 272,284 ---- is actually what I think is likely to happen, but that's another story@dots{}) + @cindex Weber, Olaf + [Olaf writes.] At the end of 1997, UNIX is still alive and kicking, + individuals still develop software, and Web2c development still + continues. Karl had been looking for some time for someone to take up + part of the burden, and I volunteered. + + @include install.texi @include hier.texi @include unixtex.texi *************** *** 356,362 **** Kpathsea supports additional features in search paths: layered default values, environment variable names, config file values, users' home directories, and recursive subdirectory searching. Thus, we say that ! Kpathsea @dfn{expands} a path element, meaning transforming all thel magic specifications into the basic directory name or names. This process is described in the sections below. It happens in the same order as the sections. --- 366,372 ---- Kpathsea supports additional features in search paths: layered default values, environment variable names, config file values, users' home directories, and recursive subdirectory searching. Thus, we say that ! Kpathsea @dfn{expands} a path element, meaning transforming all the magic specifications into the basic directory name or names. This process is described in the sections below. It happens in the same order as the sections. *************** *** 450,456 **** Kpathsea reads @emph{all} @file{texmf.cnf} files in the search path, not just the first one found; definitions in earlier files override those in ! later files. Thus, with the search path of @samp{.:$TEXMF}, values from @file{./texmf.cnf} override those from @file{$TEXMF/texmf.cnf}. While (or instead of) reading this description, you may find it helpful --- 460,466 ---- Kpathsea reads @emph{all} @file{texmf.cnf} files in the search path, not just the first one found; definitions in earlier files override those in ! later files. Thus, if the search path is @samp{.:$TEXMF}, values from @file{./texmf.cnf} override those from @file{$TEXMF/texmf.cnf}. While (or instead of) reading this description, you may find it helpful *************** *** 557,562 **** --- 567,573 ---- * Variable expansion:: $foo and $@{foo@} expand to environment values. * Tilde expansion:: ~ and ~user expand to home directories. * Brace expansion:: a@{foo,bar@}b expands to afoob abarb. + * KPSE_DOT expansion:: . is replaced with $KPSE_DOT if it is defined. * Subdirectory expansion:: a// and a//b recursively expand to subdirs. @end menu *************** *** 609,617 **** Technicality: Since it would be useless to insert the default value in more than one place, Kpathsea changes only one extra @samp{:} and leaves ! any others in place (where they will eventually be equivalent to ! @samp{.}, i.e., the current directory). Kpathsea checks first for a ! leading @samp{:}, then a trailing @samp{:}, then a doubled @samp{:}. @flindex kdefault.c You can trace this by debugging ``paths'' (@pxref{Debugging}). --- 620,628 ---- Technicality: Since it would be useless to insert the default value in more than one place, Kpathsea changes only one extra @samp{:} and leaves ! any others in place (they will eventually be ignored). Kpathsea checks ! first for a leading @samp{:}, then a trailing @samp{:}, then a doubled ! @samp{:}. @flindex kdefault.c You can trace this by debugging ``paths'' (@pxref{Debugging}). *************** *** 635,643 **** If the character after the @samp{$} is alphanumeric or @samp{_}, the variable name consists of all consecutive such characters. If the character after the @samp{$} is a @samp{@{}, the variable name consists ! of everything up to the next @samp{@}} (braces may not be nested). ! Otherwise, Kpathsea gives a warning and ignores the @samp{$} and its ! following character. @cindex quoting variable values @cindex shell variables --- 646,654 ---- If the character after the @samp{$} is alphanumeric or @samp{_}, the variable name consists of all consecutive such characters. If the character after the @samp{$} is a @samp{@{}, the variable name consists ! of everything up to the next @samp{@}} (braces may not be nested around ! variable names). Otherwise, Kpathsea gives a warning and ignores the ! @samp{$} and its following character. @cindex quoting variable values @cindex shell variables *************** *** 708,736 **** @kindex @{ @r{expansion} @cindex brace expansion ! @samp{x@{@var{a},@var{b}@}y} expands to @samp{x@var{a}y:x@var{b}y}. For example: @example ! foo/@{1,2@}/baz @end example ! @noindent expands to @samp{foo1baz:foo2baz}. @samp{:} is the path separator on the current system; e.g., on a DOS system, it's @samp{;}. ! Braces can be nested; for example, @samp{x@{a,b@{1,2@}@}y} expands to ! @samp{xay:xb1y:xb2y}. @cindex multiple @TeX{} hierarchies This feature can be used to implement multiple @TeX{} hierarchies, by assigning a brace list to @code{$TEXMF}, as mentioned in ! @file{texmf.cnf.in}. @flindex expand.c Brace expansion is implemented in the source file ! @file{kpathsea/expand.c}. It is taken from Bash, and is thus covered ! by the GNU General Public License, rather than the Library General ! Public License that covers the rest of Kpathsea. @node Subdirectory expansion --- 719,768 ---- @kindex @{ @r{expansion} @cindex brace expansion ! @samp{x@{@var{a}:@var{b}@}y} expands to @samp{x@var{a}y:x@var{b}y}. For example: @example ! foo/@{1:2@}/baz @end example ! @noindent expands to @samp{foo/1/baz:foo/2/baz}. @samp{:} is the path separator on the current system; e.g., on a DOS system, it's @samp{;}. ! Braces can be nested; for example, @samp{x@{A:B@{1:2@}@}y} expands to ! @samp{xAy:xB1y:xB2y}. ! ! Multiple non-nested braces are expanded from right to left; for example, ! @samp{x@{A:B@}@{1:2@}y} expands to @samp{x@{A:B@}1y:x@{A:B@}2y}, which ! expands to @samp{xA1y:xB1y:xA2y:xB2:y}. @cindex multiple @TeX{} hierarchies This feature can be used to implement multiple @TeX{} hierarchies, by assigning a brace list to @code{$TEXMF}, as mentioned in ! @file{texmf.in}. ! ! In old versions of the library you had to use a comma. While this usage ! is deprecated, it is still supported for backwards compatibility with ! old configurations. The last example could have been written ! @samp{x@{A,B@}@{1,2@}y}. @flindex expand.c Brace expansion is implemented in the source file ! @file{kpathsea/expand.c}. It is a modification of the Bash sources, and ! is thus covered by the GNU General Public License, rather than the ! Library General Public License that covers the rest of Kpathsea. ! ! ! @node KPSE_DOT expansion ! @subsection @code{KPSE_DOT} expansion ! ! @kindex KPSE_DOT @r{expansion} ! ! When @code{KPSE_DOT} is defined in the environment, it names a directory ! that should be considered the current directory for the purpose of ! looking up files in the search paths. This feature is needed by the ! @samp{mktex@dots{}} scripts @ref{mktex scripts}, because these ! change the working directory. You should not ever define it yourself. @node Subdirectory expansion *************** *** 844,853 **** hierarchies. The recommended way to create and maintain @samp{ls-R} is to run the ! @code{MakeTeXls-R} script, which is installed in @samp{$(bindir)} (@file{/usr/local/bin} by default). That script goes to some trouble to follow symbolic links as necessary, etc. It's also invoked by the ! distributed @samp{MakeTeX@dots{}} scripts. @flindex ls-R@r{, simplest build} At its simplest, though, you can build @file{ls-R} with the command --- 876,885 ---- hierarchies. The recommended way to create and maintain @samp{ls-R} is to run the ! @code{mktexlsr} script, which is installed in @samp{$(bindir)} (@file{/usr/local/bin} by default). That script goes to some trouble to follow symbolic links as necessary, etc. It's also invoked by the ! distributed @samp{mktex@dots{}} scripts. @flindex ls-R@r{, simplest build} At its simplest, though, you can build @file{ls-R} with the command *************** *** 864,870 **** (e.g., @file{/etc/profile}) to something problematic, e.g., @samp{ls --color=tty}. In that case, you will have to disable the alias before generating @file{ls-R}. For the precise definition of the file format, ! @pxref{Database format}. Regardless of whether you use the supplied script or your own, you will almost certainly want to invoke it via @code{cron}, so when you make --- 896,902 ---- (e.g., @file{/etc/profile}) to something problematic, e.g., @samp{ls --color=tty}. In that case, you will have to disable the alias before generating @file{ls-R}. For the precise definition of the file format, ! see @ref{Database format}. Regardless of whether you use the supplied script or your own, you will almost certainly want to invoke it via @code{cron}, so when you make *************** *** 1011,1017 **** independent of any particular application. This can also be useful as a sort of @code{find} program to locate files in your @TeX{} hierarchies, perhaps in administrative scripts. It is used heavily in the ! distributed @samp{MakeTeX@dots{}} scripts. Synopsis: @example --- 1043,1049 ---- independent of any particular application. This can also be useful as a sort of @code{find} program to locate files in your @TeX{} hierarchies, perhaps in administrative scripts. It is used heavily in the ! distributed @samp{mktex@dots{}} scripts. Synopsis: @example *************** *** 1054,1108 **** @item --format=@var{name} @opindex --format=@var{name} Set the format for lookup to @var{name}. By default, the format is ! guessed from the filename. In fact, the recognized filename extensions ! and the allowable @var{name}s (including any leading @samp{.}) are the ! same. ! ! You can also specify an integer for @var{name}; this is the only way to ! specify formats that don't have an associated suffix, such as MetaPost ! support files and Dvips configuration files. It's also somewhat faster, ! since no unused formats need to be initialized. The integers appear in ! the output of @samp{--help}, and are of course subject to change. ! Here's the current list of recognized names and numbers. @xref{Supported file formats}, for more information on each of these. @example ! gf(0) ! pk(1) ! bitmap font (2) ! .afm(3) ! .base(4) ! .bib(5) ! .bst(6) ! .cnf(7) ! ls-R(8) ! .fmt(9) ! .map(10) ! .mem(11) ! .mf(12) ! .pool(13) ! .mft(14) ! .mp(15) ! .pool(16) ! MetaPost support (17) ! .ocp(18) ! .ofm(19) ! .opl(20) ! .otp(21) ! .ovf(22) ! .ovp(23) ! graphic/figure (24) .eps .epsi ! .tex(25) .ltx .dtx .texi .texinfo .txi .eps .epsi ! TeX documentation (26) ! .pool(27) ! TeX sources (28) ! PostScript header/font (29) .pro ! Troff fonts (30) ! .tfm(31) ! .pfa(32) .pfb ! .vf(33) ! dvips config (34) ! .ist(35) @end example This option and @samp{--path} are mutually exclusive. --- 1086,1144 ---- @item --format=@var{name} @opindex --format=@var{name} Set the format for lookup to @var{name}. By default, the format is ! guessed from the filename, with @samp{tex} being used if nothing else ! fits. The recognized filename extensions (including any leading ! @samp{.}) are also allowable @var{name}s. ! ! All formats also have a name, which is the only way to specify formats ! with no associated suffix. For example, for Dvips configuration files ! you can use @samp{--format="dvips config"}. (The quotes are for the ! sake of the shell.) ! Here's the current list of recognized names and the associated suffixes. @xref{Supported file formats}, for more information on each of these. @example ! gf: gf ! pk: pk ! bitmap font ! afm: .afm ! base: .base ! bib: .bib ! bst: .bst ! cnf: .cnf ! ls-R: ls-R ! fmt: .fmt ! map: .map ! mem: .mem ! mf: .mf ! mfpool: .pool ! mft: .mft ! mp: .mp ! mppool: .pool ! MetaPost support ! ocp: .ocp ! ofm: .ofm .tfm ! opl: .opl ! otp: .otp ! ovf: .ovf ! ovp: .ovp ! graphic/figure: .eps .epsi ! tex: .tex ! TeX system documentation ! texpool: .pool ! TeX system sources ! PostScript header/font: .pro ! Troff fonts ! tfm: .tfm ! type1 fonts: .pfa .pfb ! vf: .vf ! dvips config ! ist: .ist ! truetype fonts: .ttf .ttc ! type42 fonts ! web2c files ! other text files ! other binary files @end example This option and @samp{--path} are mutually exclusive. *************** *** 1113,1131 **** After processing the command line, read additional filenames to look up from standard input. ! @item -maketex=@var{filetype} ! @itemx -no-maketex=@var{filetype} ! @opindex -maketex=@var{filetype} ! @opindex -no-maketex=@var{filetype} ! Turn on or off the @samp{MakeTeX} script associated with @var{filetype}. The only values that make sense for @var{filetype} are @samp{pk}, @samp{mf}, @samp{tex}, and @samp{tfm}. By default, all are off in ! Kpsewhich. @xref{MakeTeX scripts}. @item --mode=@var{string} @opindex --mode=@var{string} Set the mode name to @var{string}; this also only affects @samp{gf} and ! @samp{pk} lookups. No default: any mode will be found. @xref{MakeTeX script arguments}. @item --must-exist --- 1149,1167 ---- After processing the command line, read additional filenames to look up from standard input. ! @item -mktex=@var{filetype} ! @itemx -no-mktex=@var{filetype} ! @opindex -mktex=@var{filetype} ! @opindex -no-mktex=@var{filetype} ! Turn on or off the @samp{mktex} script associated with @var{filetype}. The only values that make sense for @var{filetype} are @samp{pk}, @samp{mf}, @samp{tex}, and @samp{tfm}. By default, all are off in ! Kpsewhich. @xref{mktex scripts}. @item --mode=@var{string} @opindex --mode=@var{string} Set the mode name to @var{string}; this also only affects @samp{gf} and ! @samp{pk} lookups. No default: any mode will be found. @xref{mktex script arguments}. @item --must-exist *************** *** 1141,1147 **** usual expansions are supported (@pxref{Path expansion}). This option and @samp{--format} are mutually exclusive. To output the complete directory expansion of a path, instead of doing a one-shot lookup, see ! @samp{--path-expand} in the following section. @item --progname=@var{name} @opindex --progname=@var{name} --- 1177,1183 ---- usual expansions are supported (@pxref{Path expansion}). This option and @samp{--format} are mutually exclusive. To output the complete directory expansion of a path, instead of doing a one-shot lookup, see ! @samp{--expand-path} in the following section. @item --progname=@var{name} @opindex --progname=@var{name} *************** *** 1166,1185 **** @xref{Debugging}. @item @opindex --expand-var=@var{string} @samp{--expand-var=@var{string}} outputs the variable expansion of ! @var{string}. For example, the @samp{MakeTeX@dots{}} scripts run @samp{kpsewhich --expand-var='$TEXMF'} to find the root of the @TeX{} system hierarchy. @xref{Path expansion}. @item @opindex --expand-path=@var{string} - @opindex --separator=@var{string} @samp{--expand-path=@var{string}} outputs the complete expansion of @var{string} as a colon-separated path. This is useful to construct a search path for a program that doesn't accept recursive subdirectory ! specifications. The option @samp{--separator=@var{string}} changes the ! separator in the output from @samp{:} to @var{string}. For one-shot uses of an arbitrary (not built in to Kpathsea) path, see @samp{--path} in the previous section. --- 1202,1224 ---- @xref{Debugging}. @item + @opindex --expand-braces=@var{string} + @samp{--expand-braces=@var{string}} outputs the variable and brace + expansion of @var{string}. @xref{Path expansion}. + + @item @opindex --expand-var=@var{string} @samp{--expand-var=@var{string}} outputs the variable expansion of ! @var{string}. For example, the @samp{mktex@dots{}} scripts run @samp{kpsewhich --expand-var='$TEXMF'} to find the root of the @TeX{} system hierarchy. @xref{Path expansion}. @item @opindex --expand-path=@var{string} @samp{--expand-path=@var{string}} outputs the complete expansion of @var{string} as a colon-separated path. This is useful to construct a search path for a program that doesn't accept recursive subdirectory ! specifications. For one-shot uses of an arbitrary (not built in to Kpathsea) path, see @samp{--path} in the previous section. *************** *** 1265,1425 **** The following table lists the above information. @table @samp ! @item .afm @flindex .afm @vindex AFMFONTS (Adobe font metrics, @pxref{Metric files,,, dvips, Dvips}) ! @code{AFMFONTS}. ! @item .base @flindex .base @vindex MFBASES @vindex TEXMFINI (Metafont memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{MFBASES}, @code{TEXMFINI}. ! @item .bib @flindex .bib @vindex BIBINPUTS @vindex TEXBIB (Bib@TeX{} bibliography source, @pxref{bibtex invocation,,, web2c, Web2c}) ! @code{BIBINPUTS}, @code{TEXBIB}. ! @item .bst @flindex .bst @vindex BSTINPUTS (Bib@TeX{} style file, @pxref{Basic BibTeX style files,, Basic Bib@TeX{} style files, web2c, Web2c}) ! @code{BSTINPUTS}. ! @item .cnf @flindex .cnf @vindex TEXMFCNF (Runtime configuration files, @pxref{Config files}) ! @code{TEXMFCNF}. ! @item ls-R ! @flindex ls-R ! @vindex TEXMFDBS ! (Filename databases, @pxref{Filename database}) ! @code{TEXMFDBS}. ! @item .fmt @flindex .fmt @vindex TEXFORMATS @vindex TEXMFINI (@TeX{} memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{TEXFORMATS}, @code{TEXMFINI}. @item gf ! @flindex .gf @vindex GFFONTS @vindex GLYPHFONTS @vindex TEXFONTS (generic font bitmap, @pxref{Glyph files,,, dvips, Dvips}) ! @code{@var{program}FONTS}, @code{GFFONTS}, @code{GLYPHFONTS}, @code{TEXFONTS}. ! @item .map ! @flindex .map ! @vindex TEXFONTMAPS ! (Fontmaps, @pxref{Fontmap}) ! @code{TEXFONTMAPS}. ! @item .ist @flindex .ist @vindex TEXINDEXSTYLE @vindex INDEXSTYLE (makeindex style files) ! @code{TEXINDEXSTYLE}, @code{INDEXSTYLE}. ! @item .mem @flindex .mem @vindex MPMEMS @vindex TEXMFINI (MetaPost memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{MPMEMS}, @code{TEXMFINI}. ! @item .mf @flindex .mf @vindex MFINPUTS (Metafont source, @pxref{mf invocation,,, web2c, Web2c}) @code{MFINPUTS}; ! dynamic creation program: @code{MakeTeXMF}. ! ! @item .mft ! @flindex .mft ! @vindex MFTINPUTS ! (@code{MFT} style file, @pxref{mft invocation,,, web2c, Web2c}) ! @code{MFTINPUTS}. ! @item mf.pool @flindex .pool @vindex MFPOOL (Metafont program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{MFPOOL}, @code{TEXMFINI}. ! @item .mp @flindex .mp @vindex MPINPUTS (MetaPost source, @pxref{mpost invocation,,, web2c, Web2c}) ! @code{MPINPUTS}. ! @item mp.pool @flindex .pool @vindex MPPOOL (MetaPost program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{MPPOOL}, @code{TEXMFINI}. ! ! @item @r{(none)} ! @vindex MPSUPPORT ! (MetaPost support files, used by DMP; @pxref{dmp invocation,,, web2c, Web2c}) ! @code{MPSUPPORT}. ! @item .ocp @flindex .ocp @vindex OCPINPUTS (Omega compiled process files) @code{OCPINPUTS}; @* dynamic creation program: @code{MakeOmegaOCP}. ! @item .ofm @flindex .ofm @vindex OFMFONTS (Omega font metrics) @code{OFMFONTS}, @code{TEXFONTS}; @* dynamic creation program: @code{MakeOmegaOFM}. ! @item .opl @flindex .opl (Omega property lists) ! @code{OPLFONTS}, @code{TEXFONTS}. ! @item .otp @flindex .otp @vindex OTPINPUTS (Omega translation process files) ! @code{OTPINPUTS}. ! @item .ovf @flindex .ovf @vindex OVFFONTS (Omega virtual fonts) ! @code{OVFFONTS}, @code{TEXFONTS}. ! @item .ovp @flindex .ovp @vindex OVPFONTS (Omega virtual property lists) ! @code{OVPFONTS}, @code{TEXFONTS}. ! ! @item .eps ! @flindex .eps ! @flindex .epsi ! @vindex TEXPICTS ! @vindex TEXINPUTS ! (Encapsulated PostScript figures, @pxref{PostScript figures,,, dvips, Dvips}) ! @code{TEXPICTS}, @code{TEXINPUTS}; ! additional suffixes: @samp{.epsi}. @item pk @flindex .pk --- 1304,1492 ---- The following table lists the above information. @table @samp ! @item afm @flindex .afm @vindex AFMFONTS (Adobe font metrics, @pxref{Metric files,,, dvips, Dvips}) ! @code{AFMFONTS}; ! suffix @samp{.afm}. ! @item base @flindex .base @vindex MFBASES @vindex TEXMFINI (Metafont memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{MFBASES}, @code{TEXMFINI}; ! suffix @samp{.base}. ! @item bib @flindex .bib @vindex BIBINPUTS @vindex TEXBIB (Bib@TeX{} bibliography source, @pxref{bibtex invocation,,, web2c, Web2c}) ! @code{BIBINPUTS}, @code{TEXBIB}; ! suffix @samp{.bib}. ! @item bst @flindex .bst @vindex BSTINPUTS (Bib@TeX{} style file, @pxref{Basic BibTeX style files,, Basic Bib@TeX{} style files, web2c, Web2c}) ! @code{BSTINPUTS}; ! suffix @samp{.bst}. ! @item cnf @flindex .cnf @vindex TEXMFCNF (Runtime configuration files, @pxref{Config files}) ! @code{TEXMFCNF}; ! suffix @samp{.cnf}. ! @item dvips config ! @vindex TEXCONFIG ! @flindex config.ps@r{, search path for} ! (Dvips @samp{config.*} files, such as @file{config.ps}, @pxref{Config ! files,,, dvips, Dvips}) ! @code{TEXCONFIG}. ! @item fmt @flindex .fmt @vindex TEXFORMATS @vindex TEXMFINI (@TeX{} memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{TEXFORMATS}, @code{TEXMFINI}; ! suffix @samp{.fmt}. @item gf ! @flindex gf @vindex GFFONTS @vindex GLYPHFONTS @vindex TEXFONTS (generic font bitmap, @pxref{Glyph files,,, dvips, Dvips}) ! @code{@var{program}FONTS}, @code{GFFONTS}, @code{GLYPHFONTS}, @code{TEXFONTS}; ! suffix @samp{gf}. ! @item graphic/figure ! @flindex .eps ! @flindex .epsi ! @vindex TEXPICTS ! @vindex TEXINPUTS ! (Encapsulated PostScript figures, @pxref{PostScript figures,,, dvips, Dvips}) ! @code{TEXPICTS}, @code{TEXINPUTS}; ! additional suffixes: @samp{.eps}, @samp{.epsi}. ! @item ist @flindex .ist @vindex TEXINDEXSTYLE @vindex INDEXSTYLE (makeindex style files) ! @code{TEXINDEXSTYLE}, @code{INDEXSTYLE}; ! suffix @samp{.ist}. ! ! @item ls-R ! @flindex ls-R ! @vindex TEXMFDBS ! (Filename databases, @pxref{Filename database}) ! @code{TEXMFDBS}. ! ! @item map ! @flindex .map ! @vindex TEXFONTMAPS ! (Fontmaps, @pxref{Fontmap}) ! @code{TEXFONTMAPS}; ! suffix @samp{.map}. ! @item mem @flindex .mem @vindex MPMEMS @vindex TEXMFINI (MetaPost memory dump, @pxref{Memory dumps,,, web2c, Web2c}) ! @code{MPMEMS}, @code{TEXMFINI}; ! suffix @samp{.mem}. ! ! @item @r{MetaPost support} ! @vindex MPSUPPORT ! (MetaPost support files, used by DMP; @pxref{dmp invocation,,, web2c, Web2c}) ! @code{MPSUPPORT}. ! @item mf @flindex .mf @vindex MFINPUTS (Metafont source, @pxref{mf invocation,,, web2c, Web2c}) @code{MFINPUTS}; ! suffix @samp{.mf}; ! dynamic creation program: @code{mktexmf}. ! @item mfpool @flindex .pool @vindex MFPOOL (Metafont program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{MFPOOL}, @code{TEXMFINI}; ! suffix @samp{.pool}. ! @item mft ! @flindex .mft ! @vindex MFTINPUTS ! (@code{MFT} style file, @pxref{mft invocation,,, web2c, Web2c}) ! @code{MFTINPUTS}; ! suffix @samp{.mft}. ! ! @item mp @flindex .mp @vindex MPINPUTS (MetaPost source, @pxref{mpost invocation,,, web2c, Web2c}) ! @code{MPINPUTS}; ! suffix @samp{.mp}. ! @item mppool @flindex .pool @vindex MPPOOL (MetaPost program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{MPPOOL}, @code{TEXMFINI}; ! suffix @samp{.pool}. ! @item ocp @flindex .ocp @vindex OCPINPUTS (Omega compiled process files) @code{OCPINPUTS}; @* + suffix @samp{.ocp}; dynamic creation program: @code{MakeOmegaOCP}. ! @item ofm @flindex .ofm @vindex OFMFONTS (Omega font metrics) @code{OFMFONTS}, @code{TEXFONTS}; @* + suffixes @samp{.ofm}, @samp{.tfm}; dynamic creation program: @code{MakeOmegaOFM}. ! @item opl @flindex .opl (Omega property lists) ! @code{OPLFONTS}, @code{TEXFONTS}; ! suffix @samp{.opl}. ! @item otp @flindex .otp @vindex OTPINPUTS (Omega translation process files) ! @code{OTPINPUTS}; ! suffix @samp{.otp}. ! @item ovf @flindex .ovf @vindex OVFFONTS (Omega virtual fonts) ! @code{OVFFONTS}, @code{TEXFONTS}; ! suffix @samp{.ovf}. ! @item ovp @flindex .ovp @vindex OVPFONTS (Omega virtual property lists) ! @code{OVPFONTS}, @code{TEXFONTS}; ! suffix @samp{.ovp}. @item pk @flindex .pk *************** *** 1430,1492 **** (packed bitmap fonts, @pxref{Glyph files,,, dvips, Dvips}) @code{@var{PROGRAM}FONTS} (@var{program} being @samp{XDVI}, etc.), @code{PKFONTS}, @code{TEXPKS}, @code{GLYPHFONTS}, @code{TEXFONTS}; ! dynamic creation program: @code{MakeTeXPK}. ! @item .pro @flindex .pro @vindex TEXPSHEADERS @vindex PSHEADERS (downloadable PostScript, @pxref{Header files,,, dvips, Dvips}) ! @code{TEXPSHEADERS}, @code{PSHEADERS}. ! @item .tex @flindex .tex - @flindex .ltx - @flindex .dtx - @flindex .texi - @flindex .texinfo - @flindex .txi - @flindex .eps - @flindex .epsi @vindex TEXINPUTS (@TeX{} source, @pxref{tex invocation,,, web2c, Web2c}) @code{TEXINPUTS}; ! additional suffixes: @samp{.ltx} @samp{.dtx} @samp{.texi} @samp{.texinfo} ! @samp{.txi} @samp{.eps} @samp{.epsi}; ! dynamic creation program: @code{MakeTeXTeX}. ! @item @r{(none)} @flindex doc files @vindex TEXDOCS (Documentation files for the @TeX{} system) @code{TEXDOCS}. ! @item tex.pool ! @flindex .pool ! @vindex TEXPOOL ! (@TeX{} program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{TEXPOOL}, @code{TEXMFINI}. ! ! @item @r{(none)} @flindex source files @vindex TEXSOURCES (Source files for the @TeX{} system) @code{TEXSOURCES}. ! @item .tfm @flindex .tfm @vindex TFMFONTS @vindex TEXFONTS (@TeX{} font metrics, @pxref{Metric files,,, dvips, Dvips}) @code{TFMFONTS}, @code{TEXFONTS}; ! dynamic creation program: @code{MakeTeXTFM}. ! @item @r{(none)} @vindex TRFONTS (Troff fonts, used by DMP; @pxref{DMP invocation,,, web2c, Web2c}) @code{TRFONTS}. ! @item .pfa @flindex .pfa @flindex .pfb @vindex T1FONTS --- 1497,1563 ---- (packed bitmap fonts, @pxref{Glyph files,,, dvips, Dvips}) @code{@var{PROGRAM}FONTS} (@var{program} being @samp{XDVI}, etc.), @code{PKFONTS}, @code{TEXPKS}, @code{GLYPHFONTS}, @code{TEXFONTS}; ! suffix @samp{pk}; ! dynamic creation program: @code{mktexpk}. ! @item PostScript header @flindex .pro @vindex TEXPSHEADERS @vindex PSHEADERS (downloadable PostScript, @pxref{Header files,,, dvips, Dvips}) ! @code{TEXPSHEADERS}, @code{PSHEADERS}; ! additional suffix @samp{.pro}. ! @item tex @flindex .tex @vindex TEXINPUTS (@TeX{} source, @pxref{tex invocation,,, web2c, Web2c}) @code{TEXINPUTS}; ! suffix @samp{.tex}; ! additional suffixes: none, because such a list cannot be complete; ! dynamic creation program: @code{mktextex}. ! @item TeX system documentation @flindex doc files @vindex TEXDOCS (Documentation files for the @TeX{} system) @code{TEXDOCS}. ! @item TeX system sources @flindex source files @vindex TEXSOURCES (Source files for the @TeX{} system) @code{TEXSOURCES}. ! @item texpool ! @flindex .pool ! @vindex TEXPOOL ! (@TeX{} program strings, @pxref{pooltype invocation,,, web2c, Web2c}) ! @code{TEXPOOL}, @code{TEXMFINI}; ! suffix @samp{.pool}. ! ! @item tfm @flindex .tfm @vindex TFMFONTS @vindex TEXFONTS (@TeX{} font metrics, @pxref{Metric files,,, dvips, Dvips}) @code{TFMFONTS}, @code{TEXFONTS}; ! suffix @samp{.tfm}; ! dynamic creation program: @code{mktextfm}. ! @item Troff fonts @vindex TRFONTS (Troff fonts, used by DMP; @pxref{DMP invocation,,, web2c, Web2c}) @code{TRFONTS}. ! @item truetype fonts ! @flindex .ttf ! @flindex .ttc ! @vindex TTFONTS ! (TrueType outline fonts) @code{TTFONTS}; suffixes @samp{.ttf}, ! @samp{.ttc}. ! ! @item type1 fonts @flindex .pfa @flindex .pfb @vindex T1FONTS *************** *** 1494,1515 **** @vindex TEXPSHEADERS @vindex DVIPSHEADERS (Type 1 PostScript outline fonts, @pxref{Glyph files,,, dvips, Dvips}) ! @code{T1FONTS}, @code{T1INPUTS}, @code{TEXPSHEADERS}, @code{DVIPSHEADERS}; additional suffix: ! @samp{.pfb}. ! @item .vf @flindex .vf @vindex VFFONTS @vindex TEXFONTS (virtual fonts, @pxref{Virtual fonts,,, dvips, Dvips}) ! @code{VFFONTS}, @code{TEXFONTS}. ! @item @r{(none)} ! @vindex TEXCONFIG ! @flindex config.ps@r{, search path for} ! (Dvips @samp{config.*} files, such as @file{config.ps}, @pxref{Config ! files,,, dvips, Dvips}) ! @code{TEXCONFIG}. @end table If an environment variable by these names are set, the corresponding --- 1565,1602 ---- @vindex TEXPSHEADERS @vindex DVIPSHEADERS (Type 1 PostScript outline fonts, @pxref{Glyph files,,, dvips, Dvips}) ! @code{T1FONTS}, @code{T1INPUTS}, @code{TEXPSHEADERS}, @code{DVIPSHEADERS}; ! suffixes @samp{.pfa}, @samp{.pfb}. ! ! @item type42 fonts ! @vindex T42FONTS ! (Type 42 PostScript outline fonts) @code{T42FONTS}. ! @item vf @flindex .vf @vindex VFFONTS @vindex TEXFONTS (virtual fonts, @pxref{Virtual fonts,,, dvips, Dvips}) ! @code{VFFONTS}, @code{TEXFONTS}; ! suffix @samp{.vf}. ! @end table ! There are two special cases, because the paths and environment variables ! always depend on the name of the program: the variable name is ! constructed by converting the program name to upper case, and then ! appending @samp{INPUTS}. Assuming the program is called @samp{foo}, ! this gives us the following table. ! ! @table @samp ! @item other text files ! @vindex FOOINPUTS ! (text files used by @samp{foo}) ! @code{FOOINPUTS}. ! ! @item other binary files ! @vindex FOOINPUTS ! (binary files used by @samp{foo}) ! @code{FOOINPUTS}. @end table If an environment variable by these names are set, the corresponding *************** *** 1551,1579 **** Here is the search strategy for a file @var{name}: @enumerate @item ! If @var{name} has a suffix, search for exactly @var{name} along the ! appropriate path. Example: given @samp{foo.sty}, look for ! @samp{foo.sty} before @samp{foo.sty.tex}, even though it's a @TeX{} ! input file. ! ! @item ! If the file format defines a default suffix, and the suffix of ! @var{name} is not already that default, try appending the default. ! Example: given @samp{foo.bar}, search for @samp{foo.bar.tex}. But if ! given @samp{foo.tex}, don't bother to search for @samp{foo.tex.tex}. @item ! If we're searching for a TFM, PK, or GF file, look for aliases of ! @var{name} in @file{texfonts.map} files (@pxref{Fontmap}). Example: ! given @samp{Times-Roman}, find @samp{ptmr}. @item If the file format defines a program to invoke to create missing files, ! run it (@pxref{MakeTeX scripts}). ! ! @item ! Search for @var{name} itself, if we haven't done so already. Example: ! given @samp{foo}, search for @samp{foo}. @end enumerate @flindex tex-file.c --- 1638,1660 ---- Here is the search strategy for a file @var{name}: @enumerate @item ! If the file format defines default suffixes, and the suffix of ! @var{name} name is not already a known suffix for that format, try the ! name with each default appended, and use alternative names found in the ! fontmaps if necessary. We postpone searching the disk as long as ! possible. Example: given @samp{foo.sty}, look for @samp{foo.sty.tex} ! before @samp{foo.sty}. This is unfortunate, but allows us to find ! @samp{foo.bar.tex} before @samp{foo.bar} if both exist and we were given ! @samp{foo.bar}. @item ! Search for @var{name}, and if necssary for alternative names found in ! the fontmaps. Again we avoid searching the disk if possible. Example: ! given @samp{foo}, we look for @samp{foo}. @item If the file format defines a program to invoke to create missing files, ! run it (@pxref{mktex scripts}). @end enumerate @flindex tex-file.c *************** *** 1606,1613 **** @item If @var{name} is an alias for a file @var{f} in the fontmap file @file{texfonts.map}, look for @var{f}.@var{dpi}. ! @item Run an external program (typically named @samp{MakeTeXPK}) to ! generate the font (@pxref{MakeTeX scripts}) @item Look for @var{fallback}.@var{dpi}, where @var{fallback} is some last-resort font (typically @samp{cmr10}). --- 1687,1694 ---- @item If @var{name} is an alias for a file @var{f} in the fontmap file @file{texfonts.map}, look for @var{f}.@var{dpi}. ! @item Run an external program (typically named @samp{mktexpk}) to ! generate the font (@pxref{mktex scripts}) @item Look for @var{fallback}.@var{dpi}, where @var{fallback} is some last-resort font (typically @samp{cmr10}). *************** *** 1819,1824 **** --- 1900,1906 ---- @menu * Overview: Programming overview. Introduction. * Calling sequence:: Specifics of what to call. + * Program-specific files:: How to handle these. * Config: Programming with config files. Getting info from texmf.cnf. @end menu *************** *** 1878,1892 **** @enumerate @item ! @findex kpse_set_progname @vindex argv[0] ! Call @code{kpse_set_progname} with @code{argv[0]}; This is the only ! initialization that is mandatory to take full advantage of ! Kpathsea---specifically, for the @code{.@var{program}} feature of config ! files (@pxref{Config files}). @vindex program_invocation_name @vindex program_invocation_short_name @vindex KPATHSEA_DEBUG @cindex SELFAUTOLOC @cindex SELFAUTODIR --- 1960,1978 ---- @enumerate @item ! @findex kpse_set_program_name @vindex argv[0] ! Call @code{kpse_set_program_name} with @code{argv[0]} as the first ! argument; the second argument is a string or @code{NULL}. The second ! argument is used by Kpathsea as the program name for the ! @code{.@var{program}} feature of config files (@pxref{Config files}). ! If the second argument is @code{NULL}, the value of the first argument ! is used. This function must be called before any other use of the ! Kpathsea library. @vindex program_invocation_name @vindex program_invocation_short_name + @vindex kpse_program_name @vindex KPATHSEA_DEBUG @cindex SELFAUTOLOC @cindex SELFAUTODIR *************** *** 1894,1911 **** @cindex error message macros @cindex symlinks, resolving @cindex expanding symlinks ! If necessary, @code{kpse_set_progname} sets the global variables @code{program_invocation_name} and @code{program_invocation_short_name}. These variables are used in the error message macros defined in ! @file{kpathsea/lib.h}. It also initializes debugging options based on ! the environment variable @code{KPATHSEA_DEBUG} (if that is set). ! Finally, it sets the variables @code{SELFAUTOLOC}, @code{SELFAUTODIR} ! and @code{SELFAUTOPARENT} to the location, parent and grandparent ! directory of the executable, removing @file{.} and @file{..} path ! elements and resolving symbolic links. These are used in the default ! configuration file to allow people to invoke TeX from anywhere, ! specifically from a mounted CD-ROM. (You can use ! @samp{--expand-var=\$SELFAUTOLOC}, etc., to see the values finds.) @item @vindex kpathsea_debug @r{variable} --- 1980,2008 ---- @cindex error message macros @cindex symlinks, resolving @cindex expanding symlinks ! If necessary, @code{kpse_set_program_name} sets the global variables @code{program_invocation_name} and @code{program_invocation_short_name}. These variables are used in the error message macros defined in ! @file{kpathsea/lib.h}. It sets the global variable ! @code{kpse_program_name} to the program name it uses. It also ! initializes debugging options based on the environment variable ! @code{KPATHSEA_DEBUG} (if that is set). Finally, it sets the variables ! @code{SELFAUTOLOC}, @code{SELFAUTODIR} and @code{SELFAUTOPARENT} to the ! location, parent and grandparent directory of the executable, removing ! @file{.} and @file{..} path elements and resolving symbolic links. ! These are used in the default configuration file to allow people to ! invoke TeX from anywhere, specifically from a mounted CD-ROM. (You can ! use @samp{--expand-var=\$SELFAUTOLOC}, etc., to see the values finds.) ! ! @item ! @findex kpse_set_progname ! @vindex argv[0] ! The @code{kpse_set_progname} is deprecated. A call to ! @code{kpse_set_progname} with @code{argv[0]} is equivalent to a call of ! @code{kpse_set_program_name} with first argument @code{argv[0]} and ! second argument @code{NULL}. The function is deprecated because it ! cannot ensure that the @code{.@var{program}} feature of config files ! will always work (@pxref{Config files}). @item @vindex kpathsea_debug @r{variable} *************** *** 1941,1946 **** --- 2038,2044 ---- @item @findex kpse_find_* + @findex kpse_find_file The routine to actually find a file of type @var{format} is @code{kpse_find_@var{format}}, defined in @file{tex-file.h}. These are macros that expand to a call to @file{kpse_find_file}. You can call, *************** *** 1990,1995 **** --- 2088,2116 ---- @url{ftp://prep.ai.mit.edu/pub/gnu/}. + @node Program-specific files + @section Program-specific files + + Many programs will need to find some configuration files. Kpathsea + contains some support to make it easy to place them in their own + directories. The Standard @TeX{} directory structure (@pxref{Top,, + Introduction, tds, A Directory Structure for @TeX{} files}), specifies + that such files should go into a subdirectory named after the program, + like @samp{texmf/ttf2pk}. + + Two special formats, @samp{kpse_program_text_format} and + @samp{kpse_program_binary_format} exist, which use + @code{.:$TEXMF/@var{program}//} as their compiled-in search path. To + override this default, you can use the variable + @code{@var{PROGRAM}INPUTS} in the environment and/or @samp{texmf.cnf}. + That is to say, the name of the variable is constructed by converting + the name of the program to upper case, and appending @code{INPUTS}. + + The only difference between these two formats is whether + @code{kpse_open_file} will open the files it finds in text or binary + mode. + + @node Programming with config files @section Programming with config files *************** *** 2000,2006 **** configuration file that Kpathsea uses for your program. This helps installers by keeping all configuration in one place. ! @findex kpse_var_expand @flindex variable.h @vindex shell_escape@r{, example for code} To retrieve a value @var{var} from config files, the best way is to call --- 2121,2127 ---- configuration file that Kpathsea uses for your program. This helps installers by keeping all configuration in one place. ! @findex kpse_var_value @flindex variable.h @vindex shell_escape@r{, example for code} To retrieve a value @var{var} from config files, the best way is to call diff -cNr octave-2.0.11/kpathsea/kpathsea.version octave-2.0.12/kpathsea/kpathsea.version *** octave-2.0.11/kpathsea/kpathsea.version Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/kpathsea.version Sun Nov 23 11:42:49 1997 *************** *** 0 **** --- 1,3 ---- + # Version information for Klibtool. + # MAJOR MINOR DELTA + kpathsea 3 2 0 diff -cNr octave-2.0.11/kpathsea/kpsestat.c octave-2.0.12/kpathsea/kpsestat.c *** octave-2.0.11/kpathsea/kpsestat.c Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/kpsestat.c Thu Jan 29 11:56:55 1998 *************** *** 0 **** --- 1,129 ---- + /* kpsestat -- show file permissions of a file in octal form. + Copyright (C) 1997 Olaf Weber. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + #include + #include + #include + #include + + #ifdef WIN32 + #include + #endif + + /* + * kpsestat mode x + * Print stat bits of file x on stdout, as modified by mode. + */ + + int main (argc, argv) + int argc; + char *argv[]; + { + char * mode_string; + int to_set, to_keep, to_clear; + int result; + struct stat f; + + if (argc > 1 && strcmp (argv[1], "--help") == 0) { + printf ("Usage: %s MODE FILE\n\ + Print octal permissions of FILE as modified by MODE on standard output.\n\ + MODE is a subset of the symbolic permissions accepted by chmod.\n\ + Use MODE = to obtain the unchanged permissions.\n\ + \n\ + --help display this help and exit\n\ + --version output version information and exit\n\n", argv[0]); + fputs ("Email bug reports to tex-k@mail.tug.org.\n", stdout); + exit(0); + } else if (argc > 1 && strcmp (argv[1], "--version") == 0) { + printf ("%s (%s)\n\ + Copyright (C) 1997 Olaf Weber.\n\ + There is NO warranty. You may redistribute this software\n\ + under the terms of the GNU General Public License.\n\ + For more information about these matters, see the file named COPYING.\n\ + Primary author of %s: Olaf Weber.\n", + argv[0], KPSEVERSION, argv[0]); + exit (0); + } + + /* insist on exactly two args */ + if (argc != 3) { + fprintf (stderr, "%s: Need exactly two arguments.\n\ + Try `%s --help' for more information.\n", argv[0], argv[0]); + exit(1); + } + + mode_string = argv[1]; + to_set = to_keep = to_clear = 0; + for (;;++mode_string) { + int affected = 0; + int action = 0; + int value = 0; + + for (;;++mode_string) + switch (*mode_string) { + case 'u': affected |= 04700; break; + case 'g': affected |= 02070; break; + case 'o': affected |= 01007; break; + case 'a': affected |= 07777; break; + default: goto no_more_affected; + } + no_more_affected: + if (affected == 0) + affected = 07777; + action = *mode_string; + ++mode_string; + for (;;++mode_string) + switch (*mode_string) { + case 'r': value |= 00444 & affected; break; + case 'w': value |= 00222 & affected; break; + case 'x': value |= 00111 & affected; break; + case 's': value |= 06000 & affected; break; + case 't': value |= 01000 & affected; break; + default: goto no_more_values; + } + no_more_values: + switch (action) { + case '-': to_clear |= value; break; + case '=': to_keep |= value; break; + case '+': to_set |= value; break; + default: + fprintf(stderr, "%s: Invalid mode\n", argv[0]); + exit(1); + } + if (*mode_string != ',') + break; + } + if (*mode_string != 0) { + fprintf(stderr, "%s: Invalid mode.\n", argv[0]); + exit(1); + } + + /* does the file exist? */ + if (stat (argv[2], &f) < 0) { + perror(argv[0]); + return 1; + } + + result = f.st_mode & ~S_IFMT; + result |= to_set; + result |= to_keep & result; + result &= ~to_clear; + + printf("%o\n", result); + + return 0; + } diff -cNr octave-2.0.11/kpathsea/kpsestat.man octave-2.0.12/kpathsea/kpsestat.man *** octave-2.0.11/kpathsea/kpsestat.man Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/kpsestat.man Sun Jan 4 13:18:42 1998 *************** *** 0 **** --- 1,56 ---- + .TH KPSESTAT 1 "4 January 1998" "Kpathsea @VERSION@" + .\"===================================================================== + .if n .ds MP MetaPost + .if t .ds MP MetaPost + .if n .ds MF Metafont + .if t .ds MF M\s-2ETAFONT\s0 + .if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP + .if n .ds TX TeX + .ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff + .el .ds OX TeX\" for nroff + .\" the same but obliqued + .\" BX definition must follow TX so BX can use TX + .if t .ds BX \fRB\s-2IB\s0\fP\*(TX + .if n .ds BX BibTeX + .\" LX definition must follow TX so LX can use TX + .if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX + .if n .ds LX LaTeX + .\"===================================================================== + .SH NAME + kpsestat \- compute octal mode from mode of existing file + .SH SYNOPSIS + .B kpsestat + .I mode + .I file + .\"===================================================================== + .SH DESCRIPTION + .B kpsestat + prints the octal permission of + .I file + modified according to + .I mode + on standard output. The + .I mode + parameter accepts a subset of the symbolic permissions accepted by + .BR chmod (1). + Use + .I = + as the mode to obtain the unchanged permissions. + .\"===================================================================== + .SH OPTIONS + .B kpsestat + accepts the following additional options: + .TP + .B --help + .rb + Print help message and exit. + .TP + .B --version + .rb + Print version information and exit. + .\"===================================================================== + .SH BUGS + The error message when the file doesn't exist is rather cryptic. + .\"===================================================================== + .SH "SEE ALSO" + .BR chmod (1). diff -cNr octave-2.0.11/kpathsea/kpsewhich.c octave-2.0.12/kpathsea/kpsewhich.c *** octave-2.0.11/kpathsea/kpsewhich.c Mon Feb 3 17:01:56 1997 --- octave-2.0.12/kpathsea/kpsewhich.c Fri Feb 20 08:18:18 1998 *************** *** 28,33 **** --- 28,34 ---- #include #include #include + #include /* Base resolution. (-D, -dpi) */ *************** *** 36,44 **** /* For variable and path expansion. (-expand-var, -expand-path, -show-path, -separator) */ string var_to_expand = NULL; string path_to_expand = NULL; string path_to_show = NULL; - const_string path_sep = ENV_SEP_STRING; /* The file type and path for lookups. (-format, -path) */ kpse_file_format_type user_format = kpse_last_format; --- 37,45 ---- /* For variable and path expansion. (-expand-var, -expand-path, -show-path, -separator) */ string var_to_expand = NULL; + string braces_to_expand = NULL; string path_to_expand = NULL; string path_to_show = NULL; /* The file type and path for lookups. (-format, -path) */ kpse_file_format_type user_format = kpse_last_format; *************** *** 74,87 **** } /* Use the file type from -format if that was specified, else guess ! dynamically from NAME. Return kpse_last_format if undeterminable. */ static kpse_file_format_type ! find_format P1C(string, name) { kpse_file_format_type ret; ! if (user_format != kpse_last_format) { ret = user_format; } else if (FILESTRCASEEQ (name, "psfonts.map")) { ret = kpse_dvips_config_format; --- 75,90 ---- } /* Use the file type from -format if that was specified, else guess ! dynamically from NAME. Return kpse_last_format if undeterminable. ! This function is also used to parse the -format string, a case which ! we distinguish by setting is_filename to false. */ static kpse_file_format_type ! find_format P2C(string, name, boolean, is_filename) { kpse_file_format_type ret; ! if (is_filename && user_format != kpse_last_format) { ret = user_format; } else if (FILESTRCASEEQ (name, "psfonts.map")) { ret = kpse_dvips_config_format; *************** *** 99,117 **** for (f = 0; !found && f < kpse_last_format; f++) { unsigned try_len; ! const_string *alt; const_string try; if (!kpse_format_info[f].type) kpse_init_format (f); ! try = kpse_format_info[f].suffix; ! found = TRY_SUFFIX (try); ! for (alt = kpse_format_info[f].alt_suffix; !found && alt && *alt; alt++){ ! found = TRY_SUFFIX (*alt); } } ! ret = f < kpse_last_format ? f - 1 : kpse_last_format; } --- 102,127 ---- for (f = 0; !found && f < kpse_last_format; f++) { unsigned try_len; ! const_string *ext; const_string try; if (!kpse_format_info[f].type) kpse_init_format (f); ! if (!is_filename) { ! /* Allow the long name, but only in the -format option. We don't ! want a filename confused with a format name. */ ! try = kpse_format_info[f].type; ! found = TRY_SUFFIX (try); ! } ! for (ext = kpse_format_info[f].suffix; !found && ext && *ext; ext++){ ! found = TRY_SUFFIX (*ext); ! } ! for (ext = kpse_format_info[f].alt_suffix; !found && ext && *ext; ext++){ ! found = TRY_SUFFIX (*ext); } } ! /* If there was a match, f will be one past the correct value. */ ret = f < kpse_last_format ? f - 1 : kpse_last_format; } *************** *** 132,138 **** } else { /* No user-specified search path, check user format or guess from NAME. */ ! kpse_file_format_type fmt = find_format (name); switch (fmt) { case kpse_pk_format: --- 142,148 ---- } else { /* No user-specified search path, check user format or guess from NAME. */ ! kpse_file_format_type fmt = find_format (name, true); switch (fmt) { case kpse_pk_format: *************** *** 146,152 **** break; case kpse_last_format: ! WARNING1 ("kpsewhich: Can't guess file type of %s, using tex", name); fmt = kpse_tex_format; /* fall through */ --- 156,162 ---- break; case kpse_last_format: ! /* If the suffix isn't recognized, assume it's a tex file. */ fmt = kpse_tex_format; /* fall through */ *************** *** 161,240 **** return ret == NULL; } - /* Perform variable and path expansion on PATHVAR. This is useful for - building paths for other programs. Path components sent to standard - output. Returns `./' for the empty string. This does disk searching - and may result in lots and lots of output. */ - - static void - path_expand P1C(const_string, pathvar) - { - string path; - string pathelt; - boolean first = true; - - /* Do variable expansion, too. */ - path = kpse_path_expand (pathvar); - - /* Now expand each of the path elements, printing the results */ - for (pathelt = kpse_path_element (path); pathelt; - pathelt = kpse_path_element (NULL)) { - str_llist_type *dirs; - - /* Skip and ignore magic leading chars. */ - if (*pathelt == '!' && *(pathelt + 1) == '!') - pathelt += 2; - - /* Search the disk for all dirs in the component specified. - Be faster to check the database, but this is more reliable. */ - dirs = kpse_element_dirs (pathelt); - if (dirs && *dirs) { - str_llist_elt_type *dir; - - if (!first) { - fputs (path_sep, stdout); - } - first = false; - - for (dir = *dirs; dir; ) { - string thedir = STR_LLIST (*dir); - unsigned len = strlen (thedir); - if (len > 1) { - /* Discard trailing slash if that's not the entire element. */ - thedir[len - 1] = 0; - } - fputs (thedir, stdout); - dir = STR_LLIST_NEXT (*dir); - if (dir) - fputs (path_sep, stdout); - } - } - } - - if (!first) - putchar ('\n'); - } - /* Reading the options. */ #define USAGE "\ Standalone path lookup and expansion for Kpathsea.\n\ \n\ ! -debug=NUM set debugging flags.\n\ ! -D, -dpi=NUM use a base resolution of NUM; default 600.\n\ ! -expand-path=STRING output complete path expansion of STRING.\n\ ! -expand-var=STRING output variable expansion of STRING.\n\ ! -format=NAME use file type NAME (see list below).\n\ ! -help print this message and exit.\n\ ! -interactive ask for additional filenames to look up.\n\ ! [-no]-maketex=FMT disable/enable MakeTeXFMT generation (FMT=pk/mf/tex/tfm)\n\ ! -mode=STRING set device name for $MAKETEX_MODE to STRING; no default.\n\ ! -must-exist search the disk as well as ls-R if necessary\n\ ! -path=STRING search in the path STRING.\n\ ! -progname=STRING set program name to STRING.\n\ ! -separator=STRING STRING separates components in -path output; default :.\n\ ! -show-path=NAME output search path for file type NAME (see list below).\n\ ! -version print version number and exit.\n\ " /* Test whether getopt found an option ``A''. --- 171,197 ---- return ret == NULL; } /* Reading the options. */ #define USAGE "\ Standalone path lookup and expansion for Kpathsea.\n\ \n\ ! -debug=NUM set debugging flags.\n\ ! -D, -dpi=NUM use a base resolution of NUM; default 600.\n\ ! -expand-braces=STRING output variable and brace expansion of STRING.\n\ ! -expand-path=STRING output complete path expansion of STRING.\n\ ! -expand-var=STRING output variable expansion of STRING.\n\ ! -format=NAME use file type NAME (see list below).\n\ ! -help print this message and exit.\n\ ! -interactive ask for additional filenames to look up.\n\ ! [-no]-mktex=FMT disable/enable mktexFMT generation (FMT=pk/mf/tex/tfm).\n\ ! -mode=STRING set device name for $MAKETEX_MODE to STRING;\n\ ! no default.\n\ ! -must-exist search the disk as well as ls-R if necessary\n\ ! -path=STRING search in the path STRING.\n\ ! -progname=STRING set program name to STRING.\n\ ! -show-path=NAME output search path for file type NAME (see list below).\n\ ! -version print version number and exit.\n\ " /* Test whether getopt found an option ``A''. *************** *** 247,262 **** = { { "D", 1, 0, 0 }, { "debug", 1, 0, 0 }, { "dpi", 1, 0, 0 }, { "expand-path", 1, 0, 0 }, { "expand-var", 1, 0, 0 }, { "format", 1, 0, 0 }, { "help", 0, 0, 0 }, { "interactive", 0, (int *) &interactive, 1 }, ! { "maketex", 1, 0, 0 }, { "mode", 1, 0, 0 }, { "must-exist", 0, (int *) &must_exist, 1 }, { "path", 1, 0, 0 }, ! { "no-maketex", 1, 0, 0 }, { "progname", 1, 0, 0 }, { "separator", 1, 0, 0 }, { "show-path", 1, 0, 0 }, --- 204,220 ---- = { { "D", 1, 0, 0 }, { "debug", 1, 0, 0 }, { "dpi", 1, 0, 0 }, + { "expand-braces", 1, 0, 0 }, { "expand-path", 1, 0, 0 }, { "expand-var", 1, 0, 0 }, { "format", 1, 0, 0 }, { "help", 0, 0, 0 }, { "interactive", 0, (int *) &interactive, 1 }, ! { "mktex", 1, 0, 0 }, { "mode", 1, 0, 0 }, { "must-exist", 0, (int *) &must_exist, 1 }, { "path", 1, 0, 0 }, ! { "no-mktex", 1, 0, 0 }, { "progname", 1, 0, 0 }, { "separator", 1, 0, 0 }, { "show-path", 1, 0, 0 }, *************** *** 286,291 **** --- 244,252 ---- } else if (ARGUMENT_IS ("dpi") || ARGUMENT_IS ("D")) { dpi = atoi (optarg); + } else if (ARGUMENT_IS ("expand-braces")) { + braces_to_expand = optarg; + } else if (ARGUMENT_IS ("expand-path")) { path_to_expand = optarg; *************** *** 303,340 **** fputs (USAGE, stdout); putchar ('\n'); fputs (kpse_bug_address, stdout); ! /* Have to set this for init_format to work. */ ! if (!program_invocation_short_name) { ! kpse_set_progname (progname ? progname : argv[0]); ! } ! fputs ("\nRecognized file suffixes/format names, and their", stdout); ! puts (" integer equivalents:"); for (f = 0; f < kpse_last_format; f++) { ! const_string *alt; kpse_init_format (f); ! if (kpse_format_info[f].suffix) { ! printf ("%s(%d)", kpse_format_info[f].suffix, f); ! } else { ! printf ("%s (%d)", kpse_format_info[f].type, f); } ! for (alt = kpse_format_info[f].alt_suffix; alt && *alt; alt++) { putchar (' '); ! fputs (*alt, stdout); } putchar ('\n'); } exit (0); ! } else if (ARGUMENT_IS ("maketex")) { kpse_maketex_option (optarg, true); } else if (ARGUMENT_IS ("mode")) { mode = optarg; ! } else if (ARGUMENT_IS ("no-maketex")) { kpse_maketex_option (optarg, false); } else if (ARGUMENT_IS ("path")) { --- 264,298 ---- fputs (USAGE, stdout); putchar ('\n'); fputs (kpse_bug_address, stdout); ! /* Have to set this for init_format to work. */ ! kpse_set_program_name (argv[0], progname); ! puts ("\nRecognized format names and their suffixes:"); for (f = 0; f < kpse_last_format; f++) { ! const_string *ext; kpse_init_format (f); ! printf ("%s:", kpse_format_info[f].type); ! for (ext = kpse_format_info[f].suffix; ext && *ext; ext++) { ! putchar (' '); ! fputs (*ext, stdout); } ! for (ext = kpse_format_info[f].alt_suffix; ext && *ext; ext++) { putchar (' '); ! fputs (*ext, stdout); } putchar ('\n'); } exit (0); ! } else if (ARGUMENT_IS ("mktex")) { kpse_maketex_option (optarg, true); } else if (ARGUMENT_IS ("mode")) { mode = optarg; ! } else if (ARGUMENT_IS ("no-mktex")) { kpse_maketex_option (optarg, false); } else if (ARGUMENT_IS ("path")) { *************** *** 343,351 **** } else if (ARGUMENT_IS ("progname")) { progname = optarg; - } else if (ARGUMENT_IS ("separator")) { - path_sep = optarg; - } else if (ARGUMENT_IS ("show-path")) { path_to_show = optarg; user_format_string = optarg; --- 301,306 ---- *************** *** 370,376 **** exit (1); } ! if (optind == argc && !var_to_expand && !path_to_expand && !path_to_show) { fputs ("Missing argument. Try `kpsewhich --help' for more information.\n", stderr); exit (1); --- 325,332 ---- exit (1); } ! if (optind == argc && !var_to_expand && !braces_to_expand ! && !path_to_expand && !path_to_show) { fputs ("Missing argument. Try `kpsewhich --help' for more information.\n", stderr); exit (1); *************** *** 384,410 **** read_command_line (argc, argv); ! if (!progname) ! progname = argv[0]; ! kpse_set_progname (progname); /* NULL for no fallback font. */ ! kpse_init_prog (uppercasify (progname), dpi, mode, NULL); /* Have to do this after setting the program name. */ ! if (user_format_string) { ! /* Support both a number and a name. */ ! user_format = ISDIGIT (*user_format_string) ? atoi (user_format_string) ! : find_format (user_format_string); ! } /* Variable expansion. */ if (var_to_expand) puts (kpse_var_expand (var_to_expand)); /* Path expansion. */ if (path_to_expand) ! path_expand (path_to_expand); /* Show a search path. */ if (path_to_show) { --- 340,364 ---- read_command_line (argc, argv); ! kpse_set_program_name (argv[0], progname); /* NULL for no fallback font. */ ! kpse_init_prog (uppercasify (kpse_program_name), dpi, mode, NULL); /* Have to do this after setting the program name. */ ! if (user_format_string) ! user_format = find_format (user_format_string, false); /* Variable expansion. */ if (var_to_expand) puts (kpse_var_expand (var_to_expand)); + if (braces_to_expand) + puts (kpse_brace_expand (braces_to_expand)); + /* Path expansion. */ if (path_to_expand) ! puts (kpse_path_expand (path_to_expand)); /* Show a search path. */ if (path_to_show) { *************** *** 430,434 **** } } ! exit (unfound > 255 ? 1 : unfound); } --- 384,388 ---- } } ! return unfound > 255 ? 1 : unfound; } diff -cNr octave-2.0.11/kpathsea/kpsewhich.man octave-2.0.12/kpathsea/kpsewhich.man *** octave-2.0.11/kpathsea/kpsewhich.man Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/kpsewhich.man Wed Feb 18 00:49:49 1998 *************** *** 0 **** --- 1,145 ---- + .TH KPSEWHICH 1 "4 January 1998" "Kpathsea @VERSION@" + .\"===================================================================== + .if n .ds MP MetaPost + .if t .ds MP MetaPost + .if n .ds MF Metafont + .if t .ds MF M\s-2ETAFONT\s0 + .if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP + .if n .ds TX TeX + .ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff + .el .ds OX TeX\" for nroff + .\" the same but obliqued + .\" BX definition must follow TX so BX can use TX + .if t .ds BX \fRB\s-2IB\s0\fP\*(TX + .if n .ds BX BibTeX + .\" LX definition must follow TX so LX can use TX + .if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX + .if n .ds LX LaTeX + .\"===================================================================== + .SH NAME + kpsewhich \- standalone path lookup and and expansion for kpathsea + .SH SYNOPSIS + .B kpsewhich + .RI [ options ] + .RI [ filenames ] + .\"===================================================================== + .SH DESCRIPTION + This manual page is not meant to be exhaustive. The complete + documentation for this version of \*(TX can be found in the info file + or manual + .IR "Kpathsea: A library for path searching" . + .PP + .B kpsewhich + is used as a standalone front-end of the kpathsea library that can be + used to examine variables and find files. + .\"===================================================================== + .SH OPTIONS + .B kpsewhich + accepts the following options: + .TP + .BI --debug \ num + .rb + Set debugging flags. + .TP + .BI -D \ num + .rb + Use a base resolution of + .IR num ; + the default, set by the installer, is typically 600. + .TP + .BI --dpi \ num + As + .BR -D. + .TP + .BI --expand-braces \ string + .rb + Print variable and brace expansion of + .IR string . + .TP + .BI --expand-path \ string + .rb + Print complete path expansion of + .IR string . + .TP + .BI --expand-var \ string + .rb + Print variable expansion of + .BR string . + .TP + .BI --format \ name + .rb + Use file type + .IR name . + See the info manual for a list of valid names, or use the + .B --help + option to print the list. + .TP + .B --help + .rb + Print help message and exit. + .TP + .B --interactive + .rb + Ask for additional filenames to look up. + .TP + .BI --mktex \ fmt + .rb + enable + .RI mktex fmt + generation. + .RI ( fmt =pk/mf/tex/tfm) + .TP + .BI --mode \ string + .rb + Set device name for + .I $MAKETEX_MODE + to + .IR string ; + no default. + .TP + .B --must-exist + .rb + Search the disk as well as ls-R if necessary. + .TP + .BI --no-mktex \ fmt + .rb + disable + .RI mktex fmt + generation. + .RI ( fmt =pk/mf/tex/tfm) + .TP + .BI --path \ string + Search in the path + .IR string . + .TP + .BI --progname \ string + .rb + Set program name to + .IR string . + .TP + .B --separator \ string + .rb + .I string + separates components in + .B --path + output; default is + .I : + on UNIX systems. + .TP + .BI --show-path \ name + .rb + Output search path for file type + .IR name . + See the info manual for a list of valid names, or use the + .B --help + option to print the list. + .TP + .B --version + .rb + Print version information and exit. + .\"===================================================================== + .SH "SEE ALSO" + .BR mktexlsr (1), + .BR mktexmf (1), + .BR mktexpk (1), + .BR mktextfm (1). diff -cNr octave-2.0.11/kpathsea/lib.h octave-2.0.12/kpathsea/lib.h *** octave-2.0.11/kpathsea/lib.h Mon Dec 30 15:48:50 1996 --- octave-2.0.12/kpathsea/lib.h Fri Jan 30 13:58:33 1998 *************** *** 67,80 **** /* I find this easier to read. */ #define STREQ(s1, s2) (strcmp (s1, s2) == 0) ! /* Support for FAT/ISO-9660 filesystems. Theoretically this should be done at runtime, per filesystem, but that's painful to program. */ #ifdef MONOCASE_FILENAMES #define FILESTRCASEEQ(s1, s2) (strcasecmp (s1, s2) == 0) #define FILECHARCASEEQ(c1, c2) (toupper (c1) == toupper (c2)) #else #define FILESTRCASEEQ STREQ #define FILECHARCASEEQ(c1, c2) ((c1) == (c2)) #endif --- 67,83 ---- /* I find this easier to read. */ #define STREQ(s1, s2) (strcmp (s1, s2) == 0) ! #define STRNEQ(s1, s2, n) (strncmp (s1, s2, n) == 0) ! /* Support for FAT/ISO-9660 filesystems. Theoretically this should be done at runtime, per filesystem, but that's painful to program. */ #ifdef MONOCASE_FILENAMES #define FILESTRCASEEQ(s1, s2) (strcasecmp (s1, s2) == 0) + #define FILESTRNCASEEQ(s1, s2, l) (strncasecmp (s1, s2, l) == 0) #define FILECHARCASEEQ(c1, c2) (toupper (c1) == toupper (c2)) #else #define FILESTRCASEEQ STREQ + #define FILESTRNCASEEQ STRNEQ #define FILECHARCASEEQ(c1, c2) ((c1) == (c2)) #endif diff -cNr octave-2.0.11/kpathsea/line.c octave-2.0.12/kpathsea/line.c *** octave-2.0.11/kpathsea/line.c Sun Dec 8 16:23:47 1996 --- octave-2.0.12/kpathsea/line.c Tue Feb 10 08:28:26 1998 *************** *** 16,34 **** License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ! /* Don't include config.h or all our other usual includes, since ! it's useful to just throw this file into other programs. */ ! ! #include ! #ifdef WIN32 ! #include ! #else ! extern void free (); ! #endif ! ! /* From xmalloc.c and xrealloc.c. This saves having to include config.h. */ ! extern void *xmalloc (), *xrealloc (); ! /* Allocate in increments of this size. */ #define BLOCK_SIZE 75 --- 16,23 ---- License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ! #include ! #include /* Allocate in increments of this size. */ #define BLOCK_SIZE 75 *************** *** 42,48 **** unsigned loc = 0; char *line = xmalloc (limit); ! while ((c = getc (f)) != EOF && c != '\n') { line[loc] = c; loc++; --- 31,37 ---- unsigned loc = 0; char *line = xmalloc (limit); ! while ((c = getc (f)) != EOF && c != '\n' && c != '\r') { line[loc] = c; loc++; *************** *** 64,69 **** --- 53,64 ---- /* Terminate the string. We can't represent nulls in the file, either. Again, it doesn't matter. */ line[loc] = 0; + /* Absorb LF of a CRLF pair. */ + if (c == '\r') { + c = getc (f); + if (c != '\n') + ungetc (c, f); + } } else /* At end of file. */ { diff -cNr octave-2.0.11/kpathsea/make/ChangeLog octave-2.0.12/kpathsea/make/ChangeLog *** octave-2.0.11/kpathsea/make/ChangeLog Thu Feb 6 16:35:27 1997 --- octave-2.0.12/kpathsea/make/ChangeLog Thu Mar 12 13:22:01 1998 *************** *** 1,3 **** --- 1,149 ---- + Thu Mar 12 20:22:00 1998 Olaf Weber + + * rdepend.make (depend): Add sed pattern for readlink. + + Tue Mar 10 22:09:59 1998 Olaf Weber + + * dist.make: Account for presence of withenable.ac in top source + dir. + + Tue Feb 24 13:21:58 1998 Olaf Weber + + * man.make: Additions from Vladimir Volovich . + + Mon Feb 16 09:44:30 1998 Olaf Weber + + * makevars.make: Add vartexfonts to the variables being passed + around. + + * paths.make: Add vartexfonts variable to make configuring + VARTEXFONTS directory easier. + + Tue Feb 10 17:58:44 1998 Olaf Weber + + * man.make: Change sed delimiter from ! to %, in case !! is used + in any of the variables being substituted. Spotted by Thomas + Esser. + + Fri Feb 6 17:57:27 1998 Olaf Weber + + * dist.make: Correct ../contrib material. + + * common.make: Add -pipe to gcc flags for maintainer. + + Tue Feb 3 22:13:56 1998 Olaf Weber + + * dist.make [MAINT]: Improve handling of contrib dir. + + Thu Jan 29 16:20:12 1998 Olaf Weber + + * paths.make: Let texmf be @texmfmain@, which is determined in + ../kpathsea/withenable.ac. + + * clean.make (distclean): Imply extraclean. + + Wed Jan 28 20:48:48 1998 Olaf Weber + + * dist.make: Add unbackslsh.awk to top_files. Account for contrib + dir. + + * paths.make: A friendly warning: we're going full TDS in + texmf.in. + + * rdepend.make: Since c-auto.h is generated, it must receive + special treatment like paths.h. + + Fri Jan 9 21:12:23 1998 Olaf Weber + + * clean.make (distclean): Add stamp-tangle stamp-otangle to files + being removed. + + Sun Jan 4 15:56:57 1998 Olaf Weber + + * man.make: Add end-of-file comment. + + * Add man.make with rules for making manual pages. + + Fri Dec 12 10:30:25 1997 Olaf Weber + + * dist.make (dist): Reflect change of install-sh to install.sh. + Add djgpp directory to distributions. + + Tue Dec 2 16:12:53 1997 Olaf Weber + + * clean.make (extraclean): Remove *.*pk and *.*gf, rather than *pk + and *gf. + + Mon Nov 24 19:07:23 1997 Olaf Weber + + * texi.make: A change to get texi2dvi to work on the maintainer's + system. + + Thu Nov 20 00:03:29 1997 Olaf Weber + + * dist.make (dist): Be less exuberant with write permissions when + creating a distribution. + + Tue Nov 18 13:46:49 1997 Olaf Weber + + * rdepend.make (depend depend.make): Correct lex.yy to + $(LEX_OUTPUT_ROOT). + + Mon Nov 10 13:12:28 1997 Olaf Weber + + * paths.make [mandir]: Corrected definition, which contained one + 'man' too many. From Sebastian Rahtz. + + Tue Oct 28 21:34:42 1997 Olaf Weber + + * dist.make: Use cp -p when creating a distribution. + + Tue Oct 21 23:33:16 1997 Olaf Weber + + * rdepend.make: Handle kpsestat and access when generating + dependencies. + + Mon Oct 20 11:38:09 1997 Olaf Weber + + * clean.make, config.make, paths.make, tkpathsea.make: Renamed + texmf.cnf.in to texmf.in / c-auto.h.in to c-auto.in. + + Thu Oct 16 10:32:59 1997 Olaf Weber + + * clean.make: Remove stamp-auto files for distclean and + configclean targets. Remove *.exe files in clean target. After + Peter Breitenlohner. + + Wed Oct 15 21:37:20 1997 Olaf Weber + + * config.make: Don't try to create stamp-auto in source directory. + + * dist.make: Do not bother to distribute stamp-auto. + + Mon Oct 6 09:27:18 1997 Olaf Weber + + * config.make: Ensure that maintainer mode, once enabled, remains + enabled if the Makefiles are regenerated. + + * rdepend.make (depend, depend.make): Add unbackslsh.awk filter. + + Tue Sep 30 12:14:55 1997 Olaf Weber + + * texi.make (MAKEINFO_FLAGS): removed -I$(HOME)/gnu/gnuorg and + comment, added -I$(srcdir). + + Mon Sep 29 17:26:36 1997 Olaf Weber + + * paths.make: Fixed mandir definition. (Bruno BEAUFILS + ) + + Tue Sep 16 15:22:48 1997 Olaf Weber + + * config.make: ac_dir is now /home/olaf/web2c/src/autoconf. Use + -m $(ac_dir) in calls. + + * rdepend.make: Enabled make depend. + Thu Feb 6 17:35:18 1997 Karl Berry * Kpathsea 3.0, Web2c 7.0, etc. diff -cNr octave-2.0.11/kpathsea/make/clean.make octave-2.0.12/kpathsea/make/clean.make *** octave-2.0.11/kpathsea/make/clean.make Fri Feb 7 12:34:15 1997 --- octave-2.0.12/kpathsea/make/clean.make Thu Jan 29 08:59:33 1998 *************** *** 4,25 **** clean:: mostlyclean rm -f $(program) $(programs) squeeze lib$(library).* $(library).a *.bad ! rm -f *.dvi *.lj ! distclean:: clean rm -f Makefile ! rm -f config.status config.log config.cache c-auto.h ! # Although we can remake configure and c-auto.h.in, we don't remove # them, since many people may lack Autoconf. Use configclean for that. maintainer-clean:: distclean rm -f *.info* extraclean:: ! rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.pl *.tfm *.vf *.vpl *gf *pk ! rm -f *.mpx *.i *.s *~ *.orig *.rej *\#* rm -f CONTENTS.tex a.out core mfput.* texput.* mpout.* configclean: ! rm -f configure c-auto.h.in c-auto.h # End of clean.make. --- 4,26 ---- clean:: mostlyclean rm -f $(program) $(programs) squeeze lib$(library).* $(library).a *.bad ! rm -f *.exe *.dvi *.lj ! distclean:: extraclean clean rm -f Makefile ! rm -f config.status config.log config.cache c-auto.h ! rm -f stamp-auto stamp-tangle stamp-otangle ! # Although we can remake configure and c-auto.in, we don't remove # them, since many people may lack Autoconf. Use configclean for that. maintainer-clean:: distclean rm -f *.info* extraclean:: ! rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.pl *.tfm *.vf *.vpl ! rm -f *.*pk *.*gf *.mpx *.i *.s *~ *.orig *.rej *\#* rm -f CONTENTS.tex a.out core mfput.* texput.* mpout.* configclean: ! rm -f configure c-auto.in c-auto.h stamp-* # End of clean.make. diff -cNr octave-2.0.11/kpathsea/make/common.make octave-2.0.12/kpathsea/make/common.make *** octave-2.0.11/kpathsea/make/common.make Thu May 22 22:08:21 1997 --- octave-2.0.12/kpathsea/make/common.make Tue Apr 14 21:41:45 1998 *************** *** 11,17 **** DEFS = @DEFS@ $(XDEFS) # Kpathsea needs this for compiling, programs need it for linking. ! LIBTOOL = $(kpathsea_srcdir)/klibtool # You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but # please don't change ALL_CPPFLAGS or ALL_CFLAGS. --- 11,17 ---- DEFS = @DEFS@ $(XDEFS) # Kpathsea needs this for compiling, programs need it for linking. ! LIBTOOL = $(kpathsea_srcdir_parent)/klibtool # You can change [X]CPPFLAGS, [X]CFLAGS, or [X]DEFS, but # please don't change ALL_CPPFLAGS or ALL_CFLAGS. *************** *** 33,38 **** --- 33,41 ---- INSTALL_LIBTOOL_LIBS = INSTALL_DATA='$(INSTALL_DATA)' $(LIBTOOL) install-lib INSTALL_LIBTOOL_PROG = INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(LIBTOOL) install-prog + # Creating (symbolic) links. + LN = @LN_S@ + # We use these for many things. kpathsea_parent = .. kpathsea_dir = $(kpathsea_parent)/kpathsea *************** *** 40,47 **** kpathsea_srcdir = $(kpathsea_srcdir_parent)/kpathsea kpathsea = $(kpathsea_dir)/libkpathsea.la - ##ifeq ($(CC), gcc) - ##XDEFS = -D__USE_FIXED_PROTOTYPES__ -Wall -Wpointer-arith $(warn_more) - ##CFLAGS = -g $(XCFLAGS) - ##endif # End of common.make. --- 43,46 ---- diff -cNr octave-2.0.11/kpathsea/make/config.make octave-2.0.12/kpathsea/make/config.make *** octave-2.0.11/kpathsea/make/config.make Thu May 22 22:08:13 1997 --- octave-2.0.12/kpathsea/make/config.make Tue Apr 14 21:41:44 1998 *************** *** 1,27 **** # config.make -- autoconf rules to remake the Makefile, c-auto.h, etc. - ##ifdef HOSTNAME - ##ac_dir = $(gnu)/share/autoconf - ##autoconf = $(ac_dir)/acspecific.m4 $(ac_dir)/acgeneral.m4 $(ac_dir)/acsite.m4 - ##autoheader = $(ac_dir)/acconfig.h $(ac_dir)/autoheader.m4 - ## - ### I define $(autoconf) to acgeneral.m4 and the other Autoconf files, so - ### configure automatically gets remade in the sources with a new Autoconf - ### release. But it would be bad for installers with Autoconf to remake - ### configure (not to mention require Autoconf), so I take out the variable - ### $(autoconf) definition before release. - ### - ### BTW, xt.ac isn't really required for dvipsk or dviljk, but it doesn't - ### seem worth the trouble. - ### - ##configure_in = $(srcdir)/configure.in $(kpathsea_srcdir)/common.ac \ - ## $(kpathsea_srcdir)/withenable.ac $(kpathsea_srcdir)/xt.ac \ - ## $(kpathsea_srcdir)/acklibtool.m4 - ##$(srcdir)/configure: $(configure_in) $(autoconf) - ## cd $(srcdir) && autoconf - ##endif config.status: $(srcdir)/configure ! $(SHELL) $(srcdir)/configure --no-create Makefile: $(srcdir)/Makefile.in config.status $(top_srcdir)/../make/*.make $(SHELL) config.status --- 1,7 ---- # config.make -- autoconf rules to remake the Makefile, c-auto.h, etc. config.status: $(srcdir)/configure ! $(SHELL) $(srcdir)/configure --no-create $(enablemaintflag) Makefile: $(srcdir)/Makefile.in config.status $(top_srcdir)/../make/*.make $(SHELL) config.status *************** *** 31,47 **** # config.status, even when it doesn't change. Thus it might be newer # than c-auto.h when we don't need to remake the latter. c-auto.h: stamp-auto ! stamp-auto: $(srcdir)/c-auto.h.in $(SHELL) config.status ! date >$(srcdir)/stamp-auto - ##ifdef HOSTNAME - ### autoheader reads acconfig.h (and c-auto.h.top) automatically. - ##$(srcdir)/c-auto.h.in: $(srcdir)/stamp-auto.in - ##$(srcdir)/stamp-auto.in: $(configure_in) $(autoheader) \ - ## $(kpathsea_srcdir)/acconfig.h - ## cd $(srcdir) && autoheader --localdir=$(kpathsea_srcdir) - ## date >$(srcdir)/stamp-auto.in - ##endif # End of config.make. --- 11,19 ---- # config.status, even when it doesn't change. Thus it might be newer # than c-auto.h when we don't need to remake the latter. c-auto.h: stamp-auto ! stamp-auto: $(srcdir)/c-auto.in $(SHELL) config.status ! date >stamp-auto # End of config.make. diff -cNr octave-2.0.11/kpathsea/make/dist.make octave-2.0.12/kpathsea/make/dist.make *** octave-2.0.11/kpathsea/make/dist.make Fri Feb 7 12:34:08 1997 --- octave-2.0.12/kpathsea/make/dist.make Tue Apr 14 21:41:43 1998 *************** *** 1,36 **** # dist.make -- making distribution tar files. - top_distdir = $(distname)-$(version) - top_files = ChangeLog Makefile.in README configure.in configure install-sh \ - acklibtool.m4 config.guess config.sub klibtool $(HOME)/bin/mkdirchain - distdir = $(top_distdir)/$(distname) - kpathsea_distdir = ../$(distname)/$(top_distdir)/kpathsea - ln_files = AUTHORS ChangeLog INSTALL NEWS README *.in *.h *.c \ - configure *.make .gdbinit stamp-auto - - dist_rm_predicate = -name depend.make -o -name Makefile - dist: all depend pre-dist-$(distname) - rm -rf $(top_distdir)* - mkdir -p $(distdir) - cd .. && make Makefile ./configure - cd .. && ln $(top_files) $(distname)/$(top_distdir) - cp $(txinfo)/dir $(top_distdir) - -ln $(ln_files) $(distdir) - ln $(program_files) $(distdir) - cd $(kpathsea_dir); $(MAKE) distdir=$(kpathsea_distdir) \ - ln_files='$(ln_files)' distdir - cp -pr ../make ../etc $(top_distdir) - ln -s $(gnu)/share/autoconf/acsite.m4 $(top_distdir)/etc/autoconf - rm -rf $(top_distdir)/make/RCS - ungnumake `find $(top_distdir) -name Makefile.in -o -name \*.make` - # Remove the extra files our patterns got us. - cd $(top_distdir); rm -f */c-auto.h - find $(top_distdir) \( $(dist_rm_predicate) \) -exec rm '{}' \; - find $(top_distdir) -name \.*texi -exec egrep -ni ' | ::|xx[^}]' \; - $(MAKE) post-dist-$(distname) - cd $(distdir); add-version $(version) $(version_files) - cd $(distdir); test ! -r *.info || touch *.info* - chmod -R a+rwX $(top_distdir) - GZIP=-9 tar chzf $(top_distdir).tar.gz $(top_distdir) - rm -rf $(top_distdir) - # End of dist.make. --- 1,2 ---- diff -cNr octave-2.0.11/kpathsea/make/makevars.make octave-2.0.12/kpathsea/make/makevars.make *** octave-2.0.11/kpathsea/make/makevars.make Fri Feb 7 12:34:09 1997 --- octave-2.0.12/kpathsea/make/makevars.make Sun Feb 15 12:57:50 1998 *************** *** 5,11 **** bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \ datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \ manext=$(manext) mandir=$(mandir) \ ! texmf=$(texmf) web2cdir=$(web2cdir) \ texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\ fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \ texpooldir=$(texpooldir) mfpooldir=$(mfpooldir) mppooldir=$(mppooldir) \ --- 5,11 ---- bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \ datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \ manext=$(manext) mandir=$(mandir) \ ! texmf=$(texmf) web2cdir=$(web2cdir) vartexfonts=$(vartexfonts)\ texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\ fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \ texpooldir=$(texpooldir) mfpooldir=$(mfpooldir) mppooldir=$(mppooldir) \ diff -cNr octave-2.0.11/kpathsea/make/man.make octave-2.0.12/kpathsea/make/man.make *** octave-2.0.11/kpathsea/make/man.make Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/make/man.make Tue Feb 24 06:21:28 1998 *************** *** 0 **** --- 1,75 ---- + # man.make: Makefile fragment for web2c manual pages. + + #DITROFF = ditroff + DITROFF = groff + + # The edited file always has extension .1; we change it when we install. + .SUFFIXES: .man .1 .txt .ps .dvi + .man.1: + sed -f sedscript $< >$@ + .1.dvi: + $(DITROFF) -Tdvi -man $< >$@ + .1.ps: + $(DITROFF) -Tps -man $< >$@ + .1.txt: + $(DITROFF) -Tascii -man $< | col -b | expand >$@ + + all: $(manfiles) + .PHONY: dw + + $(manfiles): sedscript + + manfiles: $(manfiles) + dvi: $(manfiles:.1=.dvi) + ps: $(manfiles:.1=.ps) + txt: $(manfiles:.1=.txt) + + # We do not depend on the top-level Makefile since the top-level + # Makefile can change for reasons that do not affect the man pages. + # At present, all but VERSION should be unused. + sedscript: + cp /dev/null sedscript + for f in $(kpathsea_dir)/paths.h; do \ + sed -n -e '/^#define/s/#define[ ][ ]*\([A-Z_a-z][A-Z_a-z]*\)[ ][ ]*\(.*\)/s%@\1@%\2%/p' \ + $$f \ + | sed -e 's/"//g' -e 's/[ ]*\/\*[^*]*\*\///g' >>sedscript;\ + done + echo 's%@VERSION@%$(version)%' >>sedscript + echo 's%@BINDIR@%$(bindir)%' >>sedscript + echo 's%@INFODIR@%$(infodir)%' >>sedscript + echo 's%@TEXINPUTDIR@%$(texinputdir)%' >>sedscript + echo 's%@MFINPUTDIR@%$(mfinputdir)%' >>sedscript + echo 's%@MPINPUTDIR@%$(mpinputdir)%' >>sedscript + echo 's%@FONTDIR@%$(fontdir)%' >>sedscript + echo 's%@FMTDIR@%$(fmtdir)%' >>sedscript + echo 's%@BASEDIR@%$(basedir)%' >>sedscript + echo 's%@MEMDIR@%$(memdir)%' >>sedscript + echo 's%@TEXPOOLDIR@%$(texpooldir)%' >>sedscript + echo 's%@MFPOOLDIR@%$(mfpooldir)%' >>sedscript + echo 's%@MPPOOLDIR@%$(mppooldir)%' >>sedscript + echo 's%@FONTMAPDIR@%$(dvipsdir)%' >>sedscript + echo 's%@LOCALMODES@%$(localmodes)%' >>sedscript + + install-man: manfiles + $(top_srcdir)/../mkinstalldirs $(mandir) + for nameone in $(manfiles); do \ + name=`basename $${nameone} .1`; \ + $(INSTALL_DATA) $${name}.1 $(mandir)/$${name}.$(manext); \ + done + + uninstall-man: + for nameone in $(manfiles); do \ + name=`basename $${nameone} .1`; \ + rm -f $(mandir)/$${name}.$(manext); \ + done + + install-data: install-man + uninstall-data: uninstall-man + + mostlyclean:: + rm -f *.1 + + clean:: + rm -f sedscript + + # end of man.make diff -cNr octave-2.0.11/kpathsea/make/paths.make octave-2.0.12/kpathsea/make/paths.make *** octave-2.0.11/kpathsea/make/paths.make Fri Feb 7 12:34:10 1997 --- octave-2.0.12/kpathsea/make/paths.make Fri Feb 13 14:15:30 1998 *************** *** 1,7 **** # paths.make -- installation directories. # # The compile-time paths are defined in kpathsea/paths.h, which is built ! # from kpathsea/paths.h.in and these definitions. See kpathsea/INSTALL # for how the various path-related files are used and created. # Do not change prefix and exec_prefix in Makefile.in! --- 1,7 ---- # paths.make -- installation directories. # # The compile-time paths are defined in kpathsea/paths.h, which is built ! # from kpathsea/texmf.in and these definitions. See kpathsea/INSTALL # for how the various path-related files are used and created. # Do not change prefix and exec_prefix in Makefile.in! *************** *** 32,47 **** # Unix man pages. manext = 1 ! mandir = $(prefix)/man/man$(manext) # TeX system-specific directories. Not all of the following are relevant # for all programs, but it seems cleaner to collect everything in one place. ! # The default paths are now in kpathsea/paths.h.in. Passing all the # paths to sub-makes can make the arg list too long on system V. # The root of the main tree. ! texmf = $(datadir)/texmf # Regular input files. texinputdir = $(texmf)/tex --- 32,52 ---- # Unix man pages. manext = 1 ! mandir = @mandir@/man$(manext) # TeX system-specific directories. Not all of the following are relevant # for all programs, but it seems cleaner to collect everything in one place. ! # The default paths are now in kpathsea/texmf.in. Passing all the # paths to sub-makes can make the arg list too long on system V. + # Note that if you make changes below, you will have to make the + # corresponding changes to texmf.in or texmf.cnf yourself. # The root of the main tree. ! texmf = @texmfmain@ ! ! # The directory used by varfonts. ! vartexfonts = /var/tmp/texfonts # Regular input files. texinputdir = $(texmf)/tex *************** *** 54,60 **** dvips_plain_macrodir = $(texinputdir)/plain/dvips dvilj_latex2e_macrodir = $(texinputdir)/latex/dvilj ! # MakeTeXPK.site, texmf.cnf, etc. web2cdir = $(texmf)/web2c # The top-level font directory. --- 59,65 ---- dvips_plain_macrodir = $(texinputdir)/plain/dvips dvilj_latex2e_macrodir = $(texinputdir)/latex/dvilj ! # mktex.cnf, texmf.cnf, etc. web2cdir = $(texmf)/web2c # The top-level font directory. diff -cNr octave-2.0.11/kpathsea/make/rdepend.make octave-2.0.12/kpathsea/make/rdepend.make *** octave-2.0.11/kpathsea/make/rdepend.make Fri Feb 7 12:34:13 1997 --- octave-2.0.12/kpathsea/make/rdepend.make Tue Apr 14 21:41:42 1998 *************** *** 1,40 **** # rdepend.make -- rules for remaking the dependencies. - # - # Have to use -M, not -MM, since we use instead of - # "kpathsea/..." in the sources. But that means we have to remove the - # directory prefixes and all the system include files. - # And is generated, not part of the distribution. - # - # And, there's no need for any installer/user to ever run this, it can - # only cause trouble. So comment it out in the distribution. - # (It doesn't work when the source and build directories are different.) - ##ifndef c_auto_h_dir - ##c_auto_h_dir = . - ##endif - ##ifdef HOSTNAME - ##depend depend.make:: $(c_auto_h_dir)/c-auto.h \ - ## $(top_srcdir)/../make/rdepend.make - ## $(CC) -M $(ALL_CPPFLAGS) -I$(c_auto_h_dir) *.c \ - ## | sed -e 's,\(\.\./\)\+kpathsea/,$$(kpathsea_srcdir)/,g' \ - ## -e 's,$$(kpathsea_srcdir)/paths.h,$$(kpathsea_dir)/paths.h,g' \ - ## -e 's,/usr[^ ]* ,,g' \ - ## -e 's,/usr[^ ]*$$,,g' \ - ## -e 's,dvi2xx.o,dvilj.o dvilj2p.o dvilj4.o dvilj4l.o,' \ - ## | grep -v '^ *\\$$' \ - ## >depend.make - ### If kpathsea, we're making .lo library objects instead of .o's. - ## pwd | grep -v kpathsea >/dev/null \ - ## || (sed -e 's/\.o:/.lo:/' -e 's/kpsewhich.lo:/kpsewhich.o:/' \ - ## depend-tmp.make; mv depend-tmp.make depend.make) - ##.PHONY: depend - ##endif # Let's stick a rule for TAGS here, just in case someone wants them. # (We don't put them in the distributions, to keep them smaller.) TAGS: *.c *.h pwd | grep kpathsea >/dev/null && append=../kpathsea/TAGS; \ etags $$append *.[ch] - # Prevent GNU make 3.[59,63) from overflowing arg limit on system V. .NOEXPORT: --- 1,10 ---- diff -cNr octave-2.0.11/kpathsea/make/texi.make octave-2.0.12/kpathsea/make/texi.make *** octave-2.0.11/kpathsea/make/texi.make Fri Feb 7 12:34:11 1997 --- octave-2.0.12/kpathsea/make/texi.make Tue Apr 14 21:41:42 1998 *************** *** 1,12 **** # texi.make -- making .dvi and .info from .texi. MAKEINFO = makeinfo ! MAKEINFO_FLAGS = --paragraph-indent=2 -I$(HOME)/gnu/gnuorg ! # That -I is purely for my own benefit in doing `make dist'. It won't ! # hurt anything for you (I hope). TEXI2DVI = texi2dvi TEXI2HTML = texi2html ! TEXI2HTML_FLAGS = -split_node -menu # If you prefer one big .html file instead of several, remove # -split-node or replace it by -split_chapter. --- 1,11 ---- # texi.make -- making .dvi and .info from .texi. MAKEINFO = makeinfo ! MAKEINFO_FLAGS = --paragraph-indent=2 -I$(srcdir) ! TEXI2DVI = texi2dvi TEXI2HTML = texi2html ! TEXI2HTML_FLAGS = -expandinfo -number -menu -split_chapter # If you prefer one big .html file instead of several, remove # -split-node or replace it by -split_chapter. diff -cNr octave-2.0.11/kpathsea/make/tkpathsea.make octave-2.0.12/kpathsea/make/tkpathsea.make *** octave-2.0.11/kpathsea/make/tkpathsea.make Fri Feb 7 12:34:14 1997 --- octave-2.0.12/kpathsea/make/tkpathsea.make Tue Apr 14 21:40:55 1998 *************** *** 4,9 **** # This is wrong: the library doesn't depend on kpsewhich.c or # acconfig.h. But what to do? $(kpathsea): $(kpathsea_srcdir)/*.c $(kpathsea_srcdir)/*.h \ ! $(kpathsea_srcdir)/texmf.cnf.in $(top_srcdir)/../make/paths.make cd $(kpathsea_dir) && $(MAKE) $(makeargs) # End of tkpathsea.make. --- 4,9 ---- # This is wrong: the library doesn't depend on kpsewhich.c or # acconfig.h. But what to do? $(kpathsea): $(kpathsea_srcdir)/*.c $(kpathsea_srcdir)/*.h \ ! $(kpathsea_srcdir)/texmf.in $(top_srcdir)/make/paths.make cd $(kpathsea_dir) && $(MAKE) $(makeargs) # End of tkpathsea.make. diff -cNr octave-2.0.11/kpathsea/mktex.cnf octave-2.0.12/kpathsea/mktex.cnf *** octave-2.0.11/kpathsea/mktex.cnf Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktex.cnf Wed Mar 4 11:51:14 1998 *************** *** 0 **** --- 1,15 ---- + # The mktex.cnf file, if it exists, can be used to tailor a setup to + # local conditions. If you use the mktex scripts, this file can contain + # generic bourne shell code. However, the C emulations of the scripts + # do not handle anything beyond simple assignment of variables, and doing + # more is not exactly recommended. + # + # To assign variables, use constructs like the examples below, which only + # set unassigned variables. The scripts may malfunction if you do + # otherwise. + # + # Some examples of what you can the mktex.cnf file for: + # : ${MT_FEATURES=appendonlydir:varfonts} + # : ${MODE=ljfour} + # : ${BDPI=600} + # : ${ps_to_pk=gsftopk} diff -cNr octave-2.0.11/kpathsea/mktex.opt octave-2.0.12/kpathsea/mktex.opt *** octave-2.0.11/kpathsea/mktex.opt Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktex.opt Tue Mar 17 12:35:26 1998 *************** *** 0 **** --- 1,109 ---- + #!/bin/sh + # mktex.opt -- common mktex* options, etc. + # Meant to be sourced after $usage and $version and $TEXMF have been set. + # + # te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + # $Id: mktex.opt,v 1.23 1998/03/17 18:35:26 olaf Exp $ + + if test "x$1" = x--help || test "x$1" = x-help; then + echo "$usage" + exit 0 + elif test "x$1" = x--version || test "x$1" = x-version; then + echo "`basename $0` $version" + kpsewhich --version + exit 0 + elif test $# -lt ${mt_min_args-1}; then + echo "$0: Missing argument(s)." >&2 + echo "Try \``basename $0` --help' for more information." >&2 + exit 1 + elif test $# -gt ${mt_max_args-1}; then + num=$# + while test $# -gt `expr $num - ${mt_max_args-1}`; do shift; done + echo "$0: Extra arguments $*." >&2 + echo "Try \``basename $0` --help' for more information." >&2 + exit 1 + fi + + # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate + # directories in path lists whereas Unix uses `:'. + # Create a variable that holds the right character to be used by the scripts. + if test -z "$COMSPEC" && test -z "$ComSpec"; then SEP=':'; else SEP=';'; fi + + # TEMPDIR needs to be unique to each process because of the possibility of two + # people running dvips (or whatever) simultaneously. + TEMPDIR="${TMPDIR-/tmp}/mt$$.tmp" + + # We want to output only filenames to standard output, but it's too + # error-prone to write the scripts that way, so we direct stdout here. + STDOUT="$TEMPDIR/mt$$.out" + + # We will change search paths to include $KPSE_DOT. This is necessary + # since we cd to $TEMPDIR. + : ${KPSE_DOT=`pwd`}; export KPSE_DOT + + # Clean up on normal or abnormal exit. + # The "cd /" is for MS-DOS and MS-Windows, where there is a separate + # current directory on each drive, and therefore "cd $KPSE_DOT" might + # still leave $TMPDIR current directory on its drive, in which case it + # cannot be removed. + trap 'cd /; cd "$KPSE_DOT"; test -f "$STDOUT" && cat "$STDOUT"; rm -rf "$TEMPDIR"; exit 0' \ + 0 1 2 15 + + mkdir "$TEMPDIR" || exit 1 + cd "$TEMPDIR" || exit 1 + + # The alternative location for fonts. The directory need not exist, + # so we use --expand-var here. We also perform a sanity check. + : ${MT_VARTEXFONTS=`kpsewhich --expand-var='$VARTEXFONTS' | sed 's%^!!%%'`} + if test -z "$MT_VARTEXFONTS"; then + echo "$0: VARTEXFONTS is not defined. Defaulting to \`$KPSE_DOT'." >&2 + MT_VARTEXFONTS='$KPSE_DOT' + fi + + # The supporting scripts: + : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`} + test -n "$MT_MKTEXNAM" || MT_MKTEXNAM="$MT_TEXMFMAIN/web2c/mktexnam" + : ${MT_MKTEXNAM_OPT=`kpsewhich --format='web2c files' mktexnam.opt`} + test -n "$MT_MKTEXNAM_OPT" || MT_MKTEXNAM_OPT="$MT_TEXMFMAIN/web2c/mktexnam.opt" + : ${MT_MKTEXDIR=`kpsewhich --format='web2c files' mktexdir`} + test -n "$MT_MKTEXDIR" || MT_MKTEXDIR="$MT_TEXMFMAIN/web2c/mktexdir" + : ${MT_MKTEXDIR_OPT=`kpsewhich --format='web2c files' mktexdir.opt`} + test -n "$MT_MKTEXDIR_OPT" || MT_MKTEXDIR_OPT="$MT_TEXMFMAIN/web2c/mktexdir.opt" + : ${MT_MKTEXUPD=`kpsewhich --format='web2c files' mktexupd`} + test -n "$MT_MKTEXUPD" || MT_MKTEXUPD="$MT_TEXMFMAIN/web2c/mktexupd" + + # mktexupd and mktexlsr make sure they're coordinated via this. A copy of + # the first string is found in mktexlsr. + ls_R_magic='% ls-R -- filename database for kpathsea; do not change this line.' + # Old ls-R files should continue to work. + old_ls_R_magic='% ls-R -- maintained by MakeTeXls-R; do not change this line.' + + # Read defaults from mktex.cnf if that file exists. Can be used to + # overwrite anything defined below. Please use the same syntax as + # given here (e.g. ``: ${MODE=ljfour}'', not just ``MODE=ljfour'', as + # this can cause trouble (e.g. when the mode for mktexnam is + # already specified on the command line). + : ${MT_MKTEX_CNF=`kpsewhich --format='web2c files' mktex.cnf`} + test -n "$MT_MKTEX_CNF" && test -r "$MT_MKTEX_CNF" && . "$MT_MKTEX_CNF" + + # Possible features: appendonlydir dosnames fontmaps nomode stripsupplier + # striptypeface varfonts. + if test -n "$COMSPEC"; then + : ${MT_FEATURES=appendonlydir:dosnames} + else + : ${MT_FEATURES=appendonlydir} + fi + : ${MODE=ljfour} + : ${BDPI=600} + : ${ps_to_pk=gsftopk} # some prefer ps2pk + + # Allow fonts to be read and written (especially in case we make + # directories) by everyone. + umask 0 + + # Cache values that may be useful for recursive calls. + export MT_MKTEX_OPT MT_MKTEX_CNF + export MT_MKTEXNAM MT_MKTEXNAM_OPT + export MT_MKTEXDIR MT_MKTEXDIR_OPT + export MT_MKTEXUPD + export MT_TEXMFMAIN MT_VARTEXFONTS diff -cNr octave-2.0.11/kpathsea/mktexdir octave-2.0.12/kpathsea/mktexdir *** octave-2.0.11/kpathsea/mktexdir Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexdir Mon Mar 16 17:15:36 1998 *************** *** 0 **** --- 1,49 ---- + #!/bin/sh + # mkinstalldirs --- make directory hierarchy (now mktexdir). + # Author: Noah Friedman , created: 1993-05-16. + # Public domain. + # + # Modified for sticky directory creation, --help, --version. + # te@informatik.uni-hannover.de and kb@mail.tug.org. + + version='$Id: mktexdir,v 1.10 1998/03/16 23:15:36 olaf Exp $' + usage="Usage: $0 DIRS... + Create each DIR, including any missing leading directories." + + # Common code for all scripts. + : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} + : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} + test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" + if test ! -f "$MT_MKTEX_OPT"; then + echo "$0: Cannot find mktex.opt; check your installation." >&2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + test -n "$MT_MKTEXDIR_OPT" && . "$MT_MKTEXDIR_OPT" + + errstatus=0 + + for file + do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d in ${1+"$@"} ; do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp="./$pathcomp" ;; + esac + + if test ! -d "$pathcomp"; then + mkdir "$pathcomp" || errstatus=$? + chmod `kpsestat ${MT_APPEND_MASK:-=} "$pathcomp"/..` "$pathcomp" + fi + + pathcomp="$pathcomp/" + done + done + + exit $errstatus diff -cNr octave-2.0.11/kpathsea/mktexdir.opt octave-2.0.12/kpathsea/mktexdir.opt *** octave-2.0.11/kpathsea/mktexdir.opt Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexdir.opt Thu Jan 29 08:56:05 1998 *************** *** 0 **** --- 1,11 ---- + #!/bin/sh + # mktexdir.opt to determine various manipulations of the filenames. + # Sourced from mktexdir. + # + # te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + # $Id: mktexdir.opt,v 1.2 1997/11/30 12:29:46 olaf Exp $ + + # Set append-only bit on created directories. + case "$MT_FEATURES" in + *appendonlydir*) MT_APPEND_MASK=+t;; + esac diff -cNr octave-2.0.11/kpathsea/mktexlsr octave-2.0.12/kpathsea/mktexlsr *** octave-2.0.11/kpathsea/mktexlsr Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexlsr Tue Mar 17 16:26:01 1998 *************** *** 0 **** --- 1,113 ---- + #!/bin/sh + # original mktexlsr -- create or rebuild ls-R. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) + # + # Suitable for calling from cron, as in: + # 0 * * * * cd /your/texmf/root && /usr/local/bin/mktexlsr + # unless the scripts live in a different directory than the 'access', + # 'kpsestat', 'readlink', and 'kpsewhich' binaries. + # + # Originally written as `texhash' by Thomas Esser + # , Okt., 1994. + # Public domain. + + version='$Id: mktexlsr,v 1.21 1998/03/17 22:26:01 olaf Exp $' + progname=`echo $0 | sed 's%.*/%%'` + usage="Usage: $progname [DIRS ...] + + Rebuild all necessary ls-R filename databases completely. If one or + more arguments DIRS are given, these are used as texmf directories to + build ls-R for. Else all directories in the search path for ls-R files + (\$TEXMFDBS) are used." + + # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate + # directories in path lists whereas Unix uses `:'. + # Create a variable that holds the right character to be used by the scripts. + if test -z "$COMSPEC" && test -z "$ComSpec"; then SEP=':'; else SEP=';'; fi + + # Add the location of the script to the PATH if necessary. This must + # be done before kpsewhich can be called, and thus cannot be put into + # mktex.opt. + dirname=`echo $0 | sed 's%/*[^/][^/]*$%%'` + case $dirname in + "") # Do nothing + ;; + /* | [A-z]:/*) # Absolute name + PATH="$dirname$SEP$PATH" ;; + *) # Relative name + PATH="`pwd`/$dirname$SEP$PATH" ;; + esac + + # A copy of some stuff from mktex.opt, so we can run in the presence of + # terminally damaged ls-R files. + if test "x$1" = x--help || test "x$1" = x-help; then + echo "$usage" + exit 0 + elif test "x$1" = x--version || test "x$1" = x-version; then + echo "`basename $0` $version" + kpsewhich --version + exit 0 + fi + + # mktexupd and mktexlsr make sure they're coordinated via this. A copy + # is found mktex.opt. + ls_R_magic='% ls-R -- filename database for kpathsea; do not change this line.' + + + trap 'cd / ; rm -f "$db_file_tmp"; exit' 1 2 15 + + test $# = 0 && { + OIFS=$IFS; IFS=$SEP; set x `kpsewhich --show-path=ls-R`; shift; IFS=$OIFS + } + for TEXMFLS_R in "$@"; do + # Prepend cwd if the directory was relative. + case "$TEXMFLS_R" in + "") continue ;; + /* | [A-z]:/*) ;; + *) TEXMFLS_R="`pwd`/$TEXMFLS_R" + esac + # Follow a possible symlink to get the right filesystem, + db_file=`readlink "$TEXMFLS_R/ls-R" 2>/dev/null` + case "$db_file" in + "") db_file="$TEXMFLS_R/ls-R" ;; + /* | [A-z]:/*) ;; + *) db_file="$TEXMFLS_R/$db_file" + esac + db_dir=`echo "$db_file" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname + db_file_tmp="$db_dir/lsR$$.tmp" + + test -d "$db_dir" || continue + test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; } + + if test ! -f "$db_file"; then + cp /dev/null "$db_file" + # Use same permissions as parent directory, minus x,s, or t bits. + chmod `kpsestat -xst "$db_dir"` "$db_file" + fi + + # Skip if we cannot write the file: + access -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; } + + rm -f "$db_file_tmp" + + tty -s && echo "$progname: Updating $db_file... " + echo "$ls_R_magic" >"$db_file_tmp" + + # The main task. We ls two things so the top-level directory name ends + # up in the output, so top-level files can be found via ls-R. Probably + # irrelevant in practice. + # The sed command is because on new FreeBSD/NetBSD systems, ls -LAR ./ + # produces .//. Sigh. + (cd "$TEXMFLS_R" && \ls -LRa /dev/null ./ 2>/dev/null) | + sed 's%\.//%./%; /^\.$/d; /^\.\.$/d' >>"$db_file_tmp" + + # To be really safe, a loop. + until PERMS=`kpsestat = "$db_file"`; do sleep 1; done + chmod $PERMS "$db_file_tmp" + rm -f "$db_file" + mv "$db_file_tmp" "$db_file" + done + tty -s && echo "$progname: Done." + exit 0 diff -cNr octave-2.0.11/kpathsea/mktexlsr.man octave-2.0.12/kpathsea/mktexlsr.man *** octave-2.0.11/kpathsea/mktexlsr.man Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexlsr.man Sun Jan 4 08:06:23 1998 *************** *** 0 **** --- 1,46 ---- + .TH MKTEXLSR 1 "4 January 1998" "Kpathsea @VERSION@" + .\"===================================================================== + .if n .ds MP MetaPost + .if t .ds MP MetaPost + .if n .ds MF Metafont + .if t .ds MF M\s-2ETAFONT\s0 + .if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP + .if n .ds TX TeX + .ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff + .el .ds OX TeX\" for nroff + .\" the same but obliqued + .\" BX definition must follow TX so BX can use TX + .if t .ds BX \fRB\s-2IB\s0\fP\*(TX + .if n .ds BX BibTeX + .\" LX definition must follow TX so LX can use TX + .if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX + .if n .ds LX LaTeX + .\"===================================================================== + .SH NAME + mktexlsr \- create ls-R databases + .SH SYNOPSIS + .B mktexlsr + .RI [ directories ] + .\"===================================================================== + .SH DESCRIPTION + This manual page is not meant to be exhaustive. The complete + documentation for this version of \*(TX can be found in the info file + or manual + .IR "Kpathsea: A library for path searching" . + .PP + .B mktexlsr + is used to generate the ls-R databases used by the kpathsea library. + It will create them for the specified directories, or for a default + list if no directories are specified. + .\"===================================================================== + .SH OPTIONS + .B mktexlsr + accepts the following options: + .TP + .B --help + .rb + Print help message and exit. + .TP + .B --version + .rb + Print version information and exit. diff -cNr octave-2.0.11/kpathsea/mktexmf octave-2.0.12/kpathsea/mktexmf *** octave-2.0.11/kpathsea/mktexmf Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexmf Fri Feb 20 10:26:17 1998 *************** *** 0 **** --- 1,119 ---- + #!/bin/sh + # original mktexmf -- make a new MF file, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) + # + # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. + # Public domain. + + version='$Id: mktexmf,v 1.13 1998/02/20 16:26:17 olaf Exp $' + progname=`echo $0 | sed 's%.*/%%'` + usage="Usage: $progname FONT. + + Makes the Metafont source file for FONT, if possible. For example, + \`ecr12' or \`cmr11'." + + # Common code for all scripts. + : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} + : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} + test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" + if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + ( + # See comments in mktexpk. + name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`" + rootname=`echo "$name" | sed 's/[0-9]*$//'` + pointsize=`echo "$name" | sed "s/^$rootname//"` + + sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null` + if test -n "$sauterroot"; then + rootfile=$sauterroot + else + case $rootname in + wn*) + lhname=`echo $name | sed 's/^wn/lh/'` + rootfile=`kpsewhich $lhname.mf 2>/dev/null`;; + *) + rootfile=`kpsewhich $rootname.mf 2>/dev/null`;; + esac + fi + { test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1 + + #if test -z "$MT_MFNAME"; then + OIFS=$IFS; IFS=$SEP + set x `"$MT_MKTEXNAM" $name`; shift + IFS=$OIFS + MT_MFNAME="$3" + #fi + + destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'` + test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1 + cd "$destdir" >/dev/null 2>&1 || exit 1 + + case "$pointsize" in + "") echo "$progname: no pointsize."; exit 1;; + 11) realsize=10.95444;; # \magstephalf + 14) realsize=14.4;; # \magstep2 + 17) realsize=17.28;; # \magstep3 + 20) realsize=20.74;; # \magstep4 + 25) realsize=24.88;; # \magstep5 + # The new convention is to have three or four letters for the + # font name and four digits for the pointsize. The number is + # pointsize * 100. We effectively divide by 100 by ignoring the + # last two digits. + ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;; + *) realsize="$pointsize";; + esac + + mfname="$name.mf" + if test -r "$mfname"; then + echo "$progname: $destdir/$mfname already exists." + echo "$destdir/$mfname" >$STDOUT + "$MT_MKTEXUPD" "$destdir" "$mfname" + exit 0 + fi + + case "$name" in + ec*|tc*) + cat > "mf$$.tmp" < "mf$$.tmp" < "mf$$.tmp" < "mf$$.tmp" <$STDOUT + echo "$progname: $destdir/$mfname: successfully generated." >&2 + "$MT_MKTEXUPD" "$destdir" "$mfname" + exit 0 + ) 1>&2 &2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + NAME=$1 + case $# in + 1|2) DPI=$BDPI; DEST=$2;; + 3|4) DPI=$2; MODE=$3; DEST=$4;; + *) help;; + esac + + MT_PKDESTDIR='$MT_DESTROOT/$MT_PKDESTREL' + MT_TFMDESTDIR='$MT_DESTROOT/$MT_TFMDESTREL' + MT_MFDESTDIR='$MT_DESTROOT/$MT_MFDESTREL' + MT_PKMODEPART='$MT_PKPART/$MT_MODE' + MT_PKBASE='$NAME.${DPI}pk' + MT_TFMBASE='$NAME.tfm' + MT_MFBASE='$NAME.mf' + MT_DEFAULT_SUPPLIER=unknown + MT_DEFAULT_TYPEFACE=unknown + MT_DEFAULT_NAMEPART=tmp + MT_DEFAULT_PKDESTREL='' + MT_DEFAULT_TFMDESTREL='' + MT_DEFAULT_MFDESTREL='' + MT_DEFAULT_DESTROOT='$KPSE_DOT' + + # Find the font: test tfm first, then mf, then possible sauterized mf. + fullname=`kpsewhich "$NAME.tfm" 2>/dev/null` + test -z "$fullname" && fullname=`kpsewhich "$NAME.mf" 2>/dev/null` + if test -z "$fullname"; then + rootname=`echo $NAME | sed 's/[0-9]*$//'` + fullname=`kpsewhich "b-$rootname.mf" 2>/dev/null` + # Fonts starting with wn* get special treatment: + if test -z "$fullname"; then + case $rootname in + wn*) lhname=`echo $NAME | sed 's/^wn/lh/'` + fullname=`kpsewhich "$lhname.mf" 2>/dev/null`;; + *) fullname=`kpsewhich "$rootname.mf" 2>/dev/null` + esac + fi + fi + + # After all this, do we _have_ a font? + if test -z "$fullname"; then + # We have found nothing, so force using the fontmaps as a last resort. + # This also means mktexnam can be queried for advice on where to + # place fonts. + MT_FEATURES="$MT_FEATURES:fontmaps" + MT_DESTROOT="$MT_VARTEXFONTS" + else + # Normalize $fullname. + fullname=`echo "$fullname" | sed 's%//*%/%g'` + # See if $fullname comes from a standard location. + OIFS=$IFS;IFS=$SEP + for i in `kpsewhich --expand-path='$TEXMF/fonts'"$SEP$MT_VARTEXFONTS"` + do + case "$fullname" in + $i/*) + # We now have a preliminary value for the destination root. + MT_DESTROOT="$i" + # When we're done, relfmt contains one of these: + # "/source/$MT_NAMEPART/" + # "/$MT_NAMEPART/source/" + # while namepart contains the actual namepart. + relfmt=`echo "$fullname" | \ + sed -e 's%^'"$i"'\(/.*/\)[^/]*$%\1%' \ + -e 's%^/tfm/%/source/%' \ + -e 's%/tfm/$%/source/%'` + namepart=`echo "$relfmt" | sed -e 's%/source/%/%'` + # See if namepart is empty. + if test "$namepart" != "/"; then + relfmt=`echo "$relfmt" | \ + sed -e 's%'"$namepart"'%/$MT_NAMEPART/%'` + else + # Assume TDS. + relfmt='/source/$MT_NAMEPART/' + namepart='' + fi + # Determine supplier and typeface from namepart. If there is + # only one part in the namepart, we take it to be the typeface. + MT_SUPPLIER=`echo $namepart | sed 's%^/\([^/]*\)/\(.*\)$%\1%'` + MT_TYPEFACE=`echo $namepart | sed 's%^/\([^/]*\)/\(.*\)$%\2%'` + if test -z "$MT_TYPEFACE"; then + MT_TYPEFACE="$MT_SUPPLIER"; + MT_SUPPLIER='' + fi + # Phew. Now we create the relative paths for pk, tfm and source. + MT_NAMEPART='$MT_SUPPLIER/$MT_TYPEFACE' + MT_PKDESTREL=`echo "$relfmt" | sed 's%/source/%/pk/$MT_MODE/%'` + MT_TFMDESTREL=`echo "$relfmt" | sed 's%/source/%/tfm/%'` + MT_MFDESTREL=`echo "$relfmt"` + # And we're done with the loop now. + break + esac + done + IFS=$OIFS + fi + + # In case some variables remain unset. + : ${MT_DESTROOT=$MT_DEFAULT_DESTROOT} + : ${MT_SUPPLIER=$MT_DEFAULT_SUPPLIER} + : ${MT_TYPEFACE=$MT_DEFAULT_TYPEFACE} + : ${MT_NAMEPART=$MT_DEFAULT_NAMEPART} + : ${MT_PKDESTREL=$MT_DEFAULT_PKDESTREL} + : ${MT_TFMDESTREL=$MT_DEFAULT_TFMDESTREL} + : ${MT_MFDESTREL=$MT_DEFAULT_MFDESTREL} + + # Handle the options. + test -n "$MT_MKTEXNAM_OPT" && . "$MT_MKTEXNAM_OPT" + + # Adjust MT_DESTROOT, if necessary. + if test "x$MT_DESTROOT" != "x$MT_DEFAULT_DESTROOT"; then + # Do we have write access and permission? + access -w "$MT_DESTROOT" || USE_ALTERNATE=1 + test -w "$MT_DESTROOT" || USE_ALTERNATE=1 + # We distinguish system trees from the rest. + systexmf="`kpsewhich --expand-path='{$SYSTEXMF}/fonts'`$SEP$MT_VARTEXFONTS" + case "$SEP$systexmf$SEP" in + *$SEP$MT_DESTROOT$SEP*) # A system tree, check for varfonts. + if test "x$USE_VARTEXFONTS" = x1 || test "x$USE_ALTERNATE" = x1; then + MT_DESTROOT=$MT_VARTEXFONTS + fi ;; + *) # A non-system tree. + test "x$USE_ALTERNATE" = x1 && MT_DESTROOT=$MT_DEFAULT_DESTROOT ;; + esac + fi + + case "$DEST" in + "") ;; + /* | [A-z]:/*) # Absolute, explicit destdir => use it. + MT_PKDESTDIR=$DEST + MT_TFMDESTDIR=$DEST + MT_MFDESTDIR=$DEST + MT_NAMEPART=;; + *) # Relative destdir => append to the default. + MT_NAMEPART=$DEST;; + esac + + eval MT_MODE=\"$MODE\" + eval MT_NAMEPART=\"$MT_NAMEPART\" + eval MT_DESTROOT=\"$MT_DESTROOT\" + eval MT_PKDESTREL=\"$MT_PKDESTREL\" + eval MT_TFMDESTREL=\"$MT_TFMDESTREL\" + eval MT_MFDESTREL=\"$MT_MFDESTREL\" + eval MT_PKDESTDIR=\"$MT_PKDESTDIR\" + eval MT_TFMDESTDIR=\"$MT_TFMDESTDIR\" + eval MT_MFDESTDIR=\"$MT_MFDESTDIR\" + eval MT_PKNAME=\"$MT_PKDESTDIR/$MT_PKBASE\" + eval MT_TFMNAME=\"$MT_TFMDESTDIR/$MT_TFMBASE\" + eval MT_MFNAME=\"$MT_MFDESTDIR/$MT_MFBASE\" + + echo "$MT_PKNAME$SEP$MT_TFMNAME$SEP$MT_MFNAME" | sed 's%//*%/%g' diff -cNr octave-2.0.11/kpathsea/mktexnam.opt octave-2.0.12/kpathsea/mktexnam.opt *** octave-2.0.11/kpathsea/mktexnam.opt Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexnam.opt Tue Feb 24 06:16:55 1998 *************** *** 0 **** --- 1,98 ---- + #!/bin/sh + # mktexnam.opt to determine various manipulations of the filenames. + # Sourced from mktexnam. + # + # te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + # $Id: mktexnam.opt,v 1.9 1998/02/24 12:16:55 olaf Exp $ + + # Get 8.3 filenames like dpiNNN/NAME.pk. + case "$MT_FEATURES" in + *dosnames*) MT_PKBASE='dpi$DPI/$NAME.pk';; + esac + + # Omit the mode directory (e.g., ljfour): + case "$MT_FEATURES" in + *nomode*) MODE="";; + esac + + ########################################################################### + # Use this feature if you wish to use the alias files from the + # ftp://ftp.tug.org/tex/fontname.tar.gz distribution. + ########################################################################### + case "$MT_FEATURES" in + *fontmaps*) + MT_NAMEPART='$MT_SUPPLIER/$MT_TYPEFACE' + MT_PKDESTREL='pk/$MT_MODE/$MT_NAMEPART' + MT_TFMDESTREL='tfm/$MT_NAMEPART' + MT_MFDESTREL='source/$MT_NAMEPART' + SPECIALMAP=`kpsewhich special.map` + TYPEFACEMAP=`kpsewhich typeface.map` + SUPPLIERMAP=`kpsewhich supplier.map` + if test -r "$SPECIALMAP"; then + set x `awk \ + '{if ($1 == NAME || (substr (NAME, 1, length ($1)) == $1 \ + && substr (NAME, length (NAME), 1) ~ /[0-9]/ \ + && substr ($1, length ($1), 1) ~ /[^0-9]/)) \ + { print $2 " " $3; exit; }}' NAME=$NAME "$SPECIALMAP"` + shift; SUPPLIER=$1; TYPEFACE=$2 + + if test -z "$SUPPLIER"; then + # Try the normal case. Source first. + s_abbrev=`echo $NAME | sed 's/^\(.\).*$/\1/'` + SUPPLIER=`awk '{ if ($1 == s_abbrev) { print $2; exit; }}' \ + s_abbrev=$s_abbrev "$SUPPLIERMAP"` + if test -n "$SUPPLIER"; then + # We found the source. Try for the typeface. + t_abbrev=`echo $NAME | sed 's/^.//;s/\(..\).*$/\1/'` + TYPEFACE=`awk '{ if ($1 == t_abbrev) { print $2; exit; }}' \ + t_abbrev=$t_abbrev "$TYPEFACEMAP"` + fi + fi + fi + + if test -z "$SUPPLIER"; then + echo "$0: Could not map source abbreviation $s_abbrev for $NAME." >&2 + echo "$0: Need to update $SPECIALMAP?" >&2 + MT_SUPPLIER="$MT_DEFAULT_SUPPLIER" + MT_TYPEFACE="$MT_DEFAULT_TYPEFACE" + else + MT_SUPPLIER="$SUPPLIER" + if test -z "$TYPEFACE"; then + echo "$0: Could not map typeface abbreviation $t_abbrev for $NAME." >&2 + echo "$0: Need to update $SPECIALMAP?" >&2 + MT_TYPEFACE="$MT_DEFAULT_TYPEFACE" + else + MT_TYPEFACE="$TYPEFACE" + fi + fi + esac + + ########################################################################### + # Use this feature to strip the "supplier" part (e.g. ams) + # of the target name: + ########################################################################### + + case "$MT_FEATURES" in + *stripsupplier*) + MT_SUPPLIER="" + esac + + ########################################################################### + # Use this feature to strip the "typeface" part (e.g. euler) + # of the target name: + ########################################################################### + + case "$MT_FEATURES" in + *striptypeface*) + MT_TYPEFACE="" + esac + + # Put new fonts into the directory named by the VARTEXFONTS environment + # variable or config file value. (A default value for VARTEXFONTS is + # already set in the default texmf.cnf, q.v.) + # + # A user can override this setting in either direction by setting + # USE_VARTEXFONTS to 1 or 0. + case "$MT_FEATURES" in + *varfonts*) test "$USE_VARTEXFONTS" != 0 && USE_VARTEXFONTS=1;; + esac diff -cNr octave-2.0.11/kpathsea/mktexpk octave-2.0.12/kpathsea/mktexpk *** octave-2.0.11/kpathsea/mktexpk Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktexpk Fri Feb 20 10:23:22 1998 *************** *** 0 **** --- 1,215 ---- + #!/bin/sh + # original mktexpk -- make a new PK font, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) + # + # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. + # Public domain. + + version='$Id: mktexpk,v 1.21 1998/02/20 16:23:22 olaf Exp $' + progname=`echo $0 | sed 's%.*/%%'` + usage="Usage: $progname [OPTION] NAME [REDIRECT], + Create a PK font. + + --dpi DPI use resolution DPI. + --bdpi BDPI use base resolution BDPI. + --mag MAG use magnificiation MAG. + --mfmode MODE use MODE as the METAFONT mode. + --destdir DESTDIR write fonts in DESTDIR. + + Try to create a PK file for NAME at resolution DPI, with an assumed + device base resolution of BDPI, and a Metafont \`mag' of MAG. Use MODE + for the METAFONT mode. Use DESTDIR for the root of where to install + into, either the absolute directory name to use (if it starts with a + /) or relative to the default DESTDIR (if not). REDIRECT, if supplied, + is a string of the form '>&n', where n is the number of the file + descriptor which is to receive, instead of stdout, the name of the + newly created pk file." + + # Handle non-positional options, except for --version/--help + while test $# -gt 0; do + case "$1" in + --destdir) shift; DEST="$1"; shift ;; + --dpi) shift; DPI="$1"; shift ;; + --bdpi) shift; BDPI="$1"; shift ;; + --mfmode) shift; test "x$1" != "x/" && MODE="$1"; shift ;; + --mag) shift; MAG="$1"; shift;; + --version|-version) break ;; + --help|-help) break ;; + *) break ;; + esac + done + + if test "x$2" != x; then + tail="`echo \"x$2\" | sed 's/^x>&//' | grep '^[0-9]*$'`" + if test -z "$tail"; then + echo "$progname: argument '$2' ignored - bad file number" >&2 + elif test "$tail" != 1; then + eval 'exec 1>&$tail' + fi + fi + + mt_max_args=2 + + # Common code for all scripts. + : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} + : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} + test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" + if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + # Since we want to pass the generated filename and only that filename + # back to the caller on standard output, we do some redirections so + # regular echo's will end up on stderr, and do an echo >$STDOUT at the end. + # Then the contents of $STDOUT will be echoed to stdout by a trap. + + # start of redirection stdout -> stderr, stdin <- /dev/null + ( + + NAME=$1 + + # grep for the font in $PSMAPFILE. These are base font names, such as + # rpplr (the original) or pplr0 (an interim step) or pplr8r (current). + : ${PSMAPFILE=`kpsewhich psfonts.map`} + pattern="^$NAME"'([ ]|$)' + psline=`egrep "$pattern" $PSMAPFILE` + if test -n "$psline"; then + MODE=modeless + # ps_to_pk is set in mktex.opt + case $ps_to_pk in + ps2pk) + set x `echo "$psline" | sed 's%[<["]%%g'` + shift; shift; shift; + encoding=; psname=; slant=; extend= + while test ! -z "$1"; do + case "$1" in + *.enc) encoding="-e $1";; + *.pf[ab]) psname="$1";; + *SlantFont) slant="-S $lastopt";; + *ExtendFont) extend="-E $lastopt";; + esac + lastopt="$1" + shift + done + test -n "$psname" || + { pfa=`(kpsewhich $NAME.pfa 2>/dev/null)`; psname=$pfa; } + test -n "$psname" || + { pfb=`(kpsewhich $NAME.pfb 2>/dev/null)`; psname=$pfb; } + ANAME=`echo $NAME | sed 's/8r$/8a/'` + test -n "$psname" || + { pfa=`(kpsewhich $ANAME.pfa 2>/dev/null)`; psname=$pfa; } + test -n "$psname" || + { pfb=`(kpsewhich $ANAME.pfb 2>/dev/null)`; psname=$pfb; } + if [ -z "$psname" ]; then + echo "$progname: cannot find $NAME.pfa or $NAME.pfb. Trying gsftopk." >&2 + cmd="gsftopk $NAME $DPI" + else + cmd="ps2pk -v -X$DPI -R$BDPI $slant $extend $encoding $psname $NAME.${DPI}pk" + fi + ;; + *) + cmd="$ps_to_pk $NAME $DPI" + ;; + esac + else + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) + if test -n "$MODE"; then + mf_bdpi=`mf \ + '\mode:='$MODE';mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.'\ + &2 + MODE= + fi + fi + + # If an explicit mode is not supplied, try to guess. You can get a + # list of extant modes from ftp://ftp.tug.org/tex/modes.mf. + if test -z "$MODE" || test "x$MODE" = xdefault; then + case "$BDPI" in + 85) MODE=sun;; + 100) MODE=nextscrn;; + 180) MODE=toshiba;; + 300) MODE=cx;; + 400) MODE=nexthi;; + 600) MODE=ljfour;; + 1270) MODE=linoone;; + *) echo "$progname: Can't guess mode for $BDPI dpi devices." >&2 + echo "$progname: Use a config file, or update me." >&2 + exit 1 + esac + fi + + # Run Metafont. Always use plain Metafont, since reading cmbase.mf + # does not noticeably slow things down. + cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" + fi + + OIFS=$IFS; IFS=$SEP + set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift + IFS=$OIFS + + PKDEST="$1" + PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname + PKNAME=`basename "$PKDEST"` + GFNAME=$NAME.${DPI}gf + + if test -r "$PKDESTDIR/$PKNAME"; then + echo "$progname: $PKDESTDIR/$PKNAME already exists." >&2 + echo "$PKDESTDIR/$PKNAME" >$STDOUT + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + exit 0 + fi + + "$MT_MKTEXDIR" "$PKDESTDIR" + if test ! -d "$PKDESTDIR"; then + echo "$progname: mktexdir $PKDESTDIR failed." >&2 + exit 1 + fi + + echo "$progname: Running $cmd" + $cmd $$.errs 2>/dev/null + grep '^! Strange path' $$.errs >$$.strange 2>/dev/null + if cmp $$.errs $$.strange >/dev/null 2>&1 \ + && test -s $$.strange >/dev/null 2>&1; then + echo "$progname: warning: \`$cmd' caused strange path errors." >&2 + else + echo "$progname: \`$cmd' failed." >&2 + test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" + exit 1; + fi + } + + test -r $GFNAME && { gftopk ./$GFNAME $PKNAME || exit 1; } + test ! -f $PKNAME && test -f $NAME.${DPI}pk && mv $NAME.${DPI}pk $PKNAME + if test ! -s $PKNAME; then + echo "$progname: \`$cmd' failed to make $PKNAME." >&2 + exit 1 + fi + + # Install the PK file carefully, since others may be working simultaneously. + # Use cp when mv fails, since DOS will fail mv for deeply-nested directories. + mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ + || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 + cd $PKDESTDIR || exit 1 + chmod `kpsestat -xst,go-w .` pk$$.tmp + test -r $PKNAME || mv pk$$.tmp $PKNAME || exit 1 + + # Update ls-R if necessary. + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + + # If this line (or an equivalent) is not present, dvipsk/xdvik/dviljk + # will think mktexpk failed. Any other output to stdout will also lose. + echo "$PKDESTDIR/$PKNAME" >$STDOUT + echo "$progname: $PKDESTDIR/$PKNAME: successfully generated." >&2 + ) 1>&2 &n + where + .I n + is the number of the file descriptor which is to receive, instead of + standard output, the name of the generated file. + .PP + .B mktexpk + is typically called by other programs, rather than from the command + line. + .\"===================================================================== + .SH OPTIONS + .B mktexpk + accepts the following options: + .TP + .BI --bdpi \ num + Set the base device resolution. + .rb + .TP + .BI --dpi \ num + Generate the font at resolution + .IR num . + .rb + .TP + .B --help + .rb + Print help message and exit. + .TP + .BI --mag \ mag + The \*(MF magnification that corresponds to the combination of + .I bdpi + and + .I dpi + that has been specified. + .rb + .TP + .BI --mfmode \ mode + The \*(MF mode to use. + .rb + .TP + .BI --destdir \ dir + A directory name. If the directory is absolute, it is used as-is. + Otherwise, it is appended to the root destination directory set in the + script. + .rb + .TP + .B --version + .rb + Print version information and exit. + .\"===================================================================== + .SH BUGS + If the + .I mode + is not specified, + .B mktexpk + tries to determine it from + .IR bdpi . + The manner in which this is done is primitive. Since + .I bpdi + doesn't provide sufficient information to uniquely determine a + .I mode + it is strongly recommended that it be specified explicitly. + .PP + If the + .I mode + and + .I bpdi + don't match, the + .I mode + is discarded. + .PP + The + .I dpi + parameter is redundant, but is not checked for consistency. Worse, + the program will fail if the wrong + .I dpi + is specified. + .\"===================================================================== + .SH "SEE ALSO" + .BR mktexmf (1), + .BR mktextfm (1). diff -cNr octave-2.0.11/kpathsea/mktextfm octave-2.0.12/kpathsea/mktextfm *** octave-2.0.11/kpathsea/mktextfm Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/mktextfm Mon Feb 16 02:56:13 1998 *************** *** 0 **** --- 1,121 ---- + #!/bin/sh + # original mktextfm -- make a new TFM file, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) + # + # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. + # Public domain. + + version='$Id: mktextfm,v 1.17 1998/02/16 08:56:13 olaf Exp $' + progname=`echo $0 | sed 's%.*/%%'` + usage="Usage: $progname [--destdir DESTDIR] FONT. + + Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where + to install into, either the absolute directory name to use (if it starts + with a /) or relative to the default DESTDIR (if not)." + + # Handle non-positional options, except for --version/--help + while test $# -gt 0; do + case "$1" in + --destdir) shift; DEST="$1"; shift ;; + --version|-version) break ;; + --help|-help) break ;; + *) break ;; + esac + done + + # Common code for all scripts. + : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} + : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} + test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" + if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + # start of redirection stdout -> stderr, stdin <- /dev/null + ( + + NAME=`basename "$1" .tfm` + MAG=1 + #DEST="$2" + DPI=$BDPI + + OIFS=$IFS; IFS=$SEP + set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift + IFS=$OIFS + + PKDEST="$1" + TFMDEST="$2" + PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname + TFMDESTDIR=`echo "$TFMDEST" | sed 's%/[^/][^/]*$%%'` + PKNAME=`basename "$PKDEST"` + TFMNAME=$NAME.tfm + GFNAME=$NAME.$DPI'gf' + + if test -r "$TFMDESTDIR/$TFMNAME"; then + echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2 + echo "$TFMDESTDIR/$TFMNAME" >$STDOUT + "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME + exit + fi + + # Try to create the destdir first. Do not create fonts, if this fails. + "$MT_MKTEXDIR" "$TFMDESTDIR" + if test ! -d "$TFMDESTDIR"; then + echo "$progname: mktexdir $TFMDESTDIR failed." + exit 1 + fi + + cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" + echo "$progname: Running $cmd" + + $cmd $$.errs 2>/dev/null + grep '^! Strange path' $$.errs >$$.strange 2>/dev/null + if cmp $$.errs $$.strange >/dev/null 2>&1 \ + && test -s $$.strange >/dev/null 2>&1; then + echo "$progname: warning: \`$cmd' caused strange path errors." >&2 + else + echo "$progname: \`$cmd' failed." >&2 + test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" + exit 1; + fi + } + + test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; } + + # Install the TFM file carefully, since others may be working simultaneously. + # Use cp when mv fails, since DOS will fail mv for deeply-nested directories. + mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \ + || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1 + cd "$TFMDESTDIR" || exit 1 + chmod `kpsestat -xst,go-w .` tfm$$.tmp + test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1 + + # OK, success with the TFM. + "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME + echo "$TFMDESTDIR/$TFMNAME" >$STDOUT + echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2 + + # Since we probably made a GF(->PK) file, too, may as well install it if + # it's needed. + cd $TEMPDIR + if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then + gftopk ./$GFNAME $PKNAME || exit 1 + "$MT_MKTEXDIR" "$PKDESTDIR" + mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ + || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 + cd "$PKDESTDIR" || exit 1 + if test -f $PKNAME; then + rm -f pk$$.tmp + else + chmod `kpsestat -xst,go-w .` pk$$.tmp + mv pk$$.tmp $PKNAME + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + fi + fi + ) 1>&2 &2 + exit 1 + fi + + . "$MT_MKTEX_OPT" + + dir=$1 + file=$2 + test -d "$dir" || { echo "$0: $dir not a directory." >&2; exit 1; } + test -f "$dir/$file" || { echo "$0: $dir/$file not a file." >&2; exit 1; } + + OIFS=$IFS; IFS=$SEP; set x `kpsewhich -show-path=ls-R`; shift; IFS=$OIFS + TEXMFLS_R= + for d in "$@"; do + case $dir in + ${d}*) TEXMFLS_R="$d"; break;; + esac + done + test -n "$TEXMFLS_R" || exit 0 + db_file="$TEXMFLS_R/ls-R" + + test -f "$db_file" || mktexlsr "$TEXMFLS_R" + test -w "$db_file" || { echo "$0: $db_file unwritable." >&2; exit 1; } + + test "x`sed 1q \"$db_file\"`" = "x$ls_R_magic" \ + || test "x`sed 1q \"$db_file\"`" = "x$old_ls_R_magic" \ + || { echo "$0: $db_file lacks magic string \`$ls_R_magic'." >&2; exit 1; } + + # Change `$TEXMFLS_R/' to `./'. + dir=`echo $dir | sed "s%^$TEXMFLS_R/%./%g"` + + # May as well always put in a new directory entry; presumably cron will + # come along soon enough and clean things up. + echo "$dir:" >>"$db_file" + echo "$file" >>"$db_file" + + exit 0 diff -cNr octave-2.0.11/kpathsea/path-elt.c octave-2.0.12/kpathsea/path-elt.c *** octave-2.0.11/kpathsea/path-elt.c Wed Jan 1 17:01:38 1997 --- octave-2.0.12/kpathsea/path-elt.c Sun Nov 23 11:45:42 1997 *************** *** 44,53 **** { const_string p; string ret; if (passed_path) path = passed_path; - /* Check if called with NULL, and no previous path (perhaps we reached the end). */ else if (!path) --- 44,54 ---- { const_string p; string ret; + int brace_level; + unsigned len; if (passed_path) path = passed_path; /* Check if called with NULL, and no previous path (perhaps we reached the end). */ else if (!path) *************** *** 57,92 **** assert (path); p = path; ! /* Find the next colon (or the end of the path). */ ! while (*p != 0 && (env_p ? !IS_ENV_SEP (*p) : !IS_DIR_SEP (*p))) ! p++; ! ! /* If there were no separators, return the whole thing this time, and ! return NULL next time. */ ! if (*p == 0) { ! ret = (string) path; ! path = NULL; } ! ! /* Otherwise, return the substring starting at `path'. */ else ! { ! unsigned len = p - path; ! ! /* Make sure we have enough space (including the null byte). */ ! if (len + 1 > elt_alloc) ! { ! elt_alloc = len + 1; ! elt = xrealloc (elt, elt_alloc); ! } ! ! strncpy (elt, path, len); ! elt[len] = 0; ! ret = elt; ! ! path += len + 1; ! } return ret; } --- 58,91 ---- assert (path); p = path; ! /* Find the next colon not enclosed by braces (or the end of the path). */ ! brace_level = 0; ! while (*p != 0 && !(brace_level == 0 ! && (env_p ? IS_ENV_SEP (*p) : IS_DIR_SEP (*p)))) { ! if (*p == '{') ++brace_level; ! else if (*p == '}') --brace_level; ! ++p; ! } ! ! /* Return the substring starting at `path'. */ ! len = p - path; ! ! /* Make sure we have enough space (including the null byte). */ ! if (len + 1 > elt_alloc) { ! elt_alloc = len + 1; ! elt = xrealloc (elt, elt_alloc); } ! ! strncpy (elt, path, len); ! elt[len] = 0; ! ret = elt; ! ! /* If we are at the end, return NULL next time. */ ! if (path[len] == 0) ! path = NULL; else ! path += len + 1; return ret; } *************** *** 127,137 **** print_path_elements (NULL); /* */ print_path_elements (""); /* "" */ print_path_elements ("a"); /* a */ ! print_path_elements (":"); /* "", "" */ ! print_path_elements ("::"); /* "", "", "" */ ! print_path_elements ("a:"); /* a, "" */ ! print_path_elements (":b"); /* "", b */ ! print_path_elements ("a:b"); /* a, b */ return 0; } --- 126,136 ---- print_path_elements (NULL); /* */ print_path_elements (""); /* "" */ print_path_elements ("a"); /* a */ ! print_path_elements (ENV_SEP_STRING); /* "", "" */ ! print_path_elements (ENV_SEP_STRING ENV_SEP_STRING); /* "", "", "" */ ! print_path_elements ("a" ENV_SEP_STRING); /* a, "" */ ! print_path_elements (ENV_SEP_STRING "b"); /* "", b */ ! print_path_elements ("a" ENV_SEP_STRING "b"); /* a, b */ return 0; } diff -cNr octave-2.0.11/kpathsea/pathsearch.c octave-2.0.12/kpathsea/pathsearch.c *** octave-2.0.11/kpathsea/pathsearch.c Tue Jan 21 13:18:02 1997 --- octave-2.0.12/kpathsea/pathsearch.c Thu Apr 23 22:39:10 1998 *************** *** 30,35 **** --- 30,39 ---- #include /* for `time' */ + #ifdef __DJGPP__ + #include /* for stat bits */ + #endif + /* The very first search is for texmf.cnf, called when someone tries to initialize the TFM path or whatever. init_path calls kpse_cnf_get which calls kpse_all_path_search to find all the texmf.cnf's. We *************** *** 51,59 **** static boolean first_time = true; /* Need to open the log file? */ if (first_time) { string log_name = kpse_var_value ("TEXMFLOG"); first_time = false; - /* Get name from either envvar or config file. */ if (log_name) { log_file = fopen (log_name, FOPEN_A_MODE); if (!log_file) --- 55,63 ---- static boolean first_time = true; /* Need to open the log file? */ if (first_time) { + /* Get name from either envvar or config file. */ string log_name = kpse_var_value ("TEXMFLOG"); first_time = false; if (log_name) { log_file = fopen (log_name, FOPEN_A_MODE); if (!log_file) *************** *** 264,276 **** boolean, must_exist, boolean, all) { str_list_type ret_list; /* Make a leading ~ count as an absolute filename, and expand $FOO's. */ ! string name = kpse_expand (original_name); /* If the first name is absolute or explicitly relative, no need to consider PATH at all. */ ! boolean absolute_p = kpse_absolute_p (name, true); if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) DEBUGF4 ("start search(file=%s, must_exist=%d, find_all=%d, path=%s).\n", --- 268,305 ---- boolean, must_exist, boolean, all) { str_list_type ret_list; + string name; + boolean absolute_p; + + #ifdef __DJGPP__ + /* We will use `stat' heavily, so let's request for + the fastest possible version of `stat', by telling + it what members of struct stat do we really need. + + We need to set this on each call because this is a + library function; the caller might need other options + from `stat'. Thus save the flags and restore them + before exit. + + This call tells `stat' that we do NOT need to recognize + executable files (neither by an extension nor by a magic + signature); that we do NOT need time stamp of root directories; + and that we do NOT need the write access bit in st_mode. + + Note that `kpse_set_progname' needs the EXEC bits, + but it was already called by the time we get here. */ + unsigned short save_djgpp_flags = _djstat_flags; + + _djstat_flags = _STAT_EXEC_MAGIC | _STAT_EXEC_EXT + | _STAT_ROOT_TIME | _STAT_WRITEBIT; + #endif /* Make a leading ~ count as an absolute filename, and expand $FOO's. */ ! name = kpse_expand (original_name); /* If the first name is absolute or explicitly relative, no need to consider PATH at all. */ ! absolute_p = kpse_absolute_p (name, true); if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) DEBUGF4 ("start search(file=%s, must_exist=%d, find_all=%d, path=%s).\n", *************** *** 299,305 **** if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) putc ('\n', stderr); } ! return STR_LIST (ret_list); } --- 328,339 ---- if (KPSE_DEBUG_P (KPSE_DEBUG_SEARCH)) putc ('\n', stderr); } ! ! #ifdef __DJGPP__ ! /* Undo any side effects. */ ! _djstat_flags = save_djgpp_flags; ! #endif ! return STR_LIST (ret_list); } *************** *** 309,316 **** kpse_path_search P3C(const_string, path, const_string, name, boolean, must_exist) { ! string *ret_list = search (path, name, must_exist, false); ! return *ret_list; } --- 343,359 ---- kpse_path_search P3C(const_string, path, const_string, name, boolean, must_exist) { ! static string *ret_list = 0; ! ! if (ret_list) ! { ! free (ret_list); ! ret_list = 0; /* Don't let an interrupt in search() cause trouble */ ! } ! ! ret_list = search (path, name, must_exist, false); ! ! return *ret_list; /* Freeing this is caller's responsibility */ } *************** *** 355,366 **** /* All lists end with NULL. */ test_path_search (".", "nonexistent"); test_path_search (".", "/nonexistent"); ! test_path_search ("/k:.", "kpathsea.texi"); ! test_path_search ("/k:.", "/etc/fstab"); ! test_path_search (".:" TEXFONTS "//", "cmr10.tfm"); ! test_path_search (".:" TEXFONTS "//", "logo10.tfm"); ! test_path_search (TEXFONTS "//times:.::", "ptmr.vf"); ! test_path_search (TEXFONTS "/adobe//:" "/usr/local/src/TeX+MF/typefaces//", "plcr.pfa"); test_path_search ("~karl", ".bashrc"); --- 398,410 ---- /* All lists end with NULL. */ test_path_search (".", "nonexistent"); test_path_search (".", "/nonexistent"); ! test_path_search ("/k" ENV_SEP_STRING ".", "kpathsea.texi"); ! test_path_search ("/k" ENV_SEP_STRING ".", "/etc/fstab"); ! test_path_search ("." ENV_SEP_STRING TEXFONTS "//", "cmr10.tfm"); ! test_path_search ("." ENV_SEP_STRING TEXFONTS "//", "logo10.tfm"); ! test_path_search (TEXFONTS "//times" ENV_SEP_STRING "." ! ENV_SEP_STRING ENV_SEP_STRING, "ptmr.vf"); ! test_path_search (TEXFONTS "/adobe//" ENV_SEP_STRING "/usr/local/src/TeX+MF/typefaces//", "plcr.pfa"); test_path_search ("~karl", ".bashrc"); *************** *** 369,378 **** xputenv ("NONEXIST", "nonexistent"); test_path_search (".", "$NONEXISTENT"); xputenv ("KPATHSEA", "kpathsea"); ! test_path_search ("/k:.", "$KPATHSEA.texi"); ! test_path_search ("/k:.", "${KPATHSEA}.texi"); ! test_path_search ("$KPATHSEA:.", "README"); ! test_path_search (".:$KPATHSEA", "README"); return 0; } --- 413,422 ---- xputenv ("NONEXIST", "nonexistent"); test_path_search (".", "$NONEXISTENT"); xputenv ("KPATHSEA", "kpathsea"); ! test_path_search ("/k" ENV_SEP_STRING ".", "$KPATHSEA.texi"); ! test_path_search ("/k" ENV_SEP_STRING ".", "${KPATHSEA}.texi"); ! test_path_search ("$KPATHSEA" ENV_SEP_STRING ".", "README"); ! test_path_search ("." ENV_SEP_STRING "$KPATHSEA", "README"); return 0; } diff -cNr octave-2.0.11/kpathsea/proginit.c octave-2.0.12/kpathsea/proginit.c *** octave-2.0.11/kpathsea/proginit.c Sun Apr 21 16:02:53 1996 --- octave-2.0.12/kpathsea/proginit.c Tue Feb 10 12:18:04 1998 *************** *** 36,45 **** string size_var = concat (prefix, "SIZES"); /* Do both `pk_format' and `any_glyph_format' for the sake of xdvi; in ! general, MakeTeXPK might apply to either, and the program will ask for the one it wants. */ ! /* Might have a program-specific name for MakeTeXPK itself. */ if (getenv (makepk_var)) { /* If we did, we want to enable the program, I think. */ kpse_set_program_enabled (kpse_pk_format, 1, kpse_src_env); --- 36,45 ---- string size_var = concat (prefix, "SIZES"); /* Do both `pk_format' and `any_glyph_format' for the sake of xdvi; in ! general, mktexpk might apply to either, and the program will ask for the one it wants. */ ! /* Might have a program-specific name for mktexpk itself. */ if (getenv (makepk_var)) { /* If we did, we want to enable the program, I think. */ kpse_set_program_enabled (kpse_pk_format, 1, kpse_src_env); diff -cNr octave-2.0.11/kpathsea/progname.c octave-2.0.12/kpathsea/progname.c *** octave-2.0.11/kpathsea/progname.c Wed Jun 4 12:14:14 1997 --- octave-2.0.12/kpathsea/progname.c Fri Feb 20 10:20:55 1998 *************** *** 21,26 **** --- 21,28 ---- #include #include #include + /* For kpse_reset_progname */ + #include #ifdef WIN32 #include *************** *** 47,55 **** #ifndef HAVE_PROGRAM_INVOCATION_NAME /* Don't redefine the variables if glibc already has. */ ! string program_invocation_name; ! string program_invocation_short_name; #endif /* Return directory for NAME. This is "." if NAME contains no directory separators (should never happen for selfdir), else whatever precedes --- 49,59 ---- #ifndef HAVE_PROGRAM_INVOCATION_NAME /* Don't redefine the variables if glibc already has. */ ! string program_invocation_name = NULL; ! string program_invocation_short_name = NULL; #endif + /* And the variable for the program we pretend to be. */ + string kpse_program_name = NULL; /* Return directory for NAME. This is "." if NAME contains no directory separators (should never happen for selfdir), else whatever precedes *************** *** 207,213 **** perror (s); return NULL; } ! fclose (f); } strcpy (post, s); --- 211,217 ---- perror (s); return NULL; } ! if (f) fclose (f); } strcpy (post, s); *************** *** 376,383 **** self = xmalloc (BUFSIZ); lock = findpath (argv0); if (lock != ((BPTR) -1)) { ! if (getpath (lock, self) == -1) *self = '\0'; UnLock (lock); } CloseLibrary((struct Library *) DOSBase); --- 380,391 ---- self = xmalloc (BUFSIZ); lock = findpath (argv0); if (lock != ((BPTR) -1)) { ! if (getpath (lock, self) == -1) { *self = '\0'; + } else { + strcat (self,DIR_SEP_STRING); + strcat (self,argv0); + } UnLock (lock); } CloseLibrary((struct Library *) DOSBase); *************** *** 399,405 **** `file_status' function in execute_cmd.c in bash for what's necessary if we were to do it right. */ if (stat (name, &s) == 0 && s.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)) { ! self = name; } } #endif /* not AMIGA */ --- 407,415 ---- `file_status' function in execute_cmd.c in bash for what's necessary if we were to do it right. */ if (stat (name, &s) == 0 && s.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)) { ! /* Do not stop at directories. */ ! if (!S_ISDIR(s.st_mode)) ! self = name; } } #endif /* not AMIGA */ *************** *** 418,427 **** #endif /* not WIN32 */ void ! kpse_set_progname P1C(const_string, progname) { string ext, sdir, sdir_parent, sdir_grandparent; string s = getenv ("KPATHSEA_DEBUG"); /* Set debugging stuff first, in case we end up doing debuggable stuff during this initialization. */ --- 428,441 ---- #endif /* not WIN32 */ void ! kpse_set_program_name P2C(const_string, argv0, const_string, progname) { string ext, sdir, sdir_parent, sdir_grandparent; string s = getenv ("KPATHSEA_DEBUG"); + #ifdef WIN32 + string debug_output = getenv("KPATHSEA_DEBUG_OUTPUT"); + int err, olderr; + #endif /* Set debugging stuff first, in case we end up doing debuggable stuff during this initialization. */ *************** *** 429,484 **** kpathsea_debug |= atoi (s); } ! #ifdef WIN32 /* Win95 always gives the short filename for argv0, not the long one. There is only this way to catch it. It makes all the selfdir stuff useless for win32. */ ! char path[PATH_MAX], *fp; ! HANDLE hnd; ! WIN32_FIND_DATA ffd; ! ! /* SearchPath() always give back an absolute directory */ ! if (SearchPath(NULL, progname, ".exe", PATH_MAX, path, ! &fp) == 0) ! FATAL1("Can't determine where is the executable %s.\n", progname); ! if ((hnd = FindFirstFile(path, &ffd)) == NULL) ! FATAL1("The following path points to an invalid file : %s\n", path); ! progname = ffd.cFileName; ! /* slashify the dirname */ ! assert(fp != NULL); ! *fp = '\0'; ! for (fp = path; fp && *fp; fp++) ! if (IS_DIR_SEP(*fp)) *fp = DIR_SEP; ! /* sdir will be the directory where the executable resides, ie: c:/TeX/bin */ ! sdir = my_dirname(path); ! #endif /* WIN32 */ ! #ifndef HAVE_PROGRAM_INVOCATION_NAME ! program_invocation_name = xstrdup (progname); ! #endif ! /* If configured --enable-shared and running from the build directory ! with the wrapper scripts (e.g., for make check), the binaries will ! be named foo.exe instead of foo. Or possibly if we're running on a ! DOSISH system. Although it's theoretically wrong to make ! `program_invocation_name' be anything but the real name, as a ! practical matter it seems simpler to strip off the .exe here. Both ! cnf.c and texmfmp.c (and who knows what else in the future) would ! have to check for it otherwise. */ ! ext = find_suffix (program_invocation_name); ! if (ext && FILESTRCASEEQ (ext, "exe")) { ! program_invocation_name = remove_suffix (program_invocation_name); } - #ifndef HAVE_PROGRAM_INVOCATION_NAME - program_invocation_short_name = (string) basename (program_invocation_name); #endif ! /* SELFAUTODIR is actually the parent of the invocation directory, ! and SELFAUTOPARENT the grandparent. This is how teTeX did it. */ #ifndef WIN32 sdir = selfdir (program_invocation_name); #endif xputenv ("SELFAUTOLOC", sdir); sdir_parent = my_dirname (sdir); xputenv ("SELFAUTODIR", sdir_parent); --- 443,561 ---- kpathsea_debug |= atoi (s); } ! #ifndef HAVE_PROGRAM_INVOCATION_NAME ! #if defined(WIN32) ! /* redirect stderr to debug_output. Easier to send logfiles. */ ! if (debug_output) { ! if ((err = _open(debug_output, _O_CREAT | _O_TRUNC | _O_RDWR, ! _S_IREAD | _S_IWRITE)) == -1) { ! WARNING1("Can't open %s for stderr redirection!\n", debug_output); ! perror(debug_output); ! } else if ((olderr = _dup(fileno(stderr))) == -1) { ! WARNING("Can't dup() stderr!\n"); ! close(err); ! } else if (_dup2(err, fileno(stderr)) == -1) { ! WARNING1("Can't redirect stderr to %s!\n", debug_output); ! close(olderr); ! close(err); ! } else { ! close(err); ! } ! } /* Win95 always gives the short filename for argv0, not the long one. There is only this way to catch it. It makes all the selfdir stuff useless for win32. */ ! { ! char path[PATH_MAX], *fp; ! HANDLE hnd; ! WIN32_FIND_DATA ffd; ! ! /* SearchPath() always gives back an absolute directory */ ! if (SearchPath(NULL, argv0, ".exe", PATH_MAX, path, &fp) == 0) ! FATAL1("Can't determine where the executable %s is.\n", argv0); ! if ((hnd = FindFirstFile(path, &ffd)) == NULL) ! FATAL1("The following path points to an invalid file : %s\n", path); ! /* slashify the dirname */ ! for (fp = path; fp && *fp; fp++) ! if (IS_DIR_SEP(*fp)) *fp = DIR_SEP; ! /* sdir will be the directory where the executable resides, ie: c:/TeX/bin */ ! sdir = my_dirname(path); ! program_invocation_name = xstrdup(ffd.cFileName); ! } ! #elif defined(__DJGPP__) ! ! /* DJGPP programs support long filenames on Windows 95, but ARGV0 there ! is always made with the short 8+3 aliases of all the pathname elements. ! If long names are supported, we need to convert that to a long name. ! ! All we really need is to call `_truename', but most of the code ! below is required to deal with the special case of networked drives. */ ! if (pathconf (argv0, _PC_NAME_MAX) > 12) { ! char long_progname[PATH_MAX]; ! ! if (_truename (argv0, long_progname)) { ! char *fp; ! ! if (long_progname[1] != ':') { ! /* A complication: `_truename' returns network-specific string at ! the beginning of `long_progname' when the program resides on a ! networked drive, and DOS calls cannot grok such pathnames. We ! need to convert the filesystem name back to a drive letter. */ ! char rootname[PATH_MAX], rootdir[4]; ! ! if (argv0[0] && argv0[1] == ':') ! rootdir[0] = argv0[0]; /* explicit drive in `argv0' */ ! else ! rootdir[0] = getdisk () + 'A'; ! rootdir[1] = ':'; ! rootdir[2] = '\\'; ! rootdir[3] = '\0'; ! if (_truename (rootdir, rootname)) { ! /* Find out where `rootname' ends in `long_progname' and replace ! it with the drive letter. */ ! int root_len = strlen (rootname); ! ! if (IS_DIR_SEP (rootname[root_len - 1])) ! root_len--; /* keep the trailing slash */ ! long_progname[0] = rootdir[0]; ! long_progname[1] = ':'; ! memmove (long_progname + 2, long_progname + root_len, ! strlen (long_progname + root_len) + 1); ! } ! } ! ! /* Convert everything to canonical form. */ ! if (long_progname[0] >= 'A' && long_progname[0] <= 'Z') ! long_progname[0] += 'a' - 'A'; /* make drive lower case, for beauty */ ! for (fp = long_progname; *fp; fp++) ! if (IS_DIR_SEP (*fp)) ! *fp = DIR_SEP; ! program_invocation_name = xstrdup (long_progname); ! } ! else ! /* If `_truename' failed, God help them, because we won't... */ ! program_invocation_name = xstrdup (argv0); } + else + program_invocation_name = xstrdup (argv0); + + #else /* !WIN32 && !__DJGPP__ */ + + program_invocation_name = xstrdup (argv0); #endif + #endif /* not HAVE_PROGRAM_INVOCATION_NAME */ ! /* We need to find SELFAUTOLOC *before* removing the ".exe" suffix from ! the program_name, otherwise the PATH search inside selfdir will fail, ! since `prog' doesn't exists as a file, there's `prog.exe' instead. */ #ifndef WIN32 sdir = selfdir (program_invocation_name); #endif + /* SELFAUTODIR is actually the parent of the invocation directory, + and SELFAUTOPARENT the grandparent. This is how teTeX did it. */ xputenv ("SELFAUTOLOC", sdir); sdir_parent = my_dirname (sdir); xputenv ("SELFAUTODIR", sdir_parent); *************** *** 488,495 **** --- 565,600 ---- free (sdir); free (sdir_parent); free (sdir_grandparent); + + #ifndef PROGRAM_INVOCATION_NAME + program_invocation_short_name = (string)basename (program_invocation_name); + #endif + + if (progname) { + kpse_program_name = xstrdup (progname); + } else { + /* If configured --enable-shared and running from the build directory + with the wrapper scripts (e.g., for make check), the binaries will + be named foo.exe instead of foo. Or possibly if we're running on a + DOSISH system. */ + ext = find_suffix (program_invocation_short_name); + if (ext && FILESTRCASEEQ (ext, "exe")) { + kpse_program_name = remove_suffix (program_invocation_short_name); + } else { + kpse_program_name = xstrdup (program_invocation_short_name); + } + } } + /* This function is deprecated, because when we pretend to have a different + name it will look for _that_ name in the PATH if program_invocation_name + is not defined. */ + void + kpse_set_progname P1C(const_string, argv0) + { + kpse_set_program_name (argv0, NULL); + } + #ifdef TEST void main (int argc, char **argv) diff -cNr octave-2.0.11/kpathsea/progname.h octave-2.0.12/kpathsea/progname.h *** octave-2.0.11/kpathsea/progname.h Mon Oct 14 14:19:47 1996 --- octave-2.0.12/kpathsea/progname.h Thu Feb 19 02:33:08 1998 *************** *** 24,34 **** extern DllImport string program_invocation_name; extern DllImport string program_invocation_short_name; ! /* Set the two variables above (if they're not predefined) to a copy of ARGV0 and everything in ARGV0 after the last directory separator, ! respectively. */ extern void kpse_set_progname P1H(const_string argv0); --- 24,51 ---- extern DllImport string program_invocation_name; extern DllImport string program_invocation_short_name; + extern DllImport string kpse_program_name; + /* Set the first two variables above (if they're not predefined) to a copy + of ARGV0 and everything in ARGV0 after the last directory separator, + respectively. Set kpse_program_name to a copy of PROGNAME or the + or the value of program_invocation_short_name if PROGNAME is NULL. + This function also determines the AUTO* variables. */ ! extern void kpse_set_program_name P2H(const_string argv0, ! const_string progname); ! ! /* See also `kpse_reset_program_name' which is defined in tex-file.c ! ! That function is to be used to set kpse_program_name to a different ! value. It clears the path searching information, to ensure that ! the search paths are appropriate to the new name. */ ! ! /* DEPRECATED ! Set first two variables above (if they're not predefined) to a copy of ARGV0 and everything in ARGV0 after the last directory separator, ! respectively. kpse_program_name is _always_ set to a copy of everything ! in ARGV0 after the last directory separator. */ extern void kpse_set_progname P1H(const_string argv0); diff -cNr octave-2.0.11/kpathsea/readable.c octave-2.0.12/kpathsea/readable.c *** octave-2.0.11/kpathsea/readable.c Mon Dec 9 17:03:54 1996 --- octave-2.0.12/kpathsea/readable.c Wed Feb 4 13:33:41 1998 *************** *** 28,36 **** regular file, as it is potentially useful to read fifo's or some kinds of devices. */ #define READABLE(fn, st) \ (access (fn, R_OK) == 0 && stat (fn, &(st)) == 0 && !S_ISDIR (st.st_mode)) ! /* POSIX invented the brain-damage of not necessarily truncating filename components; the system's behavior is defined by the value of --- 28,45 ---- regular file, as it is potentially useful to read fifo's or some kinds of devices. */ + #ifdef __DJGPP__ + /* `stat' is way too expensive for such a simple job. */ + #define READABLE(fn, st) \ + (access (fn, R_OK) == 0 && access (fn, D_OK) == -1) + #elif WIN32 + #define READABLE(fn, st) \ + (GetFileAttributes(fn) != 0xFFFFFFFF && \ + !(GetFileAttributes(fn) & FILE_ATTRIBUTE_DIRECTORY)) + #else #define READABLE(fn, st) \ (access (fn, R_OK) == 0 && stat (fn, &(st)) == 0 && !S_ISDIR (st.st_mode)) ! #endif /* POSIX invented the brain-damage of not necessarily truncating filename components; the system's behavior is defined by the value of diff -cNr octave-2.0.11/kpathsea/readlink.c octave-2.0.12/kpathsea/readlink.c *** octave-2.0.11/kpathsea/readlink.c Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/readlink.c Thu Feb 12 15:32:15 1998 *************** *** 0 **** --- 1,78 ---- + /* readlink -- obtain contents of symlink. + Copyright (C) 1998 Olaf Weber. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + #include + #include + #include + #include + #include + + #ifdef WIN32 + #include + #endif + + /* + * readlink name + * Returns 0 if name exists and is a symlink, 1 otherwise. The contents + * of the link are printed on standard output. + */ + + int main (argc, argv) + int argc; + char *argv[]; + { + #ifdef S_ISLNK + int status; + char path[PATH_MAX]; + #endif + + if (argc > 1 && strcmp (argv[1], "--help") == 0) { + printf("Usage: %s FILE\n\ + If FILE exists and is a symlink, print the contents of the link and\n\ + exit successfully. Otherwise print nothing and fail.\n\ + \n\ + --help display this help and exit\n\ + --version output version information and exit\n\n", argv[0]); + fputs ("Email bug reports to tex-k@mail.tug.org.\n", stdout); + exit(0); + } else if (argc > 1 && strcmp (argv[1], "--version") == 0) { + printf ("%s (%s)\n\ + Copyright (C) 1998 Olaf Weber.\n\ + There is NO warranty. You may redistribute this software\n\ + under the terms of the GNU General Public License\n\ + For more information about these matters, see the file named COPYING.\n\ + Primary author of %s: Olaf Weber.\n", + argv[0], KPSEVERSION, argv[0]); + exit (0); + } + + /* insist on exactly one arg */ + if (argc != 2) { + fprintf(stderr, "%s: Need exactly one argument.\n\ + Try `access --help' for more information.\n", argv[0]); + exit(1); + } + + #ifdef S_ISLNK + status = readlink(argv[1], path, PATH_MAX); + if (status != -1) { + printf("%.*s\n", status, path); + return 0; + } + #endif + return 1; + } diff -cNr octave-2.0.11/kpathsea/readlink.man octave-2.0.12/kpathsea/readlink.man *** octave-2.0.11/kpathsea/readlink.man Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/readlink.man Thu Jan 29 12:08:38 1998 *************** *** 0 **** --- 1,48 ---- + .TH READLINK 1 "4 January 1998" "Kpathsea @VERSION@" + .\"===================================================================== + .if n .ds MP MetaPost + .if t .ds MP MetaPost + .if n .ds MF Metafont + .if t .ds MF M\s-2ETAFONT\s0 + .if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP + .if n .ds TX TeX + .ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff + .el .ds OX TeX\" for nroff + .\" the same but obliqued + .\" BX definition must follow TX so BX can use TX + .if t .ds BX \fRB\s-2IB\s0\fP\*(TX + .if n .ds BX BibTeX + .\" LX definition must follow TX so LX can use TX + .if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX + .if n .ds LX LaTeX + .\"===================================================================== + .SH NAME + readlink \- print contents of symbolic link + .SH SYNOPSIS + .B readlink + .I file + .\"===================================================================== + .SH DESCRIPTION + If + .I file + is a symbolic link, print its contents (what it links to), and exit + successfully. Exit with a failure otherwise. + .PP + On systems that do not support symbolic links, + .B readlink + will always fail. + .\"===================================================================== + .SH OPTIONS + .B readlink + accepts the following additional options: + .TP + .B --help + .rb + Print help message and exit. + .TP + .B --version + .rb + Print version information and exit. + .\"===================================================================== + .SH "SEE ALSO" + .BR readlink (2) diff -cNr octave-2.0.11/kpathsea/stamp-auto octave-2.0.12/kpathsea/stamp-auto *** octave-2.0.11/kpathsea/stamp-auto Sun Dec 15 14:40:18 1996 --- octave-2.0.12/kpathsea/stamp-auto Sun May 3 20:07:27 1998 *************** *** 1 **** ! Sun Dec 15 15:40:18 EST 1996 --- 1 ---- ! Sun May 3 20:07:27 CDT 1998 diff -cNr octave-2.0.11/kpathsea/stamp-auto.in octave-2.0.12/kpathsea/stamp-auto.in *** octave-2.0.11/kpathsea/stamp-auto.in Mon Feb 3 13:27:12 1997 --- octave-2.0.12/kpathsea/stamp-auto.in Mon Mar 9 00:26:52 1998 *************** *** 1 **** ! Mon Feb 3 14:27:12 EST 1997 --- 1 ---- ! Mon Mar 9 07:26:52 CET 1998 diff -cNr octave-2.0.11/kpathsea/tex-file.c octave-2.0.12/kpathsea/tex-file.c *** octave-2.0.11/kpathsea/tex-file.c Sun Feb 2 15:09:02 1997 --- octave-2.0.12/kpathsea/tex-file.c Sun Mar 8 05:19:03 1998 *************** *** 19,26 **** --- 19,28 ---- #include #include + #include #include #include + #include #include #include #include *************** *** 42,47 **** --- 44,50 ---- #define GF_ENVS "GFFONTS", GLYPH_ENVS #define PK_ENVS "PKFONTS", "TEXPKS", GLYPH_ENVS #define GLYPH_ENVS "GLYPHFONTS", "TEXFONTS" + #define TFM_ENVS "TFMFONTS", "TEXFONTS" #define AFM_ENVS "AFMFONTS" #define BASE_ENVS "MFBASES", "TEXMFINI" #define BIB_ENVS "BIBINPUTS", "TEXBIB" *************** *** 69,80 **** #define TEXPOOL_ENVS "TEXPOOL", "TEXMFINI" #define TEXSOURCE_ENVS "TEXSOURCES" #define TEX_PS_HEADER_ENVS "TEXPSHEADERS", "PSHEADERS" - #define TFM_ENVS "TFMFONTS", "TEXFONTS" #define TROFF_FONT_ENVS "TRFONTS" #define TYPE1_ENVS "T1FONTS", "T1INPUTS", TEX_PS_HEADER_ENVS #define VF_ENVS "VFFONTS", "TEXFONTS" #define DVIPS_CONFIG_ENVS "TEXCONFIG" #define IST_ENVS "TEXINDEXSTYLE", "INDEXSTYLE" /* The compiled-in default list, DEFAULT_FONT_SIZES, is intended to be set from the command line (presumably via the Makefile). */ --- 72,85 ---- #define TEXPOOL_ENVS "TEXPOOL", "TEXMFINI" #define TEXSOURCE_ENVS "TEXSOURCES" #define TEX_PS_HEADER_ENVS "TEXPSHEADERS", "PSHEADERS" #define TROFF_FONT_ENVS "TRFONTS" #define TYPE1_ENVS "T1FONTS", "T1INPUTS", TEX_PS_HEADER_ENVS #define VF_ENVS "VFFONTS", "TEXFONTS" #define DVIPS_CONFIG_ENVS "TEXCONFIG" #define IST_ENVS "TEXINDEXSTYLE", "INDEXSTYLE" + #define TRUETYPE_ENVS "TTFONTS" + #define TYPE42_ENVS "T42FONTS" + #define WEB2C_ENVS "WEB2C" /* The compiled-in default list, DEFAULT_FONT_SIZES, is intended to be set from the command line (presumably via the Makefile). */ *************** *** 157,167 **** if (FILESTRCASEEQ (fmtname, "pk")) { fmt = kpse_pk_format; } else if (FILESTRCASEEQ (fmtname, "mf")) { ! fmt = kpse_tex_format; } else if (FILESTRCASEEQ (fmtname, "tex")) { fmt = kpse_tex_format; } else if (FILESTRCASEEQ (fmtname, "tfm")) { ! fmt = kpse_tex_format; } kpse_set_program_enabled (fmt, value, kpse_src_cmdline); } --- 162,176 ---- if (FILESTRCASEEQ (fmtname, "pk")) { fmt = kpse_pk_format; } else if (FILESTRCASEEQ (fmtname, "mf")) { ! fmt = kpse_mf_format; } else if (FILESTRCASEEQ (fmtname, "tex")) { fmt = kpse_tex_format; } else if (FILESTRCASEEQ (fmtname, "tfm")) { ! fmt = kpse_tfm_format; ! } else if (FILESTRCASEEQ (fmtname, "ofm")) { ! fmt = kpse_ofm_format; ! } else if (FILESTRCASEEQ (fmtname, "ocp")) { ! fmt = kpse_ocp_format; } kpse_set_program_enabled (fmt, value, kpse_src_cmdline); } *************** *** 204,210 **** /* Since sh doesn't like envvar names with `.', check PATH_prog rather than PATH.prog. */ if (!var) { ! string evar = concat3 (env_name, "_", program_invocation_short_name); string env_value = getenv (evar); if (env_value && *env_value) { var = evar; --- 213,219 ---- /* Since sh doesn't like envvar names with `.', check PATH_prog rather than PATH.prog. */ if (!var) { ! string evar = concat3 (env_name, "_", kpse_program_name); string env_value = getenv (evar); if (env_value && *env_value) { var = evar; *************** *** 221,228 **** /* If we are initializing the cnf path, don't try to get any values from the cnf files; that's infinite loop time. */ ! if (!info->cnf_path ! && (!info->suffix || !FILESTRCASEEQ (info->suffix, ".cnf"))) info->cnf_path = kpse_cnf_get (env_name); if (var && info->cnf_path) --- 230,236 ---- /* If we are initializing the cnf path, don't try to get any values from the cnf files; that's infinite loop time. */ ! if (!info->cnf_path && info != &kpse_format_info[kpse_cnf_format]) info->cnf_path = kpse_cnf_get (env_name); if (var && info->cnf_path) *************** *** 245,284 **** if (var) EXPAND_DEFAULT (getenv (var), concat (var, " environment variable")); EXPAND_DEFAULT (info->override_path, "application override variable"); ! info->path = kpse_path_expand (info->path); }} ! /* Some file types have more than one suffix. (We don't actually need ! the constant argument here, but ANSI requires it.) */ static void ! add_alt_suffixes PVAR1C(kpse_format_info_type *, info, ap) { const_string s; unsigned count = 0; while ((s = va_arg (ap, string)) != NULL) { count++; ! XRETALLOC (info->alt_suffix, count + 1, const_string); ! info->alt_suffix[count - 1] = s; } va_end (ap); ! info->alt_suffix[count] = NULL; }} /* The path spec we are defining, one element of the global array. */ #define FMT_INFO kpse_format_info[format] ! ! ! /* Call add_alt_suffixes. */ ! #define ALT_SUFFIXES(args) add_alt_suffixes (&FMT_INFO, args, NULL) /* Call `init_path', including appending the trailing NULL to the envvar list. Also initialize the fields not needed in setting the path. */ ! #define INIT_FORMAT(ext, default_path, envs) \ ! FMT_INFO.suffix = FMT_INFO.type = ext; \ init_path (&FMT_INFO, default_path, envs, NULL) --- 253,290 ---- if (var) EXPAND_DEFAULT (getenv (var), concat (var, " environment variable")); EXPAND_DEFAULT (info->override_path, "application override variable"); ! info->path = kpse_brace_expand (info->path); }} ! /* Some file types have more than one suffix. */ static void ! add_suffixes PVAR1C(const_string **, list, ap) { const_string s; unsigned count = 0; while ((s = va_arg (ap, string)) != NULL) { count++; ! XRETALLOC (*list, count + 1, const_string); ! (*list)[count - 1] = s; } va_end (ap); ! (*list)[count] = NULL; }} /* The path spec we are defining, one element of the global array. */ #define FMT_INFO kpse_format_info[format] ! /* Call add_suffixes. */ ! #define SUFFIXES(args) add_suffixes(&FMT_INFO.suffix, args, NULL) ! #define ALT_SUFFIXES(args) add_suffixes (&FMT_INFO.alt_suffix, args, NULL) /* Call `init_path', including appending the trailing NULL to the envvar list. Also initialize the fields not needed in setting the path. */ ! #define INIT_FORMAT(text, default_path, envs) \ ! FMT_INFO.type = text; \ init_path (&FMT_INFO, default_path, envs, NULL) *************** *** 293,301 **** const_string, args) { kpse_format_info_type *f = &kpse_format_info[fmt]; ! const_string prog = f->program ? f->program : dflt_prog; /* MakeTeXPK */ ! string PROG = uppercasify (prog); /* MAKETEXPK */ ! string progval = kpse_var_value (PROG); /* ENV/cnf{"MAKETEXPK"} */ /* Doesn't hurt to always set this info. */ f->program = prog; --- 299,307 ---- const_string, args) { kpse_format_info_type *f = &kpse_format_info[fmt]; ! const_string prog = f->program ? f->program : dflt_prog; /* mktexpk */ ! string PROG = uppercasify (prog); /* MKTEXPK */ ! string progval = kpse_var_value (PROG); /* ENV/cnf{"MKTEXPK"} */ /* Doesn't hurt to always set this info. */ f->program = prog; *************** *** 311,318 **** } /* We need this twice, so ... */ ! #define MAKETEXPK_ARGS \ ! "$KPATHSEA_DPI $MAKETEX_BASE_DPI $MAKETEX_MAG $MAKETEX_MODE" /* Initialize everything for FORMAT. */ --- 317,343 ---- } /* We need this twice, so ... */ ! #define MKTEXPK_ARGS \ ! "--mfmode $MAKETEX_MODE --bdpi $MAKETEX_BASE_DPI --mag $MAKETEX_MAG --dpi $KPATHSEA_DPI" ! ! static string ! remove_dbonly P1C(const_string, path) ! { ! string ret = XTALLOC(strlen (path) + 1, char), q=ret; ! const_string p=path; ! boolean new_elt=true; ! ! while (*p) { ! if (new_elt && *p && *p == '!' && *(p+1) == '!') ! p += 2; ! else { ! new_elt = (*p == ENV_SEP); ! *q++ = *p++; ! } ! } ! *q = '\0'; ! return(ret); ! } /* Initialize everything for FORMAT. */ *************** *** 328,475 **** times with token pasting, but it doesn't seem worth it. */ case kpse_gf_format: INIT_FORMAT ("gf", DEFAULT_GFFONTS, GF_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_pk_format: ! init_maketex (format, "MakeTeXPK", MAKETEXPK_ARGS); INIT_FORMAT ("pk", DEFAULT_PKFONTS, PK_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_any_glyph_format: ! init_maketex (format, "MakeTeXPK", MAKETEXPK_ARGS); ! INIT_FORMAT (NULL, DEFAULT_GLYPHFONTS, GLYPH_ENVS); ! FMT_INFO.type = "bitmap font"; FMT_INFO.suffix_search_only = true; break; case kpse_afm_format: ! INIT_FORMAT (".afm", DEFAULT_AFMFONTS, AFM_ENVS); break; case kpse_base_format: ! INIT_FORMAT (".base", DEFAULT_MFBASES, BASE_ENVS); break; case kpse_bib_format: ! INIT_FORMAT (".bib", DEFAULT_BIBINPUTS, BIB_ENVS); break; case kpse_bst_format: ! INIT_FORMAT (".bst", DEFAULT_BSTINPUTS, BST_ENVS); break; case kpse_cnf_format: ! INIT_FORMAT (".cnf", DEFAULT_TEXMFCNF, CNF_ENVS); break; case kpse_db_format: INIT_FORMAT ("ls-R", DEFAULT_TEXMFDBS, DB_ENVS); break; case kpse_fmt_format: ! INIT_FORMAT (".fmt", DEFAULT_TEXFORMATS, FMT_ENVS); break; case kpse_fontmap_format: ! INIT_FORMAT (".map", DEFAULT_TEXFONTMAPS, FONTMAP_ENVS); break; case kpse_mem_format: ! INIT_FORMAT (".mem", DEFAULT_MPMEMS, MEM_ENVS); break; case kpse_mf_format: ! init_maketex (format, "MakeTeXMF", NULL); ! INIT_FORMAT (".mf", DEFAULT_MFINPUTS, MF_ENVS); break; case kpse_mft_format: ! INIT_FORMAT (".mft", DEFAULT_MFTINPUTS, MFT_ENVS); break; case kpse_mfpool_format: ! INIT_FORMAT (".pool", DEFAULT_MFPOOL, MFPOOL_ENVS); break; case kpse_mp_format: ! INIT_FORMAT (".mp", DEFAULT_MPINPUTS, MP_ENVS); break; case kpse_mppool_format: ! INIT_FORMAT (".pool", DEFAULT_MPPOOL, MPPOOL_ENVS); break; case kpse_mpsupport_format: ! INIT_FORMAT (NULL, DEFAULT_MPSUPPORT, MPSUPPORT_ENVS); ! FMT_INFO.type = "MetaPost support"; break; case kpse_ocp_format: ! init_maketex (format, "MakeOmegaOCP", NULL); ! INIT_FORMAT (".ocp", DEFAULT_OCPINPUTS, OCP_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_ofm_format: ! init_maketex (format, "MakeOmegaOFM", NULL); ! INIT_FORMAT (".ofm", DEFAULT_OFMFONTS, OFM_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_opl_format: ! INIT_FORMAT (".opl", DEFAULT_OPLFONTS, OPL_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_otp_format: ! INIT_FORMAT (".otp", DEFAULT_OTPINPUTS, OTP_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_ovf_format: ! INIT_FORMAT (".ovf", DEFAULT_OVFFONTS, OVF_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_ovp_format: ! INIT_FORMAT (".ovp", DEFAULT_OVPFONTS, OVP_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_pict_format: ! INIT_FORMAT (NULL, DEFAULT_TEXINPUTS, PICT_ENVS); ! FMT_INFO.type = "graphic/figure"; ! /* It is conveniently coincidental that this comes before ! kpse_tex_format, since if the user runs kpsewhich --format=eps, ! they'll get kpse_pict_format instead of tex_format. */ #define PICT_SUFFIXES ".eps", ".epsi" ALT_SUFFIXES (PICT_SUFFIXES); break; case kpse_tex_format: ! init_maketex (format, "MakeTeXTeX", NULL); ! INIT_FORMAT (".tex", DEFAULT_TEXINPUTS, TEX_ENVS); ! /* If this list changes, also change tex.ch. */ ! #define TEX_SUFFIXES ".ltx", ".dtx", ".texi", ".texinfo", ".txi", PICT_SUFFIXES ! ALT_SUFFIXES (TEX_SUFFIXES); break; case kpse_tex_ps_header_format: ! INIT_FORMAT (NULL, DEFAULT_TEXPSHEADERS, TEX_PS_HEADER_ENVS); ! FMT_INFO.type = "PostScript header/font"; ! ALT_SUFFIXES (".pro"); break; case kpse_texdoc_format: ! INIT_FORMAT (NULL, DEFAULT_TEXDOCS, TEXDOC_ENVS); ! FMT_INFO.type = "TeX system documentation"; break; case kpse_texpool_format: ! INIT_FORMAT (".pool", DEFAULT_TEXPOOL, TEXPOOL_ENVS); break; case kpse_texsource_format: ! INIT_FORMAT (NULL, DEFAULT_TEXSOURCES, TEXSOURCE_ENVS); ! FMT_INFO.type = "TeX system sources"; ! break; ! case kpse_tfm_format: ! init_maketex (format, "MakeTeXTFM", NULL); ! INIT_FORMAT (".tfm", DEFAULT_TFMFONTS, TFM_ENVS); ! FMT_INFO.suffix_search_only = true; break; case kpse_troff_font_format: ! INIT_FORMAT (NULL, DEFAULT_TRFONTS, TROFF_FONT_ENVS); ! FMT_INFO.type = "Troff fonts"; break; case kpse_type1_format: ! INIT_FORMAT (".pfa", DEFAULT_T1FONTS, TYPE1_ENVS); ! FMT_INFO.type = "type1 fonts"; ! ALT_SUFFIXES (".pfb"); break; case kpse_vf_format: ! INIT_FORMAT (".vf", DEFAULT_VFFONTS, VF_ENVS); FMT_INFO.suffix_search_only = true; break; case kpse_dvips_config_format: ! INIT_FORMAT (NULL, DEFAULT_TEXCONFIG, DVIPS_CONFIG_ENVS); ! FMT_INFO.type = "dvips config"; break; case kpse_ist_format: ! INIT_FORMAT (".ist", DEFAULT_INDEXSTYLE, IST_ENVS); break; default: FATAL1 ("kpse_init_format: Unknown format %d", format); --- 353,565 ---- times with token pasting, but it doesn't seem worth it. */ case kpse_gf_format: INIT_FORMAT ("gf", DEFAULT_GFFONTS, GF_ENVS); + SUFFIXES ("gf"); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_pk_format: ! init_maketex (format, "mktexpk", MKTEXPK_ARGS); INIT_FORMAT ("pk", DEFAULT_PKFONTS, PK_ENVS); + SUFFIXES ("pk"); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_any_glyph_format: ! init_maketex (format, "mktexpk", MKTEXPK_ARGS); ! INIT_FORMAT ("bitmap font", DEFAULT_GLYPHFONTS, GLYPH_ENVS); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; + break; + case kpse_tfm_format: + /* Must come before kpse_ofm_format. */ + init_maketex (format, "mktextfm", NULL); + INIT_FORMAT ("tfm", DEFAULT_TFMFONTS, TFM_ENVS); + SUFFIXES (".tfm"); + FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_afm_format: ! INIT_FORMAT ("afm", DEFAULT_AFMFONTS, AFM_ENVS); ! SUFFIXES (".afm"); break; case kpse_base_format: ! INIT_FORMAT ("base", DEFAULT_MFBASES, BASE_ENVS); ! SUFFIXES (".base"); ! FMT_INFO.binmode = true; break; case kpse_bib_format: ! INIT_FORMAT ("bib", DEFAULT_BIBINPUTS, BIB_ENVS); ! SUFFIXES (".bib"); break; case kpse_bst_format: ! INIT_FORMAT ("bst", DEFAULT_BSTINPUTS, BST_ENVS); ! SUFFIXES (".bst"); break; case kpse_cnf_format: ! INIT_FORMAT ("cnf", DEFAULT_TEXMFCNF, CNF_ENVS); ! SUFFIXES (".cnf"); break; case kpse_db_format: INIT_FORMAT ("ls-R", DEFAULT_TEXMFDBS, DB_ENVS); + SUFFIXES ("ls-R"); + FMT_INFO.path = remove_dbonly (FMT_INFO.path); break; case kpse_fmt_format: ! INIT_FORMAT ("fmt", DEFAULT_TEXFORMATS, FMT_ENVS); ! SUFFIXES (".fmt"); ! #define FMT_SUFFIXES ".efmt", ".efm" ! ALT_SUFFIXES (FMT_SUFFIXES); ! FMT_INFO.binmode = true; break; case kpse_fontmap_format: ! INIT_FORMAT ("map", DEFAULT_TEXFONTMAPS, FONTMAP_ENVS); ! SUFFIXES (".map"); break; case kpse_mem_format: ! INIT_FORMAT ("mem", DEFAULT_MPMEMS, MEM_ENVS); ! SUFFIXES (".mem"); ! FMT_INFO.binmode = true; break; case kpse_mf_format: ! init_maketex (format, "mktexmf", NULL); ! INIT_FORMAT ("mf", DEFAULT_MFINPUTS, MF_ENVS); ! SUFFIXES (".mf"); break; case kpse_mft_format: ! INIT_FORMAT ("mft", DEFAULT_MFTINPUTS, MFT_ENVS); ! SUFFIXES (".mft"); break; case kpse_mfpool_format: ! INIT_FORMAT ("mfpool", DEFAULT_MFPOOL, MFPOOL_ENVS); ! SUFFIXES (".pool"); break; case kpse_mp_format: ! INIT_FORMAT ("mp", DEFAULT_MPINPUTS, MP_ENVS); ! SUFFIXES (".mp"); break; case kpse_mppool_format: ! INIT_FORMAT ("mppool", DEFAULT_MPPOOL, MPPOOL_ENVS); ! SUFFIXES (".pool"); break; case kpse_mpsupport_format: ! INIT_FORMAT ("MetaPost support", DEFAULT_MPSUPPORT, MPSUPPORT_ENVS); break; case kpse_ocp_format: ! init_maketex (format, "mkocp", NULL); ! INIT_FORMAT ("ocp", DEFAULT_OCPINPUTS, OCP_ENVS); ! SUFFIXES (".ocp"); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_ofm_format: ! init_maketex (format, "mkofm", NULL); ! INIT_FORMAT ("ofm", DEFAULT_OFMFONTS, OFM_ENVS); ! #define OFM_SUFFIXES ".ofm", ".tfm" ! SUFFIXES (OFM_SUFFIXES); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_opl_format: ! INIT_FORMAT ("opl", DEFAULT_OPLFONTS, OPL_ENVS); ! SUFFIXES (".opl"); FMT_INFO.suffix_search_only = true; break; case kpse_otp_format: ! INIT_FORMAT ("otp", DEFAULT_OTPINPUTS, OTP_ENVS); ! SUFFIXES (".otp"); FMT_INFO.suffix_search_only = true; break; case kpse_ovf_format: ! INIT_FORMAT ("ovf", DEFAULT_OVFFONTS, OVF_ENVS); ! SUFFIXES (".ovf"); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_ovp_format: ! INIT_FORMAT ("ovp", DEFAULT_OVPFONTS, OVP_ENVS); ! SUFFIXES (".ovp"); FMT_INFO.suffix_search_only = true; break; case kpse_pict_format: ! INIT_FORMAT ("graphic/figure", DEFAULT_TEXINPUTS, PICT_ENVS); #define PICT_SUFFIXES ".eps", ".epsi" ALT_SUFFIXES (PICT_SUFFIXES); + FMT_INFO.binmode = true; break; case kpse_tex_format: ! init_maketex (format, "mktextex", NULL); ! INIT_FORMAT ("tex", DEFAULT_TEXINPUTS, TEX_ENVS); ! SUFFIXES (".tex"); ! /* We don't maintain a list of alternate TeX suffixes. Such a list ! could never be complete. */ break; case kpse_tex_ps_header_format: ! INIT_FORMAT ("PostScript header", DEFAULT_TEXPSHEADERS, ! TEX_PS_HEADER_ENVS); ! /* Unfortunately, dvipsk uses this format for type1 fonts. */ ! #define TEXPSHEADER_SUFFIXES ".pro", ".enc" ! ALT_SUFFIXES (TEXPSHEADER_SUFFIXES); ! FMT_INFO.binmode = true; break; case kpse_texdoc_format: ! INIT_FORMAT ("TeX system documentation", DEFAULT_TEXDOCS, TEXDOC_ENVS); break; case kpse_texpool_format: ! INIT_FORMAT ("texpool", DEFAULT_TEXPOOL, TEXPOOL_ENVS); ! SUFFIXES (".pool"); break; case kpse_texsource_format: ! INIT_FORMAT ("TeX system sources", DEFAULT_TEXSOURCES, TEXSOURCE_ENVS); break; case kpse_troff_font_format: ! INIT_FORMAT ("Troff fonts", DEFAULT_TRFONTS, TROFF_FONT_ENVS); ! FMT_INFO.binmode = true; break; case kpse_type1_format: ! INIT_FORMAT ("type1 fonts", DEFAULT_T1FONTS, TYPE1_ENVS); ! #define TYPE1_SUFFIXES ".pfa", ".pfb" ! SUFFIXES (TYPE1_SUFFIXES); ! FMT_INFO.binmode = true; break; case kpse_vf_format: ! INIT_FORMAT ("vf", DEFAULT_VFFONTS, VF_ENVS); ! SUFFIXES (".vf"); FMT_INFO.suffix_search_only = true; + FMT_INFO.binmode = true; break; case kpse_dvips_config_format: ! INIT_FORMAT ("dvips config", DEFAULT_TEXCONFIG, DVIPS_CONFIG_ENVS); break; case kpse_ist_format: ! INIT_FORMAT ("ist", DEFAULT_INDEXSTYLE, IST_ENVS); ! SUFFIXES (".ist"); ! break; ! case kpse_truetype_format: ! INIT_FORMAT ("truetype fonts", DEFAULT_TTFONTS, TRUETYPE_ENVS); ! #define TRUETYPE_SUFFIXES ".ttf", ".ttc" ! SUFFIXES (TRUETYPE_SUFFIXES); ! FMT_INFO.suffix_search_only = true; ! FMT_INFO.binmode = true; ! break; ! case kpse_type42_format: ! INIT_FORMAT ("type42 fonts", DEFAULT_T42FONTS, TYPE42_ENVS); ! FMT_INFO.binmode = true; ! break; ! case kpse_web2c_format: ! INIT_FORMAT ("web2c files", DEFAULT_WEB2C, WEB2C_ENVS); ! break; ! case kpse_program_text_format: ! INIT_FORMAT ("other text files", ! concatn (".:", DEFAULT_TEXMF, "/", kpse_program_name, "//", ! NULL), ! concat (uppercasify (kpse_program_name), "INPUTS")); ! break; ! case kpse_program_binary_format: ! INIT_FORMAT ("other binary files", ! concatn (".:", DEFAULT_TEXMF, "/", kpse_program_name, "//", ! NULL), ! concat (uppercasify (kpse_program_name), "INPUTS")); ! FMT_INFO.binmode = true; break; default: FATAL1 ("kpse_init_format: Unknown format %d", format); *************** *** 489,495 **** DEBUGF1 (" application config file path = %s\n", MAYBE (client_path)); DEBUGF1 (" texmf.cnf path = %s\n", MAYBE (cnf_path)); DEBUGF1 (" compile-time path = %s\n", MAYBE (default_path)); ! DEBUGF1 (" default suffix = %s\n", MAYBE (suffix)); DEBUGF (" other suffixes ="); if (FMT_INFO.alt_suffix) { const_string *alt; --- 579,594 ---- DEBUGF1 (" application config file path = %s\n", MAYBE (client_path)); DEBUGF1 (" texmf.cnf path = %s\n", MAYBE (cnf_path)); DEBUGF1 (" compile-time path = %s\n", MAYBE (default_path)); ! DEBUGF (" default suffixes ="); ! if (FMT_INFO.suffix) { ! const_string *ext; ! for (ext = FMT_INFO.suffix; ext && *ext; ext++) { ! fprintf (stderr, " %s", *ext); ! } ! putc ('\n', stderr); ! } else { ! fputs (" (none)\n", stderr); ! } DEBUGF (" other suffixes ="); if (FMT_INFO.alt_suffix) { const_string *alt; *************** *** 521,614 **** kpse_find_file P3C(const_string, name, kpse_file_format_type, format, boolean, must_exist) { ! const_string suffix; ! const_string *alt; unsigned name_len = 0; boolean name_has_suffix_already = false; string ret = NULL; ! /* A null or empty NAME is surely a mistake. */ ! assert (name && *name); if (FMT_INFO.path == NULL) kpse_init_format (format); /* Does NAME already end in a possible suffix? */ ! suffix = FMT_INFO.suffix; ! if (suffix) { ! /* Avoid the strlen's entirely if no SUFFIX. */ ! unsigned suffix_len = strlen (suffix); ! name_len = strlen (name); ! name_has_suffix_already = (name_len > suffix_len ! && FILESTRCASEEQ (suffix, name + name_len - suffix_len)); ! } ! for (alt = FMT_INFO.alt_suffix; !name_has_suffix_already && alt && *alt; ! alt++) { ! unsigned suffix_len = strlen (*alt); ! if (!name_len) name_len = strlen (name); ! name_has_suffix_already = (name_len > suffix_len ! && FILESTRCASEEQ (*alt, name + name_len - suffix_len)); } ! ! /* Search #1: NAME has a suffix (any suffix). For example, foo.sty, ! foo.eps, foo.tex. Since multiple suffixes (foo.bar.tex) are ! relatively rare, first try NAME. (This loses ! if given `Times-Roman.tfm', but is ok given `Times-Roman'.) */ ! if (name_has_suffix_already || find_suffix (name)) { ! /* Search for original NAME, since it has a suffix. ! ! If we will search again with `suffix', avoid pounding the disk. ! Really should also avoid disk search until after we check the ! fontmaps, but ... lazy. Sorry. */ ! boolean must = must_exist && FMT_INFO.suffix_search_only ! && (!suffix || name_has_suffix_already); ! ret = kpse_path_search (FMT_INFO.path, name, must); ! } ! ! /* Search #2: If we have `foo' or `foo.bar', and the above search ! failed, try `foo.tex' or `foo.bar.tex' now (but don't try ! `foo.tex.tex'. This is so we find the `foo.tex' before the ! executable `foo'. But, if we might search yet again, still don't ! pound the disk. */ ! if (!ret && suffix && !name_has_suffix_already) { ! /* Append `.suffix' and search for it. */ ! string name_with_suffix = concat (name, suffix); ! ret = kpse_path_search (FMT_INFO.path, name_with_suffix, ! FMT_INFO.suffix_search_only ? must_exist : false); ! free (name_with_suffix); ! } ! ! /* Search #3 (fonts only): Look for aliases for NAME. I don't ! think this is necessary for VF files, since only names people might ! mention in TeX documents -- i.e., TFM's -- need be aliased. */ ! if (!ret && (format == kpse_tfm_format || format == kpse_gf_format ! || format == kpse_pk_format)) { ! string mapped_name; ! string *mapped_names; ! /* Include a suffix in what we pass to `kpse_fontmap_lookup'; otherwise, ! when we are searching for `circle10', for example, we'll just get ! back `lcircle10', and that basename won't match anything in ls-R. */ ! string name_with_suffix = name_has_suffix_already ? (string) name ! : concat (name, suffix); ! mapped_names = kpse_fontmap_lookup (name_with_suffix); ! while (mapped_names && (mapped_name = *mapped_names++) && !ret) { ! ret = kpse_path_search (FMT_INFO.path, mapped_name, false); } - if (!name_with_suffix) - free (name_with_suffix); } ! /* Search #4 (sort of): Call MakeTeXTFM or whatever to create a ! missing file. */ ! if (!ret && must_exist) { ! ret = kpse_make_tex (format, name); } ! /* Search #5: If we have `foo', look for `foo' (if non-suffix searches ! are enabled for this FORMAT). This is the last-chance search, so ! never disable the caller's MUST_EXIST. */ if (!ret && (name_has_suffix_already || !FMT_INFO.suffix_search_only)) { ! ret = kpse_path_search (FMT_INFO.path, name, must_exist); } return ret; --- 620,705 ---- kpse_find_file P3C(const_string, name, kpse_file_format_type, format, boolean, must_exist) { ! const_string *ext; unsigned name_len = 0; boolean name_has_suffix_already = false; + string mapped_name; + string *mapped_names; + boolean use_fontmaps = (format == kpse_tfm_format + || format == kpse_gf_format + || format == kpse_pk_format + || format == kpse_ofm_format); string ret = NULL; ! /* NAME being NULL is a programming bug somewhere. NAME can be empty, ! though; this happens with constructs like `\input\relax'. */ ! assert (name); if (FMT_INFO.path == NULL) kpse_init_format (format); /* Does NAME already end in a possible suffix? */ ! name_len = strlen (name); ! if (FMT_INFO.suffix) { ! for (ext = FMT_INFO.suffix; !name_has_suffix_already && *ext; ext++) { ! unsigned suffix_len = strlen (*ext); ! name_has_suffix_already = (name_len > suffix_len ! && FILESTRCASEEQ (*ext, name + name_len - suffix_len)); ! } } ! if (!name_has_suffix_already && FMT_INFO.alt_suffix) { ! for (ext = FMT_INFO.alt_suffix; !name_has_suffix_already && *ext; ext++) { ! unsigned suffix_len = strlen (*ext); ! name_has_suffix_already = (name_len > suffix_len ! && FILESTRCASEEQ (*ext, name + name_len - suffix_len)); } } ! /* Search #1: NAME doesn't have a suffix which is equal to a "standard" ! suffix. For example, foo.bar, but not foo.tex. We look for the ! name with the standard suffixes appended. */ ! if (!name_has_suffix_already && FMT_INFO.suffix) { ! /* Append a suffix and search for it. Don't pound the disk yet. */ ! for (ext = FMT_INFO.suffix; !ret && *ext; ext++) { ! string name_with_suffix = concat (name, *ext); ! ret = kpse_path_search (FMT_INFO.path, name_with_suffix, false); ! if (!ret && use_fontmaps) { ! mapped_names = kpse_fontmap_lookup (name_with_suffix); ! while (mapped_names && (mapped_name = *mapped_names++) && !ret) ! ret = kpse_path_search (FMT_INFO.path, mapped_name, false); ! } ! free (name_with_suffix); ! } ! /* If we only do suffix searches, and are instructed to pound the disk, ! do so now. We don't pound the disk for aliases...perhaps we should? */ ! if (!ret && FMT_INFO.suffix_search_only && must_exist) { ! for (ext = FMT_INFO.suffix; !ret && *ext; ext++) { ! string name_with_suffix = concat (name, *ext); ! ret = kpse_path_search (FMT_INFO.path, name_with_suffix, true); ! free (name_with_suffix); ! } ! } } ! /* Search #2: Just look for the name we've been given, provided non-suffix ! searches are allowed or the name already includes a suffix. */ if (!ret && (name_has_suffix_already || !FMT_INFO.suffix_search_only)) { ! ret = kpse_path_search (FMT_INFO.path, name, false); ! if (!ret && use_fontmaps) { ! mapped_names = kpse_fontmap_lookup (name); ! while (mapped_names && (mapped_name = *mapped_names++) && !ret) ! ret = kpse_path_search (FMT_INFO.path, mapped_name, false); ! } ! /* We don't pound the disk for aliases...perhaps we should? */ ! if (!ret && must_exist) { ! ret = kpse_path_search (FMT_INFO.path, name, true); ! } ! } ! ! /* Search #3 (sort of): Call mktextfm or whatever to create a ! missing file. */ ! if (!ret && must_exist) { ! ret = kpse_make_tex (format, name); } return ret; *************** *** 621,633 **** kpse_open_file P2C(const_string, name, kpse_file_format_type, type) { string fullname = kpse_find_file (name, type, true); ! const_string mode = type == kpse_gf_format ! || type == kpse_ocp_format ! || type == kpse_ofm_format ! || type == kpse_ovf_format ! || type == kpse_tfm_format ! || type == kpse_vf_format ! ? FOPEN_RBIN_MODE : FOPEN_R_MODE; FILE *f = fullname ? fopen (fullname, mode) : NULL; if (!f) { if (fullname) { --- 712,720 ---- kpse_open_file P2C(const_string, name, kpse_file_format_type, type) { string fullname = kpse_find_file (name, type, true); ! const_string mode = kpse_format_info[type].binmode ! ? FOPEN_RBIN_MODE ! : FOPEN_R_MODE; FILE *f = fullname ? fopen (fullname, mode) : NULL; if (!f) { if (fullname) { *************** *** 639,642 **** --- 726,767 ---- } return f; + } + + /* When using the %& construct, we'd like to use the paths for + that format, rather than those for the name we were called with. + Of course this happens after various initializations have been + performed, so we have this function to force the issue. Note that + the paths for kpse_cnf_format and kpse_db_format are not cleared. + + This function is defined here, and not in progname.c, because it + need kpse_format_info, and would cause all of tex-file to be pulled + in by programs that do not need it. */ + void + kpse_reset_program_name P1C(const_string, progname) + { + int i; + + /* It is a fatal error for either of these to be NULL. */ + assert (progname && kpse_program_name); + /* Do nothing if the name is unchanged. */ + if (STREQ(kpse_program_name, progname)) + return; + + free (kpse_program_name); + kpse_program_name = xstrdup (progname); + + /* Clear paths -- do we want the db path to be cleared? */ + for (i = 0; i != kpse_last_format; ++i) { + /* Do not erase the cnf of db paths. This means that the filename + database is not rebuilt, nor are different configuration files + searched. The alternative is to tolerate a memory leak of up + to 100k if this function is called. */ + if (i == kpse_cnf_format || i == kpse_db_format) + continue; + if (kpse_format_info[i].path != NULL) { + free ((string)kpse_format_info[i].path); + kpse_format_info[i].path = NULL; + } + } } diff -cNr octave-2.0.11/kpathsea/tex-file.h octave-2.0.12/kpathsea/tex-file.h *** octave-2.0.11/kpathsea/tex-file.h Sat Dec 14 13:45:18 1996 --- octave-2.0.12/kpathsea/tex-file.h Thu Feb 19 02:34:14 1998 *************** *** 49,54 **** --- 49,55 ---- kpse_gf_format, kpse_pk_format, kpse_any_glyph_format, /* ``any'' meaning anything above */ + kpse_tfm_format, kpse_afm_format, kpse_base_format, kpse_bib_format, *************** *** 77,87 **** kpse_texsource_format, kpse_tex_ps_header_format, kpse_troff_font_format, - kpse_tfm_format, kpse_type1_format, kpse_vf_format, kpse_dvips_config_format, kpse_ist_format, kpse_last_format /* one past last index */ } kpse_file_format_type; --- 78,92 ---- kpse_texsource_format, kpse_tex_ps_header_format, kpse_troff_font_format, kpse_type1_format, kpse_vf_format, kpse_dvips_config_format, kpse_ist_format, + kpse_truetype_format, + kpse_type42_format, + kpse_web2c_format, + kpse_program_text_format, + kpse_program_binary_format, kpse_last_format /* one past last index */ } kpse_file_format_type; *************** *** 96,102 **** kpse_src_client_cnf, /* application config file, e.g., config.ps */ kpse_src_env, /* environment variable */ kpse_src_x, /* X Window System resource */ ! kpse_src_cmdline, /* command-line option */ } kpse_src_type; --- 101,107 ---- kpse_src_client_cnf, /* application config file, e.g., config.ps */ kpse_src_env, /* environment variable */ kpse_src_x, /* X Window System resource */ ! kpse_src_cmdline /* command-line option */ } kpse_src_type; *************** *** 117,129 **** const_string client_path; /* E.g., from dvips's config.ps. */ const_string cnf_path; /* From texmf.cnf. */ const_string default_path; /* If all else fails. */ ! const_string suffix; /* For kpse_find_file to check for/append. */ const_string *alt_suffix; /* More suffixes to check for. */ boolean suffix_search_only; /* Only search with a suffix? */ ! const_string program; /* ``MakeTeXPK'', etc. */ const_string program_args; /* Args to `program'. */ boolean program_enabled_p; /* Invoke `program'? */ kpse_src_type program_enable_level; /* Who said to invoke `program'. */ } kpse_format_info_type; /* The sole variable of that type, indexed by `kpse_file_format_type'. --- 122,135 ---- const_string client_path; /* E.g., from dvips's config.ps. */ const_string cnf_path; /* From texmf.cnf. */ const_string default_path; /* If all else fails. */ ! const_string *suffix; /* For kpse_find_file to check for/append. */ const_string *alt_suffix; /* More suffixes to check for. */ boolean suffix_search_only; /* Only search with a suffix? */ ! const_string program; /* ``mktexpk'', etc. */ const_string program_args; /* Args to `program'. */ boolean program_enabled_p; /* Invoke `program'? */ kpse_src_type program_enable_level; /* Who said to invoke `program'. */ + boolean binmode; /* The files must be opened in binary mode. */ } kpse_format_info_type; /* The sole variable of that type, indexed by `kpse_file_format_type'. *************** *** 156,168 **** --- 162,182 ---- #define kpse_find_pict(name) kpse_find_file (name, kpse_pict_format, true) #define kpse_find_tex(name) kpse_find_file (name, kpse_tex_format, true) #define kpse_find_tfm(name) kpse_find_file (name, kpse_tfm_format, true) + #define kpse_find_ofm(name) kpse_find_file (name, kpse_ofm_format, true) /* The `false' is correct for DVI translators, which should clearly not require vf files for every font (e.g., cmr10.vf). But it's wrong for VF translators, such as vftovp. */ #define kpse_find_vf(name) kpse_find_file (name, kpse_vf_format, false) + #define kpse_find_ovf(name) kpse_find_file (name, kpse_ovf_format, false) /* Don't just look up the name, actually open the file. */ extern FILE *kpse_open_file P2H(const_string, kpse_file_format_type); + + /* This function is used to set kpse_program_name (from progname.c) to + a different value. It will clear the path searching information, to + ensure that the search paths are appropriate to the new name. */ + + extern void kpse_reset_program_name P1H(const_string progname); #endif /* not KPATHSEA_TEX_FILE_H */ diff -cNr octave-2.0.11/kpathsea/tex-glyph.c octave-2.0.12/kpathsea/tex-glyph.c *** octave-2.0.11/kpathsea/tex-glyph.c Mon Nov 11 15:22:09 1996 --- octave-2.0.12/kpathsea/tex-glyph.c Mon Dec 1 15:05:46 1997 *************** *** 47,57 **** boolean must_exist; string ret = NULL; const_string path = kpse_format_info[format].path; if (!path) path = kpse_init_format (format); /* Set the suffix on the name we'll be searching for. */ ! xputenv ("KPATHSEA_FORMAT", kpse_format_info[format].suffix); /* OK, the limits on this for loop are a little hokey, but it saves having to repeat the body. We want to do it once with `must_exist' --- 47,60 ---- boolean must_exist; string ret = NULL; const_string path = kpse_format_info[format].path; + const_string *sfx; if (!path) path = kpse_init_format (format); /* Set the suffix on the name we'll be searching for. */ ! sfx = kpse_format_info[format].suffix; ! if (sfx && *sfx) ! xputenv ("KPATHSEA_FORMAT", *sfx); /* OK, the limits on this for loop are a little hokey, but it saves having to repeat the body. We want to do it once with `must_exist' *************** *** 143,149 **** that we can find, returning the filename found and GLYPH_FILE. Also set *FONTNAME_PTR to the real name corresponding to the alias found or the first alias, if that is not an alias itself. (This allows ! MakeTeXPK to only deal with real names.) */ static string try_fontmap P4C(string *, fontname_ptr, unsigned, dpi, --- 146,152 ---- that we can find, returning the filename found and GLYPH_FILE. Also set *FONTNAME_PTR to the real name corresponding to the alias found or the first alias, if that is not an alias itself. (This allows ! mktexpk to only deal with real names.) */ static string try_fontmap P4C(string *, fontname_ptr, unsigned, dpi, *************** *** 267,273 **** source = kpse_glyph_source_alias; ret = try_fontmap (&fontname, dpi, format, glyph_file); ! /* If not an alias, try creating it on the fly with MakeTeXPK, unless FONTNAME is absolute or explicitly relative. */ if (!ret && !kpse_absolute_p (fontname, true)) { source = kpse_glyph_source_maketex; --- 270,276 ---- source = kpse_glyph_source_alias; ret = try_fontmap (&fontname, dpi, format, glyph_file); ! /* If not an alias, try creating it on the fly with mktexpk, unless FONTNAME is absolute or explicitly relative. */ if (!ret && !kpse_absolute_p (fontname, true)) { source = kpse_glyph_source_maketex; *************** *** 276,282 **** ret = kpse_make_tex (format, fontname); } ! /* If MakeTeX... succeeded, set return struct. Doesn't make sense for `kpse_make_tex' to set it, since it can only succeed or fail, unlike the other routines. */ if (ret) { --- 279,285 ---- ret = kpse_make_tex (format, fontname); } ! /* If mktex... succeeded, set return struct. Doesn't make sense for `kpse_make_tex' to set it, since it can only succeed or fail, unlike the other routines. */ if (ret) { *************** *** 284,290 **** KPSE_GLYPH_FILE_NAME (*glyph_file) = fontname; } ! /* If MakeTeX... failed, try any fallback resolutions. */ else { if (kpse_fallback_resolutions) ret = try_fallback_resolutions (fontname, dpi, format, glyph_file); --- 287,293 ---- KPSE_GLYPH_FILE_NAME (*glyph_file) = fontname; } ! /* If mktex... failed, try any fallback resolutions. */ else { if (kpse_fallback_resolutions) ret = try_fallback_resolutions (fontname, dpi, format, glyph_file); diff -cNr octave-2.0.11/kpathsea/tex-hush.c octave-2.0.12/kpathsea/tex-hush.c *** octave-2.0.11/kpathsea/tex-hush.c Fri Mar 8 10:35:17 1996 --- octave-2.0.12/kpathsea/tex-hush.c Wed Jan 21 17:00:24 1998 *************** *** 27,36 **** { string h; string hush = kpse_var_value ("TEX_HUSH"); ! for (h = kpse_path_element (hush); h; h = kpse_path_element (NULL)) { ! /* Don't do anything special with empty elements. */ ! if (STREQ (hush, what) || STREQ (hush, "all")) ! return true; } return false; --- 27,38 ---- { string h; string hush = kpse_var_value ("TEX_HUSH"); ! if (hush) { ! for (h = kpse_path_element (hush); h; h = kpse_path_element (NULL)) { ! /* Don't do anything special with empty elements. */ ! if (STREQ (h, what) || STREQ (h, "all")) ! return true; ! } } return false; diff -cNr octave-2.0.11/kpathsea/tex-make.c octave-2.0.12/kpathsea/tex-make.c *** octave-2.0.11/kpathsea/tex-make.c Sat Feb 1 16:06:11 1997 --- octave-2.0.12/kpathsea/tex-make.c Tue Mar 3 07:12:33 1998 *************** *** 54,60 **** up DPI, but may as well be safe, and also get the magstep number. */ (void) kpse_magstep_fix (dpi, bdpi, &m); - /* Have to do something different for DOS? */ if (m == 0) sprintf (q, "%d+%d/%d", dpi / bdpi, dpi % bdpi, bdpi); else --- 54,59 ---- *************** *** 73,79 **** xputenv ("MAKETEX_MAG", q); } ! /* This MakeTeX... program was disabled, or the script failed. If this was a font creation (according to FORMAT), append CMD to a file missfont.log in the current directory. */ --- 72,78 ---- xputenv ("MAKETEX_MAG", q); } ! /* This mktex... program was disabled, or the script failed. If this was a font creation (according to FORMAT), append CMD to a file missfont.log in the current directory. */ *************** *** 129,135 **** unsigned i; FILE *f; string cmd = xstrdup (passed_cmd); ! /* If the user snuck `backquotes` or $(command) substitutions into the name, foil them. */ for (i = 0; i < strlen (cmd); i++) { --- 128,143 ---- unsigned i; FILE *f; string cmd = xstrdup (passed_cmd); ! ! #if defined (MSDOS) || defined (WIN32) ! /* For discarding stderr. This is so we don't require an MSDOS user ! to istall a unixy shell (see kpse_make_tex below): they might ! devise their own ingenious ways of running mktex... even though ! they don't have such a shell. */ ! int temp_stderr = -1; ! int save_stderr = -1; ! #endif ! /* If the user snuck `backquotes` or $(command) substitutions into the name, foil them. */ for (i = 0; i < strlen (cmd); i++) { *************** *** 144,149 **** --- 152,169 ---- if (!kpse_make_tex_discard_errors) { fprintf (stderr, "kpathsea: Running %s\n", cmd); } + #if defined (MSDOS) || defined (WIN32) + else { + temp_stderr = open ("NUL", O_WRONLY); + if (temp_stderr >= 0) { + save_stderr = dup (2); + if (save_stderr >= 0) + dup2 (temp_stderr, 2); + } + /* Else they lose: the errors WILL be shown. However, open/dup + aren't supposed to fail in this case, it's just my paranoia. */ + } + #endif /* Run the script. The Amiga has a different interface. */ #ifdef AMIGA *************** *** 151,156 **** --- 171,188 ---- #else /* not AMIGA */ f = popen (cmd, FOPEN_R_MODE); + #if defined (MSDOS) || defined (WIN32) + if (kpse_make_tex_discard_errors) { + /* Close /dev/null and revert stderr. */ + if (save_stderr >= 0) { + dup2 (save_stderr, 2); + close (save_stderr); + } + if (temp_stderr >= 0) + close (temp_stderr); + } + #endif + if (f) { int c; string fn; /* The final filename. */ *************** *** 168,174 **** with ECHILD (No child processes), maybe only if we're being run by lpd. So don't make this a fatal error. */ if (pclose (f) == -1) { ! perror ("pclose(MakeTeXPK)"); WARNING ("kpathsea: This is probably the Linux pclose bug; continuing"); } --- 200,206 ---- with ECHILD (No child processes), maybe only if we're being run by lpd. So don't make this a fatal error. */ if (pclose (f) == -1) { ! perror ("pclose(mktexpk)"); WARNING ("kpathsea: This is probably the Linux pclose bug; continuing"); } *************** *** 185,191 **** what it output. */ ret = len == 1 ? NULL : kpse_readable_file (fn); if (!ret && len > 1) { ! WARNING1 ("kpathsea: MakeTeXPK output `%s' instead of a filename", fn); } /* Free the name if we're not returning it. */ --- 217,223 ---- what it output. */ ret = len == 1 ? NULL : kpse_readable_file (fn); if (!ret && len > 1) { ! WARNING1 ("kpathsea: mktexpk output `%s' instead of a filename", fn); } /* Free the name if we're not returning it. */ *************** *** 227,266 **** string args, cmd; const_string prog = spec.program; const_string arg_spec = spec.program_args; - string mode = getenv ("MAKETEX_MODE"); - boolean unset_mode = false; if (format <= kpse_any_glyph_format) set_maketex_mag (); ! /* Here's an awful kludge: if the mode is `/', unset it for the call ! and then reset it. We could ignore a mode of / in MakeTeXPK, but ! then everyone's MakeTeXPK would have to handle that special case, ! which seems too onerous. `kpse_prog_init' sets it to this in the ! first place when no mode is otherwise specified; this is so when ! the user defines a resolution, they don't also have to specify a ! mode; instead, MakeTeXPK's guesses will take over. They use / ! for the value because then when it is expanded as part of the ! PKFONTS et al. path values, we'll wind up searching all the pk ! directories. We put $MAKETEX_MODE in the path values in the ! first place so that sites with two different devices with the ! same resolution can find the right fonts; but such sites are ! uncommon, so they shouldn't make things harder for everyone else. */ ! if (mode && STREQ (mode, DIR_SEP_STRING)) { ! xputenv ("MAKETEX_MODE", ""); ! unset_mode = true; ! } args = arg_spec ? kpse_var_expand (arg_spec) : (string) ""; - if (unset_mode) - xputenv ("MAKETEX_MODE", DIR_SEP_STRING); /* The command is the program name plus the arguments. */ ! cmd = concatn (prog, " ", base, " ", args, NULL); /* Only way to discard errors is redirect stderr inside another ! shell; otherwise, if the MakeTeX... script doesn't exist, we ! will see the `sh: MakeTeX...: not found' error. No point in doing this if we're not actually going to run anything. */ if (kpse_make_tex_discard_errors) { string old_cmd = cmd; #ifdef OS2 --- 259,293 ---- string args, cmd; const_string prog = spec.program; const_string arg_spec = spec.program_args; if (format <= kpse_any_glyph_format) set_maketex_mag (); ! /* Here's an awful kludge: if the mode is `/', mktexpk recognizes ! it as a special case. `kpse_prog_init' sets it to this in the ! first place when no mode is otherwise specified; this is so ! when the user defines a resolution, they don't also have to ! specify a mode; instead, mktexpk's guesses will take over. ! They use / for the value because then when it is expanded as ! part of the PKFONTS et al. path values, we'll wind up searching ! all the pk directories. We put $MAKETEX_MODE in the path ! values in the first place so that sites with two different ! devices with the same resolution can find the right fonts; but ! such sites are uncommon, so they shouldn't make things harder ! for everyone else. */ args = arg_spec ? kpse_var_expand (arg_spec) : (string) ""; /* The command is the program name plus the arguments. */ ! cmd = concatn (prog, " ", args, " ", base, NULL); /* Only way to discard errors is redirect stderr inside another ! shell; otherwise, if the mktex... script doesn't exist, we ! will see the `sh: mktex...: not found' error. No point in doing this if we're not actually going to run anything. */ + #if !defined(MSDOS) && !defined(WIN32) && !defined(AMIGA) + /* We don't want to require that a Unix-like shell be installed + on MS-DOS or WIN32 systems, so we will redirect stderr by hand + (in maketex). */ if (kpse_make_tex_discard_errors) { string old_cmd = cmd; #ifdef OS2 *************** *** 270,282 **** #endif free (old_cmd); } ! ret = maketex (format, cmd); free (cmd); if (*args) free (args); ! } return ret; } --- 297,310 ---- #endif free (old_cmd); } ! #endif ! ret = maketex (format, cmd); free (cmd); if (*args) free (args); ! } return ret; } *************** *** 298,309 **** int main () { ! xputenv ("KPATHSEA_DPI", "781"); /* call MakeTeXPK */ ! xputenv ("MAKETEX_BASE_DPI", "300"); /* call MakeTeXPK */ KPSE_MAKE_SPEC_ENABLED (kpse_make_specs[kpse_pk_format]) = true; test_make_tex (kpse_pk_format, "cmr10"); ! /* Fail with MakeTeXTFM. */ KPSE_MAKE_SPEC_ENABLED (kpse_make_specs[kpse_tfm_format]) = true; test_make_tex (kpse_tfm_format, "foozler99"); --- 326,337 ---- int main () { ! xputenv ("KPATHSEA_DPI", "781"); /* call mktexpk */ ! xputenv ("MAKETEX_BASE_DPI", "300"); /* call mktexpk */ KPSE_MAKE_SPEC_ENABLED (kpse_make_specs[kpse_pk_format]) = true; test_make_tex (kpse_pk_format, "cmr10"); ! /* Fail with mktextfm. */ KPSE_MAKE_SPEC_ENABLED (kpse_make_specs[kpse_tfm_format]) = true; test_make_tex (kpse_tfm_format, "foozler99"); diff -cNr octave-2.0.11/kpathsea/tex-make.h octave-2.0.12/kpathsea/tex-make.h *** octave-2.0.11/kpathsea/tex-make.h Sun Dec 8 16:15:22 1996 --- octave-2.0.12/kpathsea/tex-make.h Sun Nov 30 06:29:51 1997 *************** *** 24,37 **** #include ! /* If true, throw away standard error from the MakeTeX... scripts. (Standard output is the filename, so we never throw that away.) */ extern DllImport boolean kpse_make_tex_discard_errors; /* Run a program to create a file named by BASE_FILE in format FORMAT. Return the full filename to it, or NULL. Any other information about ! the file is passed through environment variables. See the MakeTeXPK stuff in `tex-make.c' for an example. */ extern string kpse_make_tex P2H(kpse_file_format_type format, const_string base_file); --- 24,37 ---- #include ! /* If true, throw away standard error from the mktex... scripts. (Standard output is the filename, so we never throw that away.) */ extern DllImport boolean kpse_make_tex_discard_errors; /* Run a program to create a file named by BASE_FILE in format FORMAT. Return the full filename to it, or NULL. Any other information about ! the file is passed through environment variables. See the mktexpk stuff in `tex-make.c' for an example. */ extern string kpse_make_tex P2H(kpse_file_format_type format, const_string base_file); diff -cNr octave-2.0.11/kpathsea/texmf.in octave-2.0.12/kpathsea/texmf.in *** octave-2.0.11/kpathsea/texmf.in Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/texmf.in Fri Mar 13 16:22:19 1998 *************** *** 0 **** --- 1,412 ---- + % original texmf.cnf -- runtime path configuration file for kpathsea. + % (If you change or delete `original' on the previous line, the + % distribution won't install its version over yours.) + % Public domain. + % + % What follows is a super-summary of what this .cnf file can + % contain. Please read the Kpathsea manual for more information. + % + % texmf.cnf is generated from texmf.in, by replacing @var@ with the + % value of the Make variable `var', via a sed file texmf.sed, generated + % (once) by kpathsea/Makefile (itself generated from kpathsea/Makefile.in + % by configure). + % + % Any identifier (sticking to A-Za-z_ for names is safest) can be assigned. + % The `=' (and surrounding spaces) is optional. + % No % or @ in texmf.in, for the sake of autogeneration. + % (However, %'s and @'s can be edited into texmf.cnf or put in envvar values.) + % $foo (or ${foo}) in a value expands to the envvar or cnf value of foo. + % + % Earlier entries (in the same or another file) override later ones, and + % an environment variable foo overrides any texmf.cnf definition of foo. + % + % All definitions are read before anything is expanded, so you can use + % variables before they are defined. + % + % If a variable assignment is qualified with `.PROGRAM', it is ignored + % unless the current executable (last filename component of argv[0]) is + % named PROGRAM. This foo.PROGRAM construct is not recognized on the + % right-hand side. For environment variables, use FOO_PROGRAM. + % + % Which file formats use which paths for searches is described in the + % various programs' and the kpathsea documentation. + % + % // means to search subdirectories (recursively). + % A leading !! means to look only in the ls-R db, never on the disk. + % A leading/trailing/doubled : in the paths will be expanded into the + % compile-time default. Probably not what you want. + % + % You can use brace notation, for example: /usr/local/{mytex:othertex} + % expands to /usr/local/mytex:/usr/local/othertex. Instead of the path + % separator you can use a comma: /usr/local/{mytex,othertex} also expands + % to /usr/local/mytex:/usr/local/othertex. However, the use of the comma + % instead of the path separator is deprecated. + % + % The text above assumes thet path separator is a colon (:). Non-UNIX + % systems use different path separators, for example MicroSoft operating + % systems use the semicolon (;). + + % Part 1: Search paths and directories. + + % You can set an environment variable to override TEXMF if you're testing + % a new TeX tree, without changing anything else. + % + % You may wish to use one of the $SELFAUTO... variables here so TeX will + % find where to look dynamically. See the manual and the definition + % below of TEXMFCNF. + + % The main tree, which must be mentioned in $TEXMF, below: + TEXMFMAIN = @texmf@ + + % A place for local additions to a "standard" texmf tree. For example: + % TEXMFLOCAL = @texmf@.local + + % User texmf trees can be catered for like this... + % HOMETEXMF = $HOME/texmf + + % Now, list all the texmf trees. If you have multiple trees, + % use shell brace notation, like this: + % TEXMF = {$HOMETEXMF:!!$TEXMFLOCAL:!!$TEXMFMAIN} + % The braces are necessary. + TEXMF = $TEXMFMAIN + + % The system trees. These are the trees that are shared by all the users. + SYSTEXMF = $TEXMF + + % Where generated fonts may be written. This tree is used when the sources + % were found in a system tree and either that tree wasn't writable, or the + % varfonts feature was enabled in MT_FEATURES in mktex.cnf. + VARTEXFONTS = @vartexfonts@ + + % Where to look for ls-R files. There need not be an ls-R in the + % directories in this path, but if there is one, Kpathsea will use it. + TEXMFDBS = $TEXMF:$VARTEXFONTS + + % It may be convenient to define TEXMF like this: + % TEXMF = {$HOMETEXMF:!!$TEXMFLOCAL:!!$TEXMFMAIN:$HOME} + % which allows users to set up entire texmf trees, and tells TeX to + % look in places like ~/tex and ~/bibtex. If you do this, define TEXMFDBS + % like this: + % TEXMFDBS = $HOMETEXMF:$TEXMFLOCAL:$TEXMFMAIN:$VARTEXFONTS + % or mktexlsr will generate an ls-R file for $HOME when called, which is + % rarely desirable. If you do this you'll want to define SYSTEXMF like + % this: + % SYSTEXMF = $TEXMFLOCAL:$TEXMFMAIN + % so that fonts from a user's tree won't escape into the global trees. + % + % On some systems, there will be a system tree which contains all the font + % files that may be created as well as the formats. For example + % VARTEXMF = /var/lib/texmf + % is used on many Linux systems. In this case, set VARTEXFONTS like this + % VARTEXFONTS = $VARTEXMF/fonts + % and do not mention it in TEXMFDBS (but _do_ mention VARTEXMF). + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Usually you will not need to edit any of the other variables in part 1. % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % WEB2C is for Web2C specific files. The current directory may not be + % a good place to look for them. + WEB2C = $TEXMF/web2c + + % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input + % or \openin, including .sty, .eps, etc. + + % LaTeX 2e specific macros are stored in latex/, macros that can only be + % used with 2.09 in latex209/. In addition, we look in the directory + % latex209, useful for macros that were written for 2.09 and do not + % mention 2e at all, but can be used with 2e. + TEXINPUTS.latex209 = .:$TEXMF/tex/{latex209:generic:latex:}// + TEXINPUTS.latex2e = .:$TEXMF/tex/{latex:generic:latex209:}// + TEXINPUTS.latex = .:$TEXMF/tex/{latex:generic:latex209:}// + + % Fontinst needs to read afm files. + TEXINPUTS.fontinst = .:$TEXMF/tex//:$TEXMF/fonts//afm// + + % Plain TeX. Have the command tex check all directories as a last + % resort, we may have plain-compatible stuff anywhere. + TEXINPUTS.tex = .:$TEXMF/tex/{plain:generic:}// + % other plain-based formats + TEXINPUTS.amstex = .:$TEXMF/tex/{amstex:plain:generic:}// + TEXINPUTS.ftex = .:$TEXMF/tex/{formate:plain:generic:}// + TEXINPUTS.texinfo = .:$TEXMF/tex/{texinfo:plain:generic:}// + TEXINPUTS.eplain = .:$TEXMF/tex/{eplain:plain:generic:}// + TEXINPUTS.jadetex = .:$TEXMF/tex/{jadetex:plain:generic:}// + + % MLTeX. + TEXINPUTS.frtex = .:$TEXMF/{mltex:tex}/{french:plain:generic:}// + TEXINPUTS.frlatex = .:$TEXMF/{mltex:tex}/{french:latex:generic:latex209:}// + TEXINPUTS.mltex = .:$TEXMF/{mltex:tex}/{plain:generic:}// + TEXINPUTS.mllatex = .:$TEXMF/{mltex:tex}/{latex:generic:latex209:}// + + % e-TeX. This form of the input paths is borrowed from teTeX. A certain + % variant of TDS is assumed here, unaffected by the build variables. + TEXINPUTS.elatex = .:$TEXMF/{etex:tex}/{latex:generic:latex209:plain:}// + TEXINPUTS.etex = .:$TEXMF/{etex:tex}/{plain:generic:}// + + % PDFTeX. This form of the input paths is borrowed from teTeX. A certain + % variant of TDS is assumed here, unaffected by the build variables. + TEXINPUTS.pdftexinfo = .:$TEXMF/{pdftex:tex}/{texinfo:generic:plain:}// + TEXINPUTS.pdflatex = .:$TEXMF/{pdftex:tex}/{latex:generic:latex209:plain:}// + TEXINPUTS.pdftex = .:$TEXMF/{pdftex:tex}/{plain:generic:}// + + % Omega. + TEXINPUTS.lambda = .:$TEXMF/{omega:tex}/{lambda:latex:generic:latex209:plain:}// + TEXINPUTS.omega = .:$TEXMF/{omega:tex}/{plain:generic:}// + + % Earlier entries override later ones, so put this last. + TEXINPUTS = .:$TEXMF/tex/{generic:}// + + % Metafont, MetaPost inputs. + MFINPUTS = .:$TEXMF/metafont//:{$TEXMF/fonts:$VARTEXFONTS}//source// + MPINPUTS = .:$TEXMF/metapost// + + % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read (see web2c/INSTALL), + % and string pools (.pool) for ini{tex,mf,mp}. It is silly that we have six + % paths and directories here (they all resolve to a single place by default), + % but historically ... + TEXFORMATS = .:$TEXMF/web2c + MFBASES = .:$TEXMF/web2c + MPMEMS = .:$TEXMF/web2c + TEXPOOL = .:$TEXMF/web2c + MFPOOL = .:$TEXMF/web2c + MPPOOL = .:$TEXMF/web2c + + % Device-independent font metric files. + VFFONTS = .:$TEXMF/fonts//vf// + TFMFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//tfm// + + % The $MAKETEX_MODE below means the drivers will not use a cx font when + % the mode is ricoh. If no mode is explicitly specified, kpse_prog_init + % sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. + % The modeless part guarantees that bitmaps for PostScript fonts are found. + PKFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//pk/{$MAKETEX_MODE:modeless}// + + % Similarly for the GF format, which only remains in existence because + % Metafont outputs it (and MF isn't going to change). + GFFONTS = .:$TEXMF/fonts//gf/$MAKETEX_MODE// + + % A backup for PKFONTS and GFFONTS. Not used for anything. + GLYPHFONTS = .:$TEXMF/fonts + + % For texfonts.map and included map files used by mktexpk. + % See ftp://ftp.tug.org/tex/fontname.tar.gz. + TEXFONTMAPS = .:$TEXMF/fontname + + % BibTeX bibliographies and style files. + BIBINPUTS = .:$TEXMF/bibtex/{bib:}// + BSTINPUTS = .:$TEXMF/bibtex/{bst:}// + + % MFT style files. + MFTINPUTS = .:$TEXMF/mft// + + % PostScript headers, prologues (.pro), encodings (.enc) and fonts. + TEXPSHEADERS = .:$TEXMF/dvips//:$TEXMF/pdftex//:$TEXMF/fonts//type1// + + % PostScript Type 1 outline fonts. + T1FONTS = .:$TEXMF/fonts//type1// + + % PostScript AFM metric files. + AFMFONTS = .:$TEXMF/fonts//afm// + + % TrueType outline fonts. + TTFONTS = .:$TEXMF/fonts//truetype// + + % Type 42 outline fonts. + T42FONTS = .:$TEXMF/fonts//type42// + + % Dvips' config.* files (this name should not start with `TEX'!). + TEXCONFIG = .:$TEXMF/dvips// + + % Makeindex style (.ist) files. + INDEXSTYLE = .:$TEXMF/makeindex// + + % Used by DMP (ditroff-to-mpx), called by makempx -troff. + TRFONTS = /usr/lib/font/devpost + MPSUPPORT = .:$TEXMF/metapost/support + + % For xdvi to find mime.types and .mailcap, if they do not exist in + % $HOME. These are single directories, not paths. + % (But the default mime.types, at least, may well suffice.) + MIMELIBDIR = @prefix@/etc + MAILCAPLIBDIR = @prefix@/etc + + % TeX documentation and source files, for use with kpsewhich. + TEXDOCS = .:$TEXMF/doc// + TEXSOURCES = .:$TEXMF/source// + + % Omega-related fonts and other files. The odd construction for OFMFONTS + % makes it behave in the face of a definition of TFMFONTS. Unfortunately + % no default substitution would take place for TFMFONTS, so an explicit + % path is retained. + OFMFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//{ofm:tfm}//:$TFMFONTS + OPLFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//opl// + OVFFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//ovf// + OVPFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//ovp// + OTPINPUTS = .:$TEXMF/omega/otp// + OCPINPUTS = .:$TEXMF/omega/ocp// + + % Some additional input variables for several programs. If you add + % a program that uses the 'other text files' or 'other binary files' + % search formats, you'll want to add their variables here as well. + XDVIINPUTS = .:$TEXMF/xdvi + TEX4HTINPUTS = .:$TEXMF/tex4ht// + + %% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment. + KPSE_DOT = . + + % This definition isn't used from this .cnf file itself (that would be + % paradoxical), but the compile-time default in paths.h is built from it. + % The SELFAUTO* variables are set automatically from the location of + % argv[0], in kpse_set_progname. + % + % About the /. construction: + % 1) if the variable is undefined, we'd otherwise have an empty path + % element in the compile-time path. This is not meaningful. + % 2) if we used /$VARIABLE, we'd end up with // if VARIABLE is defined, + % which would search the entire world. + % + % The TETEXDIR stuff isn't likely to relevant unless you're using teTeX, + % but it doesn't hurt. + % + TEXMFCNF = .:{$SELFAUTOLOC:$SELFAUTODIR:$SELFAUTOPARENT}{:{/share:}/texmf{.local:}/web2c}:/.$TETEXDIR:/.$TEXMF/web2c:@web2c@ + + + + % Part 2: Non-path options. + + % Write .log/.dvi/etc. files here, if the current directory is unwritable. + % TEXMFOUTPUT = /tmp + + % If a dynamic file creation fails, log the command to this file, in + % either the current directory or TEXMFOUTPUT. Set to the + % empty string or 0 to avoid logging. + MISSFONT_LOG = missfont.log + + % Set to a colon-separated list of words specifying warnings to suppress. + % To suppress everything, use TEX_HUSH = all; this is equivalent to + % TEX_HUSH = checksum:lostchar:readable:special + TEX_HUSH = none + + % Enable system commands via \write18{...}? + shell_escape = f + + % Allow TeX \openout on filenames starting with `.' (e.g., .rhosts)? + % a (any) : any file can be opened. + % r (restricted) : disallow opening "dotfiles". + % p (paranoid) : as 'r' and disallow going to parent directories, and + % restrict absolute paths to be under $TEXMFOUTPUT. + openout_any = p + + % Enable the mktex... scripts by default? These must be set to 0 or 1. + % Particular programs can and do override these settings, for example + % dvips's -M option. Your first chance to specify whether the scripts + % are invoked by default is at configure time. + % + % These values are ignored if the script names are changed; e.g., if you + % set DVIPSMAKEPK to `foo', what counts is the value of the environment + % variable/config value `FOO', not the `MKTEXPK' value. + % + % MKTEXTEX = 0 + % MKTEXPK = 0 + % MKTEXMF = 0 + % MKTEXTFM = 0 + % MKOCP = 0 + % MKOFM = 0 + + % What MetaPost runs to make MPX files. This is passed an option -troff + % if MP is in troff mode. Set to `0' to disable this feature. + MPXCOMMAND = makempx + + + % Part 3: Array and other sizes for TeX (and Metafont and MetaPost). + % + % If you want to change some of these sizes only for a certain TeX + % variant, the usual dot notation works, e.g., + % main_memory.hugetex = 20000000 + % + % If a change here appears to be ignored, try redumping the format file. + + % Memory. Must be less than 8,000,000 total. + % + % main_memory is relevant only to initex, extra_mem_* only to non-ini. + % Thus, have to redump the .fmt file after changing main_memory; to add + % to existing fmt files, increase extra_mem_*. (To get an idea of how + % much, try \tracingstats=2 in your TeX source file; + % web2c/tests/memtest.tex might also be interesting.) + % + % To increase space for boxes (as might be needed by, e.g., PiCTeX), + % increase extra_mem_bot. + % + % For some xy-pic samples, you may need as much as 700000 words of memory. + % For the vast majority of documents, 60000 or less will do. + % + main_memory = 263000 % words of inimemory available; also applies to inimf&mp + extra_mem_top = 0 % extra high memory for chars, tokens, etc. + extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc. + + % Words of font info for TeX (total size of all TFM files, approximately). + font_mem_size = 200000 + + % Total number of fonts. Must be >= 50 and <= 2000 (without tex.ch changes). + font_max = 1000 + + % Extra space for the hash table of control sequences (which allows 10K + % names as distributed). + hash_extra = 0 + + % Max number of characters in all strings, including all error messages, + % help texts, font names, control sequences. These values apply to TeX and MP. + pool_size = 125000 + % Minimum pool space after TeX/MP's own strings; must be at least + % 25000 less than pool_size, but doesn't need to be nearly that large. + string_vacancies = 25000 + max_strings = 15000 % max number of strings + pool_free = 5000 % min pool space left after loading .fmt + + % Hyphenation trie. As distributed, the maximum is 65535; this should + % work unless `unsigned short' is not supported or is smaller than 16 + % bits. This value should suffice for UK English, US English, French, + % and German (for example). To increase, you must change + % `ssup_trie_opcode' and `ssup_trie_size' in tex.ch (and rebuild TeX); + % the trie will then consume four bytes per entry, instead of two. + % + % US English, German, and Portuguese: 30000. + % German: 14000. + % US English: 10000. + % + trie_size = 64000 + + % Buffer size. TeX uses the buffer to contain input lines, but macro + % expansion works by writing material into the buffer and reparsing the + % line. As a consequence, certain constructs require the buffer to be + % very large. As distributed, the size is 50000; most documents can be + % handled within a tenth of this size. + buf_size = 50000 + + hyph_size = 1000 % number of hyphenation exceptions, >610 and <32767. + nest_size = 100 % simultaneous semantic levels (e.g., groups) + max_in_open = 15 % simultaneous input files and error insertions + param_size = 500 % simultaneous macro parameters + save_size = 4000 % for saving values outside current group + stack_size = 300 % simultaneous input sources + + % These are Omega-specific. + ocp_buf_size = 20000 % character buffers for ocp filters. + ocp_stack_size = 10000 % stacks for ocp computations. + ocp_list_size = 1000 % control for multiple ocps. + + % These work best if they are the same as the I/O buffer size, but it + % doesn't matter much. Must be a multiple of 8. + dvi_buf_size = 16384 % TeX + gf_buf_size = 16384 % MF + + % It's probably inadvisable to change these. At any rate, we must have: + % 45 < error_line < 255; + % 30 < half_error_line < error_line - 15; + % 60 <= max_print_line; + % These apply to Metafont and MetaPost as well. + error_line = 79 + half_error_line = 50 + max_print_line = 79 diff -cNr octave-2.0.11/kpathsea/tilde.c octave-2.0.12/kpathsea/tilde.c *** octave-2.0.11/kpathsea/tilde.c Tue Feb 4 13:08:22 1997 --- octave-2.0.12/kpathsea/tilde.c Mon Oct 13 13:41:50 1997 *************** *** 112,118 **** { string answer; ! printf ("Tilde expansion of `%s':\t", filename ? filename : "(null)"); answer = kpse_tilde_expand (filename); puts (answer); } --- 112,118 ---- { string answer; ! printf ("Tilde expansion of `%s':\t", filename ? filename : "(nil)"); answer = kpse_tilde_expand (filename); puts (answer); } diff -cNr octave-2.0.11/kpathsea/unixtex.texi octave-2.0.12/kpathsea/unixtex.texi *** octave-2.0.11/kpathsea/unixtex.texi Sat Feb 1 16:20:56 1997 --- octave-2.0.12/kpathsea/unixtex.texi Wed Mar 18 13:57:48 1998 *************** *** 10,29 **** @cindex retrieving @TeX{} @flindex unixtex.ftp ! @flindex tug.cs.umb.edu @flindex www.tug.org @flindex ftp.tug.org This @iftex chapter @end iftex ! is @url{ftp://ftp.tug.org/tex/unixtex.ftp}, last updated 1 February ! 1997. Also available as @url{http://www.tug.org/unixtex.ftp}. The IP ! address is currently [158.121.106.10], and the canonical host name is ! currently @samp{tug.cs.umb.edu}. It is also in Kpathsea source ! distributions as @file{etc/unixtex.ftp} (although the network version is ! usually newer). Mail @email{kb@@mail.tug.org} with comments or ! questions. Following are general instructions for Unix or other sites who wish to acquire the Web2c distribution, (plain) @TeX{}, La@TeX{} (2e), --- 10,28 ---- @cindex retrieving @TeX{} @flindex unixtex.ftp ! @flindex tug.org @flindex www.tug.org @flindex ftp.tug.org This @iftex chapter @end iftex ! is @url{ftp://ftp.tug.org/tex/unixtex.ftp}, last updated 18 March 1998. ! Also available as @url{http://www.tug.org/unixtex.ftp}. The IP address ! is currently @code{[158.121.106.10]}, and the canonical host name is ! currently @samp{tug.org}. It is also in Kpathsea source distributions ! as @file{etc/unixtex.ftp} (although the network version is usually ! newer). Mail @email{kb@@mail.tug.org} with comments or questions. Following are general instructions for Unix or other sites who wish to acquire the Web2c distribution, (plain) @TeX{}, La@TeX{} (2e), *************** *** 40,46 **** a membership form. For actual installation instructions after obtaining the necessary ! sources, @pxref{Installation}. A copy is in the distribution file @file{kpathsea/INSTALL}. @menu --- 39,45 ---- a membership form. For actual installation instructions after obtaining the necessary ! sources, see @ref{Installation}. A copy is in the distribution file @file{kpathsea/INSTALL}. @menu *************** *** 64,70 **** and a directory name. Here are some primary locations: @example ! @url{ftp://ftp.cdrom.com/pub/tex/ctan} @r{(California, USA)} @url{ftp://ftp.dante.de/tex-archive} @r{(Germany)} @url{ftp://ftp.tex.ac.uk/tex-archive} @r{(England)} @end example --- 63,69 ---- and a directory name. Here are some primary locations: @example ! @url{ftp://ctan.tug.org/tex-archive} @r{(California, USA)} @url{ftp://ftp.dante.de/tex-archive} @r{(Germany)} @url{ftp://ftp.tex.ac.uk/tex-archive} @r{(England)} @end example *************** *** 92,104 **** transfers): @table @asis ! @item @file{@var{CTAN:}/systems/web2c/lib.tar.gz} A basic collection of fonts (TFM files only) and macro packages (including Texinfo and La@TeX{} 2e). It unpacks into @file{texmf/}; if you change the structure of this hierarchy, you will also have to change the default search paths (@pxref{Changing search paths}). It is required unless you already have these files, in which case you should ! change the default paths as necessary to find them. @item @file{@var{CTAN:}/systems/web2c/web.tar.gz} @cindex Knuth, Donald E., original author --- 91,106 ---- transfers): @table @asis ! @item @file{@var{CTAN:}/systems/web2c/texmflib.tar.gz} A basic collection of fonts (TFM files only) and macro packages (including Texinfo and La@TeX{} 2e). It unpacks into @file{texmf/}; if you change the structure of this hierarchy, you will also have to change the default search paths (@pxref{Changing search paths}). It is required unless you already have these files, in which case you should ! change the default paths as necessary to find them. There are other ! packages of library files, @file{etexlib.tar.gz}, ! @file{omegalib.tar.gz}, and @file{pdftexlib.tar.gz}, that are required ! as well if you install e-@TeX{}, Omega, or pdf@TeX{} respectively. @item @file{@var{CTAN:}/systems/web2c/web.tar.gz} @cindex Knuth, Donald E., original author *************** *** 111,116 **** --- 113,136 ---- The Web2c system. Required. Also unpacks into @file{web2c-@var{version}}. + @item @file{@var{CTAN:}/systems/web2c/web2c-etex.tar.gz} + Additions to the Web2c system for building e-@TeX{}. Optional. Also + unpacks into @file{web2c-@var{version}}. + + @item @file{@var{CTAN:}/systems/web2c/web2c-omega.tar.gz} + Additions to the Web2c system for building Omega. Optional. Also + unpacks into @file{web2c-@var{version}}. + + @item @file{@var{CTAN:}/systems/web2c/web2c-pdftex.tar.gz} + Additions to the Web2c system for building pdf@TeX{}. Optional. Also + unpacks into @file{web2c-@var{version}}. + + @item @file{@var{CTAN:}/systems/web2c/texk.tar.gz} + The web and web2c sources, plus the additions for web2c, plus the dvi + drivers mentioned below, plus extra dvi drivers and tools not packaged + separately. Recommended if you want to build a complete system. + Unpacks into @file{texk-@var{version}}. + @c @item @file{@var{CTAN:}/systems/web2c/psfonts.tar.gz} @c Metrics, outlines, and bitmaps (for previewing) for the 35 de facto @c standard fonts donated by URW and the additional high-quality freely *************** *** 119,133 **** @c caps. Unpacks into @file{texmf}. Necessary for PostScript printing or @c previewing support. ! @item @file{@var{CTAN:}/dviware/dvipsk.tar.gz} DVI-to-PostScript translator. Unpacks into @file{dvipsk-@var{version}}. Optional. ! @item @file{@var{CTAN:}/dviware/xdvik.tar.gz} X window system DVI previewer. Unpacks into @file{xdvik-@var{version}}. Optional. ! @item @file{@var{CTAN:}/dviware/dviljk.tar.gz} DVI-to-PCL (HP LaserJet) translator. Unpacks into @file{dviljk-@var{version}}. Optional. @end table --- 139,153 ---- @c caps. Unpacks into @file{texmf}. Necessary for PostScript printing or @c previewing support. ! @item @file{@var{CTAN:}/dviware/dvipsk/dvipsk.tar.gz} DVI-to-PostScript translator. Unpacks into @file{dvipsk-@var{version}}. Optional. ! @item @file{@var{CTAN:}/dviware/xdvik/xdvik.tar.gz} X window system DVI previewer. Unpacks into @file{xdvik-@var{version}}. Optional. ! @item @file{@var{CTAN:}/dviware/dviljk/dviljk.tar.gz} DVI-to-PCL (HP LaserJet) translator. Unpacks into @file{dviljk-@var{version}}. Optional. @end table *************** *** 159,169 **** @url{http://www.tug.org/tex-live.html}. @item ! @cindex 4all@TeX{} Live CD-ROM ! @cindex NTG ! NTG (Dutch-speaking @TeX{} user group) produced the 4all@TeX{} CD-ROM; ! email @email{ntg@@nic.surfnet.nl}, or see ! @url{http://ei0.ei.ele.tue.nl/ntg/}. This is a runnable system. @item @cindex Free Software Foundation --- 179,190 ---- @url{http://www.tug.org/tex-live.html}. @item ! @cindex Dante @TeX{} CD-ROM ! @cindex German @TeX{} CD info ! Dante (the German-speaking @TeX{} user group) has produced a CD-ROM. ! See @url{http://www.dante.de/dante/DANTE-CTAN-CD-ROM.html}, and ! @url{http://www.dante.de/tex-informationen/CD-ROMs.html} for ! information about @TeX{} CD's in general. Both are in German. @item @cindex Free Software Foundation *************** *** 171,187 **** The Free Software Foundation's @cite{Source Code CD-ROM} contains the minimal @TeX{} source distribution described in the previous section (i.e., enough to print GNU documentation); email ! @email{gnu@@prep.ai.mit.edu} or finger @email{fsf@@prep.ai.mit.edu}. @item The Gateway@! CD-ROM set contains a runnable NetBSD/Amiga distribution and sources; see @url{http://www.netbsd.org/Sites/cdroms.html}. @item @cindex Prime Time @TeX{}cetera CD-ROM ! The Prime Time @TeX{}cetera CD-ROM is a copy of CTAN (see the previous ! section); email @email{ptf@@ctcl.com} or see ! @url{http://www.ptf.com/ptf/}. @item @cindex Walnut Creek @TeX{} CD-ROM --- 192,218 ---- The Free Software Foundation's @cite{Source Code CD-ROM} contains the minimal @TeX{} source distribution described in the previous section (i.e., enough to print GNU documentation); email ! @email{gnu@@prep.ai.mit.edu}. @item The Gateway@! CD-ROM set contains a runnable NetBSD/Amiga distribution and sources; see @url{http://www.netbsd.org/Sites/cdroms.html}. @item + The InfoMagic CD-ROM is a copy of CTAN (see previous section); see + @url{http://www.infomagic.com}. + + @item + @cindex 4all@TeX{} Live CD-ROM + @cindex NTG + NTG (Dutch-speaking @TeX{} user group) produced the 4all@TeX{} CD-ROM; + email @email{ntg@@nic.surfnet.nl}, or see + @url{http://www.ntg.nl/4allcd/}. This is a runnable system. + + @item @cindex Prime Time @TeX{}cetera CD-ROM ! The Prime Time @TeX{}cetera CD-ROM is also a copy of CTAN; email ! @email{ptf@@ctcl.com} or see @url{http://www.ptf.com/ptf/}. @item @cindex Walnut Creek @TeX{} CD-ROM diff -cNr octave-2.0.11/kpathsea/variable.c octave-2.0.12/kpathsea/variable.c *** octave-2.0.11/kpathsea/variable.c Sun Jan 7 15:08:33 1996 --- octave-2.0.12/kpathsea/variable.c Mon Oct 13 13:41:17 1997 *************** *** 37,42 **** --- 37,47 ---- if (ret) ret = kpse_var_expand (ret); + #ifdef KPSE_DEBUG + if (KPSE_DEBUG_P (KPSE_DEBUG_VARS)) + DEBUGF2("variable: %s = %s\n", var, ret ? ret : "(nil)"); + #endif + return ret; } diff -cNr octave-2.0.11/kpathsea/version.c octave-2.0.12/kpathsea/version.c *** octave-2.0.11/kpathsea/version.c Fri Feb 7 12:33:53 1997 --- octave-2.0.12/kpathsea/version.c Thu Apr 23 23:36:55 1998 *************** *** 1,4 **** ! char *kpathsea_version_string = (char *) "kpathsea version 3.0"; /* If you are redistributing a modified version of my original distribution, please change this address. --- 1,6 ---- ! #include "c-auto.h" ! ! char *kpathsea_version_string = (char *) KPSEVERSION; /* If you are redistributing a modified version of my original distribution, please change this address. *************** *** 9,12 **** Thanks. --kb@cs.umb.edu */ char *kpse_bug_address = (char *) ! "Email bug reports to tex-k@mail.tug.org.\n"; --- 11,14 ---- Thanks. --kb@cs.umb.edu */ char *kpse_bug_address = (char *) ! "Send bug reports to bug-octave@bevo.che.wisc.edu.\n"; diff -cNr octave-2.0.11/kpathsea/win32lib.c octave-2.0.12/kpathsea/win32lib.c *** octave-2.0.11/kpathsea/win32lib.c Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/win32lib.c Thu Mar 12 01:04:46 1998 *************** *** 0 **** --- 1,326 ---- + /* libc replacement functions for win32. + + Copyright (C) 1992, 93 Free Software Foundation, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + /* + This does make sense only under WIN32. + Functions: + - popen() rewritten + - pclose() rewritten + - stat() wrapper for _stat(), removing trailing slashes + */ + + #ifdef WIN32 + + #include + #include + #include + #include + #include + + struct _popen_elt { + FILE *f; /* File stream returned */ + HANDLE hp; /* Handle of associated process */ + struct _popen_elt *next; /* Next list element */ + }; + + static struct _popen_elt _z = { NULL, 0, &_z }; + static struct _popen_elt *_popen_list = &_z; + + FILE *popen P2C(const_string, cmd, const_string, mode) + { + STARTUPINFO si; + PROCESS_INFORMATION pi; + SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE }; + FILE *f = NULL; + int fno, i; + HANDLE child_in, child_out; + HANDLE father_in, father_out; + HANDLE father_in_dup, father_out_dup; + HANDLE current_in, current_out; + HANDLE current_pid; + int binary_mode; + char *new_cmd, *app_name = NULL; + char *p, *q; + struct _popen_elt *new_process; + char pname[PATH_MAX], *fp; + char *suffixes[] = { ".bat", ".cmd", ".com", ".exe", NULL }; + char **s; + boolean go_on; + + /* We should look for the application name along the PATH, + and decide to prepend "%COMSPEC% /c " or not to the command line. + Do nothing for the moment. */ + + /* Another way to do that would be to try CreateProcess first without + invoking cmd, and look at the error code. If it fails because of + command not found, try to prepend "cmd /c" to the cmd line. + */ + + /* Look for the application name */ + for (p = cmd; *p && isspace(*p); p++); + if (*p == '"') { + q = ++p; + while(*p && *p != '"') p++; + if (*p != '\0') { + fprintf(stderr, "popen: malformed command (\" not terminated)\n"); + return NULL; + } + } + else + for (q = p; *p && !isspace(*p); p++); + /* q points to the beginning of appname, p to the last + 1 char */ + if ((app_name = malloc(p - q + 1)) == NULL) { + fprintf(stderr, "xpopen: malloc(app_name) failed.\n"); + return NULL; + } + strncpy(app_name, q, p - q ); + app_name[p - q] = '\0'; + pname[0] = '\0'; + #ifdef TRACE + fprintf(stderr, "popen: app_name = %s\n", app_name); + #endif + + /* Looking for appname on the path */ + for (s = suffixes, go_on = true; go_on; *s++) { + if (SearchPath(NULL, /* Address of search path */ + app_name, /* Address of filename */ + *s, /* Address of extension */ + PATH_MAX, /* Size of destination buffer */ + pname, /* Address of destination buffer */ + &fp) /* File part of app_name */ + != 0) { + #ifdef TRACE + fprintf(stderr, "%s found with suffix %s\n", app_name, *s); + #endif + new_cmd = xstrdup(cmd); + free(app_name); + app_name = xstrdup(pname); + break; + } + go_on = (*s != NULL); + } + if (go_on == false) { + /* the app_name was not found */ + #ifdef TRACE + fprintf(stderr, "%s not found, concatenating comspec\n", app_name); + #endif + new_cmd = concatn(getenv("COMSPEC"), " /c ", cmd, NULL); + free(app_name); + app_name = NULL; + } + else { + } + #ifdef TRACE + fprintf(stderr, "popen: app_name = %s\n", app_name); + fprintf(stderr, "popen: cmd_line = %s\n", new_cmd); + #endif + + current_in = GetStdHandle(STD_INPUT_HANDLE); + current_out = GetStdHandle(STD_OUTPUT_HANDLE); + current_pid = GetCurrentProcess(); + ZeroMemory( &si, sizeof(STARTUPINFO) ); + si.cb = sizeof(STARTUPINFO); + si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; + si.wShowWindow = SW_HIDE; + + if (strchr(mode, 'b')) + binary_mode = _O_BINARY; + else + binary_mode = _O_TEXT; + + /* Opening the pipe for writing */ + if (strchr(mode, 'w')) { + binary_mode |= _O_WRONLY; + if (CreatePipe(&child_in, &father_out, &sa, 0) == FALSE) { + fprintf(stderr, "popen: error CreatePipe\n"); + return NULL; + } + #if 0 + if (SetStdHandle(STD_INPUT_HANDLE, child_in) == FALSE) { + fprintf(stderr, "popen: error SetStdHandle child_in\n"); + return NULL; + } + #endif + si.hStdInput = child_in; + si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); + si.hStdError = GetStdHandle(STD_ERROR_HANDLE); + + if (DuplicateHandle(current_pid, father_out, + current_pid, &father_out_dup, + 0, FALSE, DUPLICATE_SAME_ACCESS) == FALSE) { + fprintf(stderr, "popen: error DuplicateHandle father_out\n"); + return NULL; + } + CloseHandle(father_out); + fno = _open_osfhandle((long)father_out_dup, binary_mode); + f = _fdopen(fno, mode); + i = setvbuf( f, NULL, _IONBF, 0 ); + } + /* Opening the pipe for reading */ + else if (strchr(mode, 'r')) { + binary_mode |= _O_RDONLY; + if (CreatePipe(&father_in, &child_out, &sa, 0) == FALSE) { + fprintf(stderr, "popen: error CreatePipe\n"); + return NULL; + } + #if 0 + if (SetStdHandle(STD_OUTPUT_HANDLE, child_out) == FALSE) { + fprintf(stderr, "popen: error SetStdHandle child_out\n"); + return NULL; + } + #endif + si.hStdInput = GetStdHandle(STD_INPUT_HANDLE); + si.hStdOutput = child_out; + si.hStdError = GetStdHandle(STD_ERROR_HANDLE); + if (DuplicateHandle(current_pid, father_in, + current_pid, &father_in_dup, + 0, FALSE, DUPLICATE_SAME_ACCESS) == FALSE) { + fprintf(stderr, "popen: error DuplicateHandle father_in\n"); + return NULL; + } + CloseHandle(father_in); + fno = _open_osfhandle((long)father_in_dup, binary_mode); + f = _fdopen(fno, mode); + i = setvbuf( f, NULL, _IONBF, 0 ); + } + else { + fprintf(stderr, "popen: invalid mode %s\n", mode); + return NULL; + } + + /* creating child process */ + if (CreateProcess(app_name, /* pointer to name of executable module */ + new_cmd, /* pointer to command line string */ + NULL, /* pointer to process security attributes */ + NULL, /* pointer to thread security attributes */ + TRUE, /* handle inheritance flag */ + CREATE_NEW_CONSOLE, /* creation flags */ + NULL, /* pointer to environment */ + NULL, /* pointer to current directory */ + &si, /* pointer to STARTUPINFO */ + &pi /* pointer to PROCESS_INFORMATION */ + ) == FALSE) { + fprintf(stderr, "popen: CreateProcess %x\n", GetLastError()); + return NULL; + } + + #if 0 + /* Restoring saved values for stdin/stdout */ + if (SetStdHandle(STD_INPUT_HANDLE, current_in) == FALSE) + fprintf(stderr, "popen: error re-redirecting Stdin\n"); + if (SetStdHandle(STD_OUTPUT_HANDLE, current_out) == FALSE) + fprintf(stderr, "popen: error re-redirecting Stdout\n"); + #endif + /* Only the process handle is needed */ + if (CloseHandle(pi.hThread) == FALSE) { + fprintf(stderr, "popen: error closing thread handle\n"); + return NULL; + } + + if (new_cmd) free(new_cmd); + if (app_name) free(app_name); + + #if 0 + /* This does not seem to make sense for console apps */ + while (1) { + i = WaitForInputIdle(pi.hProcess, 5); /* Wait 5ms */ + if (i == 0xFFFFFFFF) { + fprintf(stderr, "popen: process can't initialize\n"); + return NULL; + } + else if (i == WAIT_TIMEOUT) + fprintf(stderr, "popen: warning, process still not initialized\n"); + else + break; + } + #endif + + /* Add the pair (f, pi.hProcess) to the list */ + if ((new_process = malloc(sizeof(struct _popen_elt))) == NULL) { + fprintf (stderr, "popen: malloc(new_process) error\n"); + return NULL; + } + /* Saving the FILE * pointer, access key for retrieving the process + handle later on */ + new_process->f = f; + /* Closing the unnecessary part of the pipe */ + if (strchr(mode, 'r')) { + CloseHandle(child_out); + } + else if (strchr(mode, 'w')) { + CloseHandle(child_in); + } + /* Saving the process handle */ + new_process->hp = pi.hProcess; + /* Linking it to the list of popen() processes */ + new_process->next = _popen_list; + _popen_list = new_process; + + return f; + + } + + int pclose P1C(FILE *, f) + { + struct _popen_elt *p, *q; + int exit_code; + + /* Look for f is the access key in the linked list */ + for (q = NULL, p = _popen_list; + p != &_z && p->f != f; + q = p, p = p->next); + + if (p == &_z) { + fprintf(stderr, "pclose: error, file not found."); + return -1; + } + + /* Closing the FILE pointer */ + fclose(f); + + /* Waiting for the process to terminate */ + if (WaitForSingleObject(p->hp, INFINITE) != WAIT_OBJECT_0) { + fprintf(stderr, "pclose: error, process still active\n"); + return -1; + } + + /* retrieving the exit code */ + if (GetExitCodeProcess(p->hp, &exit_code) == 0) { + fprintf(stderr, "pclose: can't get process exit code\n"); + return -1; + } + + /* Closing the process handle, this will cause the system to + remove the process from memory */ + if (CloseHandle(p->hp) == FALSE) { + fprintf(stderr, "pclose: error closing process handle\n"); + return -1; + } + + /* remove the elt from the list */ + if (q != NULL) + q->next = p->next; + else + _popen_list = p->next; + free(p); + + return exit_code; + } + + + #endif diff -cNr octave-2.0.11/kpathsea/win32lib.h octave-2.0.12/kpathsea/win32lib.h *** octave-2.0.11/kpathsea/win32lib.h Wed Dec 31 18:00:00 1969 --- octave-2.0.12/kpathsea/win32lib.h Fri Mar 13 16:50:42 1998 *************** *** 0 **** --- 1,141 ---- + /* System description file for Windows NT. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + + This file is part of Web2C. + + Web2C is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + Web2C is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Web2C; see the file COPYING. If not, write to + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + #ifndef KPATHSEA_WIN32LIB_H + #define KPATHSEA_WIN32LIB_H + + /* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + + #ifndef DOSISH + #define DOSISH + #endif + + #ifndef MAXPATHLEN + #define MAXPATHLEN _MAX_PATH + #endif + + #define HAVE_DUP2 1 + #define HAVE_RENAME 1 + #define HAVE_RMDIR 1 + #define HAVE_MKDIR 1 + #define HAVE_GETHOSTNAME 1 + #define HAVE_RANDOM 1 + #define USE_UTIME 1 + #define HAVE_MOUSE 1 + #define HAVE_TZNAME 1 + + /* These have to be defined because our compilers treat __STDC__ as being + defined (most of them anyway). */ + + #define access _access + #define alloca _alloca + #define chdir _chdir + #define chmod _chmod + #define close _close + #define creat _creat + #define dup _dup + #define dup2 _dup2 + #define execlp _execlp + #define execvp _execvp + #define fdopen _fdopen + #define fileno _fileno + #define getpid _getpid + #define getwd(dir) GetCurrentDirectory(MAXPATHLEN, dir) + #define index strchr + #define isatty _isatty + #define itoa _itoa + #define link _link + #define lseek _lseek + #define mkdir _mkdir + #define mktemp _mktemp + #define open _open + #define pipe _pipe + #if 0 + #define popen _popen + #define pclose _pclose + #endif + #define putenv _putenv + #define read _read + #define rmdir _rmdir + #define setmode _setmode + #define spawnlp _spawnlp + #define stat _stat + #define strcasecmp _stricmp + #define strdup _strdup + #define strncasecmp _strnicmp + #define unlink _unlink + #define umask _umask + #define utime _utime + #define write _write + + #define S_IFMT _S_IFMT + #define S_IFDIR _S_IFDIR + #define S_IFCHR _S_IFCHR + #define S_IFIFO _S_IFIFO + #define S_IFREG _S_IFREG + #define S_IREAD _S_IREAD + #define S_IWRITE _S_IWRITE + #define S_IEXEC _S_IEXEC + #define S_IXUSR _S_IEXEC + #define S_IXGRP _S_IEXEC + #define S_IXOTH _S_IEXEC + #define S_IRUSR _S_IREAD + #define S_IWUSR _S_IWRITE + #define O_RDWR _O_RDWR + #define O_CREAT _O_CREAT + #define O_TRUNC _O_TRUNC + #define O_RDONLY _O_RDONLY + #define O_WRONLY _O_WRONLY + #define O_APPEND _O_APPEND + #define O_TEXT _O_TEXT + #define O_BINARY _O_BINARY + + /* Define this so that winsock.h definitions don't get included when + windows.h is... For this to have proper effect, config.h must + always be included before windows.h. */ + #define _WINSOCKAPI_ 1 + + #include + + /* Defines size_t and alloca (). */ + #include + + /* For proper declaration of environ. */ + #include + #include + #include + #include + #include + + /* Web2C takes care of ensuring that these are defined. */ + #ifdef max + #undef max + #undef min + #endif + + /* Functions from win32lib.c */ + extern FILE *popen(const char *, const char *); + extern int pclose(FILE *); + + /* ============================================================ */ + + #endif /* not KPATHSEA_WIN32LIB_H */ diff -cNr octave-2.0.11/kpathsea/withenable.ac octave-2.0.12/kpathsea/withenable.ac *** octave-2.0.11/kpathsea/withenable.ac Thu Jun 6 15:36:38 1996 --- octave-2.0.12/kpathsea/withenable.ac Thu Apr 23 23:41:32 1998 *************** *** 1,20 **** dnl withenable.ac: --with and --enable options. ! AC_ARG_WITH(maketexmf-default, ! [ --without-maketexmf-default do not run MakeTeXMF if MF source missing], ! , enableval=yes) ! if test $enableval = yes; then AC_DEFINE(MAKE_TEX_MF_BY_DEFAULT) fi ! AC_ARG_WITH(maketexpk-default, ! [ --without-maketexpk-default do not run MakeTeXPK if PK font missing], ! , enableval=yes) ! if test $enableval = yes; then AC_DEFINE(MAKE_TEX_PK_BY_DEFAULT) fi ! AC_ARG_WITH(maketextfm-default, ! [ --without-maketextfm-default do not run MakeTeXTFM if TFM file missing], ! , enableval=yes) ! if test $enableval = yes; then AC_DEFINE(MAKE_TEX_TFM_BY_DEFAULT) fi --- 1,83 ---- dnl withenable.ac: --with and --enable options. ! AC_ARG_WITH(mktexmf-default, ! [ --without-mktexmf-default do not run mktexmf if MF source missing], ! , withval=yes) ! if test "x$withval" = xyes; then AC_DEFINE(MAKE_TEX_MF_BY_DEFAULT) fi ! AC_ARG_WITH(mktexpk-default, ! [ --without-mktexpk-default do not run mktexpk if PK font missing], ! , withval=yes) ! if test "x$withval" = xyes; then AC_DEFINE(MAKE_TEX_PK_BY_DEFAULT) fi ! AC_ARG_WITH(mktextfm-default, ! [ --without-mktextfm-default do not run mktextfm if TFM file missing], ! , withval=yes) ! if test "x$withval" = xyes; then AC_DEFINE(MAKE_TEX_TFM_BY_DEFAULT) fi + AC_ARG_WITH(mkocp-default, + [ --without-mkocp-default do not run mkocp if OCP file missing], + , withval=yes) + if test "x$withval" = xyes; then + AC_DEFINE(MAKE_OMEGA_OCP_BY_DEFAULT) + fi + AC_ARG_WITH(mkofm-default, + [ --without-mkofm-default do not run mkofm if OFM file missing], + , withval=yes) + if test "x$withval" = xyes; then + AC_DEFINE(MAKE_OMEGA_OFM_BY_DEFAULT) + fi + + dnl The --enable-multiplatform option. + AC_CANONICAL_HOST + AC_ARG_ENABLE(multiplatform, + [ --enable-multiplatform put executables in bin/PLATFORM], + if test "x$enable_multiplatform" = xyes && + test "x$bindir" = 'x${exec_prefix}/bin' + then + bindir="$bindir/$host" + fi) + + dnl Check whether we can find a texmf tree. Look at the most common spots. + dnl Not a switch, but something that must be included everywhere, even at + dnl at the top level, so putting it in common.ac is not enough. + AC_MSG_CHECKING(where the main texmf tree is located) + texmfmain= + if test "x$datadir" != 'x${prefix}/share'; then + # First case, datadir is defined... + eval p=\"$datadir\" + if test -d "$p/texmf"; then + texmfmain="$p/texmf" + fi + else + # Second case, datadir is default... + if test "x$prefix" = "xNONE"; then + p="$ac_default_prefix" + else + eval p=\"$prefix\" + fi + for e in share/texmf lib/texmf texmf; do + if test -d "$p/$e"; then + texmfmain="$p/$e" + break + fi + done + fi + texmfmain=`echo "$texmfmain" | sed 's,//*,/,g'` + if test -n "$texmfmain"; then + AC_MSG_RESULT("$texmfmain") + else + AC_MSG_RESULT([not found]) + dnl Octave doesn't need this, so don't worry users if it can't be found. + dnl + dnl AC_MSG_WARN([The main texmf tree was not found. + dnl Specify the location of its parent directory with the --datadir option. + dnl If you do not have the files, you can retrieve a minimal set from + dnl ftp://ftp.tug.org/tex/texmflib.tar.gz, which is mirrored on CTAN hosts + dnl in systems/web2c. Winging it by using the default location.]) + dnl texmfmain="$datadir/texmf" + fi + AC_SUBST(texmfmain) diff -cNr octave-2.0.11/kpathsea/xgetcwd.c octave-2.0.12/kpathsea/xgetcwd.c *** octave-2.0.11/kpathsea/xgetcwd.c Sun Dec 15 14:39:10 1996 --- octave-2.0.12/kpathsea/xgetcwd.c Fri Oct 17 04:09:08 1997 *************** *** 19,27 **** #include ! #ifdef HAVE_GETWD #include ! #else /* not HAVE_GETWD */ #include #include #include --- 19,27 ---- #include ! #if defined (HAVE_GETCWD) || defined (HAVE_GETWD) #include ! #else /* not HAVE_GETCWD && not HAVE_GETWD*/ #include #include #include *************** *** 34,40 **** FATAL_PERROR (dirname); } ! #endif /* not HAVE_GETWD */ /* Return the pathname of the current directory, or give a fatal error. */ --- 34,40 ---- FATAL_PERROR (dirname); } ! #endif /* not HAVE_GETCWD && not HAVE_GETWD */ /* Return the pathname of the current directory, or give a fatal error. */ *************** *** 42,51 **** string xgetcwd P1H(void) { ! /* If the system provides getwd, use it. But don't use getcwd; that ! forks a process on some systems, which is far more expensive than ! all the stat calls we make figuring out the cwd. */ ! #ifdef HAVE_GETWD string path = xmalloc (PATH_MAX + 1); if (getwd (path) == 0) --- 42,64 ---- string xgetcwd P1H(void) { ! /* If the system provides getcwd, use it. If not, use getwd if ! available. But provide a way not to use getcwd: on some systems ! getcwd forks, which is expensive and may in fact be impossible for ! large programs like tex. If your system needs this define and it ! is not detected by configure, let me know. ! -- Olaf Weber ! extern char *malloc (); void * ! xmalloc (size) ! unsigned size; { void *new_mem = (void *) malloc (size); --- 16,27 ---- License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include ! #include void * ! xmalloc P1C(unsigned, size) { void *new_mem = (void *) malloc (size); diff -cNr octave-2.0.11/kpathsea/xputenv.c octave-2.0.12/kpathsea/xputenv.c *** octave-2.0.11/kpathsea/xputenv.c Thu Dec 12 16:25:15 1996 --- octave-2.0.12/kpathsea/xputenv.c Mon Feb 2 14:10:41 1998 *************** *** 1,6 **** /* xputenv.c: set an environment variable without return. ! Copyright (C) 1993, 94, 95, 96 Karl Berry. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public --- 1,6 ---- /* xputenv.c: set an environment variable without return. ! Copyright (C) 1993, 94, 95, 96, 97, 98 Karl Berry. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public *************** *** 41,53 **** void xputenv P2C(const_string, var_name, const_string, value) { - static const_string *saved_env_items = NULL; - static unsigned saved_len; string old_item = NULL; string new_item = concat3 (var_name, "=", value); ! boolean found = false; #ifndef SMART_PUTENV /* Check if we have saved anything yet. */ if (!saved_env_items) { --- 41,56 ---- void xputenv P2C(const_string, var_name, const_string, value) { string old_item = NULL; string new_item = concat3 (var_name, "=", value); ! unsigned name_len = strlen (var_name); #ifndef SMART_PUTENV + + static const_string *saved_env_items = NULL; + static unsigned saved_len; + boolean found = false; + /* Check if we have saved anything yet. */ if (!saved_env_items) { *************** *** 59,65 **** { /* Check if we've assigned VAR_NAME before. */ unsigned i; - unsigned len = strlen (var_name); for (i = 0; i < saved_len && !found; i++) { if (STREQ (saved_env_items[i], var_name)) --- 62,67 ---- *************** *** 72,87 **** is not made between the value being "" or the variable not set. */ if (old_item) ! old_item -= (len + 1); #else assert (old_item); /* Back up to the `NAME=' in the environment before the value that getenv returns. */ ! old_item -= (len + 1); #endif } } ! if (!found) { /* If we haven't seen VAR_NAME before, save it. Assume it is --- 74,89 ---- is not made between the value being "" or the variable not set. */ if (old_item) ! old_item -= (name_len + 1); #else assert (old_item); /* Back up to the `NAME=' in the environment before the value that getenv returns. */ ! old_item -= (name_len + 1); #endif } } ! if (!found) { /* If we haven't seen VAR_NAME before, save it. Assume it is *************** *** 93,109 **** } #endif /* not SMART_PUTENV */ ! /* As far as I can see there's no way to distinguish between the ! various errors; putenv doesn't have errno values. */ ! if (putenv (new_item) < 0) ! FATAL1 ("putenv (%s) failed", new_item); ! #ifndef SMART_PUTENV ! /* Can't free `new_item' because its contained value is now in ! `environ', but we can free `old_item', since it's been replaced. */ ! if (old_item) ! free (old_item); #endif /* not SMART_PUTENV */ } --- 95,129 ---- } #endif /* not SMART_PUTENV */ ! /* If the old and the new values are identical, don't do anything. ! This is both more memory-efficient and safer as far as our ! assumptions (about how putenv is implemented in libc) go. */ ! if (!old_item || !STREQ (old_item, new_item)) ! { ! char *new_val; ! /* As far as I can see there's no way to distinguish between the ! various errors; putenv doesn't have errno values. */ ! if (putenv (new_item) < 0) ! FATAL1 ("putenv (%s) failed", new_item); ! ! /* If their putenv copied `new_item', we can free it. */ ! new_val = getenv (var_name); ! if (new_val && new_val - name_len - 1 != new_item) ! free (new_item); ! #ifndef SMART_PUTENV ! /* Can't free `new_item' because its contained value is now in ! `environ', but we can free `old_item', since it's been replaced. */ ! #ifdef WIN32 ! /* ... except on Win32, where old_item points to garbage if we set the ! variable to "". So we recognize this special case. */ ! if (old_item && value && *value) ! #else ! if (old_item) ! #endif ! free (old_item); #endif /* not SMART_PUTENV */ + } } diff -cNr octave-2.0.11/kpathsea/xrealloc.c octave-2.0.12/kpathsea/xrealloc.c *** octave-2.0.11/kpathsea/xrealloc.c Sat Sep 30 11:00:28 1995 --- octave-2.0.12/kpathsea/xrealloc.c Fri Oct 3 04:32:44 1997 *************** *** 16,34 **** License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - /* Don't include config.h or all our other usual includes, since - it's useful to just throw this file into other programs. */ - #include ! extern char *realloc (); ! ! extern void *xmalloc (); void * ! xrealloc (old_ptr, size) ! void *old_ptr; ! unsigned size; { void *new_mem; --- 16,28 ---- License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include ! #include ! extern void *xmalloc P1H(unsigned); void * ! xrealloc P2C(void *, old_ptr, unsigned, size) { void *new_mem; diff -cNr octave-2.0.11/libcruft/ChangeLog octave-2.0.12/libcruft/ChangeLog *** octave-2.0.11/libcruft/ChangeLog Tue Feb 24 16:30:49 1998 --- octave-2.0.12/libcruft/ChangeLog Sun May 3 19:59:58 1998 *************** *** 1,3 **** --- 1,15 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Tue Apr 14 14:01:22 1998 John W. Eaton + + * slatec-fn/xdgamit.f (xdgamit): New file. + + Mon Apr 6 00:26:35 1998 John W. Eaton + + * slatec-fn/xdgami.f (xdgami): Reorder args to match dgami. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/libcruft/slatec-fn/xdgami.f octave-2.0.12/libcruft/slatec-fn/xdgami.f *** octave-2.0.11/libcruft/slatec-fn/xdgami.f Sun Nov 30 18:22:24 1997 --- octave-2.0.12/libcruft/slatec-fn/xdgami.f Mon Apr 6 00:26:16 1998 *************** *** 1,5 **** ! subroutine xdgami (x, a, result) ! double precision x, a, result, dgami ! result = dgami (x, a) return end --- 1,5 ---- ! subroutine xdgami (a, x, result) ! double precision a, x, result, dgami ! result = dgami (a, x) return end diff -cNr octave-2.0.11/libcruft/slatec-fn/xdgamit.f octave-2.0.12/libcruft/slatec-fn/xdgamit.f *** octave-2.0.11/libcruft/slatec-fn/xdgamit.f Wed Dec 31 18:00:00 1969 --- octave-2.0.12/libcruft/slatec-fn/xdgamit.f Tue Apr 14 14:01:04 1998 *************** *** 0 **** --- 1,5 ---- + subroutine xdgamit (a, x, result) + double precision a, x, result, dgamit + result = dgamit (a, x) + return + end diff -cNr octave-2.0.11/liboctave/Array-C.cc octave-2.0.12/liboctave/Array-C.cc *** octave-2.0.11/liboctave/Array-C.cc Sun Mar 3 18:33:32 1996 --- octave-2.0.12/liboctave/Array-C.cc Wed Apr 8 22:50:17 1998 *************** *** 33,54 **** template class Array; ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" --- 33,54 ---- template class Array; ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" diff -cNr octave-2.0.11/liboctave/Array-b.cc octave-2.0.12/liboctave/Array-b.cc *** octave-2.0.11/liboctave/Array-b.cc Sun Nov 10 17:08:55 1996 --- octave-2.0.12/liboctave/Array-b.cc Wed Apr 8 22:50:17 1998 *************** *** 31,37 **** template class Array; ! template void assign (Array&, const Array&); /* ;;; Local Variables: *** --- 31,37 ---- template class Array; ! template int assign (Array&, const Array&); /* ;;; Local Variables: *** diff -cNr octave-2.0.11/liboctave/Array-ch.cc octave-2.0.12/liboctave/Array-ch.cc *** octave-2.0.11/liboctave/Array-ch.cc Sun Mar 3 18:33:32 1996 --- octave-2.0.12/liboctave/Array-ch.cc Wed Apr 8 22:50:17 1998 *************** *** 31,44 **** template class Array; ! template void assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template void assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" --- 31,44 ---- template class Array; ! template int assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template int assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" diff -cNr octave-2.0.11/liboctave/Array-d.cc octave-2.0.12/liboctave/Array-d.cc *** octave-2.0.11/liboctave/Array-d.cc Sun Mar 3 18:33:32 1996 --- octave-2.0.12/liboctave/Array-d.cc Wed Apr 8 22:50:17 1998 *************** *** 31,50 **** template class Array; ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" --- 31,50 ---- template class Array; ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" diff -cNr octave-2.0.11/liboctave/Array-i.cc octave-2.0.12/liboctave/Array-i.cc *** octave-2.0.11/liboctave/Array-i.cc Sun Mar 3 18:33:32 1996 --- octave-2.0.12/liboctave/Array-i.cc Wed Apr 8 22:50:17 1998 *************** *** 31,48 **** template class Array; ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" --- 31,48 ---- template class Array; ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" diff -cNr octave-2.0.11/liboctave/Array-s.cc octave-2.0.12/liboctave/Array-s.cc *** octave-2.0.11/liboctave/Array-s.cc Sun Mar 3 18:33:32 1996 --- octave-2.0.12/liboctave/Array-s.cc Wed Apr 8 22:50:17 1998 *************** *** 31,46 **** template class Array; ! template void assign (Array&, const Array&); ! template void assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template void assign (Array2&, const Array2&); ! template void assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" --- 31,46 ---- template class Array; ! template int assign (Array&, const Array&); ! template int assign (Array&, const Array&); #include "Array2.h" #include "Array2.cc" template class Array2; ! template int assign (Array2&, const Array2&); ! template int assign (Array2&, const Array2&); #include "DiagArray2.h" #include "DiagArray2.cc" diff -cNr octave-2.0.11/liboctave/Array2-idx.h octave-2.0.12/liboctave/Array2-idx.h *** octave-2.0.11/liboctave/Array2-idx.h Mon Jan 19 16:23:37 1998 --- octave-2.0.12/liboctave/Array2-idx.h Tue Apr 14 14:59:58 1998 *************** *** 103,109 **** retval = Array2 (tmp, 1, len); } } ! else if (liboctave_dfi_flag) { // This code is only for indexing matrices. The vector // cases are handled above. --- 103,109 ---- retval = Array2 (tmp, 1, len); } } ! else if (liboctave_dfi_flag || idx.is_colon ()) { // This code is only for indexing matrices. The vector // cases are handled above. *************** *** 173,178 **** --- 173,180 ---- retval.resize (0, 0); else if (idx_j.is_colon_equiv (nc, 1)) retval.resize (0, nc); + else if (idx_i.is_colon_equiv (nr, 1)) + retval.resize (0, m); else (*current_liboctave_error_handler) ("invalid row index = 0"); } *************** *** 182,187 **** --- 184,191 ---- retval.resize (0, 0); else if (idx_i.is_colon_equiv (nr, 1)) retval.resize (nr, 0); + else if (idx_j.is_colon_equiv (nc, 1)) + retval.resize (n, 0); else (*current_liboctave_error_handler) ("invalid column index = 0"); } diff -cNr octave-2.0.11/liboctave/ChangeLog octave-2.0.12/liboctave/ChangeLog *** octave-2.0.11/liboctave/ChangeLog Tue Feb 24 16:30:47 1998 --- octave-2.0.12/liboctave/ChangeLog Sun May 3 19:59:57 1998 *************** *** 1,3 **** --- 1,44 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Thu Apr 23 16:15:37 1998 John W. Eaton + + * pathsearch.h (dir_path::p_orig): New field. + * pathsearch.cc (dir_path::init): Perform variable and tilde + expansion on the original path here. + (dir_path::find_all): Don't do anything if not initialized. + (dir_path::program_name): New static variable. + (dir_path::init_program_name): New static function. + (dir_path::init): Call kpse_set_program_name here. This is a + kluge and bad form besides, because it requires that you call + dir_path::init_program_name before using a dir_path object, but I + can't see a better solution just now. + + Tue Apr 14 14:41:30 1998 John W. Eaton + + * pathsearch.cc (dir_path::init): Set kpathsea_debug_initialized + so we only check the environment variable once. + + * Array2-idx.h (index): Allow x(:) even when do_fortran_indexing + is not set. + (index): Allow x = zeros (2, 0); x(1,:) to work. + + * lo-specfun.cc (gammainc): Use dgamit to compute + (\int_0^x exp(-t) t^(a-1) dt)/gamma(a), not just + \int_0^x exp(-t) t^(a-1) dt. + + Wed Apr 8 22:50:44 1998 John W. Eaton + + * Array-C.cc, Array-b.cc, Array-ch.cc, Array-i.cc, Array-d.cc, + Array-s.cc: Change return types of all `assign' explicit + instantiations to be int, not void, to match the template decl in + Array.h. + + Mon Apr 6 00:27:06 1998 John W. Eaton + + * lo-specfun.cc (gammainc): Reorder args in call to xdgami. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/liboctave/lo-specfun.cc octave-2.0.12/liboctave/lo-specfun.cc *** octave-2.0.11/liboctave/lo-specfun.cc Thu Feb 19 01:28:15 1998 --- octave-2.0.12/liboctave/lo-specfun.cc Tue Apr 14 14:40:59 1998 *************** *** 61,67 **** int F77_FCN (xdgamma, XDGAMMA) (const double&, double&); ! int F77_FCN (xdgami, XDGAMI) (const double&, const double&, double&); int F77_FCN (dlgams, DLGAMS) (const double&, double&, double&); } --- 61,67 ---- int F77_FCN (xdgamma, XDGAMMA) (const double&, double&); ! int F77_FCN (xdgamit, XDGAMIT) (const double&, const double&, double&); int F77_FCN (dlgams, DLGAMS) (const double&, double&, double&); } *************** *** 473,483 **** return retval; } double gammainc (double x, double a) { double retval; ! F77_XFCN (xdgami, XDGAMI, (x, a, retval)); return retval; } --- 473,492 ---- return retval; } + // XXX FIXME XXX -- there is still room for improvement here... + double gammainc (double x, double a) { double retval; ! ! F77_XFCN (xdgamit, XDGAMIT, (a, x, retval)); ! ! if (x == 0.0) ! retval = 0.0; ! else if (x > 0.0) ! retval = exp (a * log (x) + log (retval)); ! return retval; } diff -cNr octave-2.0.11/liboctave/pathsearch.cc octave-2.0.12/liboctave/pathsearch.cc *** octave-2.0.11/liboctave/pathsearch.cc Tue Jan 13 14:40:48 1998 --- octave-2.0.12/liboctave/pathsearch.cc Thu Apr 23 23:06:38 1998 *************** *** 37,50 **** // or otherwise cause trouble... #define string kpse_string #include extern unsigned int kpathsea_debug; #undef string } ! bool dir_path::kpathsea_debug_initialized = false; string_vector dir_path::elements (void) --- 37,54 ---- // or otherwise cause trouble... #define string kpse_string + #include #include + #include extern unsigned int kpathsea_debug; #undef string } ! static bool octave_kpathsea_initialized = false; ! ! string dir_path::program_name; string_vector dir_path::elements (void) *************** *** 117,135 **** { string_vector retval; ! kpse_string *tmp = kpse_all_path_search (p.c_str (), nm.c_str ()); ! ! if (tmp) { ! int count = 0; ! kpse_string *ptr = tmp; ! while (*ptr++) ! count++; ! retval.resize (count); ! for (int i = 0; i < count; i++) ! retval[i] = tmp[i]; } return retval; --- 121,142 ---- { string_vector retval; ! if (initialized) { ! kpse_string *tmp = kpse_all_path_search (p.c_str (), nm.c_str ()); ! if (tmp) ! { ! int count = 0; ! kpse_string *ptr = tmp; ! while (*ptr++) ! count++; ! ! retval.resize (count); ! for (int i = 0; i < count; i++) ! retval[i] = tmp[i]; ! } } return retval; *************** *** 138,152 **** void dir_path::init (void) { ! initialized = false; ! ! if (! kpathsea_debug_initialized) { char *s = getenv ("KPATHSEA_DEBUG"); if (s) kpathsea_debug |= atoi (s); } int count = 0; char *path_elt = kpse_path_element (p.c_str ()); --- 145,170 ---- void dir_path::init (void) { ! if (! octave_kpathsea_initialized) { char *s = getenv ("KPATHSEA_DEBUG"); if (s) kpathsea_debug |= atoi (s); + + kpse_set_program_name (program_name.c_str (), "octave"); + + octave_kpathsea_initialized = true; + } + + char *tmp = kpse_path_expand (p_orig.c_str ()); + if (tmp) + { + p = tmp; + free (tmp); } + else + p = string (); int count = 0; char *path_elt = kpse_path_element (p.c_str ()); *************** *** 167,172 **** --- 185,196 ---- } initialized = true; + } + + void + dir_path::init_program_name (const string& nm) + { + program_name = nm; } /* diff -cNr octave-2.0.11/liboctave/pathsearch.h octave-2.0.12/liboctave/pathsearch.h *** octave-2.0.11/liboctave/pathsearch.h Sat Mar 2 19:16:15 1996 --- octave-2.0.12/liboctave/pathsearch.h Thu Apr 23 22:59:40 1998 *************** *** 32,50 **** { public: ! dir_path (const string& s = string ()) : p (s), initialized (false) { ! if (! p.empty ()) init (); } dir_path (const dir_path& dp) ! : p (dp.p), initialized (dp.initialized), pv (dp.pv) { } dir_path& operator = (const dir_path& dp) { ! p = dp.p; initialized = dp.initialized; pv = dp.pv; return *this; } --- 32,53 ---- { public: ! dir_path (const string& s = string ()) ! : p_orig (s), initialized (false) { ! if (! p_orig.empty ()) init (); } dir_path (const dir_path& dp) ! : p_orig (dp.p_orig), initialized (dp.initialized), p (dp.p), pv (dp.pv) ! { } dir_path& operator = (const dir_path& dp) { ! p_orig = dp.p_orig; initialized = dp.initialized; + p = dp.p; pv = dp.pv; return *this; } *************** *** 54,60 **** void set (const string& s) { initialized = false; ! p = s; init (); } --- 57,63 ---- void set (const string& s) { initialized = false; ! p_orig = s; init (); } *************** *** 66,84 **** string_vector find_all (const string&); private: ! // The colon separated list. ! string p; // TRUE means we've unpacked p. bool initialized; // The elements of the list. string_vector pv; ! // TRUE means we've set the global value of kpathsea_debug. ! static bool kpathsea_debug_initialized; void init (void); }; --- 69,92 ---- string_vector find_all (const string&); + static void init_program_name (const string&); + private: ! // The colon separated list that we were given. ! string p_orig; // TRUE means we've unpacked p. bool initialized; + // A version of the colon separate list on which we have performed + // tilde and variable expansion. + string p; + // The elements of the list. string_vector pv; ! static string program_name; void init (void); }; diff -cNr octave-2.0.11/octMakefile.in octave-2.0.12/octMakefile.in *** octave-2.0.11/octMakefile.in Fri Feb 20 00:54:07 1998 --- octave-2.0.12/octMakefile.in Tue Apr 14 10:17:01 1998 *************** *** 27,48 **** BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \ PROJECTS README README.Linux README.Windows ROADMAP \ SENDING-PATCHES THANKS move-if-change octave-sh octave-bug.in \ ! install-octave mkinstalldirs mkoctfile.in texi2dvi INFO.PATCH \ MAKEINFO.PATCH ChangeLog ChangeLog.[0-9] # Complete directory trees to distribute. DISTDIRS = glob kpathsea readline # plplot # Subdirectories in which to run `make all'. ! SUBDIRS = @INFO_DIR@ @PLPLOT_DIR@ @READLINE_DIR@ @DLFCN_DIR@ @GLOB_DIR@ \ kpathsea libcruft liboctave src scripts doc examples # Subdirectories in which to run `make conf-dist'. CONF_DISTSUBDIRS = src # Subdirectories in which to run `make dist'. ! DISTSUBDIRS = libcruft liboctave info dlfcn src scripts \ ! test doc emacs examples XBINDISTFILES = BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \ PROJECTS README README.Linux README.Windows SENDING-PATCHES \ --- 27,47 ---- BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \ PROJECTS README README.Linux README.Windows ROADMAP \ SENDING-PATCHES THANKS move-if-change octave-sh octave-bug.in \ ! install-octave.in mkinstalldirs mkoctfile.in texi2dvi INFO.PATCH \ MAKEINFO.PATCH ChangeLog ChangeLog.[0-9] # Complete directory trees to distribute. DISTDIRS = glob kpathsea readline # plplot # Subdirectories in which to run `make all'. ! SUBDIRS = @PLPLOT_DIR@ @READLINE_DIR@ @DLFCN_DIR@ @GLOB_DIR@ \ kpathsea libcruft liboctave src scripts doc examples # Subdirectories in which to run `make conf-dist'. CONF_DISTSUBDIRS = src # Subdirectories in which to run `make dist'. ! DISTSUBDIRS = libcruft liboctave dlfcn src scripts test doc emacs examples XBINDISTFILES = BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \ PROJECTS README README.Linux README.Windows SENDING-PATCHES \ *************** *** 53,59 **** octave-bug config.status config.h VERSION ARCH # Subdirectories in which to run `make bin-dist'. ! BINDISTSUBDIRS = libcruft liboctave src info scripts doc emacs examples # Subdirectories in which to run clean targets. CLEANSUBDIRS = $(DISTSUBDIRS) @READLINE_DIR@ @GLOB_DIR@ kpathsea --- 52,58 ---- octave-bug config.status config.h VERSION ARCH # Subdirectories in which to run `make bin-dist'. ! BINDISTSUBDIRS = libcruft liboctave src scripts doc emacs examples # Subdirectories in which to run clean targets. CLEANSUBDIRS = $(DISTSUBDIRS) @READLINE_DIR@ @GLOB_DIR@ kpathsea *************** *** 126,132 **** maintainer-clean distclean:: rm -f octMakefile octave-bug Makefile Makeconf config.cache \ config.h config.log config.status Makerules.f77 mk-oct-links \ ! mkoctfile Makefrag.f77 maintainer-clean:: rm -f configure config.h.in BUGS INSTALL.OCTAVE --- 125,131 ---- maintainer-clean distclean:: rm -f octMakefile octave-bug Makefile Makeconf config.cache \ config.h config.log config.status Makerules.f77 mk-oct-links \ ! mkoctfile Makefrag.f77 install-octave maintainer-clean:: rm -f configure config.h.in BUGS INSTALL.OCTAVE *************** *** 156,164 **** -o -name "=*" -o -name '*~' -o -name '#*#' -o -name config.log \ -o -name config.status -o -name config.cache -o -name stamp-h \ -o -name klibtool.config -o -name c-auto.h \) -print | xargs rm -rf ! find `cat .fname`/readline `cat .fname`/kpathsea `cat .fname`/info \ `cat .fname`/glob -name Makefile | xargs rm -f ! find `cat .fname`/readline `cat .fname`/info `cat .fname`/glob \ -name config.h | xargs rm -f rm -f `cat .fname`/test/octave.test/*.m chmod -R a+rwX `cat .fname` --- 155,163 ---- -o -name "=*" -o -name '*~' -o -name '#*#' -o -name config.log \ -o -name config.status -o -name config.cache -o -name stamp-h \ -o -name klibtool.config -o -name c-auto.h \) -print | xargs rm -rf ! find `cat .fname`/readline `cat .fname`/kpathsea \ `cat .fname`/glob -name Makefile | xargs rm -f ! find `cat .fname`/readline `cat .fname`/glob \ -name config.h | xargs rm -f rm -f `cat .fname`/test/octave.test/*.m chmod -R a+rwX `cat .fname` *************** *** 236,242 **** find `cat .fname` \( -perm 766 -o -perm 676 -o -perm 667 \ -o -perm 776 -o -perm 677 -o -perm 767 \) -print | \ xargs chmod a+x scripts - strip src/octave info/info tar cf `cat .fname`.tar `cat .fname` rm -rf `cat .fname` gzip --best `cat .fname`.tar --- 235,240 ---- diff -cNr octave-2.0.11/readline/ChangeLog octave-2.0.12/readline/ChangeLog *** octave-2.0.11/readline/ChangeLog Sun Jan 25 02:19:50 1998 --- octave-2.0.12/readline/ChangeLog Wed Mar 4 15:02:16 1998 *************** *** 1,3 **** --- 1,8 ---- + Wed Mar 4 14:59:11 1998 John W. Eaton + + * parens.c (rl_insert_close): Make time delay for showing matching + parentheses 0.5 seconds. + Sun Jan 25 02:19:15 1998 John W. Eaton * aclocal.m4 (BASH_REINSTALL_SIGHANDLERS, BASH_FUNC_STRCOLL): diff -cNr octave-2.0.11/readline/config.guess octave-2.0.12/readline/config.guess *** octave-2.0.11/readline/config.guess Wed Dec 31 18:00:00 1969 --- octave-2.0.12/readline/config.guess Fri Apr 24 01:35:37 1998 *************** *** 0 **** --- 1,883 ---- + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. + # + # 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 + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but + # WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + + # Written by Per Bothner . + # The master version of this file is at the FSF in /home/gd/gnu/lib. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # + # The plan is that this can be called by configure scripts if you + # don't specify an explicit system type (host/target name). + # + # Only a few systems have been added to this list; please add others + # (but try to keep the structure clean). + # + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. + # (ghazi@noc.rutgers.edu 8/24/94.) + if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH + fi + + UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown + UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + + trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 + + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + cat <dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main + EOF + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-cbm-sysv4 + exit 0;; + amiga:NetBSD:*:*) + echo m68k-cbm-netbsd${UNAME_RELEASE} + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + arm32:NetBSD:*:*) + echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + SR2?01:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:NetBSD:*:*) + echo m68k-atari-netbsd${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:NetBSD:*:*) + echo m68k-sun-netbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:NetBSD:*:*) + echo m68k-apple-netbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >dummy.c + int main (argc, argv) int argc; char **argv; { + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } + EOF + ${CC-cc} dummy.c -o dummy \ + && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ + -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i?86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } + EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:4) + if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=4.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[3478]??:HP-UX:*:*) + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; + 9000/8?? ) HP_ARCH=hppa1.0 ;; + esac + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } + EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i?86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F300:UNIX_System_V:*:*) + FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + F301:UNIX_System_V:*:*) + echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` + exit 0 ;; + hp3[0-9][05]:NetBSD:*:*) + echo m68k-hp-netbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + i?86:BSD/386:*:* | *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:NetBSD:*:*) + echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo i386-pc-cygwin32 + exit 0 ;; + i*:MINGW*:*) + echo i386-pc-mingw32 + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin32 + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. + ld_help_string=`ld --help 2>&1` + ld_supported_emulations=`echo $ld_help_string \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; + i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; + sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; + esac + + if test "${UNAME_MACHINE}" = "alpha" ; then + sed 's/^ //' <dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main + EOF + LIBC="" + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + + objdump --private-headers dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 + elif test "${UNAME_MACHINE}" = "mips" ; then + cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + else + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >dummy.c < + main(argc, argv) + int argc; + char *argv[]; + { + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); + # else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); + # endif + # else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); + # endif + #else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); + #endif + return 0; + } + EOF + ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + fi ;; + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions + # are messed up and put the nodename in both sysname and nodename. + i?86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i?86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + pc:*:*:*) + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i?86:LynxOS:2.*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:*:6*) + echo mips-sony-newsos6 + exit 0 ;; + R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 + #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + + cat >dummy.c < + # include + #endif + main () + { + #if defined (sony) + #if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); + #else + #include + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 + "4" + #else + "" + #endif + ); exit (0); + #endif + #endif + + #if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); + #endif + + #if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); + #endif + + #if defined (NeXT) + #if !defined (__ARCHITECTURE__) + #define __ARCHITECTURE__ "m68k" + #endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + exit (0); + #endif + + #if defined (MULTIMAX) || defined (n16) + #if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); + #else + #if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); + #else + printf ("ns32k-encore-bsd\n"); exit (0); + #endif + #endif + #endif + + #if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); + #endif + + #if defined (sequent) + #if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); + #endif + #if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); + #endif + #endif + + #if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + + #endif + + #if defined (vax) + #if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); + #else + printf ("vax-dec-ultrix\n"); exit (0); + #endif + #endif + + #if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); + #endif + + exit (1); + } + EOF + + ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + + # Apollos put the system type in the environment. + + test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + + # Convex versions that predate uname can use getsysinfo(1) + + if [ -x /usr/convex/getsysinfo ] + then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac + fi + + #echo '(Unable to guess system type)' 1>&2 + + exit 1 diff -cNr octave-2.0.11/readline/config.sub octave-2.0.12/readline/config.sub *** octave-2.0.11/readline/config.sub Wed Dec 31 18:00:00 1969 --- octave-2.0.12/readline/config.sub Fri Apr 24 01:35:37 1998 *************** *** 0 **** --- 1,954 ---- + #! /bin/sh + # Configuration validation subroutine script, version 1.1. + # Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software + # can handle that machine. It does not imply ALL GNU software can. + # + # 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 + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place - Suite 330, + # Boston, MA 02111-1307, USA. + + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. + # Otherwise, we print the canonical config type on stdout and succeed. + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. + # Each package is responsible for reporting which valid configurations + # it does not support. The user should be able to distinguish + # a failure to support a valid configuration from a meaningless + # configuration. + + # The goal of this file is to map all the various variations of a given + # machine specification into a single specification in the form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM + # or in some cases, the newer four-part form: + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + + if [ x$1 = x ] + then + echo Configuration name missing. 1>&2 + echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 + echo "or $0 ALIAS" 1>&2 + echo where ALIAS is a recognized configuration type. 1>&2 + exit 1 + fi + + # First pass through any local machine types. + case $1 in + *local*) + echo $1 + exit 0 + ;; + *) + ;; + esac + + # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in + linux-gnu*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; + esac + + ### Let's recognize common machines as not being operating systems so + ### that things like config.sub decstation-3100 work. We also + ### recognize some manufacturers as not being operating systems, so we + ### can provide default operating systems below. + case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple) + os= + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + esac + + # Decode aliases for certain CPU-COMPANY combinations. + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 \ + | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) + basic_machine=$basic_machine-unknown + ;; + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[3456]86) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-cbm + ;; + amigaos | amigados) + basic_machine=m68k-cbm + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-cbm + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [ctj]90-cray) + basic_machine=c90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + os=-mvs + ;; + # I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[3456]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[3456]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[3456]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[3456]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + np1) + basic_machine=np1-gould + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5) + basic_machine=i586-intel + ;; + pentiumpro | p6) + basic_machine=i686-intel + ;; + pentium-* | p5-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + k5) + # We don't have specific support for AMD's K5 yet, so just call it a Pentium + basic_machine=i586-amd + ;; + nexen) + # We don't have specific support for Nexgen yet, so just call it a Pentium + basic_machine=i586-nexgen + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + none) + basic_machine=none-none + os=-none + ;; + + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sparc) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. + case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; + esac + + # Decode manufacturer-specific aliases for certain operating systems. + + if [ x"$os" != x"" ] + then + case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -xenix) + os=-xenix + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; + esac + else + + # Here we handle the default operating systems that come with various machines. + # The value should be what the vendor currently ships out the door with their + # machine or put another way, the most popular os provided with the machine. + + # Note that if you're going to try to match "-MANUFACTURER" here (say, + # "-sun"), then you have to tell the case statement up towards the top + # that MANUFACTURER isn't an operating system. Otherwise, code above + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + + case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-semi) + os=-aout + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-ibm) + os=-aix + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f301-fujitsu) + os=-uxpv + ;; + *) + os=-none + ;; + esac + fi + + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. + vendor=unknown + case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -hpux*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + + echo $basic_machine$os diff -cNr octave-2.0.11/readline/parens.c octave-2.0.12/readline/parens.c *** octave-2.0.11/readline/parens.c Fri Jul 5 11:59:00 1996 --- octave-2.0.12/readline/parens.c Wed Mar 4 15:02:06 1998 *************** *** 101,108 **** FD_ZERO (&readfds); FD_SET (fileno (rl_instream), &readfds); ! timer.tv_sec = 1; ! timer.tv_usec = 500; orig_point = rl_point; rl_point = match_point; --- 101,108 ---- FD_ZERO (&readfds); FD_SET (fileno (rl_instream), &readfds); ! timer.tv_sec = 0; ! timer.tv_usec = 500000; orig_point = rl_point; rl_point = match_point; diff -cNr octave-2.0.11/scripts/ChangeLog octave-2.0.12/scripts/ChangeLog *** octave-2.0.11/scripts/ChangeLog Tue Feb 24 16:30:34 1998 --- octave-2.0.12/scripts/ChangeLog Sun May 3 19:59:53 1998 *************** *** 1,3 **** --- 1,71 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Wed Apr 29 01:42:39 1998 John W. Eaton + + * miscellaneous/path.m: New file. + + Wed Apr 22 12:11:27 1998 John W. Eaton + + * miscellaneous/flops.m: Allow a single argument too. + + Tue Apr 21 10:18:20 1998 John W. Eaton + + * strings/str2mat.m: Also handle case when there are no empty + strings correctly. + + Mon Apr 20 22:14:15 1998 John W. Eaton + + * strings/isletter.m: New function, for Matlab compatibility. + + Fri Apr 17 10:53:39 1998 John W. Eaton + + * strings/str2mat.m: Handle string matrices too. + + Wed Apr 15 11:16:01 1998 John W. Eaton + + * audio/loadaudio.m: Accept "pcm" as another file extension for + linear encoding. + + * audio/saveaudio.m, audio/loadaudio.m, audio/playaudio.m, + audio/record.m: Open files in binary mode. + + Fri Apr 10 10:46:21 1998 John W. Eaton + + * miscellaneous/dump_prefs.m: Use string array for list of values. + Move functionality of dump_1_pref here, but use built-in function + type to extract value, and put it inside try/catch block. + * miscellaneous/dump_1_pref.m: Delete unused function. + + Wed Apr 8 11:01:22 1998 John W. Eaton + + * plot/__plt2mv__.m, plot/__plt2vm__.m, plot/__plt2mm__.m: + If fmt is a string array with fewer rows than plots, simply reuse + the last row of the fmt string array for all remaining plots. + + Fri Mar 27 03:00:40 1998 John W. Eaton + + * plot/mplot.m: Fix misspellings of global variables. + Don't call clearplot. + + Fri Mar 20 01:34:02 1998 John W. Eaton + + * plot/__pltopt1.m__: New file. + * plot/__pltopt.m__: Handle opt as a string array by calling + __pltopt1__ multiple times and returning a string array with rows + corresponding to the rows of opt. + * plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m, + plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string + array. + + Tue Mar 17 17:45:25 1998 John W. Eaton + + * plot/subplot.m, plot/multiplot.m: Set gnuplot_command_replot to + "cle;rep" when going in ot multiplot mode. + * plot/oneplot.m: Reset gnuplot_command_replot to "rep" when + switching out of multiplot mode. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/scripts/audio/loadaudio.m octave-2.0.12/scripts/audio/loadaudio.m *** octave-2.0.11/scripts/audio/loadaudio.m Mon Jul 15 17:31:34 1996 --- octave-2.0.12/scripts/audio/loadaudio.m Wed Apr 15 19:08:58 1998 *************** *** 23,30 **** ## Default value for the "ext" argument, which has to be written ## without the initial ".", is "lin". ## Currently, the following audio formats are supported: ! ## *) mu-law encoding with extension "mu", "au" or "snd" ! ## *) linear encoding with extension "lin" or "raw" ## ## The `bit' argument can be either 8 (default) or 16. ## Depending on the value of bit, linearly encoded files are --- 23,30 ---- ## Default value for the "ext" argument, which has to be written ## without the initial ".", is "lin". ## Currently, the following audio formats are supported: ! ## *) mu-law encoding with extension "mu", "au", or "snd" ! ## *) linear encoding with extension "lin", "pcm", or "raw" ## ## The `bit' argument can be either 8 (default) or 16. ## Depending on the value of bit, linearly encoded files are *************** *** 53,61 **** endif name = [name, ".", ext]; ! num = fopen (name, "r"); ! if (strcmp (ext, "lin") || strcmp (ext, "raw")) if (bit == 8) [Y, c] = fread (num, inf, "uchar"); X = Y - 127; --- 53,61 ---- endif name = [name, ".", ext]; ! num = fopen (name, "rb"); ! if (strcmp (ext, "lin") || strcmp (ext, "raw") || strcmp (ext, "pcm")) if (bit == 8) [Y, c] = fread (num, inf, "uchar"); X = Y - 127; diff -cNr octave-2.0.11/scripts/audio/playaudio.m octave-2.0.12/scripts/audio/playaudio.m *** octave-2.0.11/scripts/audio/playaudio.m Sat Nov 2 21:09:25 1996 --- octave-2.0.12/scripts/audio/playaudio.m Wed Apr 15 11:16:14 1998 *************** *** 53,59 **** X = name + 127; unwind_protect file = tmpnam (); ! num = fopen (file, "w"); c = fwrite (num, X, "uchar"); fclose (num); system (sprintf ("cat %s > /dev/dsp", file)); --- 53,59 ---- X = name + 127; unwind_protect file = tmpnam (); ! num = fopen (file, "wb"); c = fwrite (num, X, "uchar"); fclose (num); system (sprintf ("cat %s > /dev/dsp", file)); diff -cNr octave-2.0.11/scripts/audio/record.m octave-2.0.12/scripts/audio/record.m *** octave-2.0.11/scripts/audio/record.m Sat Nov 2 21:06:27 1996 --- octave-2.0.12/scripts/audio/record.m Wed Apr 15 11:15:58 1998 *************** *** 47,53 **** system (cmd); ! num = fopen (file, "r"); [Y, c] = fread (num, sampling_rate * sec, "uchar"); --- 47,53 ---- system (cmd); ! num = fopen (file, "rb"); [Y, c] = fread (num, sampling_rate * sec, "uchar"); diff -cNr octave-2.0.11/scripts/audio/saveaudio.m octave-2.0.12/scripts/audio/saveaudio.m *** octave-2.0.11/scripts/audio/saveaudio.m Mon Jul 15 17:20:21 1996 --- octave-2.0.12/scripts/audio/saveaudio.m Wed Apr 15 11:16:34 1998 *************** *** 59,65 **** endif endif ! num = fopen ([name, ".", ext], "w"); if (strcmp (ext, "lin") || strcmp (ext, "raw")) if (bit == 8) --- 59,65 ---- endif endif ! num = fopen ([name, ".", ext], "wb"); if (strcmp (ext, "lin") || strcmp (ext, "raw")) if (bit == 8) diff -cNr octave-2.0.11/scripts/miscellaneous/dump_prefs.m octave-2.0.12/scripts/miscellaneous/dump_prefs.m *** octave-2.0.11/scripts/miscellaneous/dump_prefs.m Thu Jul 11 22:58:02 1996 --- octave-2.0.12/scripts/miscellaneous/dump_prefs.m Fri Apr 10 11:52:07 1998 *************** *** 31,75 **** file = stdout; endif ! ## XXX FIXME XXX -- vectors of strings would be really useful here... ! ## XXX FIXME XXX -- maybe this should be a built-in function so that we ! ## wouldn't have to remember to update it each time the list of ! ## preference variables changes ! dump_1_pref (file, "EDITOR"); ! dump_1_pref (file, "IMAGEPATH"); ! dump_1_pref (file, "INFO_FILE"); ! dump_1_pref (file, "LOADPATH"); ! dump_1_pref (file, "OCTAVE_VERSION"); ! dump_1_pref (file, "PAGER"); ! dump_1_pref (file, "PS1"); ! dump_1_pref (file, "PS2"); ! dump_1_pref (file, "automatic_replot"); ! dump_1_pref (file, "whitespace_in_literal_matrix"); ! dump_1_pref (file, "default_save_format"); ! dump_1_pref (file, "do_fortran_indexing"); ! dump_1_pref (file, "empty_list_elements_ok"); ! dump_1_pref (file, "eps"); ! dump_1_pref (file, "gnuplot_binary"); ! dump_1_pref (file, "ignore_function_time_stamp"); ! dump_1_pref (file, "implicit_str_to_num_ok"); ! dump_1_pref (file, "ok_to_lose_imaginary_part"); ! dump_1_pref (file, "output_max_field_width"); ! dump_1_pref (file, "output_precision"); ! dump_1_pref (file, "page_screen_output"); ! dump_1_pref (file, "prefer_column_vectors"); ! dump_1_pref (file, "prefer_zero_one_indexing"); ! dump_1_pref (file, "print_answer_id_name"); ! dump_1_pref (file, "print_empty_dimensions"); ! dump_1_pref (file, "propagate_empty_matrices"); ! dump_1_pref (file, "resize_on_range_error"); ! dump_1_pref (file, "return_last_computed_value"); ! dump_1_pref (file, "save_precision"); ! dump_1_pref (file, "silent_functions"); ! dump_1_pref (file, "split_long_rows"); ! dump_1_pref (file, "treat_neg_dim_as_zero"); ! dump_1_pref (file, "warn_assign_as_truth_value"); ! dump_1_pref (file, "warn_comma_in_global_decl"); ! dump_1_pref (file, "warn_divide_by_zero"); endfunction --- 31,110 ---- file = stdout; endif ! ## XXX FIXME XXX -- it would be nice to be able to get the list of ! ## built-in variables directly from Octave so that we wouldn't have to ! ## remember to update it each time the list of preference variables ! ## changes ! var_list = ["EDITOR"; ! "EXEC_PATH"; ! "IMAGEPATH"; ! "INFO_FILE"; ! "INFO_PROGRAM"; ! "LOADPATH"; ! "PAGER"; ! "PS1"; ! "PS2"; ! "PS4"; ! "auto_unload_dot_oct_files"; ! "automatic_replot"; ! "beep_on_error"; ! "completion_append_char"; ! "default_eval_print_flag"; ! "default_global_variable_value"; ! "default_return_value"; ! "default_save_format"; ! "define_all_return_values"; ! "do_fortran_indexing"; ! "echo_executing_commands"; ! "empty_list_elements_ok"; ! "fixed_point_format"; ! "gnuplot_binary"; ! "gnuplot_has_frames"; ! "gnuplot_has_multiplot"; ! "history_file"; ! "history_size"; ! "ignore_function_time_stamp"; ! "implicit_num_to_str_ok"; ! "implicit_str_to_num_ok"; ! "initialize_global_variables"; ! "max_recursion_depth"; ! "ok_to_lose_imaginary_part"; ! "output_max_field_width"; ! "output_precision"; ! "page_output_immediately"; ! "page_screen_output"; ! "prefer_column_vectors"; ! "prefer_zero_one_indexing"; ! "print_answer_id_name"; ! "print_empty_dimensions"; ! "propagate_empty_matrices"; ! "resize_on_range_error"; ! "return_last_computed_value"; ! "save_precision"; ! "saving_history"; ! "silent_functions"; ! "split_long_rows"; ! "string_fill_char"; ! "struct_levels_to_print"; ! "suppress_verbose_help_message"; ! "treat_neg_dim_as_zero"; ! "warn_assign_as_truth_value"; ! "warn_comma_in_global_decl"; ! "warn_divide_by_zero"; ! "warn_function_name_clash"; ! "warn_missing_semicolon"; ! "warn_reload_forces_clear"; ! "warn_variable_switch_label"; ! "whitespace_in_literal_matrix"]; ! ! for i = 1:rows(var_list) ! var = deblank (var_list(i,:)); ! try ! fprintf (file, " %s = %s\n", var, type ("-q", var)); ! catch ! fprintf (file, "# %s = \n", var); ! end_try_catch ! endfor endfunction diff -cNr octave-2.0.11/scripts/miscellaneous/flops.m octave-2.0.12/scripts/miscellaneous/flops.m *** octave-2.0.11/scripts/miscellaneous/flops.m Thu Jul 11 22:58:02 1996 --- octave-2.0.12/scripts/miscellaneous/flops.m Wed Apr 22 12:11:14 1998 *************** *** 25,32 **** function retval = flops () ! if (nargin > 0) ! usage ("flops ()"); endif warning ("flops is a flop, always returning zero"); --- 25,32 ---- function retval = flops () ! if (nargin > 1) ! usage ("flops () or flops (n)"); endif warning ("flops is a flop, always returning zero"); diff -cNr octave-2.0.11/scripts/miscellaneous/path.m octave-2.0.12/scripts/miscellaneous/path.m *** octave-2.0.11/scripts/miscellaneous/path.m Wed Dec 31 18:00:00 1969 --- octave-2.0.12/scripts/miscellaneous/path.m Wed Apr 29 01:42:25 1998 *************** *** 0 **** --- 1,54 ---- + ## Copyright (C) 1997 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 2, or (at your option) + ## any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, write to the Free + ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA + ## 02111-1307, USA. + + ## usage: p = path (...) + ## + ## Modify or display Octave's LOADPATH. + ## + ## If nargin and nargout are 0, display the elements of Octave's + ## LOADPATH in an easy to read format. + ## + ## If nargin is zero and nargout is greater than zero, return the + ## current value of LOADPATH. + ## + ## If nargin is greater than zero, concatenate the arguments, separating + ## them with ":". Set LOADPATH to the result and also return it. + ## + ## No checks are made for duplicate elements. + + ## Author: jwe + + function p = path (...) + + if (nargin == 0) + if (nargout == 0) + printf ("\nLOADPATH contains the following directories:\n\n "); + printf ("%s\n\n", strrep (LOADPATH, ":", "\n ")); + else + p = LOADPATH; + endif + else + p = va_arg (); + for i = 2:nargin + p = sprintf ("%s:%s", p, va_arg ()); + endfor + LOADPATH = p; + endif + + endfunction diff -cNr octave-2.0.11/scripts/plot/__plt2mm__.m octave-2.0.12/scripts/plot/__plt2mm__.m *** octave-2.0.11/scripts/plot/__plt2mm__.m Fri Jul 12 12:22:10 1996 --- octave-2.0.12/scripts/plot/__plt2mm__.m Wed Apr 8 10:59:34 1998 *************** *** 25,43 **** msg = sprintf ("__plt2mm__ (x, y)\n"); msg = sprintf ("%s __plt2mm__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2) ! fmt = ""; endif [x_nr, x_nc] = size (x); [y_nr, y_nc] = size (y); if (x_nr == y_nr && x_nc == y_nc) if (x_nc > 0) tmp = [x, y]; ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, fmt); for i = 2:x_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, i, x_nc, x_nc+i, fmt); endfor eval (cmd); else --- 25,53 ---- msg = sprintf ("__plt2mm__ (x, y)\n"); msg = sprintf ("%s __plt2mm__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2 || fmt == "") ! fmt = " "; ## Yes, this is intentionally not an empty string! endif [x_nr, x_nc] = size (x); [y_nr, y_nc] = size (y); + k = 1; + fmt_nr = rows (fmt); if (x_nr == y_nr && x_nc == y_nc) if (x_nc > 0) tmp = [x, y]; ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif for i = 2:x_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, i, x_nc, x_nc+i, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif endfor eval (cmd); else diff -cNr octave-2.0.11/scripts/plot/__plt2mv__.m octave-2.0.12/scripts/plot/__plt2mv__.m *** octave-2.0.11/scripts/plot/__plt2mv__.m Fri Jul 12 12:22:10 1996 --- octave-2.0.12/scripts/plot/__plt2mv__.m Wed Apr 8 11:01:02 1998 *************** *** 21,32 **** function __plt2mv__ (x, y, fmt) if (nargin < 2 || nargin > 3) msg = sprintf ("__plt2mv__ (x, y)\n"); msg = sprintf ("%s __plt2mv__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2) ! fmt = ""; endif [x_nr, x_nc] = size (x); --- 21,33 ---- function __plt2mv__ (x, y, fmt) + keyboard if (nargin < 2 || nargin > 3) msg = sprintf ("__plt2mv__ (x, y)\n"); msg = sprintf ("%s __plt2mv__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2 || fmt == "") ! fmt = " "; ## Yes, this is intentionally not an empty string! endif [x_nr, x_nc] = size (x); *************** *** 50,60 **** error ("__plt2mv__: matrix dimensions must match"); endif if (x_nc > 0) tmp = [x, y]; ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, fmt); for i = 2:x_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, i, x_nc-i+1, x_nc+1, fmt); endfor eval (cmd); else --- 51,72 ---- error ("__plt2mv__: matrix dimensions must match"); endif + k = 1; + fmt_nr = rows (fmt); if (x_nc > 0) tmp = [x, y]; ! keyboard ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif for i = 2:x_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, i, x_nc-i+1, x_nc+1, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif endfor eval (cmd); else diff -cNr octave-2.0.11/scripts/plot/__plt2ss__.m octave-2.0.12/scripts/plot/__plt2ss__.m *** octave-2.0.11/scripts/plot/__plt2ss__.m Fri Jul 12 12:22:11 1996 --- octave-2.0.12/scripts/plot/__plt2ss__.m Fri Mar 20 01:10:38 1998 *************** *** 27,32 **** --- 27,34 ---- usage (msg); elseif (nargin == 2) fmt = ""; + elseif (rows (fmt) > 1) + fmt = fmt (1, :); endif [x_nr, x_nc] = size (x); diff -cNr octave-2.0.11/scripts/plot/__plt2vm__.m octave-2.0.12/scripts/plot/__plt2vm__.m *** octave-2.0.11/scripts/plot/__plt2vm__.m Fri Jul 12 12:22:11 1996 --- octave-2.0.12/scripts/plot/__plt2vm__.m Wed Apr 8 11:00:38 1998 *************** *** 25,32 **** msg = sprintf ("__plt2vm__ (x, y)\n"); msg = sprintf ("%s __plt2vm__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2) ! fmt = ""; endif [x_nr, x_nc] = size (x); --- 25,32 ---- msg = sprintf ("__plt2vm__ (x, y)\n"); msg = sprintf ("%s __plt2vm__ (x, y, fmt)", msg); usage (msg); ! elseif (nargin == 2 || fmt == "") ! fmt = " "; ## Yes, this is intentionally not an empty string! endif [x_nr, x_nc] = size (x); *************** *** 50,60 **** error ("__plt2vm__: matrix dimensions must match"); endif if (y_nc > 0) tmp = [x, y]; ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, fmt); for i = 2:y_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, 1, i, i+1, fmt); endfor eval (cmd); else --- 50,70 ---- error ("__plt2vm__: matrix dimensions must match"); endif + k = 1; + fmt_nr = rows (fmt); if (y_nc > 0) tmp = [x, y]; ! cmd = sprintf ("gplot tmp(:,%d:%d:%d) %s", 1, x_nc, x_nc+1, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif for i = 2:y_nc ! cmd = sprintf ("%s, tmp(:,%d:%d:%d) %s", cmd, 1, i, i+1, ! deblank (fmt (k, :))); ! if (k < fmt_nr) ! k++; ! endif endfor eval (cmd); else diff -cNr octave-2.0.11/scripts/plot/__plt2vv__.m octave-2.0.12/scripts/plot/__plt2vv__.m *** octave-2.0.11/scripts/plot/__plt2vv__.m Fri Jul 12 12:22:12 1996 --- octave-2.0.12/scripts/plot/__plt2vv__.m Fri Mar 20 01:09:46 1998 *************** *** 27,32 **** --- 27,34 ---- usage (msg); elseif (nargin == 2) fmt = ""; + elseif (rows (fmt) > 1) + fmt = fmt (1, :); endif [x_nr, x_nc] = size (x); diff -cNr octave-2.0.11/scripts/plot/__pltopt1__.m octave-2.0.12/scripts/plot/__pltopt1__.m *** octave-2.0.11/scripts/plot/__pltopt1__.m Wed Dec 31 18:00:00 1969 --- octave-2.0.12/scripts/plot/__pltopt1__.m Wed Apr 8 10:19:30 1998 *************** *** 0 **** --- 1,217 ---- + ## Copyright (C) 1996, 1997 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 2, or (at your option) + ## any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, write to the Free + ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA + ## 02111-1307, USA. + + ## usage: fmt = __pltopt1__ (caller, opt) + ## + ## Really decode plot option strings. + ## + ## See also: __pltopt__ + + ## Author: Rick Niles + ## Adapted-By: jwe + ## Maintainer: jwe + + function fmt = __pltopt1__ (caller, opt) + + set_color = 0; + set_symbol = 0; + set_lines = 0; + set_dots = 0; + set_points = 0; + set_impulses = 0; + set_steps = 0; + set_boxes = 0; + set_errbars = 0; + set_key = 0; + more_opts = 1; + + WITH = "w"; + LINES = "l"; + LINESPOINTS = "linesp"; + BOXERRORBARS = "boxer"; + BOXES = "boxes"; + POINTS = "p"; + DOTS = "d"; + IMPULSES = "i"; + STEPS = "s"; + ERRORBARS = "e"; + TITLE = "title"; + + if (nargin != 2) + usage ("__pltopt1__ (opt)"); + endif + + if (! isstr (opt)) + error ("__pltopt1__: argument must be a string"); + endif + + while (more_opts) + + ## First get next char. + + if (max (size (opt)) > 1) + # [char, opt] = sscanf (opt, "%c %s", "C"); + char = opt(1); + opt = opt(2:length(opt)); + else + char = opt; + more_opts = 0; + endif + + ## Now set flags based on char. + + if (strcmp (char, "-")) + set_lines = 1; + elseif (strcmp (char, ".")) + set_dots = 1; + elseif (strcmp (char, "@")) + set_points = 1; + elseif (strcmp (char, "^")) + set_impulses = 1; + elseif (strcmp (char, "L")) + set_steps = 1; + elseif (strcmp (char, "~")) + set_errbars = 1; + elseif (strcmp (char, "#")) + set_boxes = 1; + elseif (strcmp (char, "0") || strcmp (char, "1") ... + || strcmp (char, "2") || strcmp (char, "3") ... + || strcmp (char, "4") || strcmp (char, "5") ... + || strcmp (char, "6") || strcmp (char, "7") ... + || strcmp (char, "8") || strcmp (char, "9")) + if (set_color) + set_points = 1; + symbol = char; + set_symbol = 1; + else + color = char; + set_color = 1; + endif + elseif (strcmp (char, "r")) + set_color = 1; + color = "1"; + elseif (strcmp (char, "g")) + set_color = 1; + color = "2"; + elseif (strcmp (char, "b")) + set_color = 1; + color = "3"; + elseif (strcmp (char, "m")) + set_color = 1; + color = "4"; + elseif (strcmp (char, "c")) + set_color = 1; + color = "5"; + elseif (strcmp (char, "w")) + set_color = 1; + color = "6"; + elseif (strcmp (char, "*")) + set_points = 1; + set_symbol = 1; + symbol = "6"; + elseif (strcmp (char, "+")) + set_points = 1; + set_symbol = 1; + symbol = "2"; + elseif (strcmp (char, "o")) + set_points = 1; + set_symbol = 1; + symbol = "1"; + elseif (strcmp (char, "x")) + set_points = 1; + set_symbol = 1; + symbol = "4"; + elseif (strcmp (char, ";")) # title mode. + set_key = 1; + working = 1; + key_title = ""; + while (working) + if (max (size (opt)) > 1) + char = opt(1); + opt = opt(2:length(opt)); + else + char = opt; + if (! strcmp (char, ";")) + error ("%s: unfinished key label", caller); + end + more_opts = 0; + working = 0; + endif + if strcmp (char, ";") + working = 0; + else + if (isempty (key_title)) # needs this to avoid empty matrix warning. + key_title = char; + else + key_title = strcat (key_title, char); + endif + endif + endwhile + elseif (strcmp (char, " ")) + ## whitespace -- do nothing. + else + error ("%s: unrecognized format character: '%s'", caller, char); + endif + endwhile + + ## Now create format string. + + fmt = WITH; + + if (set_lines) + if (set_points) + fmt = strcat (fmt, " ", LINESPOINTS); + else + fmt = strcat (fmt, " ", LINES); + endif + elseif (set_boxes) + if (set_errbars) + fmt = strcat (fmt, " ", BOXERRORBARS); + else + fmt = strcat (fmt, " ", BOXES); + endif + elseif (set_points) + fmt = strcat (fmt, " ", POINTS); + elseif (set_dots) + fmt = strcat (fmt, " ", DOTS); + elseif (set_impulses) + fmt = strcat (fmt, " ", IMPULSES); + elseif (set_steps) + fmt = strcat (fmt, " ", STEPS); + elseif (set_errbars) + fmt = strcat (fmt, " ", ERRORBARS); + endif + + if (strcmp (fmt, WITH)) + fmt = strcat (fmt, " ", LINES); + endif + + if (set_color) + fmt = strcat (fmt, " ", color); + if (set_symbol) + fmt = strcat (fmt, " ", symbol); + endif + elseif (set_symbol) + fmt = strcat (fmt, " 1 ", symbol); + endif + + if (set_key) + fmt = sprintf ("%s %s \"%s\" ", fmt, TITLE, key_title); + endif + endfunction diff -cNr octave-2.0.11/scripts/plot/__pltopt__.m octave-2.0.12/scripts/plot/__pltopt__.m *** octave-2.0.11/scripts/plot/__pltopt__.m Fri Nov 14 10:53:10 1997 --- octave-2.0.12/scripts/plot/__pltopt__.m Wed Apr 8 10:55:11 1998 *************** *** 60,255 **** ## 4 magenta magenta dotted "x" open square ## 5 cyan cyan dot long dash triangle filled square ## 6 brown yellow dot short dash "*" "o" ! ## Author: Rick Niles ## Adapted-By: jwe ## Maintainer: jwe function fmt = __pltopt__ (caller, opt) - set_color = 0; - set_symbol = 0; - set_lines = 0; - set_dots = 0; - set_points = 0; - set_impulses = 0; - set_steps = 0; - set_boxes = 0; - set_errbars = 0; - set_key = 0; - more_opts = 1; - - WITH = "w"; - LINES = "l"; - LINESPOINTS = "linesp"; - BOXERRORBARS = "boxer"; - BOXES = "boxes"; - POINTS = "p"; - DOTS = "d"; - IMPULSES = "i"; - STEPS = "s"; - ERRORBARS = "e"; - TITLE = "title"; - - if (nargin != 2) - usage ("__pltopt__ (opt)"); - endif - if (! isstr (opt)) ! error ("__pltopt__: argument must be a string"); endif ! while (more_opts) ! ! ## First get next char. ! ! if (max (size (opt)) > 1) ! # [char, opt] = sscanf (opt, "%c %s", "C"); ! char = opt(1); ! opt = opt(2:length(opt)); ! else ! char = opt; ! more_opts = 0; ! endif ! ! ## Now set flags based on char. ! ! if (strcmp (char, "-")) ! set_lines = 1; ! elseif (strcmp (char, ".")) ! set_dots = 1; ! elseif (strcmp (char, "@")) ! set_points = 1; ! elseif (strcmp (char, "^")) ! set_impulses = 1; ! elseif (strcmp (char, "L")) ! set_steps = 1; ! elseif (strcmp (char, "~")) ! set_errbars = 1; ! elseif (strcmp (char, "#")) ! set_boxes = 1; ! elseif (strcmp (char, "0") || strcmp (char, "1") ... ! || strcmp (char, "2") || strcmp (char, "3") ... ! || strcmp (char, "4") || strcmp (char, "5") ... ! || strcmp (char, "6") || strcmp (char, "7") ... ! || strcmp (char, "8") || strcmp (char, "9")) ! if (set_color) ! set_points = 1; ! symbol = char; ! set_symbol = 1; ! else ! color = char; ! set_color = 1; ! endif ! elseif (strcmp (char, "r")) ! set_color = 1; ! color = "1"; ! elseif (strcmp (char, "g")) ! set_color = 1; ! color = "2"; ! elseif (strcmp (char, "b")) ! set_color = 1; ! color = "3"; ! elseif (strcmp (char, "m")) ! set_color = 1; ! color = "4"; ! elseif (strcmp (char, "c")) ! set_color = 1; ! color = "5"; ! elseif (strcmp (char, "w")) ! set_color = 1; ! color = "6"; ! elseif (strcmp (char, "*")) ! set_points = 1; ! set_symbol = 1; ! symbol = "6"; ! elseif (strcmp (char, "+")) ! set_points = 1; ! set_symbol = 1; ! symbol = "2"; ! elseif (strcmp (char, "o")) ! set_points = 1; ! set_symbol = 1; ! symbol = "1"; ! elseif (strcmp (char, "x")) ! set_points = 1; ! set_symbol = 1; ! symbol = "4"; ! elseif (strcmp (char, ";")) # title mode. ! set_key = 1; ! working = 1; ! key_title = ""; ! while (working) ! if (max (size (opt)) > 1) ! char = opt(1); ! opt = opt(2:length(opt)); ! else ! char = opt; ! if (! strcmp (char, ";")) ! error ("%s: unfinished key label", caller); ! end ! more_opts = 0; ! working = 0; ! endif ! if strcmp (char, ";") ! working = 0; ! else ! if (isempty (key_title)) # needs this to avoid empty matrix warning. ! key_title = char; ! else ! key_title = strcat (key_title, char); ! endif ! endif ! endwhile ! elseif (strcmp (char, " ")) ! ## whitespace -- do nothing. ! else ! error ("%s: unrecognized format character: '%s'", caller, char); ! endif ! endwhile ! ! ## Now create format string. - fmt = WITH; - - if (set_lines) - if (set_points) - fmt = strcat (fmt, " ", LINESPOINTS); - else - fmt = strcat (fmt, " ", LINES); - endif - elseif (set_boxes) - if (set_errbars) - fmt = strcat (fmt, " ", BOXERRORBARS); - else - fmt = strcat (fmt, " ", BOXES); - endif - elseif (set_points) - fmt = strcat (fmt, " ", POINTS); - elseif (set_dots) - fmt = strcat (fmt, " ", DOTS); - elseif (set_impulses) - fmt = strcat (fmt, " ", IMPULSES); - elseif (set_steps) - fmt = strcat (fmt, " ", STEPS); - elseif (set_errbars) - fmt = strcat (fmt, " ", ERRORBARS); - endif - - if (strcmp (fmt, WITH)) - fmt = strcat (fmt, " ", LINES); - endif - - if (set_color) - fmt = strcat (fmt, " ", color); - if (set_symbol) - fmt = strcat (fmt, " ", symbol); - endif - elseif (set_symbol) - fmt = strcat (fmt, " 1 ", symbol); - endif - - if (set_key) - fmt = sprintf ("%s %s \"%s\" ", fmt, TITLE, key_title); - endif endfunction --- 60,83 ---- ## 4 magenta magenta dotted "x" open square ## 5 cyan cyan dot long dash triangle filled square ## 6 brown yellow dot short dash "*" "o" + ## + ## See also: __pltopt1__ ! ## Author: jwe ## Adapted-By: jwe ## Maintainer: jwe function fmt = __pltopt__ (caller, opt) if (! isstr (opt)) ! usage ("__pltopt__ (caller, opt)"); endif ! nr = rows (opt); ! fmt = ""; ! for i = 1:nr ! t = __pltopt1__ (caller, deblank (opt(i,:))); ! fmt(i,1:length(t)) = t; ! endfor endfunction diff -cNr octave-2.0.11/scripts/plot/mplot.m octave-2.0.12/scripts/plot/mplot.m *** octave-2.0.11/scripts/plot/mplot.m Fri Feb 20 01:35:53 1998 --- octave-2.0.12/scripts/plot/mplot.m Fri Mar 27 16:04:01 1998 *************** *** 62,68 **** __multiplot_xi__++; else __multiplot_xi__ = 1; ! if (__multiplot_yi__ < multiplot_xn__) __multiplot_yi__++; else __multiplot_yi__ = 1; --- 62,68 ---- __multiplot_xi__++; else __multiplot_xi__ = 1; ! if (__multiplot_yi__ < __multiplot_yn__) __multiplot_yi__++; else __multiplot_yi__ = 1; *************** *** 70,80 **** endif xo = (__multiplot_xi__ - 1.0) * __multiplot_xsize__; ! yo = (__multiplot_yn__ - __multiplot_yi) * __multiplot_ysize__; eval (sprintf ("gset origin %g, %g", xo, yo)); - - clearplot; endif --- 70,78 ---- endif xo = (__multiplot_xi__ - 1.0) * __multiplot_xsize__; ! yo = (__multiplot_yn__ - __multiplot_yi__) * __multiplot_ysize__; eval (sprintf ("gset origin %g, %g", xo, yo)); endif diff -cNr octave-2.0.11/scripts/plot/multiplot.m octave-2.0.12/scripts/plot/multiplot.m *** octave-2.0.11/scripts/plot/multiplot.m Fri Feb 20 01:36:54 1998 --- octave-2.0.12/scripts/plot/multiplot.m Tue Mar 17 17:04:23 1998 *************** *** 98,103 **** --- 98,105 ---- __multiplot_xi__ = 1; __multiplot_yi__ = 1; + gnuplot_command_replot = "cle;rep"; + clearplot; endif diff -cNr octave-2.0.11/scripts/plot/oneplot.m octave-2.0.12/scripts/plot/oneplot.m *** octave-2.0.11/scripts/plot/oneplot.m Fri Feb 20 01:31:31 1998 --- octave-2.0.12/scripts/plot/oneplot.m Tue Mar 17 17:04:07 1998 *************** *** 40,45 **** --- 40,46 ---- gset size 1, 1; gset origin 0, 0; __multiplot_mode__ = 0; + gnuplot_command_replot "rep"; clearplot; endif diff -cNr octave-2.0.11/scripts/plot/subplot.m octave-2.0.12/scripts/plot/subplot.m *** octave-2.0.11/scripts/plot/subplot.m Fri Feb 20 01:34:02 1998 --- octave-2.0.12/scripts/plot/subplot.m Tue Mar 17 17:03:39 1998 *************** *** 130,135 **** --- 130,137 ---- __multiplot_xsize__ = 1.0 ./ columns; __multiplot_ysize__ = 1.0 ./ rows; + gnuplot_command_replot = "cle;rep"; + gset multiplot; eval (sprintf ("gset size %g, %g", __multiplot_xsize__, diff -cNr octave-2.0.11/scripts/strings/deblank.m octave-2.0.12/scripts/strings/deblank.m *** octave-2.0.11/scripts/strings/deblank.m Tue Aug 20 18:30:54 1996 --- octave-2.0.12/scripts/strings/deblank.m Fri Mar 20 12:26:08 1998 *************** *** 37,42 **** --- 37,44 ---- if (len == 0) t = s; + elseif (s == " ") + t = ""; else s = reshape (s, 1, len); k = max (find (s != " ")); diff -cNr octave-2.0.11/scripts/strings/isletter.m octave-2.0.12/scripts/strings/isletter.m *** octave-2.0.11/scripts/strings/isletter.m Wed Dec 31 18:00:00 1969 --- octave-2.0.12/scripts/strings/isletter.m Mon Apr 20 22:13:25 1998 *************** *** 0 **** --- 1,34 ---- + ## Copyright (C) 1996 John W. Eaton + ## + ## This file is part of Octave. + ## + ## Octave is free software; you can redistribute it and/or modify it + ## under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 2, or (at your option) + ## any later version. + ## + ## Octave is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with Octave; see the file COPYING. If not, write to the Free + ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA + ## 02111-1307, USA. + + ## usage: isletter (s) + ## + ## See also: isalpha + + ## Author: jwe + + function retval = isletter (s) + + if (nargin != 1) + usage ("isletter (s)"); + endif + + retval = isalpha (s); + + endfunction diff -cNr octave-2.0.11/scripts/strings/str2mat.m octave-2.0.12/scripts/strings/str2mat.m *** octave-2.0.11/scripts/strings/str2mat.m Tue Aug 20 18:30:56 1996 --- octave-2.0.12/scripts/strings/str2mat.m Tue Apr 21 10:19:32 1998 *************** *** 25,63 **** ## Author: Kurt Hornik ## Adapted-By: jwe ! function m = str2mat (...) if (nargin == 0) usage ("str2mat (s1, ...)"); endif nc = 0; va_start (); for k = 1 : nargin s = va_arg (); if (isstr (s)) ! tmp = columns (s); else error ("str2mat: all arguments must be strings"); endif - - if (tmp > nc) - nc = tmp; - endif endfor ! m = setstr (ones (nargin, nc) * toascii (" ")); va_start (); for k = 1 : nargin s = va_arg (); ! tmp = columns (s); ! if (tmp > 0) ! m (k, 1:tmp) = s; endif endfor endfunction --- 25,72 ---- ## Author: Kurt Hornik ## Adapted-By: jwe ! function retval = str2mat (...) if (nargin == 0) usage ("str2mat (s1, ...)"); endif nc = 0; + nr = 0; va_start (); + nr = zeros (nargin, 1); + nc = zeros (nargin, 1); for k = 1 : nargin s = va_arg (); if (isstr (s)) ! [nr(k), nc(k)] = size (s); else error ("str2mat: all arguments must be strings"); endif endfor ! tmp = find (nr == 0); ! ! if (! isempty (tmp)) ! nr(tmp) = 1; ! endif ! ! retval_nr = sum (nr); ! retval_nc = max (nc); ! ! retval = setstr (ones (retval_nr, retval_nc) * toascii (" ")); va_start (); + row_offset = 0; for k = 1 : nargin s = va_arg (); ! if (nc(k) > 0) ! retval ((row_offset + 1) : (row_offset + nr(k)), 1:nc(k)) = s; endif + row_offset = row_offset + nr(k); endfor endfunction diff -cNr octave-2.0.11/src/ChangeLog octave-2.0.12/src/ChangeLog *** octave-2.0.11/src/ChangeLog Tue Feb 24 16:30:43 1998 --- octave-2.0.12/src/ChangeLog Sun May 3 19:59:55 1998 *************** *** 1,3 **** --- 1,174 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Sun May 3 19:54:38 1998 John W. Eaton + + * lex.l (reset_parser): Also call yyrestart if forced_interactive + is true, but not if input_from_startup_file is true. + + Tue Apr 28 14:06:20 1998 John W. Eaton + + * oct-procbuf.cc (Vkluge_procbuf_delay): New static variable. + (kluge_procbuf_delay): New function. + (symbols_of_oct_procbuf): New function. + (octave_procbuf::open): Delay Vkluge_procbuf_delay microseconds + after forking. + + Thu Apr 23 15:41:08 1998 John W. Eaton + + * defaults.cc (Vload_path_dir_path): New variable. + * utils.cc (file_in_path): Use it. + + * utils.cc (search_path_for_file): Undo previous change. + (file_in_path): Undo previous change. + * defaults.cc (loadpath): Undo previous change. Tilde expansion + is once again handled correctly by the code in + liboctave/pathsearch.cc. + + Mon Apr 20 21:50:34 1998 John W. Eaton + + * data.cc (get_dimensions): Allow zeros ([], 3) to work, for + compatibility with Matlab. + + * dynamic-ld.cc [WITH_DL && ! HAVE_DLFCN_H]: Add declarations for + dlopen, dlerror, dlsym, and dlclose. + + * octave.gperf: Handle __FILE__ and __LINE__. + * lex.l (is_keyword): Likewise. + * Makefile.in (oct-gperf.h): Pass -D option to gperf. + Postprocess output of gperf to convert name of static variable + from lookup to gperf_lookup, to avoid conflict with our function + of the same name defined in variables.cc. + + Sat Apr 18 20:17:10 1998 John W. Eaton + + * help.cc (USE_GNU_INFO): Delete uses of this macro. + + Thu Apr 16 01:00:12 1998 John W. Eaton + + * defaults.cc (set_default_info_prog): If OCTAVE_INFO_PROGRAM is + not set in the environment, Vinfo_prog defaults to "info". + + * dynamic-ld.cc: Only include dlfcn.h if HAVE_DLFCN_H. + + Wed Apr 15 01:03:05 1998 John W. Eaton + + * input.cc (Vlast_prompt_time): New global variable. + (octave_gets): Set it here. + * pt-fvc-base.h (tree_fvc::mark_fcn_file_up_to_date, + tree_fvc::time_checked): New virtual functions. + * pt-fvc.h (tree_builtin::mark_fcn_file_up_to_date, + tree_builtin::time_checked): New functions. + (tree_builtin::t_checked): New data member. + * pt-fcn.h (tree_function::mark_fcn_file_up_to_date, + tree_function::time_checked): New functions. + (tree_function::t_checked): New data member. + * variables.cc (symbol_out_of_date): Only check file time stamp if + a prompt has been printed since the last time check. + + * pt-plot.h, pt-plot.cc (subplot_axes): New class. + (subplot): Handle axes. + (Vgnuplot_command_axes): New static variable. + (gnuplot_command_axes): New function. + (symbols_of_pt_plot): DEFVAR gnuplot_command_axes. + * pt-walk.h (tree_walker::visit_subplot_axes): New virtual function. + * parse.y (plot_options): Handle axes. + * lex.l (plot_axes_token): New function. + (is_keyword): Use it. + (is_plot_keyword): Recognize "axes" and "axis". + * lex.h (class lexical_feedback): New field, in_plot_axes. + (lexical_feedback::init): Reset it. + + Tue Apr 14 23:33:32 1998 John W. Eaton + + * utils.cc (search_path_for_file): New arg, do_tilde_expansion. + If TRUE, perform tilde expansion on path before searching. + (file_in_path): Call search_path_for_file with do_tilde_expansion + set to false, since we've already performed tilde expansion on the + load path. + + * defaults.cc (loadpath): Perform tilde expansion here. + + * variables.cc (parse_fcn_file): New arg, force_script. + Change callers. + + Wed Apr 8 22:50:44 1998 John W. Eaton + + * pr-output.cc (set_format): Set scale to 1.0 if all elements are + int or inf or nan. + + * Map-fnc.cc, Map-tc.cc (CHptr_to_index): Fix return type to be + unsigned int, to match the definition in Map.cc. + * symtab.h (class symbol_def::maybe_delete): Give explicit + return type of int. + + Wed Apr 8 01:00:58 1998 John W. Eaton + + * parse.y (Vwarn_future_time_stamp): New variable. + (symbols_of_parse): Add DEFVAR for it. + (warn_future_time_stamp): New function. + (frob_function_def): Maybe warn about files with future time stamps. + * dynamic-ld.cc (dl_resolve_ref, shl_resolve_ref): + Maybe warn about files with future time stamps. + + Tue Apr 7 15:38:29 1998 John W. Eaton + + * symtab.cc (symbol_record::variable_value): Avoid dereferencing + NULL pointer. + + Thu Apr 2 20:44:31 1998 John W. Eaton + + * pt-misc.cc (tree_argument_list::convert_to_const_vector): In + error messages, print element numbers starting with 1, not 0. + + Sat Mar 28 15:25:44 1998 John W. Eaton + + * toplev.cc (clean_up_for_exit): New function. + (clean_up_and_exit): Use it. + * sighandlers.cc (my_friendly_exit): Call it instead of + clean_up_and_exit, then do default action for signal. + + * sighandlers.cc (octave_new_handler): Call my_friendly_exit with + signal set to SIGABRT if it is defined, or -1 otherwise. + + * error.cc (verror): Fix thinko in attempt to skip `error: ' tag + when buffering error messages. + * pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages + here if just discarding unwind_protect frame. + + Wed Mar 18 12:35:18 1998 John W. Eaton + + * xpow.cc (elem_xpow): For real-scalar .^ matrix case, result is + complex only if real-scalar is negative and matrix has some + non-integer values. + + Tue Mar 17 17:47:50 1998 John W. Eaton + + * pt-plot.cc (Vgnuplot_command_plot, Vgnuplot_command_replot, + Vgnuplot_command_splot, Vgnuplot_command_using, + Vgnuplot_command_with, Vgnuplot_command_title, + Vgnuplot_command_end): New static variables. + (symbols_of_pt_plot): DEFVAR them. + (gnuplot_command_plot, gnuplot_command_replot, + gnuplot_command_splot, gnuplot_command_using, + gnuplot_command_with, gnuplot_command_title, + gnuplot_command_end): New functions. + (open_plot_stream, send_to_plot_stream, tree_plot_command::eval, + subplot_using::print, subplot_style::print, subplot::print, + do_external_plotter_cd, Fgset, Fgshow): Use them instead of the + GPLOT_CMD_PLOT, GPLOT_CMD_REPLOT, GPLOT_CMD_SPLOT, + GPLOT_CMD_USING, GPLOT_CMD_WITH, GPLOT_CMD_TITLE, and + GPLOT_CMD_END macros. + + Sun Mar 15 23:23:40 1998 John W. Eaton + + * file-io.cc (Ffopen): Rename local errno variable to error_number. + + Fri Feb 27 12:25:27 1998 John W. Eaton + + * help.cc (additional_help_message): Fix www address. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/src/Makefile.in octave-2.0.12/src/Makefile.in *** octave-2.0.11/src/Makefile.in Fri Feb 20 00:32:15 1998 --- octave-2.0.12/src/Makefile.in Mon Apr 20 21:19:20 1998 *************** *** 359,366 **** oct-gperf.h: octave.gperf @echo "making $@ from $<" ! @gperf -a -C -E -G -H octave_kw_hash -g -N octave_kw_lookup -p -t \ ! $< > $@.t @$(top_srcdir)/move-if-change $@.t $@ check: all --- 359,366 ---- oct-gperf.h: octave.gperf @echo "making $@ from $<" ! @gperf -a -C -D -E -G -H octave_kw_hash -g -N octave_kw_lookup -p -t \ ! $< | sed 's,lookup\[,gperf_lookup[,' > $@.t @$(top_srcdir)/move-if-change $@.t $@ check: all diff -cNr octave-2.0.11/src/Map-fnc.cc octave-2.0.12/src/Map-fnc.cc *** octave-2.0.11/src/Map-fnc.cc Fri Dec 6 13:00:55 1996 --- octave-2.0.12/src/Map-fnc.cc Wed Apr 8 22:50:17 1998 *************** *** 40,46 **** template class CHMap; template static int goodCHptr (CHNode *t); ! template static int CHptr_to_index (CHNode *t); /* ;;; Local Variables: *** --- 40,46 ---- template class CHMap; template static int goodCHptr (CHNode *t); ! template static unsigned int CHptr_to_index (CHNode *t); /* ;;; Local Variables: *** diff -cNr octave-2.0.11/src/Map-tc.cc octave-2.0.12/src/Map-tc.cc *** octave-2.0.11/src/Map-tc.cc Fri Dec 6 13:00:51 1996 --- octave-2.0.12/src/Map-tc.cc Wed Apr 8 22:50:17 1998 *************** *** 36,42 **** template class CHMap; template static int goodCHptr (CHNode *t); ! template static int CHptr_to_index (CHNode *t); /* ;;; Local Variables: *** --- 36,42 ---- template class CHMap; template static int goodCHptr (CHNode *t); ! template static unsigned int CHptr_to_index (CHNode *t); /* ;;; Local Variables: *** diff -cNr octave-2.0.11/src/data.cc octave-2.0.12/src/data.cc *** octave-2.0.11/src/data.cc Mon Feb 2 14:50:44 1998 --- octave-2.0.12/src/data.cc Mon Apr 20 22:29:48 1998 *************** *** 870,877 **** get_dimensions (const octave_value& a, const octave_value& b, const char *warn_for, int& nr, int& nc) { ! nr = NINT (a.double_value ()); ! nc = NINT (b.double_value ()); if (error_state) error ("%s: expecting two scalar arguments", warn_for); --- 870,877 ---- get_dimensions (const octave_value& a, const octave_value& b, const char *warn_for, int& nr, int& nc) { ! nr = (a.is_empty ()) ? 0 : NINT (a.double_value ()); ! nc = (b.is_empty ()) ? 0 : NINT (b.double_value ()); if (error_state) error ("%s: expecting two scalar arguments", warn_for); diff -cNr octave-2.0.11/src/defaults.cc octave-2.0.12/src/defaults.cc *** octave-2.0.11/src/defaults.cc Tue Feb 3 01:10:20 1998 --- octave-2.0.12/src/defaults.cc Thu Apr 23 16:00:40 1998 *************** *** 45,56 **** --- 45,59 ---- #include #endif + #include "pathsearch.h" + #include #include "defun.h" #include "error.h" #include "gripes.h" #include "help.h" #include "ov.h" + #include "sysdep.h" #include "toplev.h" #include "variables.h" #include *************** *** 73,78 **** --- 76,84 ---- // (--path path; -p path) string Vload_path; + // And the cached directory path corresponding to Vload_path. + dir_path Vload_path_dir_path; + // Name of the editor to be invoked by the edit_history command. string Veditor; *************** *** 186,191 **** --- 192,199 ---- char *oct_path = getenv ("OCTAVE_PATH"); Vload_path = oct_path ? string (oct_path) : std_path; + + Vload_path_dir_path = dir_path (Vload_path); } static void *************** *** 206,215 **** if (oct_info_prog) Vinfo_prog = string (oct_info_prog); else ! { ! Vinfo_prog = Varch_lib_dir; ! Vinfo_prog.append ("/info"); ! } } static void --- 214,220 ---- if (oct_info_prog) Vinfo_prog = string (oct_info_prog); else ! Vinfo_prog = "info"; } static void *************** *** 423,429 **** status = -1; } else ! Vload_path = maybe_add_default_load_path (s); return status; } --- 428,438 ---- status = -1; } else ! { ! Vload_path = maybe_add_default_load_path (s); ! ! Vload_path_dir_path = dir_path (Vload_path); ! } return status; } diff -cNr octave-2.0.11/src/defaults.h.in octave-2.0.12/src/defaults.h.in *** octave-2.0.11/src/defaults.h.in Tue Feb 3 00:52:38 1998 --- octave-2.0.12/src/defaults.h.in Thu Apr 23 15:59:37 1998 *************** *** 26,31 **** --- 26,33 ---- #include + #include "pathsearch.h" + #ifndef DEFAULT_PAGER #define DEFAULT_PAGER %DEFAULT_PAGER% #endif *************** *** 132,137 **** --- 134,142 ---- // Load path specified on command line. // (--path path; -p path) extern string Vload_path; + + // And the cached directory path corresponding to Vload_path. + extern dir_path Vload_path_dir_path; // Name of the editor to be invoked by the edit_history command. extern string Veditor; diff -cNr octave-2.0.11/src/dynamic-ld.cc octave-2.0.12/src/dynamic-ld.cc *** octave-2.0.11/src/dynamic-ld.cc Mon Jan 26 13:17:57 1998 --- octave-2.0.12/src/dynamic-ld.cc Mon Apr 20 22:01:20 1998 *************** *** 24,33 **** #include #endif #if defined (WITH_SHL) #include #include - #include #endif #include --- 24,34 ---- #include #endif + #include + #if defined (WITH_SHL) #include #include #endif #include *************** *** 37,43 **** --- 38,51 ---- extern "C" { #if defined (WITH_DL) + #if defined (HAVE_DLFCN_H) #include + #else + extern void *dlopen (const char *, int); + extern const char *dlerror (void); + extern void *dlsym (void *, const char *); + extern int dlclose (void *); + #endif #ifndef RTLD_LAZY #define RTLD_LAZY 1 #endif *************** *** 58,63 **** --- 66,72 ---- #include "toplev.h" #include "pathsearch.h" #include "ov.h" + #include "parse.h" #include "pt-fvc.h" #include "symtab.h" #include "utils.h" *************** *** 320,326 **** void *library = dlopen (file.c_str (), RTLD_LAZY); ! time_t dlopen_time = time (0); if (library) { --- 329,342 ---- void *library = dlopen (file.c_str (), RTLD_LAZY); ! time_t now = time (0); ! ! time_t dlopen_time = now; ! ! file_stat fs (file); ! ! if (Vwarn_future_time_stamp && fs.is_newer (now)) ! warning ("time stamp for `%s' is in the future", file.c_str ()); if (library) { *************** *** 371,377 **** // Don't use TYPE_PROCEDURE here. The man page says that future // versions of HP-UX may not support it. - status = shl_findsym (&library, nm, TYPE_UNDEFINED, &function); if (status >= 0) --- 387,392 ---- *************** *** 387,393 **** shl_t library = shl_load (file.c_str (), BIND_DEFERRED, 0L); ! time_t shl_load_time = time (0); if (library) { --- 402,415 ---- shl_t library = shl_load (file.c_str (), BIND_DEFERRED, 0L); ! time_t now = time (0); ! ! time_t shl_load_time = now; ! ! file_stat fs (file); ! ! if (Vwarn_future_time_stamp && fs.is_newer (now)) ! warning ("time stamp for `%s' is in the future", file.c_str ()); if (library) { diff -cNr octave-2.0.11/src/error.cc octave-2.0.12/src/error.cc *** octave-2.0.11/src/error.cc Wed Jul 2 16:48:11 1997 --- octave-2.0.12/src/error.cc Sat Mar 28 14:32:35 1998 *************** *** 87,94 **** // from printing `error: ' twice. Assumes that the NAME we // have been given doesn't contain `:'. ! ptr = strchr (msg, ':') + 2; ! ptr = ptr ? ptr : msg; } *error_message_buffer << ptr; --- 87,101 ---- // from printing `error: ' twice. Assumes that the NAME we // have been given doesn't contain `:'. ! ptr = strchr (msg, ':'); ! ! if (ptr) ! { ! if (*++ptr != '\0') ! ++ptr; ! } ! else ! ptr = msg; } *error_message_buffer << ptr; diff -cNr octave-2.0.11/src/file-io.cc octave-2.0.12/src/file-io.cc *** octave-2.0.11/src/file-io.cc Mon Feb 2 14:48:23 1998 --- octave-2.0.12/src/file-io.cc Sun Mar 15 23:24:28 1998 *************** *** 409,416 **** } else { ! int errno = 0; ! retval(1) = os->error (false, errno); retval(0) = -1.0; } } --- 409,417 ---- } else { ! int error_number = 0; ! ! retval(1) = os->error (false, error_number); retval(0) = -1.0; } } diff -cNr octave-2.0.11/src/help.cc octave-2.0.12/src/help.cc *** octave-2.0.11/src/help.cc Tue Feb 24 01:03:48 1998 --- octave-2.0.12/src/help.cc Sat Apr 18 20:17:08 1998 *************** *** 330,349 **** static void additional_help_message (ostream& os) { - #if defined (USE_GNU_INFO) - if (! Vsuppress_verbose_help_message) os << "\n\ Additional help for builtin functions, operators, and variables\n\ is available in the on-line version of the manual. Use the command\n\ `help -i ' to search the manual index.\n"; - #endif - if (! Vsuppress_verbose_help_message) os << "\n\ Help and information about Octave is also available on the WWW\n\ ! at http://www.che.wisc.edu/pub/octave/octave.html and via the\n\ help-octave@bevo.che.wisc.edu mailing list.\n"; } --- 330,345 ---- static void additional_help_message (ostream& os) { if (! Vsuppress_verbose_help_message) os << "\n\ Additional help for builtin functions, operators, and variables\n\ is available in the on-line version of the manual. Use the command\n\ `help -i ' to search the manual index.\n"; if (! Vsuppress_verbose_help_message) os << "\n\ Help and information about Octave is also available on the WWW\n\ ! at http://www.che.wisc.edu/octave/octave.html and via the\n\ help-octave@bevo.che.wisc.edu mailing list.\n"; } *************** *** 526,532 **** } } - #if defined (USE_GNU_INFO) static int try_info (const string& nm) { --- 522,527 ---- *************** *** 601,613 **** } } } - #else - static void - help_from_info (const string_vector&, int, int) - { - message (0, "sorry, help -i is not available in this version of Octave"); - } - #endif int help_from_list (ostream& os, const help_list *list, --- 596,601 ---- *************** *** 681,697 **** additional_help_message (octave_stdout); } - #if defined (USE_GNU_INFO) DEFUN_TEXT (help, args, , "help [-i] [topic ...]\n\ \n\ print cryptic yet witty messages") - #else - DEFUN_TEXT (help, args, , - "help [topic ...]\n\ - \n\ - print cryptic yet witty messages") - #endif { octave_value_list retval; --- 669,678 ---- diff -cNr octave-2.0.11/src/input.cc octave-2.0.12/src/input.cc *** octave-2.0.11/src/input.cc Tue Jan 13 14:47:24 1998 --- octave-2.0.12/src/input.cc Sun May 3 15:56:14 1998 *************** *** 91,96 **** --- 91,99 ---- // String printed before echoed input (enabled by --echo-input). string Vps4; + // The time we last printed a prompt. + time_t Vlast_prompt_time; + // Character to append after successful command-line completion attempts. static char Vcompletion_append_char; *************** *** 495,500 **** --- 498,505 ---- { char *retval = 0; + Vlast_prompt_time = time (0); + if ((interactive || forced_interactive) && (! (reading_fcn_file || reading_script_file))) { *************** *** 1004,1009 **** --- 1009,1020 ---- // matching. rl_basic_quote_characters = "\""; + + static char *octave_default_prefixes[] = { " ~", "\t~", ":~", 0 }; + static char *octave_default_suffixes[] = { " ", "\n", ":", 0 }; + + tilde_additional_prefixes = octave_default_prefixes; + tilde_additional_suffixes = octave_default_suffixes; } static int diff -cNr octave-2.0.11/src/input.h octave-2.0.12/src/input.h *** octave-2.0.11/src/input.h Sat Jun 22 22:45:44 1996 --- octave-2.0.12/src/input.h Wed Apr 15 20:50:21 1998 *************** *** 26,31 **** --- 26,32 ---- #define octave_input_h 1 #include + #include #include *************** *** 73,78 **** --- 74,81 ---- char *gnu_readline (const char *s, bool force_readline = false); extern string Vps4; + + extern time_t Vlast_prompt_time; extern void symbols_of_input (void); diff -cNr octave-2.0.11/src/lex.h octave-2.0.12/src/lex.h *** octave-2.0.11/src/lex.h Tue Nov 18 04:16:13 1997 --- octave-2.0.12/src/lex.h Wed Apr 15 00:25:39 1998 *************** *** 158,163 **** --- 158,166 ---- // Nonzero means we're looking at the style part of a plot command. int in_plot_style; + // Nonzero means we're looking at the axes part of a plot command. + int in_plot_axes; + // Nonzero means we're looking at an indirect reference to a // structure element. int looking_at_indirect_ref; diff -cNr octave-2.0.11/src/lex.l octave-2.0.12/src/lex.l *** octave-2.0.11/src/lex.l Thu Nov 27 23:28:38 1997 --- octave-2.0.12/src/lex.l Sun May 3 14:46:19 1998 *************** *** 688,694 **** // Only ask for input from stdin if we are expecting interactive // input. ! if (interactive && ! (reading_fcn_file || get_input_from_eval_string)) yyrestart (stdin); // Clear the buffer for help text. --- 688,696 ---- // Only ask for input from stdin if we are expecting interactive // input. ! if ((interactive || forced_interactive) ! && ! (reading_fcn_file || get_input_from_eval_string ! || input_from_startup_file)) yyrestart (stdin); // Clear the buffer for help text. *************** *** 819,824 **** --- 821,858 ---- return retval; } + // Check to see if a character string matches any of the possible axes + // tags for plots. + + static string + plot_axes_token (const string& s) + { + string retval; + + static char *plot_axes[] = + { + "x1y1", + "x1y2", + "x2y1", + "x2y2", + 0, + }; + + char **tmp = plot_axes; + while (*tmp) + { + if (almost_match (*tmp, s.c_str ())) + { + retval = *tmp; + break; + } + + tmp++; + } + + return retval; + } + // Check to see if a character string matches any one of the plot // option keywords. Don't match abbreviations for clear, since that's // not a gnuplot keyword (users will probably only expect to be able *************** *** 842,847 **** --- 876,886 ---- lexer_flags.in_plot_style = 1; return WITH; } + else if (almost_match ("axes", t) || almost_match ("axis", t)) + { + lexer_flags.in_plot_axes = 1; + return AXES; + } else if (strcmp ("clear", t) == 0) { return CLEAR; *************** *** 857,873 **** static int is_keyword (const string& s) { ! if (lexer_flags.plotting && lexer_flags.in_plot_style) { ! string sty = plot_style_token (s); ! ! if (! sty.empty ()) { ! lexer_flags.in_plot_style = 0; ! yylval.tok_val = new token (sty); ! token_stack.push (yylval.tok_val); ! return STYLE; } } int l = input_line_number; --- 896,927 ---- static int is_keyword (const string& s) { ! if (lexer_flags.plotting) { ! if (lexer_flags.in_plot_style) { ! string sty = plot_style_token (s); ! ! if (! sty.empty ()) ! { ! lexer_flags.in_plot_style = 0; ! yylval.tok_val = new token (sty); ! token_stack.push (yylval.tok_val); ! return STYLE; ! } } + else if (lexer_flags.in_plot_axes) + { + string axes = plot_axes_token (s); + + if (! axes.empty ()) + { + lexer_flags.in_plot_axes = 0; + yylval.tok_val = new token (axes); + token_stack.push (yylval.tok_val); + return AXES_TAG; + } + } } int l = input_line_number; *************** *** 983,988 **** --- 1037,1056 ---- } break; + case magic_file_kw: + { + if ((reading_fcn_file || reading_script_file) + && ! curr_fcn_file_full_name.empty ()) + yylval.tok_val = new token (curr_fcn_file_full_name, l, c); + else + yylval.tok_val = new token ("stdin", l, c); + } + break; + + case magic_line_kw: + yylval.tok_val = new token ((double) l, "", l, c); + break; + default: panic_impossible (); } *************** *** 1835,1840 **** --- 1903,1909 ---- doing_set = 0; in_plot_range = 0; in_plot_style = 0; + in_plot_axes = 0; in_plot_using = 0; past_plot_range = 0; plotting = 0; diff -cNr octave-2.0.11/src/oct-gperf.h octave-2.0.12/src/oct-gperf.h *** octave-2.0.11/src/oct-gperf.h Tue Feb 24 16:33:55 1998 --- octave-2.0.12/src/oct-gperf.h Sun May 3 20:07:40 1998 *************** *** 1,5 **** /* C code produced by gperf version 2.5 (GNU C++ version) */ ! /* Command-line: gperf -a -C -E -G -H octave_kw_hash -g -N octave_kw_lookup -p -t octave.gperf */ enum octave_kw_id { --- 1,5 ---- /* C code produced by gperf version 2.5 (GNU C++ version) */ ! /* Command-line: gperf -a -C -D -E -G -H octave_kw_hash -g -N octave_kw_lookup -p -t octave.gperf */ enum octave_kw_id { *************** *** 24,29 **** --- 24,31 ---- gplot_kw, gsplot_kw, if_kw, + magic_file_kw, + magic_line_kw, otherwise_kw, replot_kw, return_kw, *************** *** 35,41 **** }; struct octave_kw { char *name; int tok; octave_kw_id kw_id; }; ! /* maximum key range = 48, duplicates = 0 */ #ifdef __GNUC__ inline --- 37,43 ---- }; struct octave_kw { char *name; int tok; octave_kw_id kw_id; }; ! /* maximum key range = 48, duplicates = 1 */ #ifdef __GNUC__ inline *************** *** 54,60 **** 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, ! 50, 50, 50, 50, 50, 50, 50, 20, 5, 15, 0, 0, 0, 15, 15, 0, 50, 0, 5, 50, 28, 0, 0, 50, 10, 0, 25, 10, 50, 10, 50, 5, 50, 50, 50, 50, 50, 50, --- 56,62 ---- 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, ! 50, 50, 50, 50, 50, 5, 50, 20, 5, 15, 0, 0, 0, 15, 15, 0, 50, 0, 5, 50, 28, 0, 0, 50, 10, 0, 25, 10, 50, 10, 50, 5, 50, 50, 50, 50, 50, 50, *************** *** 70,115 **** {"else", ELSE, else_kw}, {"endif", END, endif_kw}, {"elseif", ELSEIF, elseif_kw}, - {"",}, {"endwhile", END, endwhile_kw}, {"otherwise", OTHERWISE, otherwise_kw}, {"break", BREAK, break_kw}, - {"",}, {"",}, {"for", FOR, for_kw}, - {"",}, {"while", WHILE, while_kw}, {"endfor", END, endfor_kw}, ! {"",}, {"",}, {"case", CASE, case_kw}, - {"",}, {"switch", SWITCH, switch_kw}, - {"",}, {"continue", CONTINUE, continue_kw}, {"endswitch", END, endswitch_kw}, - {"",}, {"global", GLOBAL, global_kw}, - {"",}, {"end_try_catch", END, end_try_catch_kw}, - {"",}, {"",}, {"all_va_args", ALL_VA_ARGS, all_va_args_kw}, {"unwind_protect_cleanup", CLEANUP, unwind_protect_cleanup_kw}, {"try", TRY, try_kw}, - {"",}, {"catch", CATCH, catch_kw}, {"function", FCN, function_kw}, - {"",}, {"",}, {"endfunction", END, endfunction_kw}, - {"",}, {"replot", PLOT, replot_kw}, - {"",}, {"end_unwind_protect", END, end_unwind_protect_kw}, {"return", FUNC_RET, return_kw}, {"gplot", PLOT, gplot_kw}, {"gsplot", PLOT, gsplot_kw}, - {"",}, {"",}, {"unwind_protect", UNWIND, unwind_protect_kw}, }; #ifdef __GNUC__ inline #endif --- 72,113 ---- {"else", ELSE, else_kw}, {"endif", END, endif_kw}, {"elseif", ELSEIF, elseif_kw}, {"endwhile", END, endwhile_kw}, {"otherwise", OTHERWISE, otherwise_kw}, {"break", BREAK, break_kw}, {"for", FOR, for_kw}, {"while", WHILE, while_kw}, {"endfor", END, endfor_kw}, ! {"__FILE__", TEXT, magic_file_kw}, ! {"__LINE__", NUM, magic_line_kw}, {"case", CASE, case_kw}, {"switch", SWITCH, switch_kw}, {"continue", CONTINUE, continue_kw}, {"endswitch", END, endswitch_kw}, {"global", GLOBAL, global_kw}, {"end_try_catch", END, end_try_catch_kw}, {"all_va_args", ALL_VA_ARGS, all_va_args_kw}, {"unwind_protect_cleanup", CLEANUP, unwind_protect_cleanup_kw}, {"try", TRY, try_kw}, {"catch", CATCH, catch_kw}, {"function", FCN, function_kw}, {"endfunction", END, endfunction_kw}, {"replot", PLOT, replot_kw}, {"end_unwind_protect", END, end_unwind_protect_kw}, {"return", FUNC_RET, return_kw}, {"gplot", PLOT, gplot_kw}, {"gsplot", PLOT, gsplot_kw}, {"unwind_protect", UNWIND, unwind_protect_kw}, }; + static const char gperf_lookup[] = + { + -1, -1, 2, 3, 4, 5, 6, -1, 7, 8, 9, -1, -1, 10, + -1, 11, 12, -1, 60, 15, -1, 16, -1, 17, 18, -1, 19, -1, + 20,-13, -2, 21, 22, 23, -1, 24, 25, -1, -1, 26, -1, 27, + -1, 28, 29, 30, 31, -1, -1, 32, + }; + #ifdef __GNUC__ inline #endif *************** *** 118,124 **** { enum { ! TOTAL_KEYWORDS = 29, MIN_WORD_LENGTH = 2, MAX_WORD_LENGTH = 22, MIN_HASH_VALUE = 2, --- 116,122 ---- { enum { ! TOTAL_KEYWORDS = 31, MIN_WORD_LENGTH = 2, MAX_WORD_LENGTH = 22, MIN_HASH_VALUE = 2, *************** *** 131,140 **** if (key <= MAX_HASH_VALUE && key >= 0) { ! register const char *s = wordlist[key].name; ! if (*s == *str && !strcmp (str + 1, s + 1)) ! return &wordlist[key]; } } return 0; --- 129,155 ---- if (key <= MAX_HASH_VALUE && key >= 0) { ! register int index = gperf_lookup[key]; ! if (index >= 0 && index < MAX_HASH_VALUE) ! { ! register const char *s = wordlist[index].name; ! ! if (*s == *str && !strcmp (str + 1, s + 1)) ! return &wordlist[index]; ! } ! else if (index < 0 && index >= -MAX_HASH_VALUE) ! return 0; ! else ! { ! register int offset = key + index + (index > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE); ! register const struct octave_kw *base = &wordlist[-gperf_lookup[offset]]; ! register const struct octave_kw *ptr = base + -gperf_lookup[offset + 1]; ! ! while (--ptr >= base) ! if (*str == *ptr->name && !strcmp (str + 1, ptr->name + 1)) ! return ptr; ! } } } return 0; diff -cNr octave-2.0.11/src/oct-procbuf.cc octave-2.0.12/src/oct-procbuf.cc *** octave-2.0.11/src/oct-procbuf.cc Wed Feb 18 15:04:38 1998 --- octave-2.0.12/src/oct-procbuf.cc Tue Apr 28 14:06:15 1998 *************** *** 35,43 **** --- 35,55 ---- #include #endif + #include "lo-mappers.h" + #include "lo-utils.h" #include "oct-procbuf.h" #include "syswait.h" + #include "defun.h" + #include "gripes.h" + + // Number of microseconds to delay in the parent after forking. + #if defined (__CYGWIN32__) + static int Vkluge_procbuf_delay = 500000; + #else + static int Vkluge_procbuf_delay = 0; + #endif + // This class is based on the procbuf class from libg++, written by // Per Bothner, Copyright (C) 1993 Free Software Foundation. // *************** *** 99,104 **** --- 111,124 ---- exit (127); } + #if defined (HAVE_USLEEP) + if (Vkluge_procbuf_delay > 0) + usleep (Vkluge_procbuf_delay); + #else + if (Vkluge_procbuf_delay > 499999) + sleep ((Vkluge_procbuf_delay + 500000) / 1000000); + #endif + ::close (child_end); if (proc_pid < 0) *************** *** 163,168 **** --- 183,213 ---- return -1; #endif + } + + static int + kluge_procbuf_delay (void) + { + double val; + if (builtin_real_scalar_variable ("kluge_procbuf_delay", val) + && ! xisnan (val)) + { + int ival = NINT (val); + if (ival >= 0 && (double) ival == val) + { + Vkluge_procbuf_delay = ival; + return 0; + } + } + gripe_invalid_value_specified ("kluge_procbuf_delay"); + return -1; + } + + static void + symbols_of_oct_procbuf (void) + { + DEFVAR (kluge_procbuf_delay, Vkluge_procbuf_delay, 0, kluge_procbuf_delay, + "number of microseconds to delay in the parent after forking"); } /* diff -cNr octave-2.0.11/src/oct-procbuf.h octave-2.0.12/src/oct-procbuf.h *** octave-2.0.11/src/oct-procbuf.h Sun Apr 28 04:00:07 1996 --- octave-2.0.12/src/oct-procbuf.h Tue Apr 28 14:08:01 1998 *************** *** 61,66 **** --- 61,68 ---- octave_procbuf *next; }; + extern void symbols_of_oct_procbuf (void); + #endif /* diff -cNr octave-2.0.11/src/octave.cc octave-2.0.12/src/octave.cc *** octave-2.0.11/src/octave.cc Tue Feb 24 00:31:39 1998 --- octave-2.0.12/src/octave.cc Thu Apr 23 23:04:55 1998 *************** *** 235,240 **** --- 235,242 ---- } else oct_putenv ("TEXMFDBS", odb); + + dir_path::init_program_name (program_invocation_name); } // Initialize by reading startup files. diff -cNr octave-2.0.11/src/octave.gperf octave-2.0.12/src/octave.gperf *** octave-2.0.11/src/octave.gperf Fri Feb 28 13:17:02 1997 --- octave-2.0.12/src/octave.gperf Mon Apr 20 21:19:07 1998 *************** *** 23,28 **** --- 23,30 ---- gplot_kw, gsplot_kw, if_kw, + magic_file_kw, + magic_line_kw, otherwise_kw, replot_kw, return_kw, *************** *** 65,67 **** --- 67,71 ---- unwind_protect, UNWIND, unwind_protect_kw unwind_protect_cleanup, CLEANUP, unwind_protect_cleanup_kw while, WHILE, while_kw + __FILE__, TEXT, magic_file_kw + __LINE__, NUM, magic_line_kw diff -cNr octave-2.0.11/src/parse.h octave-2.0.12/src/parse.h *** octave-2.0.11/src/parse.h Mon May 13 08:29:00 1996 --- octave-2.0.12/src/parse.h Wed Apr 8 01:25:39 1998 *************** *** 53,58 **** --- 53,60 ---- extern void symbols_of_parse (void); + extern bool Vwarn_future_time_stamp; + #endif /* diff -cNr octave-2.0.11/src/parse.y octave-2.0.12/src/parse.y *** octave-2.0.11/src/parse.y Thu Nov 20 20:00:34 1997 --- octave-2.0.12/src/parse.y Mon Apr 20 21:03:41 1998 *************** *** 38,43 **** --- 38,44 ---- #include #include "Matrix.h" + #include "file-ops.h" #include "defun.h" #include "error.h" *************** *** 86,91 **** --- 87,95 ---- // the name of the file in which it is defined. static bool Vwarn_function_name_clash; + // TRUE means warn about function files that have time stamps in the future. + bool Vwarn_future_time_stamp; + // If TRUE, generate warning if a statement in a function is not // terminated with a semicolon. Useful for checking functions that // should only produce output using explicit printing statements. *************** *** 302,307 **** --- 306,312 ---- plot_range *plot_range_type; subplot_using *subplot_using_type; subplot_style *subplot_style_type; + subplot_axes *subplot_axes_type; } // Tokens with line and column information. *************** *** 316,322 **** %token NAME SCREW %token END %token PLOT ! %token TEXT STYLE %token FOR WHILE %token IF ELSEIF ELSE %token SWITCH CASE OTHERWISE --- 321,327 ---- %token NAME SCREW %token END %token PLOT ! %token TEXT STYLE AXES_TAG %token FOR WHILE %token IF ELSEIF ELSE %token SWITCH CASE OTHERWISE *************** *** 332,338 **** %token ELLIPSIS %token ALL_VA_ARGS %token END_OF_INPUT ! %token USING TITLE WITH COLON OPEN_BRACE CLOSE_BRACE CLEAR // Nonterminals we construct. %type sep_no_nl opt_sep_no_nl sep opt_sep --- 337,343 ---- %token ELLIPSIS %token ALL_VA_ARGS %token END_OF_INPUT ! %token USING TITLE WITH AXES COLON OPEN_BRACE CLOSE_BRACE CLEAR // Nonterminals we construct. %type sep_no_nl opt_sep_no_nl sep opt_sep *************** *** 369,374 **** --- 374,380 ---- %type ranges1 %type using using1 %type style + %type axes // Precedence and associativity. %left ';' ',' '\n' *************** *** 528,566 **** plot_command2 : expression { $$ = new subplot ($1); } | expression plot_options ! { $$ = $2->set_data ($1); } ; plot_options : using ! { $$ = new subplot ($1, 0, 0); } | title ! { $$ = new subplot (0, $1, 0); } | style ! { $$ = new subplot (0, 0, $1); } ! | using title ! { $$ = new subplot ($1, $2, 0); } ! | title using ! { $$ = new subplot ($2, $1, 0); } ! | using style ! { $$ = new subplot ($1, 0, $2); } ! | style using ! { $$ = new subplot ($2, 0, $1); } ! | title style ! { $$ = new subplot (0, $1, $2); } ! | style title ! { $$ = new subplot (0, $2, $1); } ! | using title style ! { $$ = new subplot ($1, $2, $3); } ! | using style title ! { $$ = new subplot ($1, $3, $2); } ! | title using style ! { $$ = new subplot ($2, $1, $3); } ! | title style using ! { $$ = new subplot ($3, $1, $2); } ! | style using title ! { $$ = new subplot ($2, $3, $1); } ! | style title using ! { $$ = new subplot ($3, $2, $1); } ; using : using1 --- 534,601 ---- plot_command2 : expression { $$ = new subplot ($1); } | expression plot_options ! { $$ = $2->add_data ($1); } ; plot_options : using ! { ! subplot *tmp = new subplot (); ! $$ = tmp->add_clause ($1); ! } | title ! { ! subplot *tmp = new subplot (); ! $$ = tmp->add_clause ($1); ! } | style ! { ! subplot *tmp = new subplot (); ! $$ = tmp->add_clause ($1); ! } ! | axes ! { ! subplot *tmp = new subplot (); ! $$ = tmp->add_clause ($1); ! } ! | plot_options using ! { ! if (! ($$ = $1->add_clause ($2))) ! { ! yyerror ("only one using option may be specified"); ! ABORT_PARSE; ! } ! } ! | plot_options title ! { ! if (! ($$ = $1->add_clause ($2))) ! { ! yyerror ("only one title option my be specified"); ! ABORT_PARSE; ! } ! } ! | plot_options style ! { ! if (! ($$ = $1->add_clause ($2))) ! { ! yyerror ("only one style option my be specified"); ! ABORT_PARSE; ! } ! } ! | plot_options axes ! { ! if (! ($$ = $1->add_clause ($2))) ! { ! yyerror ("only one axes option may be specified"); ! ABORT_PARSE; ! } ! } ! ; ! ! axes : AXES AXES_TAG ! { ! lexer_flags.in_plot_axes = 0; ! $$ = new subplot_axes ($2->text ()); ! } ; using : using1 *************** *** 2193,2202 **** id_name = id->name (); } fcn->stash_function_name (id_name); fcn->stash_fcn_file_name (); ! fcn->stash_fcn_file_time (time (0)); fcn->mark_as_system_fcn_file (); } else if (! (input_from_tmp_history_file || input_from_startup_file) && reading_script_file --- 2228,2249 ---- id_name = id->name (); } + time_t now = time (0); + fcn->stash_function_name (id_name); fcn->stash_fcn_file_name (); ! fcn->stash_fcn_file_time (now); fcn->mark_as_system_fcn_file (); + + if (Vwarn_future_time_stamp) + { + string nm = fcn->fcn_file_name (); + + file_stat fs (nm); + + if (fs && fs.is_newer (now)) + warning ("time stamp for `%s' is in the future", nm.c_str ()); + } } else if (! (input_from_tmp_history_file || input_from_startup_file) && reading_script_file *************** *** 2376,2381 **** --- 2423,2436 ---- } static int + warn_future_time_stamp (void) + { + Vwarn_future_time_stamp = check_preference ("warn_future_time_stamp"); + + return 0; + } + + static int warn_missing_semicolon (void) { Vwarn_missing_semicolon = check_preference ("warn_missing_semicolon"); *************** *** 2403,2408 **** --- 2458,2466 ---- DEFVAR (warn_function_name_clash, 1.0, 0, warn_function_name_clash, "produce warning if function name conflicts with file name"); + + DEFVAR (warn_future_time_stamp, 1.0, 0, warn_future_time_stamp, + "warn if a function file has a time stamp that is in the future"); DEFVAR (warn_missing_semicolon, 0.0, 0, warn_missing_semicolon, "produce a warning if a statement in a function file is not\n\ diff -cNr octave-2.0.11/src/pr-output.cc octave-2.0.12/src/pr-output.cc *** octave-2.0.11/src/pr-output.cc Tue Jan 20 17:03:05 1998 --- octave-2.0.12/src/pr-output.cc Wed Apr 8 23:39:54 1998 *************** *** 397,403 **** int x_max = max_abs == 0.0 ? 0 : (int) floor (log10 (max_abs) + 1.0); int x_min = min_abs == 0.0 ? 0 : (int) floor (log10 (min_abs) + 1.0); ! scale = x_max == 0 ? 1.0 : pow (10.0, x_max - 1); set_real_matrix_format (sign, x_max, x_min, inf_or_nan, int_or_inf_or_nan, fw); --- 397,403 ---- int x_max = max_abs == 0.0 ? 0 : (int) floor (log10 (max_abs) + 1.0); int x_min = min_abs == 0.0 ? 0 : (int) floor (log10 (min_abs) + 1.0); ! scale = (x_max == 0 || int_or_inf_or_nan) ? 1.0 : pow (10.0, x_max - 1); set_real_matrix_format (sign, x_max, x_min, inf_or_nan, int_or_inf_or_nan, fw); *************** *** 733,739 **** int x_max = r_x_max > i_x_max ? r_x_max : i_x_max; int x_min = r_x_min > i_x_min ? r_x_min : i_x_min; ! scale = x_max == 0 ? 1.0 : pow (10.0, x_max - 1); set_complex_matrix_format (sign, x_max, x_min, r_x_max, r_x_min, inf_or_nan, int_or_inf_or_nan, r_fw, i_fw); --- 733,739 ---- int x_max = r_x_max > i_x_max ? r_x_max : i_x_max; int x_min = r_x_min > i_x_min ? r_x_min : i_x_min; ! scale = (x_max == 0 || int_or_inf_or_nan) ? 1.0 : pow (10.0, x_max - 1); set_complex_matrix_format (sign, x_max, x_min, r_x_max, r_x_min, inf_or_nan, int_or_inf_or_nan, r_fw, i_fw); *************** *** 872,878 **** int x_max = max_abs == 0.0 ? 0 : (int) floor (log10 (max_abs) + 1.0); int x_min = min_abs == 0.0 ? 0 : (int) floor (log10 (min_abs) + 1.0); ! scale = x_max == 0 ? 1.0 : pow (10.0, x_max - 1); set_range_format (sign, x_max, x_min, all_ints, fw); } --- 872,878 ---- int x_max = max_abs == 0.0 ? 0 : (int) floor (log10 (max_abs) + 1.0); int x_min = min_abs == 0.0 ? 0 : (int) floor (log10 (min_abs) + 1.0); ! scale = (x_max == 0 || all_ints) ? 1.0 : pow (10.0, x_max - 1); set_range_format (sign, x_max, x_min, all_ints, fw); } diff -cNr octave-2.0.11/src/pt-cmd.cc octave-2.0.12/src/pt-cmd.cc *** octave-2.0.11/src/pt-cmd.cc Fri Feb 28 13:42:55 1997 --- octave-2.0.12/src/pt-cmd.cc Sat Mar 28 15:32:57 1998 *************** *** 623,628 **** --- 623,630 ---- add_unwind_protect (do_catch_code, catch_code); + int old_buffer_error_messages = buffer_error_messages; + if (catch_code) { unwind_protect_int (buffer_error_messages); *************** *** 640,645 **** --- 642,648 ---- else { error_state = 0; + buffer_error_messages = old_buffer_error_messages; discard_unwind_frame ("tree_try_catch::eval"); } } diff -cNr octave-2.0.11/src/pt-fcn.h octave-2.0.12/src/pt-fcn.h *** octave-2.0.11/src/pt-fcn.h Mon May 13 09:27:36 1996 --- octave-2.0.12/src/pt-fcn.h Wed Apr 15 20:42:27 1998 *************** *** 71,78 **** void stash_fcn_file_name (void); void stash_fcn_file_time (time_t t) ! { t_parsed = t; } string fcn_file_name (void) { return file_name; } --- 71,84 ---- void stash_fcn_file_name (void); + void mark_fcn_file_up_to_date (time_t t) + { t_checked = t; } + void stash_fcn_file_time (time_t t) ! { ! t_parsed = t; ! mark_fcn_file_up_to_date (t); ! } string fcn_file_name (void) { return file_name; } *************** *** 80,85 **** --- 86,94 ---- time_t time_parsed (void) { return t_parsed; } + time_t time_checked (void) + { return t_checked; } + void mark_as_system_fcn_file (void); bool is_system_fcn_file (void) const *************** *** 143,148 **** --- 152,161 ---- // The time the file was parsed. time_t t_parsed; + + // The time the file was last checked to see if it needs to be + // parsed again. + time_t t_checked; // True if this function came from a file that is considered to be a // system function. This affects whether we check the time stamp diff -cNr octave-2.0.11/src/pt-fvc-base.cc octave-2.0.12/src/pt-fvc-base.cc *** octave-2.0.11/src/pt-fvc-base.cc Wed Oct 30 13:35:17 1996 --- octave-2.0.12/src/pt-fvc-base.cc Wed Apr 15 20:44:50 1998 *************** *** 59,66 **** --- 59,79 ---- panic_impossible (); } + void + tree_fvc::mark_fcn_file_up_to_date (time_t) + { + panic_impossible (); + } + time_t tree_fvc::time_parsed (void) + { + panic_impossible (); + return 0; + } + + time_t + tree_fvc::time_checked (void) { panic_impossible (); return 0; diff -cNr octave-2.0.11/src/pt-fvc-base.h octave-2.0.12/src/pt-fvc-base.h *** octave-2.0.11/src/pt-fvc-base.h Thu Nov 20 03:51:30 1997 --- octave-2.0.12/src/pt-fvc-base.h Wed Apr 15 20:44:30 1998 *************** *** 63,69 **** --- 63,73 ---- virtual string fcn_file_name (void) { return string (); } + virtual void mark_fcn_file_up_to_date (time_t); + virtual time_t time_parsed (void); + + virtual time_t time_checked (void); virtual bool is_builtin (void) const { return false; } diff -cNr octave-2.0.11/src/pt-fvc.h octave-2.0.12/src/pt-fvc.h *** octave-2.0.11/src/pt-fvc.h Thu Nov 20 03:27:09 1997 --- octave-2.0.12/src/pt-fvc.h Wed Apr 15 20:48:59 1998 *************** *** 246,254 **** --- 246,260 ---- string fcn_file_name (void) { return file_name; } + void mark_fcn_file_up_to_date (time_t t) + { t_checked = t; } + time_t time_parsed (void) { return t_parsed; } + time_t time_checked (void) + { return t_checked; } + void mark_as_system_fcn_file (void); bool is_system_fcn_file (void) const *************** *** 285,290 **** --- 291,300 ---- // The time the file was parsed. time_t t_parsed; + + // The time the file was last checked to see if it needs to be + // parsed again. + time_t t_checked; // True if this function came from a file that is considered to be a // system function. This affects whether we check the time stamp diff -cNr octave-2.0.11/src/pt-misc.cc octave-2.0.12/src/pt-misc.cc *** octave-2.0.11/src/pt-misc.cc Thu Feb 19 21:54:06 1998 --- octave-2.0.12/src/pt-misc.cc Thu Apr 2 20:44:29 1998 *************** *** 241,247 **** octave_value tmp = elt->eval (false); if (error_state) { ! ::error ("evaluating argument list element number %d", k); args = octave_value_list (); break; } --- 241,247 ---- octave_value tmp = elt->eval (false); if (error_state) { ! ::error ("evaluating argument list element number %d", k+1); args = octave_value_list (); break; } diff -cNr octave-2.0.11/src/pt-plot.cc octave-2.0.12/src/pt-plot.cc *** octave-2.0.11/src/pt-plot.cc Fri Feb 20 01:18:32 1998 --- octave-2.0.12/src/pt-plot.cc Wed Apr 15 01:19:36 1998 *************** *** 102,137 **** // ID of the plotter process. static pid_t plot_stream_pid = 0; ! // Use shortest possible abbreviations to minimize trouble caused by ! // gnuplot's fixed-length command line buffer. ! ! #ifndef GPLOT_CMD_PLOT ! #define GPLOT_CMD_PLOT "pl" ! #endif ! ! #ifndef GPLOT_CMD_REPLOT ! #define GPLOT_CMD_REPLOT "cle;rep" ! #endif ! ! #ifndef GPLOT_CMD_SPLOT ! #define GPLOT_CMD_SPLOT "sp" ! #endif ! ! #ifndef GPLOT_CMD_USING ! #define GPLOT_CMD_USING "u" ! #endif ! ! #ifndef GPLOT_CMD_WITH ! #define GPLOT_CMD_WITH "w" ! #endif ! ! #ifndef GPLOT_CMD_TITLE ! #define GPLOT_CMD_TITLE "t" ! #endif ! ! #ifndef GPLOT_CMD_END ! #define GPLOT_CMD_END "\n" ! #endif static void plot_stream_death_handler (pid_t pid, int) --- 102,116 ---- // ID of the plotter process. static pid_t plot_stream_pid = 0; ! // Gnuplot command strings that we use. ! static string Vgnuplot_command_plot; ! static string Vgnuplot_command_replot; ! static string Vgnuplot_command_splot; ! static string Vgnuplot_command_using; ! static string Vgnuplot_command_with; ! static string Vgnuplot_command_axes; ! static string Vgnuplot_command_title; ! static string Vgnuplot_command_end; static void plot_stream_death_handler (pid_t pid, int) *************** *** 211,217 **** *plot_stream << "set data style lines\n"; if (gnuplot_terminal_type) ! *plot_stream << "set term " << gnuplot_terminal_type << GPLOT_CMD_END; } } --- 190,197 ---- *plot_stream << "set data style lines\n"; if (gnuplot_terminal_type) ! *plot_stream << "set term " << gnuplot_terminal_type ! << Vgnuplot_command_end; } } *************** *** 226,238 **** return -1; } ! int replot_len = strlen (GPLOT_CMD_REPLOT); ! int splot_len = strlen (GPLOT_CMD_SPLOT); ! int plot_len = strlen (GPLOT_CMD_PLOT); ! ! bool is_replot = (strncmp (cmd, GPLOT_CMD_REPLOT, replot_len) == 0); ! bool is_splot = (strncmp (cmd, GPLOT_CMD_SPLOT, splot_len) == 0); ! bool is_plot = (strncmp (cmd, GPLOT_CMD_PLOT, plot_len) == 0); if (plot_line_count == 0 && is_replot) error ("replot: no previous plot"); --- 206,218 ---- return -1; } ! int replot_len = Vgnuplot_command_replot.length (); ! int splot_len = Vgnuplot_command_splot.length (); ! int plot_len = Vgnuplot_command_plot.length (); ! ! bool is_replot = (Vgnuplot_command_replot.compare (cmd, 0, replot_len) == 0); ! bool is_splot = (Vgnuplot_command_splot.compare (cmd, 0, splot_len) == 0); ! bool is_plot = (Vgnuplot_command_plot.compare (cmd, 0, plot_len) == 0); if (plot_line_count == 0 && is_replot) error ("replot: no previous plot"); *************** *** 243,249 **** if (! (is_replot || is_splot || is_plot) && plot_line_count > 0 && Vautomatic_replot) ! *plot_stream << GPLOT_CMD_REPLOT << GPLOT_CMD_END; plot_stream->flush (); } --- 223,229 ---- if (! (is_replot || is_splot || is_plot) && plot_line_count > 0 && Vautomatic_replot) ! *plot_stream << Vgnuplot_command_replot << Vgnuplot_command_end; plot_stream->flush (); } *************** *** 275,281 **** if (plot_line_count == 0) { if (plot_list) ! plot_buf << GPLOT_CMD_PLOT; else { ::error ("replot: must have something to plot"); --- 255,261 ---- if (plot_line_count == 0) { if (plot_list) ! plot_buf << Vgnuplot_command_plot; else { ::error ("replot: must have something to plot"); *************** *** 283,309 **** } } else ! plot_buf << GPLOT_CMD_REPLOT; break; case 2: if (clear_before_plotting || plot_line_count == 0) { plot_line_count = 0; ! plot_buf << GPLOT_CMD_PLOT; } else ! plot_buf << GPLOT_CMD_REPLOT; break; case 3: if (clear_before_plotting || plot_line_count == 0) { plot_line_count = 0; ! plot_buf << GPLOT_CMD_SPLOT; } else ! plot_buf << GPLOT_CMD_REPLOT; break; default: --- 263,289 ---- } } else ! plot_buf << Vgnuplot_command_replot; break; case 2: if (clear_before_plotting || plot_line_count == 0) { plot_line_count = 0; ! plot_buf << Vgnuplot_command_plot; } else ! plot_buf << Vgnuplot_command_replot; break; case 3: if (clear_before_plotting || plot_line_count == 0) { plot_line_count = 0; ! plot_buf << Vgnuplot_command_splot; } else ! plot_buf << Vgnuplot_command_replot; break; default: *************** *** 331,337 **** return; } ! plot_buf << GPLOT_CMD_END << ends; // Just testing... // char *message = plot_buf.str (); --- 311,317 ---- return; } ! plot_buf << Vgnuplot_command_end << ends; // Just testing... // char *message = plot_buf.str (); *************** *** 530,536 **** for (int i = 0; i < qual_count; i++) { if (i == 0) ! plot_buf << " " << GPLOT_CMD_USING << " "; else plot_buf << ":"; --- 510,516 ---- for (int i = 0; i < qual_count; i++) { if (i == 0) ! plot_buf << " " << Vgnuplot_command_using << " "; else plot_buf << ":"; *************** *** 557,563 **** { if (! sp_style.empty ()) { ! plot_buf << " " << GPLOT_CMD_WITH << " " << sp_style; if (sp_linetype) { --- 537,543 ---- { if (! sp_style.empty ()) { ! plot_buf << " " << Vgnuplot_command_with << " " << sp_style; if (sp_linetype) { *************** *** 642,653 **** --- 622,649 ---- tw.visit_subplot_style (*this); } + int + subplot_axes::print (ostrstream& plot_buf) + { + if (! sp_axes.empty ()) + plot_buf << " " << Vgnuplot_command_axes << " " << sp_axes; + + return 0; + } + + void + subplot_axes::accept (tree_walker& tw) + { + tw.visit_subplot_axes (*this); + } + subplot::~subplot (void) { delete sp_plot_data; delete sp_using_clause; delete sp_title_clause; delete sp_style_clause; + delete sp_axes_clause; } octave_value *************** *** 776,796 **** if (status < 0) return -1; if (sp_title_clause) { octave_value tmp = sp_title_clause->eval (false); if (! error_state && tmp.is_string ()) ! plot_buf << " " << GPLOT_CMD_TITLE << " " << '"' << tmp.string_value () << '"'; else { warning ("line title must be a string"); ! plot_buf << " " << GPLOT_CMD_TITLE << " " << '"' << "line " << plot_line_count << '"'; } } else ! plot_buf << " " << GPLOT_CMD_TITLE << " " << '"' << "line " << plot_line_count << '"'; if (sp_style_clause) --- 772,799 ---- if (status < 0) return -1; + if (sp_axes_clause) + { + int status = sp_axes_clause->print (plot_buf); + if (status < 0) + return -1; + } + if (sp_title_clause) { octave_value tmp = sp_title_clause->eval (false); if (! error_state && tmp.is_string ()) ! plot_buf << " " << Vgnuplot_command_title << " " << '"' << tmp.string_value () << '"'; else { warning ("line title must be a string"); ! plot_buf << " " << Vgnuplot_command_title << " " << '"' << "line " << plot_line_count << '"'; } } else ! plot_buf << " " << Vgnuplot_command_title << " " << '"' << "line " << plot_line_count << '"'; if (sp_style_clause) *************** *** 919,925 **** if (plot_stream && *plot_stream) { ostrstream plot_buf; ! plot_buf << "cd \"" << newdir << "\"" GPLOT_CMD_END << ends; char *message = plot_buf.str (); send_to_plot_stream (message); delete [] message; --- 922,928 ---- if (plot_stream && *plot_stream) { ostrstream plot_buf; ! plot_buf << "cd \"" << newdir << "\"" << Vgnuplot_command_end << ends; char *message = plot_buf.str (); send_to_plot_stream (message); delete [] message; *************** *** 1042,1048 **** ostrstream buf; for (int i = 2; i < argc; i++) buf << argv[i] << " "; ! buf << GPLOT_CMD_END << ends; gnuplot_terminal_type = buf.str (); } } --- 1045,1051 ---- ostrstream buf; for (int i = 2; i < argc; i++) buf << argv[i] << " "; ! buf << Vgnuplot_command_end << ends; gnuplot_terminal_type = buf.str (); } } *************** *** 1050,1056 **** for (int i = 0; i < argc; i++) plot_buf << argv[i] << " "; ! plot_buf << GPLOT_CMD_END << ends; char *plot_command = plot_buf.str (); send_to_plot_stream (plot_command); --- 1053,1059 ---- for (int i = 0; i < argc; i++) plot_buf << argv[i] << " "; ! plot_buf << Vgnuplot_command_end << ends; char *plot_command = plot_buf.str (); send_to_plot_stream (plot_command); *************** *** 1086,1092 **** for (int i = 0; i < argc; i++) plot_buf << argv[i] << " "; ! plot_buf << GPLOT_CMD_END << ends; char *plot_command = plot_buf.str (); send_to_plot_stream (plot_command); --- 1089,1095 ---- for (int i = 0; i < argc; i++) plot_buf << argv[i] << " "; ! plot_buf << Vgnuplot_command_end << ends; char *plot_command = plot_buf.str (); send_to_plot_stream (plot_command); *************** *** 1111,1132 **** return 0; } ! int ! gnuplot_binary (void) { ! int status = 0; ! string s = builtin_string_variable ("gnuplot_binary"); if (s.empty ()) { ! gripe_invalid_value_specified ("gnuplot_binary"); ! status = -1; } else ! Vgnuplot_binary = s; ! return status; } static int --- 1114,1189 ---- return 0; } ! static int ! set_string_var (string& var, const char *nm) { ! int retval = 0; ! string s = builtin_string_variable (nm); if (s.empty ()) { ! gripe_invalid_value_specified (nm); ! retval = -1; } else ! var = s; ! return retval; ! } ! ! static int ! gnuplot_binary (void) ! { ! return set_string_var (Vgnuplot_binary, "gnuplot_binary"); ! } ! ! static int ! gnuplot_command_plot (void) ! { ! return set_string_var (Vgnuplot_command_plot, "gnuplot_command_plot"); ! } ! ! static int ! gnuplot_command_replot (void) ! { ! return set_string_var (Vgnuplot_command_replot, "gnuplot_command_replot"); ! } ! ! static int ! gnuplot_command_splot (void) ! { ! return set_string_var (Vgnuplot_command_splot, "gnuplot_command_splot"); ! } ! ! static int ! gnuplot_command_using (void) ! { ! return set_string_var (Vgnuplot_command_using, "gnuplot_command_using"); ! } ! ! static int ! gnuplot_command_with (void) ! { ! return set_string_var (Vgnuplot_command_with, "gnuplot_command_with"); ! } ! ! static int ! gnuplot_command_axes (void) ! { ! return set_string_var (Vgnuplot_command_axes, "gnuplot_command_axes"); ! } ! ! static int ! gnuplot_command_title (void) ! { ! return set_string_var (Vgnuplot_command_title, "gnuplot_command_title"); ! } ! ! static int ! gnuplot_command_end (void) ! { ! return set_string_var (Vgnuplot_command_end, "gnuplot_command_end"); } static int *************** *** 1153,1158 **** --- 1210,1239 ---- DEFVAR (gnuplot_binary, "gnuplot", 0, gnuplot_binary, "path to gnuplot binary"); + + DEFVAR (gnuplot_command_plot, "pl", 0, gnuplot_command_plot, + ""); + + DEFVAR (gnuplot_command_replot, "rep", 0, gnuplot_command_replot, + ""); + + DEFVAR (gnuplot_command_splot, "sp", 0, gnuplot_command_splot, + ""); + + DEFVAR (gnuplot_command_using, "u", 0, gnuplot_command_using, + ""); + + DEFVAR (gnuplot_command_with, "w", 0, gnuplot_command_with, + ""); + + DEFVAR (gnuplot_command_axes, "ax", 0, gnuplot_command_axes, + ""); + + DEFVAR (gnuplot_command_title, "t", 0, gnuplot_command_title, + ""); + + DEFVAR (gnuplot_command_end, "\n", 0, gnuplot_command_end, + ""); #ifdef GNUPLOT_HAS_FRAMES double with_frames = 1.0; diff -cNr octave-2.0.11/src/pt-plot.h octave-2.0.12/src/pt-plot.h *** octave-2.0.11/src/pt-plot.h Tue Nov 19 20:33:54 1996 --- octave-2.0.12/src/pt-plot.h Wed Apr 15 13:47:07 1998 *************** *** 36,41 **** --- 36,42 ---- class plot_range; class subplot_using; class subplot_style; + class subplot_axes; class subplot; class subplot_list; *************** *** 237,262 **** }; class subplot { public: subplot (tree_expression *data = 0) : sp_plot_data (data), sp_using_clause (0), sp_title_clause (0), ! sp_style_clause (0) { } ! ! subplot (subplot_using *u, tree_expression *t, subplot_style *s) ! : sp_plot_data (0), sp_using_clause (u), sp_title_clause (t), ! sp_style_clause (s) { } ~subplot (void); ! subplot *set_data (tree_expression *data) { sp_plot_data = data; return this; } octave_value extract_plot_data (int ndim, octave_value& data); int handle_plot_data (int ndim, ostrstream& plot_buf); --- 238,325 ---- }; class + subplot_axes + { + public: + + subplot_axes (const string& s = string ()) + : sp_axes (s) { } + + ~subplot_axes (void) { } + + int print (ostrstream& plot_buf); + + string axes (void) { return sp_axes; } + + void accept (tree_walker& tw); + + private: + + // The axes we are using: `x1y1', `x1y2', etc. + string sp_axes; + }; + + class subplot { public: subplot (tree_expression *data = 0) : sp_plot_data (data), sp_using_clause (0), sp_title_clause (0), ! sp_style_clause (0), sp_axes_clause (0) { } ~subplot (void); ! subplot *add_data (tree_expression *data) { sp_plot_data = data; return this; } + subplot *add_clause (subplot_using *u) + { + if (! sp_using_clause) + { + sp_using_clause = u; + return this; + } + else + return 0; + } + + subplot *add_clause (tree_expression *t) + { + if (! sp_title_clause) + { + sp_title_clause = t; + return this; + } + else + return 0; + } + + subplot *add_clause (subplot_style *s) + { + if (! sp_style_clause) + { + sp_style_clause = s; + return this; + } + else + return 0; + } + + subplot *add_clause (subplot_axes *a) + { + if (! sp_axes_clause) + { + sp_axes_clause = a; + return this; + } + else + return 0; + } + octave_value extract_plot_data (int ndim, octave_value& data); int handle_plot_data (int ndim, ostrstream& plot_buf); *************** *** 271,276 **** --- 334,341 ---- subplot_style *style_clause (void) { return sp_style_clause; } + subplot_axes *axes_clause (void) { return sp_axes_clause; } + void accept (tree_walker& tw); private: *************** *** 286,291 **** --- 351,359 ---- // The `style' option subplot_style *sp_style_clause; + + // The `axes' option + subplot_axes *sp_axes_clause; }; class diff -cNr octave-2.0.11/src/pt-pr-code.cc octave-2.0.12/src/pt-pr-code.cc *** octave-2.0.11/src/pt-pr-code.cc Fri Feb 28 14:46:26 1997 --- octave-2.0.12/src/pt-pr-code.cc Wed Apr 15 01:11:33 1998 *************** *** 914,919 **** --- 914,924 ---- sp_plot_data->accept (*this); } + subplot_axes *sp_axes_clause = cmd.axes_clause (); + + if (sp_axes_clause) + sp_axes_clause->accept (*this); + subplot_using *sp_using_clause = cmd.using_clause (); if (sp_using_clause) *************** *** 928,933 **** --- 933,944 ---- if (sp_style_clause) sp_style_clause->accept (*this); + } + + void + tree_print_code::visit_subplot_axes (subplot_axes& cmd) + { + os << " axes " << cmd.axes (); } void diff -cNr octave-2.0.11/src/pt-pr-code.h octave-2.0.12/src/pt-pr-code.h *** octave-2.0.11/src/pt-pr-code.h Fri Feb 28 12:47:42 1997 --- octave-2.0.12/src/pt-pr-code.h Wed Apr 15 00:52:28 1998 *************** *** 124,129 **** --- 124,131 ---- void visit_subplot (subplot&); + void visit_subplot_axes (subplot_axes&); + void visit_subplot_list (subplot_list&); void visit_subplot_style (subplot_style&); diff -cNr octave-2.0.11/src/pt-walk.h octave-2.0.12/src/pt-walk.h *** octave-2.0.11/src/pt-walk.h Fri Feb 28 13:44:38 1997 --- octave-2.0.12/src/pt-walk.h Wed Apr 15 00:52:13 1998 *************** *** 153,158 **** --- 153,161 ---- visit_subplot (subplot&) = 0; virtual void + visit_subplot_axes (subplot_axes&) = 0; + + virtual void visit_subplot_list (subplot_list&) = 0; virtual void diff -cNr octave-2.0.11/src/sighandlers.cc octave-2.0.12/src/sighandlers.cc *** octave-2.0.11/src/sighandlers.cc Mon May 19 16:12:01 1997 --- octave-2.0.12/src/sighandlers.cc Sun May 3 15:56:22 1998 *************** *** 87,92 **** --- 87,98 ---- do { } while (0) #endif + #if defined (SIGABRT) + #define OCTAVE_MEMORY_EXHAUSTED_ERROR SIGABRT + #else + #define OCTAVE_MEMORY_EXHAUSTED_ERROR (-1) + #endif + void octave_save_signal_mask (void) { *************** *** 126,132 **** save_user_variables (); ! clean_up_and_exit (sig_number); } } --- 132,147 ---- save_user_variables (); ! clean_up_for_exit (); ! ! if (sig_number < 0) ! exit (1); ! else ! { ! octave_set_signal_handler (sig_number, SIG_DFL); ! ! kill (getpid (), sig_number); ! } } } *************** *** 143,149 **** panic_impossible (); } else ! my_friendly_exit ("operator new", 1); } sig_handler * --- 158,164 ---- panic_impossible (); } else ! my_friendly_exit ("operator new", OCTAVE_MEMORY_EXHAUSTED_ERROR); } sig_handler * *************** *** 372,377 **** --- 387,395 ---- octave_set_signal_handler (SIGCHLD, sigchld_handler); #endif + // SIGCLD + // SIGCONT + #ifdef SIGEMT octave_set_signal_handler (SIGEMT, generic_sig_handler); #endif *************** *** 392,397 **** --- 410,422 ---- octave_set_signal_handler (SIGILL, generic_sig_handler); #endif + // SIGINFO + // SIGINT + + #ifdef SIGIO + octave_set_signal_handler (SIGIO, SIG_IGN); + #endif + #ifdef SIGIOT octave_set_signal_handler (SIGIOT, generic_sig_handler); #endif *************** *** 412,417 **** --- 437,444 ---- octave_set_signal_handler (SIGPROF, generic_sig_handler); #endif + // SIGPWR + #ifdef SIGQUIT octave_set_signal_handler (SIGQUIT, generic_sig_handler); #endif *************** *** 420,425 **** --- 447,454 ---- octave_set_signal_handler (SIGSEGV, generic_sig_handler); #endif + // SIGSTOP + #ifdef SIGSYS octave_set_signal_handler (SIGSYS, generic_sig_handler); #endif *************** *** 432,437 **** --- 461,471 ---- octave_set_signal_handler (SIGTRAP, generic_sig_handler); #endif + // SIGTSTP + // SIGTTIN + // SIGTTOU + // SIGURG + #ifdef SIGUSR1 octave_set_signal_handler (SIGUSR1, generic_sig_handler); #endif *************** *** 444,452 **** octave_set_signal_handler (SIGVTALRM, generic_sig_handler); #endif ! #ifdef SIGIO ! octave_set_signal_handler (SIGIO, SIG_IGN); ! #endif #ifdef SIGXCPU octave_set_signal_handler (SIGXCPU, generic_sig_handler); --- 478,484 ---- octave_set_signal_handler (SIGVTALRM, generic_sig_handler); #endif ! // SIGWINCH #ifdef SIGXCPU octave_set_signal_handler (SIGXCPU, generic_sig_handler); diff -cNr octave-2.0.11/src/symtab.cc octave-2.0.12/src/symtab.cc *** octave-2.0.11/src/symtab.cc Thu Jan 8 11:54:27 1998 --- octave-2.0.12/src/symtab.cc Tue Apr 7 15:40:17 1998 *************** *** 617,623 **** if (is_variable ()) { tree_constant *tmp = (tree_constant *) def (); ! retval = tmp->value (); } return retval; --- 617,625 ---- if (is_variable ()) { tree_constant *tmp = (tree_constant *) def (); ! ! if (tmp) ! retval = tmp->value (); } return retval; diff -cNr octave-2.0.11/src/symtab.h octave-2.0.12/src/symtab.h *** octave-2.0.11/src/symtab.h Fri Nov 21 14:35:49 1997 --- octave-2.0.12/src/symtab.h Wed Apr 8 22:50:17 1998 *************** *** 102,108 **** BUILTIN_VARIABLE = 32 }; ! friend maybe_delete (symbol_def *def); private: --- 102,108 ---- BUILTIN_VARIABLE = 32 }; ! friend int maybe_delete (symbol_def *def); private: diff -cNr octave-2.0.11/src/toplev.cc octave-2.0.12/src/toplev.cc *** octave-2.0.11/src/toplev.cc Wed Feb 18 14:27:17 1998 --- octave-2.0.12/src/toplev.cc Sun May 3 15:56:26 1998 *************** *** 339,345 **** { file = oct_tilde_expand (file); ! parse_fcn_file (1, file); if (error_state) error ("source: error sourcing file `%s'", file.c_str ()); --- 339,345 ---- { file = oct_tilde_expand (file); ! parse_fcn_file (file, true, true); if (error_state) error ("source: error sourcing file `%s'", file.c_str ()); *************** *** 356,362 **** // Fix up things before exiting. void ! clean_up_and_exit (int retval) { #if defined (USE_READLINE) rl_deprep_terminal (); --- 356,362 ---- // Fix up things before exiting. void ! clean_up_for_exit (void) { #if defined (USE_READLINE) rl_deprep_terminal (); *************** *** 372,389 **** cleanup_tmp_files (); ! if (!quitting_gracefully && (interactive || forced_interactive)) cout << "\n"; ! if (retval == EOF) ! retval = 0; ! ! exit (retval); ! ! // This is bogus but should prevent g++ from giving a warning saying ! // that this volatile function does return. ! panic_impossible (); } DEFUN_TEXT (casesen, args, , --- 372,387 ---- cleanup_tmp_files (); ! if (! quitting_gracefully && (interactive || forced_interactive)) cout << "\n"; + } ! void ! clean_up_and_exit (int retval) ! { ! clean_up_for_exit (); ! exit (retval == EOF ? 0 : retval); } DEFUN_TEXT (casesen, args, , diff -cNr octave-2.0.11/src/toplev.h octave-2.0.12/src/toplev.h *** octave-2.0.11/src/toplev.h Thu Feb 19 02:00:17 1998 --- octave-2.0.12/src/toplev.h Sat Mar 28 15:55:19 1998 *************** *** 33,38 **** --- 33,40 ---- #include + extern void clean_up_for_exit (void); + extern void clean_up_and_exit (int) GCC_ATTR_NORETURN; extern void parse_and_execute (FILE *f, int print = 0); diff -cNr octave-2.0.11/src/utils.cc octave-2.0.12/src/utils.cc *** octave-2.0.11/src/utils.cc Tue Nov 18 14:52:21 1997 --- octave-2.0.12/src/utils.cc Sun May 3 15:56:34 1998 *************** *** 289,295 **** if (Vcurrent_directory.empty ()) get_working_directory ("file_in_path"); ! return search_path_for_file (Vload_path, nm); } // See if there is an function file in the path. If so, return the --- 289,295 ---- if (Vcurrent_directory.empty ()) get_working_directory ("file_in_path"); ! return make_absolute (Vload_path_dir_path.find (nm), Vcurrent_directory); } // See if there is an function file in the path. If so, return the diff -cNr octave-2.0.11/src/variables.cc octave-2.0.12/src/variables.cc *** octave-2.0.11/src/variables.cc Thu Feb 19 21:14:07 1998 --- octave-2.0.12/src/variables.cc Tue Apr 28 14:08:27 1998 *************** *** 26,31 **** --- 26,32 ---- #include #include + #include #include #include *************** *** 71,76 **** --- 72,78 ---- #include "sysdep.h" #include "pt-const.h" #include "oct-obj.h" + #include "oct-procbuf.h" #include "pt-exp.h" #include "pt-fcn.h" #include "pt-fvc.h" *************** *** 423,441 **** && ! (Vignore_function_time_stamp && ans->is_system_fcn_file ())) { ! time_t tp = ans->time_parsed (); ! string fname; ! if (ans->is_builtin ()) ! fname = ff; ! else ! fname = fcn_file_in_path (ff); ! int status = is_newer (fname, tp); ! if (status > 0) ! return 1; } } } --- 425,448 ---- && ! (Vignore_function_time_stamp && ans->is_system_fcn_file ())) { ! if (ans->time_checked () < Vlast_prompt_time) ! { ! time_t tp = ans->time_parsed (); ! string fname; ! if (ans->is_builtin ()) ! fname = ff; ! else ! fname = fcn_file_in_path (ff); ! ans->mark_fcn_file_up_to_date (time (0)); ! file_stat fs (fname); ! ! if (fs && fs.is_newer (tp)) ! return 1; ! } } } } *************** *** 619,625 **** } int ! parse_fcn_file (int exec_script, const string& ff) { begin_unwind_frame ("parse_fcn_file"); --- 626,632 ---- } int ! parse_fcn_file (const string& ff, bool exec_script, bool force_script) { begin_unwind_frame ("parse_fcn_file"); *************** *** 651,657 **** // Check to see if this file defines a function or is just a // list of commands. ! if (is_function_file (ffile)) { // XXX FIXME XXX -- we shouldn't need both the // octave_command_history object and the --- 658,664 ---- // Check to see if this file defines a function or is just a // list of commands. ! if (! force_script && is_function_file (ffile)) { // XXX FIXME XXX -- we shouldn't need both the // octave_command_history object and the *************** *** 727,733 **** } static bool ! load_fcn_from_file (symbol_record *sym_rec, int exec_script) { bool script_file_executed = false; --- 734,740 ---- } static bool ! load_fcn_from_file (symbol_record *sym_rec, bool exec_script) { bool script_file_executed = false; *************** *** 781,787 **** curr_fcn_file_full_name = ff; if (ff.length () > 0) ! script_file_executed = parse_fcn_file (exec_script, ff); if (! (error_state || script_file_executed)) force_link_to_function (nm); --- 788,794 ---- curr_fcn_file_full_name = ff; if (ff.length () > 0) ! script_file_executed = parse_fcn_file (ff, exec_script); if (! (error_state || script_file_executed)) force_link_to_function (nm); *************** *** 793,799 **** } bool ! lookup (symbol_record *sym_rec, int exec_script) { bool script_executed = false; --- 800,806 ---- } bool ! lookup (symbol_record *sym_rec, bool exec_script) { bool script_executed = false; *************** *** 825,831 **** // current symbol table. symbol_record * ! lookup_by_name (const string& nm, int exec_script) { symbol_record *sym_rec = curr_sym_tab->lookup (nm, 1, 0); --- 832,838 ---- // current symbol table. symbol_record * ! lookup_by_name (const string& nm, bool exec_script) { symbol_record *sym_rec = curr_sym_tab->lookup (nm, 1, 0); *************** *** 1726,1731 **** --- 1733,1739 ---- symbols_of_input (); symbols_of_lex (); symbols_of_load_save (); + symbols_of_oct_procbuf (); symbols_of_pager (); symbols_of_parse (); symbols_of_pr_output (); diff -cNr octave-2.0.11/src/variables.h octave-2.0.12/src/variables.h *** octave-2.0.11/src/variables.h Thu Nov 20 02:40:21 1997 --- octave-2.0.12/src/variables.h Tue Apr 14 23:30:26 1998 *************** *** 103,113 **** extern void initialize_symbol_tables (void); ! extern int parse_fcn_file (int exec_script, const string& ff); ! extern bool lookup (symbol_record *s, int exec_script = 1); ! extern symbol_record *lookup_by_name (const string& nm, int exec_script = 1); extern string get_help_from_file (const string& f); --- 103,115 ---- extern void initialize_symbol_tables (void); ! extern int parse_fcn_file (const string& ff, bool exec_script, ! bool force_script = false); ! extern bool lookup (symbol_record *s, bool exec_script = true); ! extern symbol_record *lookup_by_name (const string& nm, ! bool exec_script = true); extern string get_help_from_file (const string& f); diff -cNr octave-2.0.11/src/version.h octave-2.0.12/src/version.h *** octave-2.0.11/src/version.h Tue Feb 24 00:43:55 1998 --- octave-2.0.12/src/version.h Sun May 3 19:58:47 1998 *************** *** 20,26 **** */ ! #define OCTAVE_VERSION "2.0.11" #define OCTAVE_COPYRIGHT \ "Copyright (C) 1996, 1997, 1998 John W. Eaton." --- 20,26 ---- */ ! #define OCTAVE_VERSION "2.0.12" #define OCTAVE_COPYRIGHT \ "Copyright (C) 1996, 1997, 1998 John W. Eaton." diff -cNr octave-2.0.11/src/xpow.cc octave-2.0.12/src/xpow.cc *** octave-2.0.11/src/xpow.cc Thu Jan 8 23:17:05 1998 --- octave-2.0.12/src/xpow.cc Wed Mar 18 12:34:01 1998 *************** *** 455,463 **** int nr = b.rows (); int nc = b.cols (); ! // For now, assume the worst. ! if (a < 0.0) { Complex atmp (a); ComplexMatrix result (nr, nc); --- 455,463 ---- int nr = b.rows (); int nc = b.cols (); ! double d1, d2; ! if (a < 0.0 && ! b.all_integers (d1, d2)) { Complex atmp (a); ComplexMatrix result (nr, nc); diff -cNr octave-2.0.11/test/ChangeLog octave-2.0.12/test/ChangeLog *** octave-2.0.11/test/ChangeLog Tue Feb 24 16:30:27 1998 --- octave-2.0.12/test/ChangeLog Sun May 3 19:59:51 1998 *************** *** 1,3 **** --- 1,26 ---- + Sun May 3 19:59:37 1998 John W. Eaton + + * Version 2.0.12 released. + + Thu Apr 23 01:45:16 1998 John W. Eaton + + * Makefile.in: If $(SHARED_LIBS), set LD_LIBRARY_PATH for running + Octave before installation is complete. + + Wed Apr 15 15:23:43 1998 John W. Eaton + + * octave.test/index/dfi-f/m-2.m, octave.test/index/dfi-f/index.exp: + Expect this test to succed now. + + Thu Mar 5 20:35:26 1998 John W. Eaton + + * octave.test/system/gmtime-1.m, octave.test/system/localtime-1.m: + Not all systems have time zone info in the struct. + + Mon Mar 2 14:36:50 1998 John W. Eaton + + * octave.test/io/binary-io-1.m (id): Use binary flag in fopen call. + Tue Feb 24 16:30:16 1998 John W. Eaton * Version 2.0.11 released. diff -cNr octave-2.0.11/test/Makefile.in octave-2.0.12/test/Makefile.in *** octave-2.0.11/test/Makefile.in Sat Mar 1 15:14:01 1997 --- octave-2.0.12/test/Makefile.in Thu Apr 23 01:51:31 1998 *************** *** 24,29 **** --- 24,39 ---- OCTAVE_SCRIPT_PATH = .:$(TOPDIR)/src//:$(srcdir)/../scripts// + ifeq ($(SHARED_LIBS), true) + OCTAVE_LD_LIBRARY_PATH = `pwd`/../src:`pwd`/../liboctave:`pwd`/../libcruft + ifneq ($(LD_LIBRARY_PATH),) + XLD_LIBRARY_PATH = $(OCTAVE_LD_LIBRARY_PATH) + else + XLD_LIBRARY_PATH = $(OCTAVE_LD_LIBRARY_PATH):$(LD_LIBRARY_PATH) + endif + SET_LD_LIBRARY_PATH = LD_LIBRARY_PATH="$(XLD_LIBRARY_PATH)" + endif + # Complete directory trees to distribute. DISTDIRS = config octave.test *************** *** 32,38 **** check: @if test -n "$(RUNTEST)" ; then \ ! $(RUNTEST) \ OCTAVE="$(OCTAVE_BINARY)" \ OCTAVE_SCRIPT_PATH="$(OCTAVE_SCRIPT_PATH)" \ --tool octave --srcdir $(srcdir) $(RUNTEST_FLAGS) ; \ --- 42,48 ---- check: @if test -n "$(RUNTEST)" ; then \ ! $(SET_LD_LIBRARY_PATH) $(RUNTEST) \ OCTAVE="$(OCTAVE_BINARY)" \ OCTAVE_SCRIPT_PATH="$(OCTAVE_SCRIPT_PATH)" \ --tool octave --srcdir $(srcdir) $(RUNTEST_FLAGS) ; \ diff -cNr octave-2.0.11/test/octave.test/arith/arith.exp octave-2.0.12/test/octave.test/arith/arith.exp *** octave-2.0.11/test/octave.test/arith/arith.exp Wed Feb 26 01:13:23 1997 --- octave-2.0.12/test/octave.test/arith/arith.exp Thu Apr 23 01:20:06 1998 *************** *** 1,19 **** ## The following functions need to have tests written for them: ! # nexpow2 ! # pow2 ! # beta ! # betai ! # erf # erfc # erfinv - # gamma - # gammai # lgamma # cross # commutation_matrix # duplication_matrix set test ceil-1 set prog_output "ans = 1" do_test ceil-1.m --- 1,41 ---- ## The following functions need to have tests written for them: ! # nextpow2 # erfc # erfinv # lgamma # cross # commutation_matrix # duplication_matrix + set test beta-1 + set prog_output "ans = 1" + do_test beta-1.m + + set test beta-2 + set prog_output "error:.*" + do_test beta-2.m + + set test beta-3 + set prog_output "error:.*" + do_test beta-3.m + + set test betai-1 + set prog_output "ans = 1" + do_test betai-1.m + + set test betai-2 + set prog_output "error:.*" + do_test betai-2.m + + set test betai-3 + set prog_output "error:.*" + do_test betai-3.m + + set test betai-4 + set prog_output "error:.*" + do_test betai-4.m + set test ceil-1 set prog_output "ans = 1" do_test ceil-1.m *************** *** 30,35 **** --- 52,69 ---- set prog_output "error:.*" do_test ceil-4.m + set test erf-1 + set prog_output "ans = 1" + do_test erf-1.m + + set test erf-2 + set prog_output "error:.*" + do_test erf-2.m + + set test erf-3 + set prog_output "error:.*" + do_test erf-3.m + set test exp-1 set prog_output "ans = 1" do_test exp-1.m *************** *** 78,83 **** --- 112,133 ---- set prog_output "error:.*" do_test floor-4.m + set test gamma-1 + set prog_output "ans = 1" + do_test gamma-1.m + + set test gamma-2 + set prog_output "error:.*" + do_test gamma-2.m + + set test gamma-3 + set prog_output "error:.*" + do_test gamma-3.m + + set test gammai-1 + set prog_output "ans = 1" + do_test gammai-1.m + set test gcd-1 set prog_output "ans = 1" do_test gcd-1.m *************** *** 133,138 **** --- 183,200 ---- set test min-4 set prog_output "\n... min:.*" do_test min-4.m + + set test pow2-1 + set prog_output "ans = 1" + do_test pow2-1.m + + set test pow2-2 + set prog_output "ans = 1" + do_test pow2-2.m + + set test pow2-3 + set prog_output "error:.*" + do_test pow2-3.m set test rem-1 set prog_output "ans = 1" diff -cNr octave-2.0.11/test/octave.test/arith/beta-1.m octave-2.0.12/test/octave.test/arith/beta-1.m *** octave-2.0.11/test/octave.test/arith/beta-1.m Wed Dec 31 18:00:00 1969 --- octave-2.0.12/test/octave.test/arith/beta-1.m Thu Apr 23 01:24:08 1998 *************** *** 0 **** --- 1,6 ---- + a=[1, 1.5, 2, 3]; + b=[4, 3, 2, 1]; + v1=beta(a,b); + v2=beta(b,a); + v3=gamma(a).*gamma(b)./gamma(a+b); + all(abs(v1-v2) 0) --- 9,15 ---- nm = tmpnam (); ! id = fopen (nm, "wb"); if (id > 0) *************** *** 19,25 **** fclose (id); ! id = fopen (nm, "r"); if (id > 0) --- 19,25 ---- fclose (id); ! id = fopen (nm, "rb"); if (id > 0) diff -cNr octave-2.0.11/test/octave.test/system/gmtime-1.m octave-2.0.12/test/octave.test/system/gmtime-1.m *** octave-2.0.11/test/octave.test/system/gmtime-1.m Tue Feb 25 17:33:59 1997 --- octave-2.0.12/test/octave.test/system/gmtime-1.m Thu Mar 5 20:35:26 1998 *************** *** 5,11 **** && struct_contains (ts, "mon") && struct_contains (ts, "mday") && struct_contains (ts, "sec") - && struct_contains (ts, "zone") && struct_contains (ts, "min") && struct_contains (ts, "wday") && struct_contains (ts, "hour") --- 5,10 ---- diff -cNr octave-2.0.11/test/octave.test/system/localtime-1.m octave-2.0.12/test/octave.test/system/localtime-1.m *** octave-2.0.11/test/octave.test/system/localtime-1.m Tue Feb 25 17:33:08 1997 --- octave-2.0.12/test/octave.test/system/localtime-1.m Thu Mar 5 20:37:15 1998 *************** *** 5,11 **** && struct_contains (ts, "mon") && struct_contains (ts, "mday") && struct_contains (ts, "sec") - && struct_contains (ts, "zone") && struct_contains (ts, "min") && struct_contains (ts, "wday") && struct_contains (ts, "hour") --- 5,10 ---- PATCH_EOF