changeset 3783:4ab12d923395

[project @ 2001-02-07 08:23:27 by jwe]
author jwe
date Wed, 07 Feb 2001 08:23:27 +0000
parents 55a13d6d2625
children 097af73b5f4f
files readline/COPYING readline/doc/texi2dvi readline/posixdir.h readline/posixstat.h readline/rlconf.h readline/rltty.h readline/tcap.h readline/xmalloc.c
diffstat 8 files changed, 305 insertions(+), 214 deletions(-) [+]
line wrap: on
line diff
--- a/readline/COPYING	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/COPYING	Wed Feb 07 08:23:27 2001 +0000
@@ -305,7 +305,7 @@
 
     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 USA.
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 
 Also add information on how to contact you by electronic and paper mail.
 
--- a/readline/doc/texi2dvi	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/doc/texi2dvi	Wed Feb 07 08:23:27 2001 +0000
@@ -1,10 +1,9 @@
 #! /bin/sh
 # texi2dvi --- smartly produce DVI files from texinfo sources
-
-# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-
-# $Id: texi2dvi,v 1.2 1999-10-13 21:59:16 jwe Exp $
-
+# $Id: texi2dvi,v 1.3 2001-02-07 08:23:27 jwe Exp $
+#
+# Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+#
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2, or (at your option)
@@ -19,65 +18,73 @@
 # along with this program; if not, you can either send email to this
 # program's maintainer or write to: The Free Software Foundation,
 # Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
-
+#
 # Commentary:
-
+#
 # Author: Noah Friedman <friedman@gnu.org>
-
+#
 # Please send bug reports, etc. to bug-texinfo@gnu.org.
 # If possible, please send a copy of the output of the script called with
 # the `--debug' option when making a bug report.
-
+#
 # In the interest of general portability, some common bourne shell
 # constructs were avoided because they weren't guaranteed to be available
 # in some earlier implementations.  I've tried to make this program as
 # portable as possible.  Welcome to unix, where the lowest common
 # denominator is rapidly diminishing.
 #
-# Among the more interesting lossages I noticed with some bourne shells
-# are:
+# Among the more interesting lossages I noticed among Bourne shells:
 #     * No shell functions.
 #     * No `unset' builtin.
 #     * `shift' cannot take a numeric argument, and signals an error if
 #       there are no arguments to shift.
-
+#
 # Code:
 
 # Name by which this script was invoked.
 progname=`echo "$0" | sed -e 's/[^\/]*\///g'`
 
 # This string is expanded by rcs automatically when this file is checked out.
-rcs_revision='$Revision: 1.2 $'
+rcs_revision='$Revision: 1.3 $'
 version=`set - $rcs_revision; echo $2`
 
 # To prevent hairy quoting and escaping later.
 bq='`'
 eq="'"
 
-usage="Usage: $progname {options} [file1] {file2 {...}}
-(version $version)
+usage="Usage: $0 [OPTION]... FILE...
+Run a Texinfo document through TeX.
 
-Options are:
+Options:
+-b, --batch          No interaction (\nonstopmode in TeX).
+-c, --clean          Remove all auxiliary files.
 -D, --debug          Turn on shell debugging ($bq${bq}set -x$eq$eq).
--h, --help           You're looking at it.
--v, --version        Print version number.
+-t, --texinfo CMD    Insert CMD after @setfilename before running TeX.
+--verbose            Report on what is done.
+-h, --help           Display this help and exit.
+-v, --version        Display version information and exit.
 
-Arguments in brackets are required.  Those in braces are optional.
-"
+The values of the TEX, TEXINDEX, and MAKEINFO environment variables are
+used to run those commands, if they are set.
+
+Email bug reports to bug-texinfo@gnu.org."
 
 # Initialize variables.
 # Don't use `unset' since old bourne shells don't have this command.
 # Instead, assign them an empty value.
-# Some of these, like TEX and TEXINDEX, may be inherited from the environment
-backup_extension=.bak
+# Some of these, like TEX and TEXINDEX, may be inherited from the environment.
+backup_extension=.bak # these files get deleted if all goes well.
+batch=
+clean=
 debug=
 orig_pwd="`pwd`"
-verbose=
+textra=
+verbose=false
+makeinfo="${MAKEINFO-makeinfo}"
 texindex="${TEXINDEX-texindex}"
 tex="${TEX-tex}"
 
-# Save this so we can construct a new TEXINPUTS path for each file to be
-# processed.
+# Save this so we can construct a new TEXINPUTS path for each file.
 TEXINPUTS_orig="$TEXINPUTS"
 export TEXINPUTS
 
@@ -86,190 +93,270 @@
 # It's a good idea to document the full long option name in each case.
 # Long options which take arguments will need a `*' appended to the
 # canonical name to match the value appended after the `=' character.
-while : ; do
-  case $# in 0) break ;; esac
+while :; do
+  test $# -eq 0 && break
+  
   case "$1" in
-    -D | --debug | --d* )
-      debug=t
-      shift
-     ;;
-    -h | --help | --h* )
-      echo "$usage" 1>&2
-      exit 0
-     ;;
-    -v | --version | --v* )
-      echo "texi2dvi version $version" 1>&2
-      exit 0
-     ;;
+    -b | --batch | --b* ) batch=t; shift ;;
+    -c | --clean | --c* ) clean=t; shift ;;
+    -D | --debug | --d* ) debug=t; shift ;;
+    -h | --help | --h* )   echo "$usage"; exit 0 ;;
+    # OK, we should do real option parsing here, but be lazy for now.
+    -t | --texinfo | --t*) shift; textra="$textra $1"; shift ;; 
+    -v | --vers* )
+      echo "$progname (GNU Texinfo 3.12) $version"
+      echo "Copyright (C) 1998 Free Software Foundation, Inc.
+There is NO warranty.  You may redistribute this software
+under the terms of the GNU General Public License.
+For more information about these matters, see the files named COPYING."
+      exit 0 ;;
+    --verb* )            verbose=echo; shift ;;
     -- )     # Stop option processing
       shift
-      break
-     ;;
+      break ;;
     -* )
       case "$1" in
         --*=* ) arg=`echo "$1" | sed -e 's/=.*//'` ;;
         * )     arg="$1" ;;
       esac
       exec 1>&2
-      echo "$progname: unknown or ambiguous option $bq$arg$eq"
-      echo "$progname: Use $bq--help$eq for a list of options."
-      exit 1
-     ;;
-    * )
-      break
-     ;;
+      echo "$progname: Unknown or ambiguous option $bq$arg$eq."
+      echo "$progname: Try $bq--help$eq for more information."
+      exit 1 ;;
+    * ) break ;;
    esac
 done
 
 # See if there are any command line args left (which will be interpreted as
-# filename arguments)
-case $# in
-  0 )
-    exec 1>&2
-    echo "$progname: at least one file name is required as an argument."
-    echo "$progname: Use $bq--help$eq for a description of command syntax."
-    exit 2
-   ;;
-esac
+# filename arguments).
+if test $# -eq 0; then
+  exec 1>&2
+  echo "$progname: At least one file name is required as an argument."
+  echo "$progname: Try $bq--help$eq for more information."
+  exit 2
+fi
 
-case "$debug" in t ) set -x ;; esac
+test "$debug" = t && set -x
 
 # Texify files
-for command_line_filename in ${1+"$@"} ; do
-   # Roughly equivalent to `dirname ...`, but more portable
-   directory="`echo ${command_line_filename} | sed 's/\/[^\/]*$//'`"
-   filename_texi="`basename ${command_line_filename}`"
-   # Strip off the last extension part (probably .texinfo or .texi)
-   filename_noext="`echo ${filename_texi} | sed 's/\.[^.]*$//'`"
+for command_line_filename in ${1+"$@"}; do
+  $verbose "Processing $command_line_filename ..."
 
-   # If directory and file are the same, then it's probably because there's
-   # no pathname component.  Set dirname to `.', the current directory.
-   if test "z${directory}" = "z${command_line_filename}" ; then
-      directory="."
-   fi
+  # See if file exists.  If it doesn't we're in trouble since, even
+  # though the user may be able to reenter a valid filename at the tex
+  # prompt (assuming they're attending the terminal), this script won't
+  # be able to find the right index files and so forth.
+  if test ! -r "${command_line_filename}"; then
+    echo "$0: Could not read ${command_line_filename}." >&2
+    continue
+  fi
+
+  # Roughly equivalent to `dirname ...`, but more portable
+  directory="`echo ${command_line_filename} | sed 's/\/[^\/]*$//'`"
+  filename_texi="`basename ${command_line_filename}`"
+  # Strip off the last extension part (probably .texinfo or .texi)
+  filename_noext="`echo ${filename_texi} | sed 's/\.[^.]*$//'`"
 
-   # Source file might @include additional texinfo sources.  Put `.' and
-   # directory where source file(s) reside in TEXINPUTS before anything
-   # else.  `.' goes first to ensure that any old .aux, .cps, etc. files in
-   # ${directory} don't get used in preference to fresher files in `.'.
-   TEXINPUTS=".:${directory}:${TEXINPUTS_orig}"
+  # Use same basename since we want to generate aux files with the same
+  # basename as the manual.  Use extension .texi for the temp file so
+  # that TeX will ignore it.  Thus, we must use a subdirectory.
+  #
+  # Output the macro-expanded file to here.  The vastly abbreviated
+  # temporary directory name is so we don't have collisions on 8.3 or
+  # 14-character filesystems.
+  tmp_dir=${TMPDIR-/tmp}/txi2d.$$
+  filename_tmp=$tmp_dir/$filename_noext.texi
+  # Output the file with the user's extra commands to here.
+  tmp_dir2=${tmp_dir}.2
+  filename_tmp2=$tmp_dir2/$filename_noext.texi
+  mkdir $tmp_dir $tmp_dir2
+  # Always remove the temporary directories.
+  trap "rm -rf $tmp_dir $tmp_dir2" 1 2 15
 
-   # "Unset" variables that might have values from previous iterations and
-   # which won't be completely reset later.
-   definite_index_files=""
+  # If directory and file are the same, then it's probably because there's
+  # no pathname component.  Set dirname to `.', the current directory.
+  if test "z${directory}" = "z${command_line_filename}"; then
+    directory=.
+  fi
 
-   # See if file exists here.  If it doesn't we're in trouble since, even
-   # though the user may be able to reenter a valid filename at the tex
-   # prompt (assuming they're attending the terminal), this script won't be
-   # able to find the right index files and so forth.
-   if test ! -r "${command_line_filename}" ; then
-      echo "${progname}: ${command_line_filename}: No such file or permission denied." 1>&2
-      continue;
-   fi
+  # Source file might @include additional texinfo sources.  Put `.' and
+  # directory where source file(s) reside in TEXINPUTS before anything
+  # else.  `.' goes first to ensure that any old .aux, .cps, etc. files in
+  # ${directory} don't get used in preference to fresher files in `.'.
+  TEXINPUTS=".:${directory}:${TEXINPUTS_orig}"
+
+  # Expand macro commands in the original source file using Makeinfo;
+  #   the macro syntax bfox implemented is impossible to implement in TeX.
+  # Always use `end' footnote style, since the `separate' style
+  #   generates different output (arguably this is a bug in -E).
+  # Discard main info output, the user asked to run TeX, not makeinfo.
+  # Redirect output to /dev/null to throw away `Making info file...' msg.
+  $verbose "Macro-expanding $command_line_filename to $filename_tmp ..."
+  $makeinfo --footnote-style=end -E $filename_tmp -o /dev/null \
+    $command_line_filename >/dev/null
 
-   # Find all files having root filename with a two-letter extension,
-   # determine whether they're really index files, and save them.  Foo.aux
-   # is actually the cross-references file, but we need to keep track of
-   # that too.
-   possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
-   for this_file in ${possible_index_files} ; do
+  # But if there were no macros, or makeinfo failed for some reason,
+  # just use the original file.  (It shouldn't make any difference, but
+  # let's be safe.)
+  if test $? -ne 0 || cmp -s $filename_tmp $command_line_filename; then
+    $verbose "Reverting to $command_line_filename ..."
+    cp -p $command_line_filename $filename_tmp
+  fi
+  filename_input=$filename_tmp
+  dirname_input=$tmp_dir
+
+  # Used most commonly for @finalout, @smallbook, etc.
+  if test -n "$textra"; then
+    $verbose "Inserting extra commands: $textra."
+    sed '/^@setfilename/a\
+'"$textra" $filename_input >$filename_tmp2
+   filename_input=$filename_tmp2
+   dirname_input=$tmp_dir2
+  fi
+
+  # If clean mode was specified, then move to the temporary directory.
+  if test "$clean" = t; then
+    $verbose "cd $dirname_input"
+    cd $dirname_input || exit 1
+    filename_input=`basename $filename_input`
+  fi
+
+  while true; do # will break out of loop below
+    # "Unset" variables that might have values from previous iterations and
+    # which won't be completely reset later.
+    definite_index_files=
+
+    # Find all files having root filename with a two-letter extension,
+    # determine whether they're really index files, and save them.  Foo.aux
+    # is actually the cross-references file, but we need to keep track of
+    # that too.
+    possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
+    for this_file in ${possible_index_files}; do
       # If file is empty, forget it.
-      if test ! -s "${this_file}" ; then
-         continue;
-      fi
+      test -s "${this_file}" || continue
 
-      # Examine first character of file.  If it's not a backslash or
-      # single quote, then it's definitely not an index or xref file.
+      # Examine first character of file.  If it's not suitable to be an
+      # index or xref file, don't process it.
       first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
-      if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then
-         definite_index_files="${definite_index_files} ${this_file}"
+      if test "x${first_character}" = "x\\" \
+         || test "x${first_character}" = "x'"; then
+        definite_index_files="${definite_index_files} ${this_file}"
       fi
-   done
-   orig_index_files="${definite_index_files}"
-   orig_index_files_sans_aux="`echo ${definite_index_files} \
-                                | sed 's/'${filename_noext}'\.aux//;
-                                       s/^[ ]*//;s/[ ]*$//;'`"
+    done
+    orig_index_files="${definite_index_files}"
+    orig_index_files_sans_aux="`echo ${definite_index_files} \
+                                 | sed 's/'${filename_noext}'\.aux//;
+                                        s/^[ ]*//;s/[ ]*$//;'`"
 
-   # Now save copies of original index files so we have some means of
-   # comparison later.
-   for index_file_to_save in ${orig_index_files} ; do
-       cp "${index_file_to_save}" "${index_file_to_save}${backup_extension}"
-   done
+    # Now save copies of original index files so we have some means of
+    # comparison later.
+    $verbose "Backing up current index files: $orig_index_files ..."  
+    for index_file_to_save in ${orig_index_files}; do
+      cp "${index_file_to_save}" "${index_file_to_save}${backup_extension}"
+    done
 
-   # Run texindex on current index files.  If they already exist, and
-   # after running TeX a first time the index files don't change, then
-   # there's no reason to run TeX again.  But we won't know that if the
-   # index files are out of date or nonexistent.
-   if test "${orig_index_files_sans_aux}" ; then
+    # Run texindex on current index files.  If they already exist, and
+    # after running TeX a first time the index files don't change, then
+    # there's no reason to run TeX again.  But we won't know that if the
+    # index files are out of date or nonexistent.
+    if test -n "${orig_index_files_sans_aux}"; then
+      $verbose "Running $texindex $orig_index_files_sans_aux ..."
       ${texindex} ${orig_index_files_sans_aux}
-   fi
+    fi
 
-   if ${tex} ${command_line_filename} ; then		# TeX run first time
-      definite_index_files=""
-      # Get list of new index files
-      possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
-      for this_file in ${possible_index_files} ; do
-         # If file is empty, forget it.
-         if test ! -s ${this_file} ; then
-            continue;
-         fi
+    # Finally, run TeX.
+    if test "$batch" = t; then
+      tex_mode='\nonstopmode'
+    else
+      tex_mode=
+    fi
+    $verbose "Running $tex $filename_input ..."
+    cmd="$tex $tex_mode \\input $filename_input"
+    $cmd
 
-         # Examine first character of file.  If it's not a backslash or
-         # single quote, then it's definitely not an index or xref file.
-         first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
-         if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then
-            definite_index_files="${definite_index_files} ${this_file}"
-         fi
-      done
-      new_index_files="${definite_index_files}"
-      new_index_files_sans_aux="`echo ${definite_index_files} \
-                                  | sed 's/'${filename_noext}'\.aux//;
-                                         s/^[ ]*//;s/[ ]*$//;'`"
+    # Check if index files changed.
+    # 
+    definite_index_files=
+    # Get list of new index files.
+    possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
+    for this_file in ${possible_index_files}; do
+       # If file is empty, forget it.
+       test -s "${this_file}" || continue
+
+       # Examine first character of file.  If it's not a backslash or
+       # single quote, then it's definitely not an index or xref file.
+       # (Will have to check for @ when we switch to Texinfo syntax in
+       # all these files...)
+       first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
+       if test "x${first_character}" = "x\\" \
+          || test "x${first_character}" = "x'"; then
+         definite_index_files="${definite_index_files} ${this_file}"
+       fi
+    done
+    new_index_files="${definite_index_files}"
+    new_index_files_sans_aux="`echo ${definite_index_files} \
+                               | sed 's/'${filename_noext}'\.aux//;
+                                      s/^[ ]*//;s/[ ]*$//;'`"
 
-      # If old and new list don't at least have the same file list, then one
-      # file or another has definitely changed.
-      if test "${orig_index_files}" != "${new_index_files}" ; then
-         index_files_changed_p=t
-      else
-         # File list is the same.  We must compare each file until we find a
-         # difference.
-         index_files_changed_p=""
-         for this_file in ${new_index_files} ; do
-            # cmp -s will return nonzero exit status if files differ.
-            cmp -s "${this_file}" "${this_file}${backup_extension}"
-            if test $? -ne 0  ; then
-               # We only need to keep comparing until we find *one* that
-               # differs, because we'll have to run texindex & tex no
-               # matter what.
-               index_files_changed_p=t
-               break
-            fi
-         done
-      fi
+    # If old and new list don't at least have the same file list, then one
+    # file or another has definitely changed.
+    $verbose "Original index files =$orig_index_files"
+    $verbose "New index files =$new_index_files"
+    if test "z${orig_index_files}" != "z${new_index_files}"; then
+      index_files_changed_p=t
+    else
+      # File list is the same.  We must compare each file until we find a
+      # difference.
+      index_files_changed_p=
+      for this_file in ${new_index_files}; do
+        $verbose "Comparing index file $this_file ..."
+        # cmp -s will return nonzero exit status if files differ.
+        cmp -s "${this_file}" "${this_file}${backup_extension}"
+        if test $? -ne 0; then
+          # We only need to keep comparing until we find *one* that
+          # differs, because we'll have to run texindex & tex no
+          # matter what.
+          index_files_changed_p=t
+          $verbose "Index file $this_file differed:"
+          test $verbose = echo \
+          && diff -c "${this_file}${backup_extension}" "${this_file}"
+          break
+        fi
+      done
+    fi
 
-      # If index files have changed since TeX has been run, or if the aux
-      # file wasn't present originally, run texindex and TeX again.
-      if test "${index_files_changed_p}"  ; then
-         retval=0
-         if test "${new_index_files_sans_aux}" ; then
-            ${texindex} ${new_index_files_sans_aux}
-            retval=$?
-         fi
-         if test ${retval} -eq 0 ; then
-            ${tex} "${command_line_filename}"
-         fi
-      fi
-   fi
+    # If index files have changed since TeX has been run, or if the aux
+    # file wasn't present originally, run texindex and TeX again.
+    if test "${index_files_changed_p}"; then :; else
+      # Nothing changed.  We're done with TeX.
+      break
+    fi
+  done
 
-   # Generate list of files to delete, then call rm once with the entire
-   # list.  This is significantly faster than multiple executions of rm.
-   file_list=""
-   for file in ${orig_index_files} ; do
-       file_list="${file_list} ${file}${backup_extension}"
-   done
-   if test "${file_list}" ; then
-      rm -f ${file_list}
-   fi
+  # If we were in clean mode, compilation was in a tmp directory.
+  # Copy the DVI file into the directory where the compilation
+  # has been done.  (The temp dir is about to get removed anyway.)
+  # We also return to the original directory so that
+  # - the next file is processed in correct conditions
+  # - the temporary file can be removed
+  if test -n "$clean"; then
+    $verbose "Copying DVI file from `pwd` to $orig_pwd"
+    cp -p $filename_noext.dvi $orig_pwd
+    cd $orig_pwd || exit 1
+  fi
+
+  # Generate list of files to delete, then call rm once with the entire
+  # list.  This is significantly faster than multiple executions of rm.
+  file_list=
+  for file in ${orig_index_files}; do
+    file_list="${file_list} ${file}${backup_extension}"
+  done
+  if test -n "${file_list}"; then
+    $verbose "Removing $file_list $tmp_dir $tmp_dir2 ..."
+    rm -f ${file_list}
+    rm -rf $tmp_dir $tmp_dir2
+  fi
 done
 
-# texi2dvi ends here
+$verbose "$0 done."
+true # exit successfully.
--- a/readline/posixdir.h	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/posixdir.h	Wed Feb 07 08:23:27 2001 +0000
@@ -6,7 +6,7 @@
 
    Bash 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 1, or (at your option)
+   the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    Bash is distributed in the hope that it will be useful, but WITHOUT
--- a/readline/posixstat.h	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/posixstat.h	Wed Feb 07 08:23:27 2001 +0000
@@ -7,7 +7,7 @@
 
    Bash 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 1, or (at your option)
+   the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    Bash is distributed in the hope that it will be useful, but WITHOUT
--- a/readline/rlconf.h	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/rlconf.h	Wed Feb 07 08:23:27 2001 +0000
@@ -8,7 +8,7 @@
 
    The Library 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 1, or (at your option)
+   the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    The Library is distributed in the hope that it will be useful, but
@@ -30,10 +30,6 @@
 /* Define this to get an indication of file type when listing completions. */
 #define VISIBLE_STATS
 
-/* If defined, readline shows opening parens and braces when closing
-   paren or brace entered. */
-#define PAREN_MATCHING
-
 /* This definition is needed by readline.c, rltty.c, and signals.c. */
 /* If on, then readline handles signals in a way that doesn't screw. */
 #define HANDLE_SIGNALS
@@ -56,8 +52,6 @@
 
 /* Define this if you want code that allows readline to be used in an
    X `callback' style. */
-#if !defined (SHELL)
-#  define READLINE_CALLBACKS
-#endif
+#define READLINE_CALLBACKS
 
 #endif /* _RLCONF_H_ */
--- a/readline/rltty.h	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/rltty.h	Wed Feb 07 08:23:27 2001 +0000
@@ -8,7 +8,7 @@
 
    The Library 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 1, or (at your option)
+   the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    The Library is distributed in the hope that it will be useful, but
@@ -22,7 +22,7 @@
    59 Temple Place, Suite 330, Boston, MA 02111 USA. */
 
 #if !defined (_RLTTY_H_)
-#define _RLTTY_H
+#define _RLTTY_H_
 
 /* Posix systems use termios and the Posix signal functions. */
 #if defined (TERMIOS_TTY_DRIVER)
@@ -42,17 +42,7 @@
 #  include <sgtty.h>
 #endif
 
-/* Stuff for `struct winsize' on various systems. */
-#if defined (HAVE_SYS_STREAM_H)
-#  include <sys/stream.h>
-#endif /* HAVE_SYS_STREAM_H */
-#if defined (HAVE_SYS_PTEM_H)
-#  include <sys/ptem.h>
-#  define _IO_PTEM_H		/* work around SVR4.2 1.1.4 bug */
-#endif /* HAVE_SYS_PTEM_H */
-#if defined (HAVE_SYS_PTE_H)
-#  include <sys/pte.h>
-#endif /* HAVE_SYS_PTE_H */
+#include "rlwinsize.h"
 
 /* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
    it is not already defined.  It is used both to determine if a
@@ -70,4 +60,23 @@
 #  endif /* !_SVR4_DISABLE */
 #endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
 
+typedef struct _rl_tty_chars {
+  char t_eof;
+  char t_eol;
+  char t_eol2;
+  char t_erase;
+  char t_werase;
+  char t_kill;
+  char t_reprint;
+  char t_intr;
+  char t_quit;
+  char t_susp;
+  char t_dsusp;
+  char t_start;
+  char t_stop;
+  char t_lnext;
+  char t_flush;
+  char t_status;
+} _RL_TTY_CHARS;
+
 #endif /* _RLTTY_H_ */
--- a/readline/tcap.h	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/tcap.h	Wed Feb 07 08:23:27 2001 +0000
@@ -8,7 +8,7 @@
 
    The Library 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 1, or (at your option)
+   the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    The Library is distributed in the hope that it will be useful, but
--- a/readline/xmalloc.c	Wed Feb 07 07:45:32 2001 +0000
+++ b/readline/xmalloc.c	Wed Feb 07 08:23:27 2001 +0000
@@ -7,7 +7,7 @@
 
    Readline 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 1, or (at your option) any
+   Free Software Foundation; either version 2, or (at your option) any
    later version.
 
    Readline is distributed in the hope that it will be useful, but
@@ -18,6 +18,7 @@
    You should have received a copy of the GNU General Public License
    along with Readline; see the file COPYING.  If not, write to the Free
    Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
 
 #if defined (HAVE_CONFIG_H)
 #include <config.h>
@@ -31,7 +32,7 @@
 #  include "ansi_stdlib.h"
 #endif /* HAVE_STDLIB_H */
 
-static void memory_error_and_abort ();
+#include "xmalloc.h"
 
 /* **************************************************************** */
 /*								    */
@@ -39,6 +40,14 @@
 /*								    */
 /* **************************************************************** */
 
+static void
+memory_error_and_abort (fname)
+     char *fname;
+{
+  fprintf (stderr, "%s: out of virtual memory\n", fname);
+  exit (2);
+}
+
 /* Return a pointer to free()able block of memory large enough
    to hold BYTES number of bytes.  If the memory cannot be allocated,
    print an error message and abort. */
@@ -56,7 +65,7 @@
 
 char *
 xrealloc (pointer, bytes)
-     char *pointer;
+     PTR_T pointer;
      int bytes;
 {
   char *temp;
@@ -68,19 +77,11 @@
   return (temp);
 }
 
-static void
-memory_error_and_abort (fname)
-     char *fname;
-{
-  fprintf (stderr, "%s: out of virtual memory\n", fname);
-  exit (2);
-}
-
 /* Use this as the function to call when adding unwind protects so we
    don't need to know what free() returns. */
 void
 xfree (string)
-     char *string;
+     PTR_T string;
 {
   if (string)
     free (string);