commit bash-20040728 snapshot

This commit is contained in:
Chet Ramey
2011-12-03 13:33:39 -05:00
parent 0e5ad4671a
commit e6e3b44420
81 changed files with 53829 additions and 30791 deletions
+37
View File
@@ -9638,3 +9638,40 @@ flags.c
error messages
[bash-3.0 frozen]
7/27
----
doc/Makefile.in
- small fixes
[bash-3.0-released]
7/28
----
array.c
- in array_insert(), make sure the value to be added is non-NULL before
calling savestring() on it
builtins/reserved.def
- fix description of `CDPATH'
lib/readline/display.c
- when expanding a prompt that spans multiple lines with embedded
newlines, set prompt_physical_chars from the portion after the
final newline, not the preceding portion. Bug reported by
"Ralf S. Engelschall" <rse@engelschall.com>
make_cmd.c
- explicitly declare `lineno' in function prologue for make_case_command
builtins/evalfile.c
- include `trap.h' for declaration for run_return_trap
bashline.c
- fix a `return' without a value in enable_hostname_completion
general.c
- include test.h for extern declaration for test_eaccess
externs.h
- add declaration for zcatfd
-9640
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
CWRU.chlog
+544
View File
@@ -0,0 +1,544 @@
This file is set.def, from which is created set.c.
It implements the "set" and "unset" builtins in Bash.
Copyright (C) 1987, 1989, 1991 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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) any later
version.
Bash 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 Bash; see the file COPYING. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
$PRODUCES set.c
#include <stdio.h>
#include "../shell.h"
#include "../flags.h"
#include "bashgetopt.h"
extern int interactive;
extern int noclobber, posixly_correct;
#if defined (READLINE)
extern int rl_editing_mode, no_line_editing;
#endif /* READLINE */
$BUILTIN set
$FUNCTION set_builtin
$SHORT_DOC set [--abefhkmnptuvxldBCHP] [-o option] [arg ...]
-a Mark variables which are modified or created for export.
-b Notify of job termination immediately.
-e Exit immediately if a command exits with a non-zero status.
-f Disable file name generation (globbing).
-h Locate and remember function commands as functions are
defined. Function commands are normally looked up when
the function is executed.
-i Force the shell to be an "interactive" one. Interactive shells
always read `~/.bashrc' on startup.
-k All keyword arguments are placed in the environment for a
command, not just those that precede the command name.
-m Job control is enabled.
-n Read commands but do not execute them.
-o option-name
Set the variable corresponding to option-name:
allexport same as -a
braceexpand same as -B
#if defined (READLINE)
emacs use an emacs-style line editing interface
#endif /* READLINE */
errexit same as -e
histexpand same as -H
ignoreeof the shell will not exit upon reading EOF
interactive-comments
allow comments to appear in interactive commands
monitor same as -m
noclobber disallow redirection to existing files
noexec same as -n
noglob same as -f
nohash same as -d
notify save as -b
nounset same as -u
physical same as -P
posix change the behavior of bash where the default
operation differs from the 1003.2 standard to
match the standard
privileged same as -p
verbose same as -v
#if defined (READLINE)
vi use a vi-style line editing interface
#endif /* READLINE */
xtrace same as -x
-p Turned on whenever the real and effective user ids do not match.
Disables processing of the $ENV file and importing of shell
functions. Turning this option off causes the effective uid and
gid to be set to the real uid and gid.
-t Exit after reading and executing one command.
-u Treat unset variables as an error when substituting.
-v Print shell input lines as they are read.
-x Print commands and their arguments as they are executed.
-l Save and restore the binding of the NAME in a FOR command.
-d Disable the hashing of commands that are looked up for execution.
Normally, commands are remembered in a hash table, and once
found, do not have to be looked up again.
#if defined (BRACE_EXPANSION)
-B the shell will perform brace expansion
#endif /* BRACE_EXPANSION */
#if defined (BANG_HISTORY)
-H Enable ! style history substitution. This flag is on
by default.
#endif /* BANG_HISTORY */
-C If set, disallow existing regular files to be overwritten
by redirection of output.
-P If set, do not follow symbolic links when executing commands
such as cd which change the current directory.
Using + rather than - causes these flags to be turned off. The
flags can also be used upon invocation of the shell. The current
set of flags may be found in $-. The remaining n ARGs are positional
parameters and are assigned, in order, to $1, $2, .. $n. If no
ARGs are given, all shell variables are printed.
$END
/* An a-list used to match long options for set -o to the corresponding
option letter. */
struct {
char *name;
int letter;
} o_options[] = {
{ "allexport", 'a' },
#if defined (BRACE_EXPANSION)
{ "braceexpand",'B' },
#endif
{ "errexit", 'e' },
{ "histexpand", 'H' },
{ "monitor", 'm' },
{ "noexec", 'n' },
{ "noglob", 'f' },
{ "nohash", 'd' },
#if defined (JOB_CONTROL)
{ "notify", 'b' },
#endif /* JOB_CONTROL */
{"nounset", 'u' },
{"physical", 'P' },
{"privileged", 'p' },
{"verbose", 'v' },
{"xtrace", 'x' },
{(char *)NULL, 0},
};
#define MINUS_O_FORMAT "%-15s\t%s\n"
void
list_minus_o_opts ()
{
register int i;
char *on = "on", *off = "off";
printf (MINUS_O_FORMAT, "noclobber", (noclobber == 1) ? on : off);
if (find_variable ("ignoreeof") || find_variable ("IGNOREEOF"))
printf (MINUS_O_FORMAT, "ignoreeof", on);
else
printf (MINUS_O_FORMAT, "ignoreeof", off);
printf (MINUS_O_FORMAT, "interactive-comments",
interactive_comments ? on : off);
printf (MINUS_O_FORMAT, "posix", posixly_correct ? on : off);
#if defined (READLINE)
if (no_line_editing)
{
printf (MINUS_O_FORMAT, "emacs", off);
printf (MINUS_O_FORMAT, "vi", off);
}
else
{
/* Magic. This code `knows' how readline handles rl_editing_mode. */
printf (MINUS_O_FORMAT, "emacs", (rl_editing_mode == 1) ? on : off);
printf (MINUS_O_FORMAT, "vi", (rl_editing_mode == 0) ? on : off);
}
#endif /* READLINE */
for (i = 0; o_options[i].name; i++)
{
int *on_or_off, zero = 0;
on_or_off = find_flag (o_options[i].letter);
if (on_or_off == FLAG_UNKNOWN)
on_or_off = &zero;
printf (MINUS_O_FORMAT, o_options[i].name, (*on_or_off == 1) ? on : off);
}
}
set_minus_o_option (on_or_off, option_name)
int on_or_off;
char *option_name;
{
int option_char = -1;
if (STREQ (option_name, "noclobber"))
{
if (on_or_off == FLAG_ON)
bind_variable ("noclobber", "");
else
unbind_variable ("noclobber");
stupidly_hack_special_variables ("noclobber");
}
else if (STREQ (option_name, "ignoreeof"))
{
unbind_variable ("ignoreeof");
unbind_variable ("IGNOREEOF");
if (on_or_off == FLAG_ON)
bind_variable ("IGNOREEOF", "10");
stupidly_hack_special_variables ("IGNOREEOF");
}
#if defined (READLINE)
else if ((STREQ (option_name, "emacs")) || (STREQ (option_name, "vi")))
{
if (on_or_off == FLAG_ON)
{
rl_variable_bind ("editing-mode", option_name);
if (interactive)
with_input_from_stdin ();
no_line_editing = 0;
}
else
{
int isemacs = (rl_editing_mode == 1);
if ((isemacs && STREQ (option_name, "emacs")) ||
(!isemacs && STREQ (option_name, "vi")))
{
if (interactive)
with_input_from_stream (stdin, "stdin");
no_line_editing = 1;
}
else
builtin_error ("not in %s editing mode", option_name);
}
}
#endif /* READLINE */
else if (STREQ (option_name, "interactive-comments"))
interactive_comments = (on_or_off == FLAG_ON);
else if (STREQ (option_name, "posix"))
{
posixly_correct = (on_or_off == FLAG_ON);
unbind_variable ("POSIXLY_CORRECT");
unbind_variable ("POSIX_PEDANTIC");
if (on_or_off == FLAG_ON)
{
bind_variable ("POSIXLY_CORRECT", "");
stupidly_hack_special_variables ("POSIXLY_CORRECT");
}
}
else
{
register int i;
for (i = 0; o_options[i].name; i++)
{
if (STREQ (option_name, o_options[i].name))
{
option_char = o_options[i].letter;
break;
}
}
if (option_char == -1)
{
builtin_error ("%s: unknown option name", option_name);
return (EXECUTION_FAILURE);
}
if (change_flag (option_char, on_or_off) == FLAG_ERROR)
{
bad_option (option_name);
return (EXECUTION_FAILURE);
}
}
return (EXECUTION_SUCCESS);
}
/* Set some flags from the word values in the input list. If LIST is empty,
then print out the values of the variables instead. If LIST contains
non-flags, then set $1 - $9 to the successive words of LIST. */
set_builtin (list)
WORD_LIST *list;
{
int on_or_off, flag_name, force_assignment = 0;
if (!list)
{
SHELL_VAR **vars;
vars = all_shell_variables ();
if (vars)
{
print_var_list (vars);
free (vars);
}
vars = all_shell_functions ();
if (vars)
{
print_var_list (vars);
free (vars);
}
return (EXECUTION_SUCCESS);
}
/* Check validity of flag arguments. */
if (*list->word->word == '-' || *list->word->word == '+')
{
register char *arg;
WORD_LIST *save_list = list;
while (list && (arg = list->word->word))
{
char c;
if (arg[0] != '-' && arg[0] != '+')
break;
/* `-' or `--' signifies end of flag arguments. */
if (arg[0] == '-' &&
(!arg[1] || (arg[1] == '-' && !arg[2])))
break;
while (c = *++arg)
{
if (find_flag (c) == FLAG_UNKNOWN && c != 'o')
{
char s[2];
s[0] = c; s[1] = '\0';
bad_option (s);
if (c == '?')
builtin_usage ();
return (c == '?' ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
}
}
list = list->next;
}
list = save_list;
}
/* Do the set command. While the list consists of words starting with
'-' or '+' treat them as flags, otherwise, start assigning them to
$1 ... $n. */
while (list)
{
char *string = list->word->word;
/* If the argument is `--' or `-' then signal the end of the list
and remember the remaining arguments. */
if (string[0] == '-' && (!string[1] || (string[1] == '-' && !string[2])))
{
list = list->next;
/* `set --' unsets the positional parameters. */
if (string[1] == '-')
force_assignment = 1;
/* Until told differently, the old shell behaviour of
`set - [arg ...]' being equivalent to `set +xv [arg ...]'
stands. Posix.2 says the behaviour is marked as obsolescent. */
else
{
change_flag ('x', '+');
change_flag ('v', '+');
}
break;
}
if ((on_or_off = *string) &&
(on_or_off == '-' || on_or_off == '+'))
{
int i = 1;
while (flag_name = string[i++])
{
if (flag_name == '?')
{
builtin_usage ();
return (EXECUTION_SUCCESS);
}
else if (flag_name == 'o') /* -+o option-name */
{
char *option_name;
WORD_LIST *opt;
opt = list->next;
if (!opt)
{
list_minus_o_opts ();
continue;
}
option_name = opt->word->word;
if (!option_name || !*option_name || (*option_name == '-'))
{
list_minus_o_opts ();
continue;
}
list = list->next; /* Skip over option name. */
if (set_minus_o_option (on_or_off, option_name) != EXECUTION_SUCCESS)
return (EXECUTION_FAILURE);
}
else
{
if (change_flag (flag_name, on_or_off) == FLAG_ERROR)
{
char opt[3];
opt[0] = on_or_off;
opt[1] = flag_name;
opt[2] = '\0';
bad_option (opt);
builtin_usage ();
return (EXECUTION_FAILURE);
}
}
}
}
else
{
break;
}
list = list->next;
}
/* Assigning $1 ... $n */
if (list || force_assignment)
remember_args (list, 1);
return (EXECUTION_SUCCESS);
}
$BUILTIN unset
$FUNCTION unset_builtin
$SHORT_DOC unset [-f] [-v] [name ...]
For each NAME, remove the corresponding variable or function. Given
the `-v', unset will only act on variables. Given the `-f' flag,
unset will only act on functions. With neither flag, unset first
tries to unset a variable, and if that fails, then tries to unset a
function. Some variables (such as PATH and IFS) cannot be unset; also
see readonly.
$END
#define NEXT_VARIABLE() any_failed++; list = list->next; continue;
unset_builtin (list)
WORD_LIST *list;
{
int unset_function, unset_variable, unset_array, opt, any_failed;
char *name;
unset_function = unset_variable = unset_array = any_failed = 0;
reset_internal_getopt ();
while ((opt = internal_getopt (list, "fv")) != -1)
{
switch (opt)
{
case 'f':
unset_function = 1;
break;
case 'v':
unset_variable = 1;
break;
default:
builtin_usage ();
return (EXECUTION_FAILURE);
}
}
list = loptend;
if (unset_function && unset_variable)
{
builtin_error ("cannot simultaneously unset a function and a variable");
return (EXECUTION_FAILURE);
}
while (list)
{
SHELL_VAR *var;
int tem;
#if defined (ARRAY_VARS)
char *t;
#endif
name = list->word->word;
#if defined (ARRAY_VARS)
if (!unset_function && valid_array_reference (name))
{
t = strchr (name, '[');
*t++ = '\0';
unset_array++;
}
#endif
var = unset_function ? find_function (name) : find_variable (name);
if (var && !unset_function && non_unsettable_p (var))
{
builtin_error ("%s: cannot unset", name);
NEXT_VARIABLE ();
}
/* Posix.2 says that unsetting readonly variables is an error. */
if (var && readonly_p (var))
{
builtin_error ("%s: cannot unset: readonly %s",
name, unset_function ? "function" : "variable");
NEXT_VARIABLE ();
}
/* Unless the -f option is supplied, the name refers to a variable. */
#if defined (ARRAY_VARS)
if (var && unset_array)
{
if (array_p (var) == 0)
{
builtin_error ("%s: not an array variable", name);
NEXT_VARIABLE ();
}
else
tem = unbind_array_element (var, t);
}
else
#endif /* ARRAY_VARS */
tem = makunbound (name, unset_function ? shell_functions : shell_variables);
/* This is what Posix.2 draft 11+ says. ``If neither -f nor -v
is specified, the name refers to a variable; if a variable by
that name does not exist, a function by that name, if any,
shall be unset.'' */
if ((tem == -1) && !unset_function && !unset_variable)
tem = makunbound (name, shell_functions);
if (tem == -1)
any_failed++;
else if (!unset_function)
stupidly_hack_special_variables (name);
list = list->next;
}
if (any_failed)
return (EXECUTION_FAILURE);
else
return (EXECUTION_SUCCESS);
}
+50
View File
@@ -0,0 +1,50 @@
/* unwind_prot.h - Macros and functions for hacking unwind protection. */
/* Copyright (C) 1993 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option) any later
version.
Bash 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 Bash; see the file COPYING. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (_UNWIND_PROT_H)
#define _UNWIND_PROT_H
/* Run a function without interrupts. */
extern void begin_unwind_frame ();
extern void discard_unwind_frame ();
extern void run_unwind_frame ();
extern void add_unwind_protect ();
extern void remove_unwind_protect ();
extern void run_unwind_protects ();
extern void unwind_protect_var ();
/* Define for people who like their code to look a certain way. */
#define end_unwind_frame()
/* How to protect an integer. */
#define unwind_protect_int(X) unwind_protect_var (&(X), (char *)(X), sizeof (int))
/* How to protect a pointer to a string. */
#define unwind_protect_string(X) \
unwind_protect_var ((int *)&(X), (X), sizeof (char *))
/* How to protect any old pointer. */
#define unwind_protect_pointer(X) unwind_protect_string (X)
/* How to protect the contents of a jmp_buf. */
#define unwind_protect_jmp_buf(X) \
unwind_protect_var ((int *)(X), (char *)(X), sizeof (procenv_t))
#endif /* _UNWIND_PROT_H */
-1
View File
@@ -463,7 +463,6 @@ po/Rules-builtins f
po/Rules-quot f
po/bash.pot f
po/boldquot.sed f
po/builtins.pot f
po/en@quot.header f
po/en@boldquot.header f
po/en@quot.po f
+1 -1
View File
@@ -451,7 +451,7 @@ char *v;
*/
array_dispose_element(new);
free(element_value(ae));
ae->value = savestring(v);
ae->value = v ? savestring(v) : (char *)NULL;
return(0);
} else if (element_index(ae) > i) {
ADD_BEFORE(ae, new);
+1 -218
View File
@@ -1,5 +1,5 @@
@%:@! /bin/sh
@%:@ From configure.in for Bash 3.0, version 3.165, from autoconf version AC_ACVERSION.
@%:@ From configure.in for Bash 3.0, version 3.166, from autoconf version AC_ACVERSION.
@%:@ Guess values for system-dependent variables and create Makefiles.
@%:@ Generated by GNU Autoconf 2.57 for bash 3.0-release.
@%:@
@@ -13074,223 +13074,6 @@ done
for ac_header in stdlib.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
# Is the header compilable?
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
$ac_includes_default
@%:@include <$ac_header>
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
# Is the header present?
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
@%:@include <$ac_header>
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
else
ac_cpp_err=
fi
else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
case $ac_header_compiler:$ac_header_preproc in
yes:no )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
(
cat <<\_ASBOX
@%:@@%:@ ------------------------------------ @%:@@%:@
@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
@%:@@%:@ ------------------------------------ @%:@@%:@
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
;;
no:yes )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
(
cat <<\_ASBOX
@%:@@%:@ ------------------------------------ @%:@@%:@
@%:@@%:@ Report this to bug-autoconf@gnu.org. @%:@@%:@
@%:@@%:@ ------------------------------------ @%:@@%:@
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
;;
esac
echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
eval "$as_ac_Header=$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
fi
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<_ACEOF
@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6
if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
ac_cv_func_malloc_0_nonnull=no
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#if STDC_HEADERS || HAVE_STDLIB_H
# include <stdlib.h>
#else
char *malloc ();
#endif
int
main ()
{
exit (malloc (0) ? 0 : 1);
;
return 0;
}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_malloc_0_nonnull=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_func_malloc_0_nonnull=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6
if test $ac_cv_func_malloc_0_nonnull = yes; then
cat >>confdefs.h <<\_ACEOF
@%:@define HAVE_MALLOC 1
_ACEOF
else
cat >>confdefs.h <<\_ACEOF
@%:@define HAVE_MALLOC 0
_ACEOF
LIB@&t@OBJS="$LIB@&t@OBJS malloc.$ac_objext"
cat >>confdefs.h <<\_ACEOF
@%:@define malloc rpl_malloc
_ACEOF
fi
for ac_header in stdlib.h unistd.h
do
+84 -84
View File
@@ -15,96 +15,96 @@
'configure.in'
],
{
'AC_HEADER_DIRENT' => 1,
'AC_PROG_CC' => 1,
'AC_TYPE_PID_T' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_FUNC_MBRTOWC' => 1,
'AC_FUNC_LSTAT' => 1,
'AC_HEADER_TIME' => 1,
'AH_OUTPUT' => 1,
'AC_FUNC_GETMNTENT' => 1,
'AC_PROG_CPP' => 1,
'AC_TYPE_MODE_T' => 1,
'm4_pattern_allow' => 1,
'AC_PROG_YACC' => 1,
'AC_FUNC_MKTIME' => 1,
'AC_CHECK_TYPES' => 1,
'AC_PROG_CXX' => 1,
'AC_HEADER_MAJOR' => 1,
'AC_CHECK_FUNCS' => 1,
'AC_CHECK_HEADERS' => 1,
'AC_INIT' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AM_MAINTAINER_MODE' => 1,
'AC_PROG_MAKE_SET' => 1,
'AC_FUNC_CHOWN' => 1,
'AC_FUNC_ERROR_AT_LINE' => 1,
'AC_CONFIG_FILES' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_LIBSOURCE' => 1,
'AC_PROG_RANLIB' => 1,
'AC_FUNC_MMAP' => 1,
'AC_CHECK_MEMBERS' => 1,
'AC_FUNC_STRTOD' => 1,
'AM_PROG_CC_C_O' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_FUNC_VPRINTF' => 1,
'AC_PROG_LEX' => 1,
'AC_FUNC_STAT' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_STRUCT_TM' => 1,
'AC_FUNC_STRCOLL' => 1,
'AC_FUNC_STRNLEN' => 1,
'm4_include' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_TYPE_PID_T' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AC_CHECK_LIB' => 1,
'AC_STRUCT_ST_BLOCKS' => 1,
'AC_PATH_X' => 1,
'AC_FUNC_SELECT_ARGTYPES' => 1,
'AC_FUNC_MEMCMP' => 1,
'include' => 1,
'AC_C_VOLATILE' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_DECL_SYS_SIGLIST' => 1,
'AC_FUNC_SETPGRP' => 1,
'AC_FUNC_OBSTACK' => 1,
'AM_CONDITIONAL' => 1,
'AC_FUNC_REALLOC' => 1,
'AC_FUNC_WAIT3' => 1,
'AC_FUNC_STRFTIME' => 1,
'AC_SUBST' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_FUNC_FSEEKO' => 1,
'AC_HEADER_STAT' => 1,
'AC_C_INLINE' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AC_PROG_INSTALL' => 1,
'm4_pattern_forbid' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_TYPE_SIGNAL' => 1,
'AC_PROG_GCC_TRADITIONAL' => 1,
'AC_PROG_LN_S' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'AC_FUNC_ALLOCA' => 1,
'AC_PROG_AWK' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_FUNC_OBSTACK' => 1,
'AC_PROG_LEX' => 1,
'AC_FUNC_GETMNTENT' => 1,
'AC_FUNC_REALLOC' => 1,
'AC_FUNC_MEMCMP' => 1,
'AC_FUNC_GETPGRP' => 1,
'AC_TYPE_OFF_T' => 1,
'AC_FUNC_UTIME_NULL' => 1,
'AC_TYPE_SIZE_T' => 1,
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AC_FUNC_FORK' => 1,
'AC_TYPE_UID_T' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_HEADER_DIRENT' => 1,
'AC_PROG_AWK' => 1,
'AC_HEADER_SYS_WAIT' => 1,
'AM_CONDITIONAL' => 1,
'AC_FUNC_ALLOCA' => 1,
'AC_FUNC_MMAP' => 1,
'AC_TYPE_MODE_T' => 1,
'AC_TYPE_SIZE_T' => 1,
'AC_C_INLINE' => 1,
'AC_FUNC_GETGROUPS' => 1,
'AC_FUNC_FSEEKO' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'AC_FUNC_STRCOLL' => 1,
'AC_INIT' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AM_MAINTAINER_MODE' => 1,
'AM_PROG_CC_C_O' => 1,
'AC_FUNC_STRFTIME' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AC_TYPE_OFF_T' => 1,
'AC_PROG_LN_S' => 1,
'AC_FUNC_MKTIME' => 1,
'AC_PROG_LIBTOOL' => 1,
'AC_TYPE_UID_T' => 1,
'AC_FUNC_MALLOC' => 1,
'AC_HEADER_MAJOR' => 1,
'AC_FUNC_MBRTOWC' => 1,
'AC_PROG_CPP' => 1,
'AC_FUNC_UTIME_NULL' => 1,
'AC_DECL_SYS_SIGLIST' => 1,
'AC_CHECK_HEADERS' => 1,
'm4_include' => 1,
'AC_HEADER_STAT' => 1,
'AC_FUNC_GETLOADAVG' => 1,
'AC_PROG_GCC_TRADITIONAL' => 1,
'AC_TYPE_SIGNAL' => 1,
'AC_PROG_RANLIB' => 1,
'AC_FUNC_VPRINTF' => 1,
'AC_PROG_YACC' => 1,
'AC_FUNC_STRNLEN' => 1,
'AC_FUNC_FORK' => 1,
'AH_OUTPUT' => 1,
'AC_STRUCT_TIMEZONE' => 1,
'AC_HEADER_TIME' => 1,
'AC_FUNC_STAT' => 1,
'AC_FUNC_SELECT_ARGTYPES' => 1,
'AC_PROG_CC' => 1,
'include' => 1,
'AC_CHECK_MEMBERS' => 1,
'AC_PROG_INSTALL' => 1,
'AC_FUNC_ERROR_AT_LINE' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_FUNC_STRTOD' => 1,
'AC_HEADER_STDC' => 1,
'AC_C_CONST' => 1
'AC_CHECK_FUNCS' => 1,
'AC_LIBSOURCE' => 1,
'AC_REPLACE_FNMATCH' => 1,
'AC_CONFIG_FILES' => 1,
'AC_CHECK_TYPES' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_FUNC_CLOSEDIR_VOID' => 1,
'AC_C_CONST' => 1,
'AC_FUNC_STRERROR_R' => 1,
'AC_FUNC_CHOWN' => 1,
'AC_FUNC_SETPGRP' => 1,
'AC_FUNC_SETVBUF_REVERSED' => 1,
'AC_CHECK_LIB' => 1,
'AC_FUNC_WAIT3' => 1,
'AC_PROG_MAKE_SET' => 1,
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
'AC_FUNC_LSTAT' => 1,
'm4_pattern_allow' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'AC_PROG_CXX' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AC_C_VOLATILE' => 1,
'AC_PATH_X' => 1,
'AC_STRUCT_ST_BLOCKS' => 1,
'AC_SUBST' => 1
}
], 'Request' )
);
-14
View File
@@ -823,20 +823,6 @@ m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you
#undef HAVE_MALLOC_H])
m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */
#undef HAVE_STDIO_EXT_H])
m4trace:configure.in:684: -1- AC_FUNC_MALLOC
m4trace:configure.in:684: -1- AC_CHECK_HEADERS([stdlib.h])
m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H])
m4trace:configure.in:684: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and
to 0 otherwise. */
#undef HAVE_MALLOC])
m4trace:configure.in:684: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
m4trace:configure.in:684: -1- AC_LIBSOURCE([malloc.c])
m4trace:configure.in:684: -1- AC_SUBST([LIB@&t@OBJS])
m4trace:configure.in:684: -1- AC_DEFINE_TRACE_LITERAL([malloc])
m4trace:configure.in:684: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc])
m4trace:configure.in:685: -1- AC_FUNC_MMAP
m4trace:configure.in:685: -1- AC_CHECK_HEADERS([stdlib.h unistd.h])
m4trace:configure.in:685: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+1 -1
View File
@@ -292,7 +292,7 @@ enable_hostname_completion (on_or_off)
/* See if we have anything to do. */
at = strchr (rl_completer_word_break_characters, '@');
if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0))
return;
return old_value;
/* We have something to do. Do it. */
nval = (char *)xmalloc (strlen (rl_completer_word_break_characters) + 1 + on_or_off);
+1
View File
@@ -39,6 +39,7 @@
#include "../flags.h"
#include "../input.h"
#include "../execute_cmd.h"
#include "../trap.h"
#if defined (HISTORY)
# include "../bashhist.h"
+2 -3
View File
@@ -145,9 +145,8 @@ $BUILTIN variables
$DOCNAME variable_help
$SHORT_DOC variables - Some variable names and meanings
BASH_VERSION Version information for this Bash.
CDPATH A colon separated list of directories to search
when the argument to `cd' is not found in the current
directory.
CDPATH A colon-separated list of directories to search
for directries given as arguments to `cd'.
GLOBIGNORE A colon-separated list of patterns describing filenames to
be ignored by pathname expansion.
#if defined (HISTORY)
+1771
View File
File diff suppressed because it is too large Load Diff
+1745
View File
File diff suppressed because it is too large Load Diff
+1745
View File
File diff suppressed because it is too large Load Diff
+8583
View File
File diff suppressed because it is too large Load Diff
+2 -3
View File
@@ -642,7 +642,6 @@ command:
</DL>
<A NAME="lbAK">&nbsp;</A>
<H2>SHELL GRAMMAR</H2>
@@ -5411,7 +5410,7 @@ the version of <B>bash</B> (e.g., 2.00)
<DT><B>\V</B>
<DD>
the release of <B>bash</B>, version + patchelvel (e.g., 2.00.0)
the release of <B>bash</B>, version + patch level (e.g., 2.00.0)
<DT><B>\w</B>
<DD>
@@ -11355,6 +11354,6 @@ Array variables may not (yet) be exported.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 29 June 2004 10:37:49 EDT
Time: 19 July 2004 16:04:22 EDT
</BODY>
</HTML>
BIN
View File
Binary file not shown.
+11 -10
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.18.1
%%CreationDate: Tue Jun 29 10:37:28 2004
%%CreationDate: Mon Jul 19 16:03:47 2004
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -3625,15 +3625,16 @@ F1(\\@)144 156 Q F0(the current time in 12-hour am/pm format)23.92 E F1
144 180 Q F0(the username of the current user)27.66 E F1(\\v)144 192 Q
F0(the v)28.22 E(ersion of)-.15 E F1(bash)2.5 E F0(\(e.g., 2.00\))2.5 E
F1(\\V)144 204 Q F0(the release of)26 E F1(bash)2.5 E F0 2.5(,v)C
(ersion + patchelv)-2.65 E(el \(e.g., 2.00.0\))-.15 E F1(\\w)144 216 Q
F0(the current w)26 E(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F1
($HOME)2.5 E F0(abbre)2.5 E(viated with a tilde)-.25 E F1(\\W)144 228 Q
F0(the basename of the current w)23.22 E(orking directory)-.1 E 2.5(,w)
-.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E(viated with a tilde)-.25
E F1(\\!)144 240 Q F0(the history number of this command)29.89 E F1(\\#)
144 252 Q F0(the command number of this command)28.22 E F1(\\$)144 264 Q
F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E
F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 276 Q/F2 10
(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\))
-2.5 E F1(\\w)144 216 Q F0(the current w)26 E(orking directory)-.1 E 2.5
(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E(viated with a tilde)
-.25 E F1(\\W)144 228 Q F0(the basename of the current w)23.22 E
(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0
(abbre)2.5 E(viated with a tilde)-.25 E F1(\\!)144 240 Q F0
(the history number of this command)29.89 E F1(\\#)144 252 Q F0
(the command number of this command)28.22 E F1(\\$)144 264 Q F0
(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F1
(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 276 Q/F2 10
/Times-Italic@0 SF(nnn)A F0
(the character corresponding to the octal number)18.22 E F2(nnn)2.5 E F1
(\\\\)144 288 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 300 Q F0
BIN
View File
Binary file not shown.
+6 -6
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on June, 29 2004 by texi2html 1.64 -->
<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -33,12 +33,12 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
the Bash shell (version 3.0-rc1, 26 June 2004)..
the Bash shell (version 3.0, 27 July 2004)..
</P><P>
This is Edition 3.0, last updated 26 June 2004,
This is Edition 3.0, last updated 27 July 2004,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 3.0-rc1.
for <CODE>Bash</CODE>, Version 3.0.
</P><P>
Bash contains features that appear in other popular shells, and some
@@ -15013,7 +15013,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>June, 29 2004</I>
This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -15175,7 +15175,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>June, 29 2004</I>
by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+26 -25
View File
@@ -1,6 +1,6 @@
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 29 JUN 2004 10:37
**/usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi (texinfo.tex
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2003.12.31) 27 JUL 2004 09:12
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
\bindingoffset=\dimen16
\normaloffset=\dimen17
@@ -106,7 +106,7 @@ cross references,
\auxfile=\write2
\savesfregister=\count46
\footnoteno=\count47
(/usr/local/share/texmf/tex/plain/dvips/epsf.tex
(/sw/share/texmf/tex/generic/misc/epsf.tex
\epsffilein=\read0
\epsfframemargin=\dimen39
\epsfframethickness=\dimen40
@@ -119,18 +119,18 @@ cross references,
\epsfnoopenhelp=\toks24
)
\noepsfhelp=\toks25
localization,
localization,
\nolanghelp=\toks26
\defaultparindent=\dimen47
and turning on texinfo input format.) (bashref.aux)
and turning on texinfo input format.) (./bashref.aux)
@cpindfile=@write3
@fnindfile=@write4
@vrindfile=@write5
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
(version.texi)
(./version.texi)
@btindfile=@write9
@rwindfile=@write10
[1
@@ -152,11 +152,12 @@ localization,
\openout10 = `bashref.rw'.
] [2] (bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
]
[2] (./bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
\openout0 = `bashref.toc'.
[1] Chapter 2 [2]
[3] Chapter 3 [4] [5] [6] [7] [8] [9] [10]
[1] Chapter 2 [2] [3]
Chapter 3 [4] [5] [6] [7] [8] [9] [10]
Overfull \hbox (43.33539pt too wide) in paragraph at lines 862--862
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
@@ -264,7 +265,7 @@ the file
.etc.
[65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] Chapter 7
[78] [79] [80] [81] (/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi
[78] [79] [80] [81] (/Users/chet/src/bash/src/lib/readline/doc/rluser.texi
Chapter 8 [82] [83] [84] [85] [86] [87]
Underfull \hbox (badness 5231) in paragraph at lines 488--504
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
@@ -316,7 +317,7 @@ Underfull \hbox (badness 2753) in paragraph at lines 1742--1745
.@texttt o
.etc.
[107]) (/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[107]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[108] [109] [110] [111] [112]) Chapter 10 [113] [114] [115] [116] [117]
Underfull \hbox (badness 2772) in paragraph at lines 6610--6614
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
@@ -331,8 +332,8 @@ s/large_
.etc.
[118] [119] [120] Appendix A [121] [122] Appendix B [123] [124] [125] [126]
[127] [128] Appendix C [129] [130] (fdl.texi [131] [132] [133] [134] [135]
[136]) (Index of Shell Builtin Commands) [137] [138] (bashref.bts)
[127] [128] Appendix C [129] [130] (./fdl.texi [131] [132] [133] [134] [135]
[136]) (Index of Shell Builtin Commands) [137] [138] (./bashref.bts)
(Index of Shell Reserved Words)
Overfull \vbox (42.26959pt too high) has occurred while \output is active
\vbox(643.19986+0.0)x433.62, glue set - 1.0
@@ -351,16 +352,16 @@ Overfull \vbox (42.26959pt too high) has occurred while \output is active
.etc.
[139] [140] (bashref.rws) (Parameter and Variable Index) [141] [142]
(bashref.vrs [143]) (Function Index) [144] (bashref.fns [145]) (Concept Index)
[146] (bashref.cps [147]) [148] )
[139] [140] (./bashref.rws) (Parameter and Variable Index) [141] [142]
(./bashref.vrs [143]) (Function Index) [144] (./bashref.fns [145])
(Concept Index) [146] (./bashref.cps [147]) [148] )
Here is how much of TeX's memory you used:
1713 strings out of 13013
23227 string characters out of 97233
52385 words of memory out of 263001
2577 multiletter control sequences out of 10000+0
31953 words of font info for 111 fonts, out of 400000 for 1000
1726 strings out of 98002
23501 string characters out of 1221986
52362 words of memory out of 1000001
2577 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
19 hyphenation exceptions out of 1000
15i,8n,11p,273b,465s stack positions out of 300i,100n,500p,50000b,4000s
15i,8n,11p,269b,465s stack positions out of 1500i,500n,5000p,200000b,5000s
Output written on bashref.dvi (154 pages, 580120 bytes).
Output written on bashref.dvi (154 pages, 580108 bytes).
BIN
View File
Binary file not shown.
+12773 -11041
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -474,12 +474,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may
be specified as a string (to locate the last command beginning
with that string) or as a number (an index into the history
list, where a negative number is used as an offset from the cur-
rent command number). If _l_a_s_t is not specified it is set to the
current command for listing (so that ``fc -l -10'' prints the
last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec-
ified it is set to the previous command for editing and -16 for
listing.
list, where a negative number is used as an offset from the
current command number). If _l_a_s_t is not specified it is set to
the current command for listing (so that ``fc -l -10'' prints
the last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not
specified it is set to the previous command for editing and -16
for listing.
The --nn option suppresses the command numbers when listing. The
--rr option reverses the order of the commands. If the --ll option
@@ -1043,8 +1043,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
formed.
cchheecckkwwiinnssiizzee
If set, bbaasshh checks the window size after each command
and, if necessary, updates the values of LLIINNEESS and CCOOLL--
UUMMNNSS.
and, if necessary, updates the values of LLIINNEESS and
CCOOLLUUMMNNSS.
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
easy re-editing of multi-line commands.
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.18.1
%%CreationDate: Tue Jun 29 10:37:28 2004
%%CreationDate: Mon Jul 19 16:04:16 2004
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
+44
View File
@@ -0,0 +1,44 @@
#! /bin/sh
#
# mkinstall - make the INSTALL file from the `Installing Bash' node of the
# texinfo manual
#
NODE="Installing Bash"
SUBNODE="Basic Installation"
TEXI=bashref.texi
TMPINFO=temp.info
TMPOUT=INSTALL.tmp
OUT=${1:-INSTALL}
trap 'rm -f $TMPOUT $TMPINFO $OUT; trap '' 0; exit 1' 1 2 3 6 15
#trap 'rm -f $TMPOUT $TMPINFO' 0
# create an info file without paragraph indentation
makeinfo --no-split -I../lib/readline/doc --paragraph-indent 0 -o $TMPINFO $TEXI
# write out the text from the `Installing Bash' node to INSTALL.tmp
info --file $TMPINFO --node "$NODE" --subnodes --output $TMPOUT
exit 0
# remove the info traversal information and the initial menu, and squeeze
# out multiple consecutive blank lines like `cat -s'
awk 'BEGIN { printline = 0; newlines = 0; }
/^File: '$TMPINFO'/ { next; }
/^'"$SUBNODE"'/ { printline = 1; }
/^$/ { if (printline) newlines = 1; next; }
/$/ { if (printline) {
if (newlines) {
printf "\n";
newlines = 0;
}
print $0;
}
}' < $TMPOUT > $OUT
exit 0
+2 -2
View File
@@ -30,8 +30,8 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
startup
+o redirecting output using the >, >|, <>, >&, &>, and >> redirect-
ion operators
+o redirecting output using the >, >|, <>, >&, &>, and >> redirec-
tion operators
+o using the eexxeecc builtin command to replace the shell with another
command
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.18.1
%%CreationDate: Tue Jun 29 10:37:29 2004
%%CreationDate: Mon Jul 19 16:04:16 2004
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.18 1
-6688
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
texinfo.tex.20030205
+549
View File
@@ -0,0 +1,549 @@
#!/bin/bash
# ash -- "Adventure shell"
# last edit: 86/04/21 D A Gwyn
# SCCS ID: @(#)ash.sh 1.4
OPATH=$PATH
ask()
{
echo -n "$@" '[y/n] '
read ans
case "$ans" in
y*|Y*)
return 0
;;
*)
return 1
;;
esac
}
CAT=${PAGER:-more}
ash_inst()
{
cat <<- EOF
Instructions for the Adventure shell
Welcome to the Adventure shell! In this exploration of the UNIX file
system, I will act as your eyes and hands. As you move around, I will
describe whatever is visible and will carry out your commands. The
general form of a command is
Verb Object Extra_stuff.
Most commands pay no attention to the "Extra_stuff", and many do not
need an "Object". A typical command is
get all
which picks up all files in the current "room" (directory). You can
find out what you are carrying by typing the command
inventory
The command "help" results in a full description of all commands that I
understand. To quit the Adventure shell, type
quit
There are UNIX monsters lurking in the background. These are also
known as "commands with arguments".
Good luck!
EOF
}
ash_help()
{
echo "I understand the following commands (synonyms in parentheses):"
echo ""
echo "change OBJECT to NEW_NAME changes the name of the object"
echo "clone OBJECT as NEW_NAME duplicates the object"
echo "drop OBJECTS leaves the objects in the room"
echo "enter (go) PASSAGE takes the labeled passage"
echo "examine OBJECTS describes the objects in detail"
echo "feed OBJECT to MONSTER stuffs the object into a UNIX monster"
echo "get (take) OBJECTS picks up the specified objects"
echo "gripe (bug) report a problem with the Adventure shell"
echo "help prints this summary"
echo "inventory (i) tells what you are carrying"
echo "kill (destroy) OBJECTS destroys the objects"
echo "look (l) describes the room, including hidden objects"
echo "open (read) OBJECT shows the contents of an object"
echo "quit (exit) leaves the Adventure shell"
echo "resurrect OBJECTS attempts to restore dead objects"
echo "steal OBJECT from MONSTER obtains the object from a UNIX monster"
echo "throw OBJECT at daemon feeds the object to the printer daemon"
echo "up takes the overhead passage"
echo "wake MONSTER awakens a UNIX monster"
echo "where (w) tells you where you are"
echo "xyzzy moves you to your home"
}
MAINT=chet@ins.cwru.edu
PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin:.
export PATH
trap 'echo Ouch!' 2 3
#trap '' 18 # disable Berkeley job control
ash_lk(){ echo " $1 " | fgrep " $2 " >&- 2>&-; }
ash_pr(){ echo $* | tr ' ' '\012' | pr -5 -t -w75 -l$[ ( $# + 4 ) / 5 ]; }
ash_rm(){ echo " $1 " | sed -e "s/ $2 / /" -e 's/^ //' -e 's/ $//'; }
# enable history, bang history expansion, and emacs editing
set -o history
set -o histexpand
set -o emacs
cd
LIM=.limbo # $HOME/$LIM contains "destroyed" objects
mkdir $LIM >&- 2>&-
KNAP=.knapsack # $HOME/$KNAP contains objects being "carried"
if [ ! -d $KNAP ]
then mkdir $KNAP >&- 2>&-
if [ $? = 0 ]
then echo 'You found a discarded empty knapsack.'
else echo 'You have no knapsack to carry things in.'
exit 1
fi
else echo 'One moment while I peek in your old knapsack...'
fi
kn=`echo \`ls -a $KNAP | sed -e '/^\.$/d' -e '/^\.\.$/d'\``
if ask 'Welcome to the Adventure shell! Do you need instructions?'
then
ash_inst
echo -n 'Type a newline to continue: '
read
fi
wiz=false
cha=false
prev=$LIM
while :
do room=`pwd`
if [ $room != $prev ]
then if [ $room = $HOME ]
then echo 'You are in your own home.'
else echo "You have entered $room."
fi
exs=
obs=
hexs=
hobs=
f=false
for i in `ls -a`
do case $i in
.|..) ;;
.*) if [ -f $i ]
then hobs="$hobs $i"
elif [ -d $i ]
then hexs="$hexs $i"
else f=true
fi
;;
*) if [ -f $i ]
then obs="$obs $i"
elif [ -d $i ]
then exs="$exs $i"
else f=true
fi
;;
esac
done
if [ "$obs" ]
then echo 'This room contains:'
ash_pr $obs
else echo 'The room looks empty.'
fi
if [ "$exs" ]
then echo 'There are exits labeled:'
ash_pr $exs
echo 'as well as a passage overhead.'
else echo 'There is a passage overhead.'
fi
if sh -c $f
then echo 'There are shadowy figures in the corner.'
fi
prev=$room
fi
read -e -p '-advsh> ' verb obj x # prompt is '-advsh> '
if [ $? != 0 ]
then verb=quit # EOF
fi
case $verb in
change) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then set -- $x
case "$1" in
to) if [ "$2" ]
then if [ -f $2 ]
then echo "You must destroy $2 first."
set --
fi
if [ "$2" ]
then if mv $obj $2 >&- 2>&-
then echo "The $obj shimmers and turns into $2."
obs=`ash_rm "$2 $obs" "$obj"`
else echo "There is a cloud of smoke but the $obj is unchanged."
fi
fi
else echo 'To what?'
fi
;;
*) echo "Change $obj to what?"
;;
esac
else if ash_lk "$kn" "$obj"
then echo 'You must drop it first.'
else echo "I see no $obj here."
fi
fi
else echo 'Change what?'
fi
;;
clone) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then if [ ! -r $obj ]
then echo "The $obj does not wish to be cloned."
else set -- $x
case "$1" in
as) if [ "$2" ]
then if [ -f $2 ]
then echo "You must destroy $2 first."
else if cp $obj $2 >&- 2>&-
then echo "Poof! When the smoke clears, you see the new $2."
obs="$obs $2"
else echo 'You hear a dull thud but no clone appears.'
fi
fi
else echo 'As what?'
fi
;;
*) echo "Clone $obj as what?"
;;
esac
fi
else if ash_lk "$kn" "$obj"
then echo 'You must drop it first.'
else echo "I see no $obj here."
fi
fi
else echo 'Clone what?'
fi
;;
drop) if [ "$obj" ]
then for it in $obj $x
do if ash_lk "$kn" "$it"
then if [ -w $it ]
then echo "You must destroy $it first."
else if mv $HOME/$KNAP/$it $it >&- 2>&-
then echo "$it: dropped."
kn=`ash_rm "$kn" "$it"`
obs=`echo $it $obs`
else echo "The $it is caught in your knapsack."
fi
fi
else echo "You're not carrying the $it!"
fi
done
else echo 'Drop what?'
fi
;;
enter|go) if [ "$obj" ]
then if [ $obj != up ]
then if ash_lk "$exs $hexs" "$obj"
then if [ -x $obj ]
then if cd $obj
then echo 'You squeeze through the passage.'
else echo "You can't go that direction."
fi
else echo 'An invisible force blocks your way.'
fi
else echo 'I see no such passage.'
fi
else if cd ..
then echo 'You struggle upwards.'
else echo "You can't reach that high."
fi
fi
else echo 'Which passage?'
fi
;;
examine) if [ "$obj" ]
then if [ $obj = all ]
then $obj=`echo $obs $exs`
x=
fi
for it in $obj $x
do if ash_lk "$obs $hobs $exs $hexs" "$it"
then echo "Upon close inspection of the $it, you see:"
ls -ld $it 2>&-
if [ $? != 0 ]
then echo "-- when you look directly at the $it, it vanishes."
fi
else if ash_lk "$kn" "$it"
then echo 'You must drop it first.'
else echo "I see no $it here."
fi
fi
done
else echo 'Examine what?'
fi
;;
feed) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then set -- $x
case "$1" in
to) if [ "$2" ]
then shift
if PATH=$OPATH $* <$obj 2>&-
then echo "The $1 monster devours your $obj."
if rm -f $obj >&- 2>&-
then obs=`ash_rm "$obs" "$obj"`
else echo 'But he spits it back up.'
fi
else echo "The $1 monster holds his nose in disdain."
fi
else echo 'To what?'
fi
;;
*) echo "Feed $obj to what?"
;;
esac
else if ash_lk "$kn" "$obj"
then echo 'You must drop it first.'
else echo "I see no $obj here."
fi
fi
else echo 'Feed what?'
fi
;;
get|take) if [ "$obj" ]
then if [ $obj = all ]
then obj="$obs"
x=
fi
for it in $obj $x
do if ash_lk "$obs $hobs" "$it"
then if ash_lk "$kn" "$it"
then echo 'You already have one.'
else if mv $it $HOME/$KNAP/$it >&- 2>&-
then echo "$it: taken."
kn="$it $kn"
obs=`ash_rm "$obs" "$it"`
else echo "The $it is too heavy."
fi
fi
else echo "I see no $it here."
fi
done
else echo 'Get what?'
fi
;;
gripe|bug) echo 'Please describe the problem and your situation at the time it failed.\nEnd the bug report with a line containing just a Ctrl-D.'
cat | mail $MAINT -s 'ash bug'
echo 'Thank you!'
;;
help) ash_help
;;
inventory|i) if [ "$kn" ]
then echo 'Your knapsack contains:'
ash_pr $kn
else echo 'You are poverty-stricken.'
fi
;;
kill|destroy) if [ "$obj" ]
then if [ $obj = all ]
then x=
if ask "Do you really want to attempt to $verb them all?"
then obj=`echo $obs`
else echo 'Chicken!'
obj=
fi
fi
for it in $obj $x
do if ash_lk "$obs $hobs" "$it"
then if mv $it $HOME/$LIM <&- >&- 2>&-
then if [ $verb = kill ]
then echo "The $it cannot defend himself; he dies."
else echo "You have destroyed the $it; it vanishes."
fi
obs=`ash_rm "$obs" "$it"`
else if [ $verb = kill ]
then echo "Your feeble blows are no match for the $it."
else echo "The $it is indestructible."
fi
fi
else if ash_lk "$kn" "$it"
then echo "You must drop the $it first."
found=false
else echo "I see no $it here."
fi
fi
done
else echo 'Kill what?'
fi
;;
look|l) obs=`echo $obs $hobs`
hobs=
if [ "$obs" ]
then echo 'The room contains:'
ash_pr $obs
else echo 'The room is empty.'
fi
exs=`echo $exs $hexs`
hexs=
if [ "$exs" ]
then echo 'There are exits plainly labeled:'
ash_pr $exs
echo 'and a passage directly overhead.'
else echo 'The only exit is directly overhead.'
fi
;;
magic) if [ "$obj" = mode ]
then if sh -c $cha
then echo 'You had your chance and you blew it.'
else if ask 'Are you a wizard?'
then echo -n 'Prove it! Say the magic word: '
read obj
if [ "$obj" = armadillo ]
then echo 'Yes, master!!'
wiz=true
else echo "Homie says: I don't think so"
cha=true
fi
else echo "I didn't think so."
fi
fi
else echo 'Nice try.'
fi
;;
open|read) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then if [ -r $obj ]
then if [ -s $obj ]
then echo "Opening the $obj reveals:"
$CAT < $obj
if [ $? != 0 ]
then echo '-- oops, you lost the contents!'
fi
else echo "There is nothing inside the $obj."
fi
else echo "You do not have the proper tools to open the $obj."
fi
else if ash_lk "$kn" "$obj"
then echo 'You must drop it first.'
found=false
else echo "I see no $obj here."
fi
fi
else echo 'Open what?'
fi
;;
quit|exit) if ask 'Do you really want to quit now?'
then if [ "$kn" ]
then echo 'The contents of your knapsack will still be there next time.'
fi
rm -rf $HOME/$LIM
echo 'See you later!'
exit 0
fi
;;
resurrect) if [ "$obj" ]
then for it in $obj $x
do if ash_lk "$obs $hobs" "$it"
then echo "The $it is already alive and well."
else if mv $HOME/$LIM/$it $it <&- >&- 2>&-
then echo "The $it staggers to his feet."
obs=`echo $it $obs`
else echo "There are sparks but no $it appears."
fi
fi
done
else echo 'Resurrect what?'
fi
;;
steal) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then echo 'There is already one here.'
else set -- $x
case "$1" in
from) if [ "$2" ]
then shift
if PATH=$OPATH $* >$obj 2>&-
then echo "The $1 monster drops the $obj."
obs=`echo $obj $obs`
else echo "The $1 monster runs away as you approach."
rm -f $obj >&- 2>&-
fi
else echo 'From what?'
fi
;;
*) echo "Steal $obj from what?"
;;
esac
fi
else echo 'Steal what?'
fi
;;
throw) if [ "$obj" ]
then if ash_lk "$obs $hobs" "$obj"
then set -- $x
case "$1" in
at) case "$2" in
daemon) if sh -c "lpr -r $obj"
then echo "The daemon catches the $obj, turns it into paper,\nand leaves it in the basket."
obs=`ash_rm "$obs" "$obj"`
else echo "The daemon is nowhere to be found."
fi
;;
*) echo 'At what?'
;;
esac
;;
*) echo "Throw $obj at what?"
;;
esac
else if ash_lk "$kn" "$obj"
then echo 'It is in your knapsack.'
found=false
else echo "I see no $obj here."
fi
fi
else echo 'Throw what?'
fi
;;
u|up) if cd ..
then echo 'You pull yourself up a level.'
else echo "You can't reach that high."
fi
;;
wake) if [ "$obj" ]
then echo "You awaken the $obj monster:"
PATH=$OPATH $obj $x
echo 'The monster slithers back into the darkness.'
else echo 'Wake what?'
fi
;;
w|where) echo "You are in $room."
;;
xyzzy) if cd
then echo 'A strange feeling comes over you.'
else echo 'Your spell fizzles out.'
fi
;;
*) if [ "$verb" ]
then if sh -c $wiz
then PATH=$OPATH $verb $obj $x
else echo "I don't know how to \"$verb\"."
echo 'Type "help" for assistance.'
fi
else echo 'Say something!'
fi
;;
esac
done
+3
View File
@@ -362,6 +362,9 @@ extern int sh_mktmpfd __P((char *, int, char **));
#undef xstrchr
extern char *xstrchr __P((const char *, int));
/* declarations for functions defined in lib/sh/zcatfd.c */
extern int zcatfd __P((int, int, char *));
/* declarations for functions defined in lib/sh/zread.c */
extern ssize_t zread __P((int, char *, size_t));
extern ssize_t zreadintr __P((int, char *, size_t));
+2
View File
@@ -39,6 +39,8 @@
#include "bashintl.h"
#include "shell.h"
#include "test.h"
#include <tilde/tilde.h>
#if !defined (errno)
+58
View File
@@ -0,0 +1,58 @@
/* memalloc.h -- consolidate code for including alloca.h or malloc.h and
defining alloca. */
/* Copyright (C) 1993 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option) any later
version.
Bash 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 Bash; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#if !defined (_MEMALLOC_H_)
# define _MEMALLOC_H_
#if defined (sparc) && defined (sun) && !defined (HAVE_ALLOCA_H)
# define HAVE_ALLOCA_H
#endif
#if defined (__GNUC__) && !defined (HAVE_ALLOCA)
# define HAVE_ALLOCA
#endif
#if defined (HAVE_ALLOCA_H) && !defined (HAVE_ALLOCA)
# define HAVE_ALLOCA
#endif /* HAVE_ALLOCA_H && !HAVE_ALLOCA */
#if defined (__GNUC__) && !defined (C_ALLOCA)
# undef alloca
# define alloca __builtin_alloca
#else /* !__GNUC__ || C_ALLOCA */
# if defined (HAVE_ALLOCA_H) && !defined (C_ALLOCA)
# if defined (IBMESA)
# include <malloc.h>
# else /* !IBMESA */
# include <alloca.h>
# endif /* !IBMESA */
# else /* !HAVE_ALLOCA_H || C_ALLOCA */
# if defined (__hpux) && defined (__STDC__) && !defined (alloca)
extern void *alloca ();
# else
# if !defined (alloca)
extern char *alloca ();
# endif /* !alloca */
# endif /* !__hpux || !__STDC__ && !alloca */
# endif /* !HAVE_ALLOCA_H || C_ALLOCA */
#endif /* !__GNUC__ || C_ALLOCA */
#endif /* _MEMALLOC_H_ */
File diff suppressed because it is too large Load Diff
-54
View File
@@ -1,54 +0,0 @@
/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */
/* A minimal stdlib.h containing extern declarations for those functions
that bash uses. */
/* Copyright (C) 1993 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option) any later
version.
Bash 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 Bash; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#if !defined (_STDLIB_H_)
#define _STDLIB_H_ 1
/* String conversion functions. */
extern int atoi ();
extern double atof ();
extern double strtod ();
/* Memory allocation functions. */
/* Generic pointer type. */
#ifndef PTR_T
#if defined (__STDC__)
# define PTR_T void *
#else
# define PTR_T char *
#endif
#endif /* PTR_T */
extern PTR_T malloc ();
extern PTR_T realloc ();
extern void free ();
/* Other miscellaneous functions. */
extern void abort ();
extern void exit ();
extern char *getenv ();
extern void qsort ();
#endif /* _STDLIB_H */
+1
View File
@@ -0,0 +1 @@
../../include/ansi_stdlib.h
+2 -2
View File
@@ -351,14 +351,14 @@ rl_expand_prompt (prompt)
local_prompt = expand_prompt (p, &prompt_visible_length,
&prompt_last_invisible,
(int *)NULL,
(int *)NULL);
&prompt_physical_chars);
c = *t; *t = '\0';
/* The portion of the prompt string up to and including the
final newline is now null-terminated. */
local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
(int *)NULL,
&prompt_invis_chars_first_line,
&prompt_physical_chars);
(int *)NULL);
*t = c;
return (prompt_prefix_length);
}
File diff suppressed because it is too large Load Diff
-452
View File
@@ -1,452 +0,0 @@
@node GNU Free Documentation License
@appendixsec GNU Free Documentation License
@cindex FDL, GNU Free Documentation License
@center Version 1.2, November 2002
@display
Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@end display
@enumerate 0
@item
PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document @dfn{free} in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of ``copyleft'', which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
@item
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The ``Document'', below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as ``you''. You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A ``Modified Version'' of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A ``Secondary Section'' is a named appendix or a front-matter section
of the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The ``Invariant Sections'' are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The ``Cover Texts'' are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A ``Transparent'' copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not ``Transparent'' is called ``Opaque''.
Examples of suitable formats for Transparent copies include plain
@sc{ascii} without markup, Texinfo input format, La@TeX{} input
format, @acronym{SGML} or @acronym{XML} using a publicly available
@acronym{DTD}, and standard-conforming simple @acronym{HTML},
PostScript or @acronym{PDF} designed for human modification. Examples
of transparent image formats include @acronym{PNG}, @acronym{XCF} and
@acronym{JPG}. Opaque formats include proprietary formats that can be
read and edited only by proprietary word processors, @acronym{SGML} or
@acronym{XML} for which the @acronym{DTD} and/or processing tools are
not generally available, and the machine-generated @acronym{HTML},
PostScript or @acronym{PDF} produced by some word processors for
output purposes only.
The ``Title Page'' means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, ``Title Page'' means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
A section ``Entitled XYZ'' means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as ``Acknowledgements'',
``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
of such a section when you modify the Document means that it remains a
section ``Entitled XYZ'' according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
@item
VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
@item
COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
@item
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
@enumerate A
@item
Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
@item
List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
@item
State on the Title page the name of the publisher of the
Modified Version, as the publisher.
@item
Preserve all the copyright notices of the Document.
@item
Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
@item
Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
@item
Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
@item
Include an unaltered copy of this License.
@item
Preserve the section Entitled ``History'', Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled ``History'' in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
@item
Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the ``History'' section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
@item
For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
the Title of the section, and preserve in the section all the
substance and tone of each of the contributor acknowledgements and/or
dedications given therein.
@item
Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
@item
Delete any section Entitled ``Endorsements''. Such a section
may not be included in the Modified Version.
@item
Do not retitle any existing section to be Entitled ``Endorsements'' or
to conflict in title with any Invariant Section.
@item
Preserve any Warranty Disclaimers.
@end enumerate
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled ``Endorsements'', provided it contains
nothing but endorsements of your Modified Version by various
parties---for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
@item
COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled ``History''
in the various original documents, forming one section Entitled
``History''; likewise combine any sections Entitled ``Acknowledgements'',
and any sections Entitled ``Dedications''. You must delete all
sections Entitled ``Endorsements.''
@item
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
@item
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an ``aggregate'' if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
@item
TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled ``Acknowledgements'',
``Dedications'', or ``History'', the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
@item
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such
parties remain in full compliance.
@item
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
@uref{http://www.gnu.org/copyleft/}.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License ``or any later version'' applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
@end enumerate
@page
@appendixsubsec ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
@smallexample
@group
Copyright (C) @var{year} @var{your name}.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
@end group
@end smallexample
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the ``with...Texts.'' line with this:
@smallexample
@group
with the Invariant Sections being @var{list their titles}, with
the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
being @var{list}.
@end group
@end smallexample
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
+1
View File
@@ -0,0 +1 @@
../../../doc/fdl.texi
Binary file not shown.
+3 -3
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on September, 22 2003 by texi2html 1.64 -->
<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -2100,7 +2100,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>September, 22 2003</I>
This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2262,7 +2262,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>September, 22 2003</I>
by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+26 -26
View File
@@ -1,11 +1,11 @@
This is history.info, produced by makeinfo version 4.5 from
./history.texi.
This document describes the GNU History library (version 5.0, 19
September 2003), a programming tool that provides a consistent user
This document describes the GNU History library (version 5.0, 28
January 2004), a programming tool that provides a consistent user
interface for recalling lines of previously typed input.
Copyright (C) 1988-2003 Free Software Foundation, Inc.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -1290,28 +1290,28 @@ Function and Variable Index

Tag Table:
Node: Top1282
Node: Using History Interactively1910
Node: History Interaction2417
Node: Event Designators3836
Node: Word Designators4760
Node: Modifiers6390
Node: Programming with GNU History7608
Node: Introduction to History8339
Node: History Storage10024
Node: History Functions11159
Node: Initializing History and State Management12143
Node: History List Management12943
Node: Information About the History List14957
Node: Moving Around the History List16439
Node: Searching the History List17428
Node: Managing the History File19346
Node: History Expansion21152
Node: History Variables23047
Node: History Programming Example25836
Node: Copying This Manual28558
Node: GNU Free Documentation License28796
Node: Concept Index51189
Node: Function and Variable Index51739
Node: Top1280
Node: Using History Interactively1908
Node: History Interaction2415
Node: Event Designators3834
Node: Word Designators4758
Node: Modifiers6388
Node: Programming with GNU History7606
Node: Introduction to History8337
Node: History Storage10022
Node: History Functions11157
Node: Initializing History and State Management12141
Node: History List Management12941
Node: Information About the History List14955
Node: Moving Around the History List16437
Node: Searching the History List17426
Node: Managing the History File19344
Node: History Expansion21150
Node: History Variables23045
Node: History Programming Example25834
Node: Copying This Manual28556
Node: GNU Free Documentation License28794
Node: Concept Index51187
Node: Function and Variable Index51737

End Tag Table
+15 -15
View File
@@ -1,9 +1,9 @@
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 22 SEP 2003 09:04
**/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/history.
texi
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 27 JUL 2004 09:31
**/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/his
tory.texi
(/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/history.t
exi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
(/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/hist
ory.texi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
\bindingoffset=\dimen16
\normaloffset=\dimen17
\pagewidth=\dimen18
@@ -34,13 +34,13 @@ exi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
\toksD=\toks18
\boxA=\box19
\countA=\count30
fonts,
fonts,
\sffam=\fam8
\textleading=\dimen26
\mainmagstep=\count31
\fontdepth=\count32
page headings,
page headings,
\titlepagetopglue=\skip20
\titlepagebottomglue=\skip21
\evenheadline=\toks19
@@ -81,7 +81,8 @@ page headings,
\lastnegativepageno=\count43
\shortappendixwidth=\dimen33
\tocindent=\dimen34
environments,
environments,
\errorbox=\box22
\lispnarrowing=\skip30
\envskipamount=\skip31
@@ -94,8 +95,7 @@ page headings,
\lskip=\skip35
\rskip=\skip36
\tabw=\dimen38
defuns,
defuns,
\defbodyindent=\skip37
\defargsindent=\skip38
\deflastargmargin=\skip39
@@ -162,11 +162,11 @@ and turning on texinfo input format.) (history.aux)
[22] (history.vrs) [23] [24] )
Here is how much of TeX's memory you used:
1399 strings out of 13013
16305 string characters out of 97233
45527 words of memory out of 263001
16315 string characters out of 97233
45523 words of memory out of 263001
2271 multiletter control sequences out of 10000+0
31953 words of font info for 111 fonts, out of 400000 for 1000
19 hyphenation exceptions out of 1000
15i,6n,17p,306b,649s stack positions out of 300i,100n,500p,50000b,4000s
15i,6n,17p,311b,649s stack positions out of 300i,100n,500p,50000b,4000s
Output written on history.dvi (28 pages, 79868 bytes).
Output written on history.dvi (28 pages, 79856 bytes).
+31 -30
View File
@@ -8,7 +8,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
%DVIPSParameters: dpi=300, compressed
%DVIPSSource: TeX output 2003.09.22:0904
%DVIPSSource: TeX output 2004.07.27:0931
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -977,40 +977,41 @@ TeXDict begin
%%Page: 1 1
1 0 bop 75 659 a Fs(GNU)33 b(History)f(Library)p 75 709
1800 17 v 960 757 a Fr(Edition)16 b(5.0,)e(for)h Fq(History)f(Library)g
Fr(V)l(ersion)i(5.0.)1559 811 y(Septem)o(b)q(er)g(2003)75
Fr(V)l(ersion)i(5.0.)1609 811 y(Jan)o(uary)f(2004)75
2467 y Fp(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
b(Reserv)n(e)f(Univ)n(ersit)n(y)75 2534 y(Brian)h(F)-6
b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p
75 2570 1800 9 v eop
%%Page: 2 2
2 1 bop 75 1512 a Fr(This)22 b(do)q(cumen)o(t)h(describ)q(es)g(the)f
(GNU)g(History)f(library)i(\(v)o(ersion)f(5.0,)g(19)f(Septem)o(b)q(er)i
(2003\),)e(a)75 1567 y(programming)15 b(to)q(ol)h(that)g(pro)o(vides)g
(a)g(consisten)o(t)g(user)g(in)o(terface)g(for)g(recalling)h(lines)h
(of)e(previously)75 1621 y(t)o(yp)q(ed)g(input.)75 1689
y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fo(\015)e Fr(1988-2003)f(F)l
(ree)i(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)75 1756
y(P)o(ermission)i(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g(distribute)i
(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o(vided)h(the)75
1811 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q(ermission)g(notice)g
(are)f(preserv)o(ed)h(on)f(all)h(copies.)195 1878 y(P)o(ermission)i(is)
g(gran)o(ted)f(to)g(cop)o(y)l(,)h(distribute)h(and/or)e(mo)q(dify)h
(this)g(do)q(cumen)o(t)g(under)195 1933 y(the)h(terms)f(of)h(the)g(GNU)
g(F)l(ree)g(Do)q(cumen)o(tation)g(License,)i(V)l(ersion)f(1.1)e(or)g
(an)o(y)h(later)195 1988 y(v)o(ersion)14 b(published)i(b)o(y)e(the)g(F)
l(ree)f(Soft)o(w)o(are)g(F)l(oundation;)h(with)g(no)f(In)o(v)m(arian)o
(t)i(Sections,)195 2042 y(with)h(the)f(F)l(ron)o(t-Co)o(v)o(er)e(texts)
i(b)q(eing)i(\\A)e(GNU)g(Man)o(ual,")g(and)g(with)h(the)f(Bac)o(k-Co)o
(v)o(er)195 2097 y(T)l(exts)h(as)g(in)h(\(a\))e(b)q(elo)o(w.)24
b(A)16 b(cop)o(y)g(of)g(the)g(license)i(is)f(included)i(in)e(the)f
(section)h(en)o(titled)195 2152 y(\\GNU)e(F)l(ree)g(Do)q(cumen)o
(tation)g(License.")195 2219 y(\(a\))j(The)h(FSF's)f(Bac)o(k-Co)o(v)o
(er)g(T)l(ext)h(is:)28 b(\\Y)l(ou)19 b(ha)o(v)o(e)g(freedom)g(to)f(cop)
o(y)h(and)g(mo)q(dify)195 2274 y(this)e(GNU)f(Man)o(ual,)g(lik)o(e)h
(GNU)f(soft)o(w)o(are.)22 b(Copies)17 b(published)h(b)o(y)f(the)f(F)l
(ree)g(Soft)o(w)o(are)195 2329 y(F)l(oundation)g(raise)f(funds)h(for)e
(GNU)h(dev)o(elopmen)o(t.")75 2451 y(Published)i(b)o(y)f(the)f(F)l(ree)
g(Soft)o(w)o(are)f(F)l(oundation)75 2506 y(59)h(T)l(emple)h(Place,)f
2 1 bop 75 1512 a Fr(This)19 b(do)q(cumen)o(t)f(describ)q(es)h(the)f
(GNU)g(History)g(library)h(\(v)o(ersion)e(5.0,)h(28)f(Jan)o(uary)h
(2004\),)e(a)i(pro-)75 1567 y(gramming)11 b(to)q(ol)g(that)f(pro)o
(vides)i(a)f(consisten)o(t)g(user)h(in)o(terface)f(for)g(recalling)i
(lines)f(of)f(previously)i(t)o(yp)q(ed)75 1621 y(input.)75
1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fo(\015)h
Fr(1988-2004)f(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)75
1756 y(P)o(ermission)i(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g
(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o
(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q
(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)195
1878 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)l(,)h(distribute)
h(and/or)e(mo)q(dify)h(this)g(do)q(cumen)o(t)g(under)195
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)g
(License,)i(V)l(ersion)f(1.1)e(or)g(an)o(y)h(later)195
1988 y(v)o(ersion)14 b(published)i(b)o(y)e(the)g(F)l(ree)f(Soft)o(w)o
(are)g(F)l(oundation;)h(with)g(no)f(In)o(v)m(arian)o(t)i(Sections,)195
2042 y(with)h(the)f(F)l(ron)o(t-Co)o(v)o(er)e(texts)i(b)q(eing)i(\\A)e
(GNU)g(Man)o(ual,")g(and)g(with)h(the)f(Bac)o(k-Co)o(v)o(er)195
2097 y(T)l(exts)h(as)g(in)h(\(a\))e(b)q(elo)o(w.)24 b(A)16
b(cop)o(y)g(of)g(the)g(license)i(is)f(included)i(in)e(the)f(section)h
(en)o(titled)195 2152 y(\\GNU)e(F)l(ree)g(Do)q(cumen)o(tation)g
(License.")195 2219 y(\(a\))j(The)h(FSF's)f(Bac)o(k-Co)o(v)o(er)g(T)l
(ext)h(is:)28 b(\\Y)l(ou)19 b(ha)o(v)o(e)g(freedom)g(to)f(cop)o(y)h
(and)g(mo)q(dify)195 2274 y(this)e(GNU)f(Man)o(ual,)g(lik)o(e)h(GNU)f
(soft)o(w)o(are.)22 b(Copies)17 b(published)h(b)o(y)f(the)f(F)l(ree)g
(Soft)o(w)o(are)195 2329 y(F)l(oundation)g(raise)f(funds)h(for)e(GNU)h
(dev)o(elopmen)o(t.")75 2451 y(Published)i(b)o(y)f(the)f(F)l(ree)g
(Soft)o(w)o(are)f(F)l(oundation)75 2506 y(59)h(T)l(emple)h(Place,)f
(Suite)i(330,)75 2560 y(Boston,)d(MA)h(02111-1307)75
2615 y(USA)p eop
%%Page: -1 3
Binary file not shown.
File diff suppressed because it is too large Load Diff
+106 -64
View File
@@ -1,12 +1,11 @@
This is readline.info, produced by makeinfo version 4.5 from
./rlman.texi.
This manual describes the GNU Readline Library (version 5.0, 19
September 2003), a library which aids in the consistency of user
interface across discrete programs which provide a command line
interface.
This manual describes the GNU Readline Library (version 5.0, 28 January
2004), a library which aids in the consistency of user interface across
discrete programs which provide a command line interface.
Copyright (C) 1988-2003 Free Software Foundation, Inc.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -1040,6 +1039,11 @@ Killing And Yanking
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
`unix-filename-rubout ()'
Kill the word behind point, using white space and the slash
character as the word boundaries. The killed text is saved on the
kill-ring.
`delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
@@ -1261,7 +1265,7 @@ the standard `vi' movement keys, move to previous history lines with
aiding in the consitency of user interface across discrete programs
that need to provide a command line interface.
Copyright (C) 1988-2002 Free Software Foundation, Inc.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice pare
@@ -2141,7 +2145,12 @@ Redisplay
primary prompt if the `rl_on_new_line_with_prompt()' function or
`rl_already_prompted' variable is used. It returns the number of
visible characters on the last line of the (possibly multi-line)
prompt.
prompt. Applications may indicate that the prompt contains
characters that take up no physical screen space when displayed by
bracketing a sequence of such characters with the special markers
`RL_PROMPT_START_IGNORE' and `RL_PROMPT_END_IGNORE' (declared in
`readline.h'. This may be used to embed terminal-specific escape
sequences in prompts.
- Function: int rl_set_prompt (const char *prompt)
Make Readline use PROMPT for subsequent redisplay. This calls
@@ -2836,6 +2845,15 @@ Completion Variables
`rl_complete_internal()'. The default list is the value of
`rl_basic_word_break_characters'.
- Variable: rl_cpvfunc_t * rl_completion_word_break_hook
If non-zero, this is the address of a function to call when
Readline is deciding where to separate words for word completion.
It should return a character string like
`rl_completer_word_break_characters' to be used to perform the
current completion. The function may choose to set
`rl_completer_word_break_characters' itself. If the function
returns `NULL', `rl_completer_word_break_characters' is used.
- Variable: const char * rl_completer_quote_characters
A list of characters which can be used to quote a substring of the
line. Completion occurs on the entire substring, and within the
@@ -2875,6 +2893,25 @@ Completion Variables
set to 0 before any application-specific completion function is
called, and may only be changed within such a function.
- Variable: int rl_completion_quote_character
When Readline is completing quoted text, as delimited by one of the
characters in RL_COMPLETER_QUOTE_CHARACTERS, it sets this variable
to the quoting character found. This is set before any
application-specific completion function is called.
- Variable: int rl_completion_suppress_quote
If non-zero, Readline does not append a matching quote character
when performing completion on a quoted string. It is set to 0
before any application-specific completion function is called, and
may only be changed within such a function.
- Variable: int rl_completion_found_quote
When Readline is completing quoted text, it sets this variable to
a non-zero value if the word being completed contains or is
delimited by any quoting characters, including backslashes. This
is set before any application-specific completion function is
called.
- Variable: int rl_completion_mark_symlink_dirs
If non-zero, a slash will be appended to completed filenames that
are symbolic links to directory names, subject to the value of the
@@ -3958,21 +3995,25 @@ Function and Variable Index
* rl_clear_message: Redisplay.
* rl_clear_pending_input: Character Input.
* rl_clear_signals: Readline Signal Handling.
* rl_complete <1>: Completion Functions.
* rl_complete: How Completing Works.
* rl_complete <1>: How Completing Works.
* rl_complete: Completion Functions.
* rl_complete_internal: Completion Functions.
* rl_completer_quote_characters: Completion Variables.
* rl_completer_word_break_characters: Completion Variables.
* rl_completion_append_character: Completion Variables.
* rl_completion_display_matches_hook: Completion Variables.
* rl_completion_entry_function <1>: How Completing Works.
* rl_completion_entry_function: Completion Variables.
* rl_completion_entry_function <1>: Completion Variables.
* rl_completion_entry_function: How Completing Works.
* rl_completion_found_quote: Completion Variables.
* rl_completion_mark_symlink_dirs: Completion Variables.
* rl_completion_matches: Completion Functions.
* rl_completion_mode: Completion Functions.
* rl_completion_query_items: Completion Variables.
* rl_completion_quote_character: Completion Variables.
* rl_completion_suppress_append: Completion Variables.
* rl_completion_suppress_quote: Completion Variables.
* rl_completion_type: Completion Variables.
* rl_completion_word_break_hook: Completion Variables.
* rl_copy_keymap: Keymaps.
* rl_copy_text: Modifying Text.
* rl_crlf: Redisplay.
@@ -4098,6 +4139,7 @@ Function and Variable Index
* transpose-words (M-t): Commands For Text.
* undo (C-_ or C-x C-u): Miscellaneous Commands.
* universal-argument (): Numeric Arguments.
* unix-filename-rubout (): Commands For Killing.
* unix-line-discard (C-u): Commands For Killing.
* unix-word-rubout (C-w): Commands For Killing.
* upcase-word (M-u): Commands For Text.
@@ -4110,58 +4152,58 @@ Function and Variable Index

Tag Table:
Node: Top1298
Node: Command Line Editing1939
Node: Introduction and Notation2590
Node: Readline Interaction4208
Node: Readline Bare Essentials5395
Node: Readline Movement Commands7176
Node: Readline Killing Commands8133
Node: Readline Arguments10043
Node: Searching11079
Node: Readline Init File13222
Node: Readline Init File Syntax14283
Node: Conditional Init Constructs25646
Node: Sample Init File28171
Node: Bindable Readline Commands31355
Node: Commands For Moving32405
Node: Commands For History33255
Node: Commands For Text36114
Node: Commands For Killing38829
Node: Numeric Arguments40780
Node: Commands For Completion41908
Node: Keyboard Macros43441
Node: Miscellaneous Commands44001
Node: Readline vi Mode47351
Node: Programming with GNU Readline49169
Node: Basic Behavior50143
Node: Custom Functions53573
Node: Readline Typedefs55051
Node: Function Writing56681
Node: Readline Variables57889
Node: Readline Convenience Functions67312
Node: Function Naming68294
Node: Keymaps69546
Node: Binding Keys71302
Node: Associating Function Names and Bindings75824
Node: Allowing Undoing78069
Node: Redisplay80604
Node: Modifying Text83675
Node: Character Input84904
Node: Terminal Management86684
Node: Utility Functions88103
Node: Miscellaneous Functions90442
Node: Alternate Interface92506
Node: A Readline Example94651
Node: Readline Signal Handling96588
Node: Custom Completers102191
Node: How Completing Works102906
Node: Completion Functions106209
Node: Completion Variables109764
Node: A Short Completion Example120386
Node: Copying This Manual132939
Node: GNU Free Documentation License133179
Node: Concept Index155573
Node: Function and Variable Index156522
Node: Top1296
Node: Command Line Editing1937
Node: Introduction and Notation2588
Node: Readline Interaction4206
Node: Readline Bare Essentials5393
Node: Readline Movement Commands7174
Node: Readline Killing Commands8131
Node: Readline Arguments10041
Node: Searching11077
Node: Readline Init File13220
Node: Readline Init File Syntax14281
Node: Conditional Init Constructs25644
Node: Sample Init File28169
Node: Bindable Readline Commands31353
Node: Commands For Moving32403
Node: Commands For History33253
Node: Commands For Text36112
Node: Commands For Killing38827
Node: Numeric Arguments40958
Node: Commands For Completion42086
Node: Keyboard Macros43619
Node: Miscellaneous Commands44179
Node: Readline vi Mode47529
Node: Programming with GNU Readline49347
Node: Basic Behavior50321
Node: Custom Functions53751
Node: Readline Typedefs55229
Node: Function Writing56859
Node: Readline Variables58067
Node: Readline Convenience Functions67490
Node: Function Naming68472
Node: Keymaps69724
Node: Binding Keys71480
Node: Associating Function Names and Bindings76002
Node: Allowing Undoing78247
Node: Redisplay80782
Node: Modifying Text84216
Node: Character Input85445
Node: Terminal Management87225
Node: Utility Functions88644
Node: Miscellaneous Functions90983
Node: Alternate Interface93047
Node: A Readline Example95192
Node: Readline Signal Handling97129
Node: Custom Completers102732
Node: How Completing Works103447
Node: Completion Functions106750
Node: Completion Variables110305
Node: A Short Completion Example122375
Node: Copying This Manual134928
Node: GNU Free Documentation License135168
Node: Concept Index157562
Node: Function and Variable Index158511

End Tag Table
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -140,17 +140,17 @@
@xrdef{Completion Variables-pg}{43}
@xrdef{Completion Variables-snt}{Section@tie 2.6.3}
@xrdef{A Short Completion Example-title}{A Short Completion Example}
@xrdef{A Short Completion Example-pg}{46}
@xrdef{A Short Completion Example-pg}{47}
@xrdef{A Short Completion Example-snt}{Section@tie 2.6.4}
@xrdef{Copying This Manual-title}{Copying This Manual}
@xrdef{Copying This Manual-pg}{55}
@xrdef{Copying This Manual-pg}{57}
@xrdef{Copying This Manual-snt}{Appendix@tie @char65{}}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-pg}{55}
@xrdef{GNU Free Documentation License-pg}{57}
@xrdef{GNU Free Documentation License-snt}{Section@tie @char65.1}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-pg}{63}
@xrdef{Concept Index-pg}{65}
@xrdef{Concept Index-snt}{}
@xrdef{Function and Variable Index-title}{Function and Variable Index}
@xrdef{Function and Variable Index-pg}{65}
@xrdef{Function and Variable Index-pg}{67}
@xrdef{Function and Variable Index-snt}{}
+1 -1
View File
@@ -9,4 +9,4 @@
\entry{variables, readline}{5}{variables, readline}
\entry{readline, function}{21}{readline, function}
\entry{application-specific completion functions}{41}{application-specific completion functions}
\entry{FDL, GNU Free Documentation License}{55}{FDL, GNU Free Documentation License}
\entry{FDL, GNU Free Documentation License}{57}{FDL, GNU Free Documentation License}
+1 -1
View File
@@ -5,7 +5,7 @@
\initial {E}
\entry {editing command lines}{1}
\initial {F}
\entry {FDL, GNU Free Documentation License}{55}
\entry {FDL, GNU Free Documentation License}{57}
\initial {I}
\entry {initialization file, readline}{4}
\entry {interaction, readline}{1}
+11 -6
View File
@@ -60,12 +60,13 @@
\entry{kill-word (M-d)}{16}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{16}{\code {backward-kill-word (M-\key {DEL})}}
\entry{unix-word-rubout (C-w)}{16}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{16}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{16}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{16}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{16}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{16}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{16}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{16}{\code {yank (C-y)}}
\entry{yank (C-y)}{17}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{17}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{17}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{17}{\code {universal-argument ()}}
@@ -188,7 +189,7 @@
\entry{rl_read_key}{34}{\code {rl_read_key}}
\entry{rl_getc}{34}{\code {rl_getc}}
\entry{rl_stuff_char}{34}{\code {rl_stuff_char}}
\entry{rl_execute_next}{34}{\code {rl_execute_next}}
\entry{rl_execute_next}{35}{\code {rl_execute_next}}
\entry{rl_clear_pending_input}{35}{\code {rl_clear_pending_input}}
\entry{rl_set_keyboard_input_timeout}{35}{\code {rl_set_keyboard_input_timeout}}
\entry{rl_prep_terminal}{35}{\code {rl_prep_terminal}}
@@ -198,7 +199,7 @@
\entry{rl_reset_terminal}{35}{\code {rl_reset_terminal}}
\entry{rl_replace_line}{35}{\code {rl_replace_line}}
\entry{rl_extend_line_buffer}{35}{\code {rl_extend_line_buffer}}
\entry{rl_initialize}{35}{\code {rl_initialize}}
\entry{rl_initialize}{36}{\code {rl_initialize}}
\entry{rl_ding}{36}{\code {rl_ding}}
\entry{rl_alphabetic}{36}{\code {rl_alphabetic}}
\entry{rl_display_match_list}{36}{\code {rl_display_match_list}}
@@ -248,16 +249,20 @@
\entry{rl_basic_word_break_characters}{44}{\code {rl_basic_word_break_characters}}
\entry{rl_basic_quote_characters}{44}{\code {rl_basic_quote_characters}}
\entry{rl_completer_word_break_characters}{45}{\code {rl_completer_word_break_characters}}
\entry{rl_completion_word_break_hook}{45}{\code {rl_completion_word_break_hook}}
\entry{rl_completer_quote_characters}{45}{\code {rl_completer_quote_characters}}
\entry{rl_filename_quote_characters}{45}{\code {rl_filename_quote_characters}}
\entry{rl_special_prefixes}{45}{\code {rl_special_prefixes}}
\entry{rl_completion_query_items}{45}{\code {rl_completion_query_items}}
\entry{rl_completion_append_character}{45}{\code {rl_completion_append_character}}
\entry{rl_completion_suppress_append}{45}{\code {rl_completion_suppress_append}}
\entry{rl_completion_mark_symlink_dirs}{45}{\code {rl_completion_mark_symlink_dirs}}
\entry{rl_ignore_completion_duplicates}{45}{\code {rl_ignore_completion_duplicates}}
\entry{rl_completion_quote_character}{45}{\code {rl_completion_quote_character}}
\entry{rl_completion_suppress_quote}{46}{\code {rl_completion_suppress_quote}}
\entry{rl_completion_found_quote}{46}{\code {rl_completion_found_quote}}
\entry{rl_completion_mark_symlink_dirs}{46}{\code {rl_completion_mark_symlink_dirs}}
\entry{rl_ignore_completion_duplicates}{46}{\code {rl_ignore_completion_duplicates}}
\entry{rl_filename_completion_desired}{46}{\code {rl_filename_completion_desired}}
\entry{rl_filename_quoting_desired}{46}{\code {rl_filename_quoting_desired}}
\entry{rl_attempted_completion_over}{46}{\code {rl_attempted_completion_over}}
\entry{rl_completion_type}{46}{\code {rl_completion_type}}
\entry{rl_inhibit_completion}{46}{\code {rl_inhibit_completion}}
\entry{rl_inhibit_completion}{47}{\code {rl_inhibit_completion}}
+11 -6
View File
@@ -133,12 +133,16 @@
\entry {\code {rl_completion_append_character}}{45}
\entry {\code {rl_completion_display_matches_hook}}{44}
\entry {\code {rl_completion_entry_function}}{42, 43}
\entry {\code {rl_completion_mark_symlink_dirs}}{45}
\entry {\code {rl_completion_found_quote}}{46}
\entry {\code {rl_completion_mark_symlink_dirs}}{46}
\entry {\code {rl_completion_matches}}{42}
\entry {\code {rl_completion_mode}}{42}
\entry {\code {rl_completion_query_items}}{45}
\entry {\code {rl_completion_quote_character}}{45}
\entry {\code {rl_completion_suppress_append}}{45}
\entry {\code {rl_completion_suppress_quote}}{46}
\entry {\code {rl_completion_type}}{46}
\entry {\code {rl_completion_word_break_hook}}{45}
\entry {\code {rl_copy_keymap}}{28}
\entry {\code {rl_copy_text}}{34}
\entry {\code {rl_crlf}}{33}
@@ -157,7 +161,7 @@
\entry {\code {rl_end_undo_group}}{32}
\entry {\code {rl_erase_empty_line}}{24}
\entry {\code {rl_event_hook}}{26}
\entry {\code {rl_execute_next}}{34}
\entry {\code {rl_execute_next}}{35}
\entry {\code {rl_executing_keymap}}{26}
\entry {\code {rl_executing_macro}}{26}
\entry {\code {rl_expand_prompt}}{33}
@@ -184,10 +188,10 @@
\entry {\code {rl_getc}}{34}
\entry {\code {rl_getc_function}}{26}
\entry {\code {rl_gnu_readline_p}}{25}
\entry {\code {rl_ignore_completion_duplicates}}{45}
\entry {\code {rl_ignore_completion_duplicates}}{46}
\entry {\code {rl_ignore_some_completions_function}}{44}
\entry {\code {rl_inhibit_completion}}{46}
\entry {\code {rl_initialize}}{35}
\entry {\code {rl_inhibit_completion}}{47}
\entry {\code {rl_initialize}}{36}
\entry {\code {rl_insert_completions}}{42}
\entry {\code {rl_insert_text}}{34}
\entry {\code {rl_instream}}{25}
@@ -269,6 +273,7 @@
\initial {U}
\entry {\code {undo (C-_ or C-x C-u)}}{18}
\entry {\code {universal-argument ()}}{17}
\entry {\code {unix-filename-rubout ()}}{16}
\entry {\code {unix-line-discard (C-u)}}{16}
\entry {\code {unix-word-rubout (C-w)}}{16}
\entry {\code {upcase-word (M-u)}}{15}
@@ -276,7 +281,7 @@
\entry {\code {vi-editing-mode (M-C-j)}}{19}
\entry {visible-stats}{7}
\initial {Y}
\entry {\code {yank (C-y)}}{16}
\entry {\code {yank (C-y)}}{17}
\entry {\code {yank-last-arg (M-. or M-_)}}{14}
\entry {\code {yank-nth-arg (M-C-y)}}{14}
\entry {\code {yank-pop (M-y)}}{17}
+19 -19
View File
@@ -1,9 +1,9 @@
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 22 SEP 2003 09:04
**/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlman.te
xi
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 27 JUL 2004 09:31
**/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlm
an.texi
(/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlman.tex
i (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
(/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlma
n.texi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
\bindingoffset=\dimen16
\normaloffset=\dimen17
\pagewidth=\dimen18
@@ -34,13 +34,13 @@ i (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
\toksD=\toks18
\boxA=\box19
\countA=\count30
fonts,
fonts,
\sffam=\fam8
\textleading=\dimen26
\mainmagstep=\count31
\fontdepth=\count32
page headings,
page headings,
\titlepagetopglue=\skip20
\titlepagebottomglue=\skip21
\evenheadline=\toks19
@@ -81,7 +81,8 @@ page headings,
\lastnegativepageno=\count43
\shortappendixwidth=\dimen33
\tocindent=\dimen34
environments,
environments,
\errorbox=\box22
\lispnarrowing=\skip30
\envskipamount=\skip31
@@ -94,8 +95,7 @@ page headings,
\lskip=\skip35
\rskip=\skip36
\tabw=\dimen38
defuns,
defuns,
\defbodyindent=\skip37
\defargsindent=\skip38
\deflastargmargin=\skip39
@@ -186,7 +186,7 @@ gnored[] |
[11] [12] [13] [14] [15] [16] [17] [18]) (rltech.texi Chapter 2 [19] [20]
[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35]
[36] [37] [38] [39] [40] [41] [42] [43] [44] [45]
Underfull \hbox (badness 7379) in paragraph at lines 1757--1762
Underfull \hbox (badness 7379) in paragraph at lines 1792--1797
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
tt rl_attempted_
@@ -198,16 +198,16 @@ tt rl_attempted_
.@glue 3.65 plus 1.825 minus 1.21666
.etc.
[46] [47] [48] [49] [50] [51] [52] [53]) Appendix A [54] (fdl.texi [55]
[56] [57] [58] [59] [60]) (Concept Index) [61] [62] (rlman.cps)
(Function and Variable Index) [63] [64] (rlman.fns [65] [66]) [67] [68] )
[46] [47] [48] [49] [50] [51] [52] [53] [54]) Appendix A [55] [56] (fdl.texi
[57] [58] [59] [60] [61] [62]) (Concept Index) [63] [64] (rlman.cps)
(Function and Variable Index) [65] [66] (rlman.fns [67] [68]) [69] [70] )
Here is how much of TeX's memory you used:
1489 strings out of 13013
18350 string characters out of 97233
56934 words of memory out of 263001
18360 string characters out of 97233
58248 words of memory out of 263001
2361 multiletter control sequences out of 10000+0
31953 words of font info for 111 fonts, out of 400000 for 1000
19 hyphenation exceptions out of 1000
15i,8n,17p,304b,695s stack positions out of 300i,100n,500p,50000b,4000s
15i,8n,17p,309b,695s stack positions out of 300i,100n,500p,50000b,4000s
Output written on rlman.dvi (72 pages, 270424 bytes).
Output written on rlman.dvi (74 pages, 274068 bytes).
+6 -6
View File
@@ -45,9 +45,9 @@
\subsecentry{How Completing Works}{2}{6}{1}{41}
\subsecentry{Completion Functions}{2}{6}{2}{42}
\subsecentry{Completion Variables}{2}{6}{3}{43}
\subsecentry{A Short Completion Example}{2}{6}{4}{46}
\appendixentry{Copying This Manual}{A}{55}
\secentry{GNU Free Documentation License}{A}{1}{55}
\subsecentry{ADDENDUM: How to use this License for your documents}{A}{1}{1}{61}
\unnumbchapentry{Concept Index}{2}{63}
\unnumbchapentry{Function and Variable Index}{2}{65}
\subsecentry{A Short Completion Example}{2}{6}{4}{47}
\appendixentry{Copying This Manual}{A}{57}
\secentry{GNU Free Documentation License}{A}{1}{57}
\subsecentry{ADDENDUM: How to use this License for your documents}{A}{1}{1}{63}
\unnumbchapentry{Concept Index}{2}{65}
\unnumbchapentry{Function and Variable Index}{2}{67}
Binary file not shown.
+2 -1
View File
@@ -38,12 +38,13 @@
\entry{kill-word (M-d)}{16}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{16}{\code {backward-kill-word (M-\key {DEL})}}
\entry{unix-word-rubout (C-w)}{16}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{16}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{16}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{16}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{16}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{16}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{16}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{16}{\code {yank (C-y)}}
\entry{yank (C-y)}{17}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{17}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{17}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{17}{\code {universal-argument ()}}
+2 -1
View File
@@ -82,13 +82,14 @@
\initial {U}
\entry {\code {undo (C-_ or C-x C-u)}}{18}
\entry {\code {universal-argument ()}}{17}
\entry {\code {unix-filename-rubout ()}}{16}
\entry {\code {unix-line-discard (C-u)}}{16}
\entry {\code {unix-word-rubout (C-w)}}{16}
\entry {\code {upcase-word (M-u)}}{15}
\initial {V}
\entry {\code {vi-editing-mode (M-C-j)}}{19}
\initial {Y}
\entry {\code {yank (C-y)}}{16}
\entry {\code {yank (C-y)}}{17}
\entry {\code {yank-last-arg (M-. or M-_)}}{14}
\entry {\code {yank-nth-arg (M-C-y)}}{14}
\entry {\code {yank-pop (M-y)}}{17}
+79 -71
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on September, 22 2003 by texi2html 1.64 -->
<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -1547,50 +1547,58 @@ The killed text is saved on the kill-ring.
<P>
<A NAME="IDX107"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
<DT><CODE>unix-filename-rubout ()</CODE>
<DD><A NAME="IDX108"></A>
Delete all spaces and tabs around point. By default, this is unbound.
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
<A NAME="IDX109"></A>
<DT><CODE>kill-region ()</CODE>
<DT><CODE>delete-horizontal-space ()</CODE>
<DD><A NAME="IDX110"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
<A NAME="IDX111"></A>
<DT><CODE>kill-region ()</CODE>
<DD><A NAME="IDX112"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
<A NAME="IDX111"></A>
<A NAME="IDX113"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
<DD><A NAME="IDX112"></A>
<DD><A NAME="IDX114"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
<A NAME="IDX113"></A>
<A NAME="IDX115"></A>
<DT><CODE>copy-backward-word ()</CODE>
<DD><A NAME="IDX114"></A>
<DD><A NAME="IDX116"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
<A NAME="IDX115"></A>
<A NAME="IDX117"></A>
<DT><CODE>copy-forward-word ()</CODE>
<DD><A NAME="IDX116"></A>
<DD><A NAME="IDX118"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
<A NAME="IDX117"></A>
<A NAME="IDX119"></A>
<DT><CODE>yank (C-y)</CODE>
<DD><A NAME="IDX118"></A>
<DD><A NAME="IDX120"></A>
Yank the top of the kill ring into the buffer at point.
<P>
<A NAME="IDX119"></A>
<A NAME="IDX121"></A>
<DT><CODE>yank-pop (M-y)</CODE>
<DD><A NAME="IDX120"></A>
<DD><A NAME="IDX122"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -1614,16 +1622,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
<A NAME="IDX121"></A>
<A NAME="IDX123"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
<DD><A NAME="IDX122"></A>
<DD><A NAME="IDX124"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
<A NAME="IDX123"></A>
<A NAME="IDX125"></A>
<DT><CODE>universal-argument ()</CODE>
<DD><A NAME="IDX124"></A>
<DD><A NAME="IDX126"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -1658,30 +1666,30 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
<A NAME="IDX125"></A>
<A NAME="IDX127"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
<DD><A NAME="IDX126"></A>
<DD><A NAME="IDX128"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
The default is filename completion.
<P>
<A NAME="IDX127"></A>
<A NAME="IDX129"></A>
<DT><CODE>possible-completions (M-?)</CODE>
<DD><A NAME="IDX128"></A>
<DD><A NAME="IDX130"></A>
List the possible completions of the text before point.
<P>
<A NAME="IDX129"></A>
<A NAME="IDX131"></A>
<DT><CODE>insert-completions (M-*)</CODE>
<DD><A NAME="IDX130"></A>
<DD><A NAME="IDX132"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
<A NAME="IDX131"></A>
<A NAME="IDX133"></A>
<DT><CODE>menu-complete ()</CODE>
<DD><A NAME="IDX132"></A>
<DD><A NAME="IDX134"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -1696,9 +1704,9 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
<A NAME="IDX133"></A>
<A NAME="IDX135"></A>
<DT><CODE>delete-char-or-list ()</CODE>
<DD><A NAME="IDX134"></A>
<DD><A NAME="IDX136"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -1727,22 +1735,22 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
<A NAME="IDX135"></A>
<A NAME="IDX137"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
<DD><A NAME="IDX136"></A>
<DD><A NAME="IDX138"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
<A NAME="IDX137"></A>
<A NAME="IDX139"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
<DD><A NAME="IDX138"></A>
<DD><A NAME="IDX140"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
<A NAME="IDX139"></A>
<A NAME="IDX141"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
<DD><A NAME="IDX140"></A>
<DD><A NAME="IDX142"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
@@ -1768,87 +1776,87 @@ in the macro appear as if typed at the keyboard.
<!--docid::SEC21::-->
<DL COMPACT>
<A NAME="IDX141"></A>
<A NAME="IDX143"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
<DD><A NAME="IDX142"></A>
<DD><A NAME="IDX144"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
<A NAME="IDX143"></A>
<A NAME="IDX145"></A>
<DT><CODE>abort (C-g)</CODE>
<DD><A NAME="IDX144"></A>
<DD><A NAME="IDX146"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
<A NAME="IDX145"></A>
<A NAME="IDX147"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
<DD><A NAME="IDX146"></A>
<DD><A NAME="IDX148"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
<A NAME="IDX147"></A>
<A NAME="IDX149"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
<DD><A NAME="IDX148"></A>
<DD><A NAME="IDX150"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
<A NAME="IDX149"></A>
<A NAME="IDX151"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
<DD><A NAME="IDX150"></A>
<DD><A NAME="IDX152"></A>
Incremental undo, separately remembered for each line.
<P>
<A NAME="IDX151"></A>
<A NAME="IDX153"></A>
<DT><CODE>revert-line (M-r)</CODE>
<DD><A NAME="IDX152"></A>
<DD><A NAME="IDX154"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
<A NAME="IDX153"></A>
<A NAME="IDX155"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
<DD><A NAME="IDX154"></A>
<DD><A NAME="IDX156"></A>
Perform tilde expansion on the current word.
<P>
<A NAME="IDX155"></A>
<A NAME="IDX157"></A>
<DT><CODE>set-mark (C-@)</CODE>
<DD><A NAME="IDX156"></A>
<DD><A NAME="IDX158"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
<A NAME="IDX157"></A>
<A NAME="IDX159"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
<DD><A NAME="IDX158"></A>
<DD><A NAME="IDX160"></A>
Swap the point with the mark. The current cursor position is set to
the saved position, and the old cursor position is saved as the mark.
<P>
<A NAME="IDX159"></A>
<A NAME="IDX161"></A>
<DT><CODE>character-search (C-])</CODE>
<DD><A NAME="IDX160"></A>
<DD><A NAME="IDX162"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
<A NAME="IDX161"></A>
<A NAME="IDX163"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
<DD><A NAME="IDX162"></A>
<DD><A NAME="IDX164"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
<A NAME="IDX163"></A>
<A NAME="IDX165"></A>
<DT><CODE>insert-comment (M-#)</CODE>
<DD><A NAME="IDX164"></A>
<DD><A NAME="IDX166"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -1859,43 +1867,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
<A NAME="IDX165"></A>
<A NAME="IDX167"></A>
<DT><CODE>dump-functions ()</CODE>
<DD><A NAME="IDX166"></A>
<DD><A NAME="IDX168"></A>
Print all of the functions and their key bindings to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
<A NAME="IDX167"></A>
<A NAME="IDX169"></A>
<DT><CODE>dump-variables ()</CODE>
<DD><A NAME="IDX168"></A>
<DD><A NAME="IDX170"></A>
Print all of the settable variables and their values to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
<A NAME="IDX169"></A>
<A NAME="IDX171"></A>
<DT><CODE>dump-macros ()</CODE>
<DD><A NAME="IDX170"></A>
<DD><A NAME="IDX172"></A>
Print all of the Readline key sequences bound to macros and the
strings they output. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
<A NAME="IDX171"></A>
<A NAME="IDX173"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
<DD><A NAME="IDX172"></A>
<DD><A NAME="IDX174"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
<A NAME="IDX173"></A>
<A NAME="IDX175"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
<DD><A NAME="IDX174"></A>
<DD><A NAME="IDX176"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -1982,7 +1990,7 @@ so forth.
<!--docid::SEC24::-->
<P>
<A NAME="IDX175"></A>
<A NAME="IDX177"></A>
<center>
Version 1.2, November 2002
</center>
@@ -2600,7 +2608,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>September, 22 2003</I>
This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2762,7 +2770,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>September, 22 2003</I>
by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+34 -29
View File
@@ -2,11 +2,11 @@ This is rluserman.info, produced by makeinfo version 4.5 from
./rluserman.texi.
This manual describes the end user interface of the GNU Readline Library
(version 5.0, 19 September 2003), a library which aids in the
consistency of user interface across discrete programs which provide a
command line interface.
(version 5.0, 28 January 2004), a library which aids in the consistency
of user interface across discrete programs which provide a command line
interface.
Copyright (C) 1988-2003 Free Software Foundation, Inc.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -1036,6 +1036,11 @@ Killing And Yanking
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
`unix-filename-rubout ()'
Kill the word behind point, using white space and the slash
character as the word boundaries. The killed text is saved on the
kill-ring.
`delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
@@ -1697,30 +1702,30 @@ permit their use in free software.

Tag Table:
Node: Top1341
Node: Command Line Editing1776
Node: Introduction and Notation2418
Node: Readline Interaction4037
Node: Readline Bare Essentials5225
Node: Readline Movement Commands7007
Node: Readline Killing Commands7965
Node: Readline Arguments9876
Node: Searching10913
Node: Readline Init File13057
Node: Readline Init File Syntax14119
Node: Conditional Init Constructs25483
Node: Sample Init File28009
Node: Bindable Readline Commands31194
Node: Commands For Moving32245
Node: Commands For History33096
Node: Commands For Text35956
Node: Commands For Killing38672
Node: Numeric Arguments40624
Node: Commands For Completion41753
Node: Keyboard Macros43287
Node: Miscellaneous Commands43848
Node: Readline vi Mode47199
Node: Copying This Manual48115
Node: GNU Free Documentation License48325
Node: Top1339
Node: Command Line Editing1774
Node: Introduction and Notation2416
Node: Readline Interaction4035
Node: Readline Bare Essentials5223
Node: Readline Movement Commands7005
Node: Readline Killing Commands7963
Node: Readline Arguments9874
Node: Searching10911
Node: Readline Init File13055
Node: Readline Init File Syntax14117
Node: Conditional Init Constructs25481
Node: Sample Init File28007
Node: Bindable Readline Commands31192
Node: Commands For Moving32243
Node: Commands For History33094
Node: Commands For Text35954
Node: Commands For Killing38670
Node: Numeric Arguments40802
Node: Commands For Completion41931
Node: Keyboard Macros43465
Node: Miscellaneous Commands44026
Node: Readline vi Mode47377
Node: Copying This Manual48293
Node: GNU Free Documentation License48503

End Tag Table
+9 -9
View File
@@ -1,9 +1,9 @@
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 22 SEP 2003 09:04
**/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rluserma
n.texi
This is TeX, Version 3.14159 (Web2C 7.3.1) (format=tex 2001.2.12) 27 JUL 2004 09:31
**/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlu
serman.texi
(/net/granite/fs4/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rluserman
.texi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
(/net/celerra-dm1/fs04/src/ns-engr/work/chet/src/bash/src/lib/readline/doc/rlus
erman.texi (texinfo.tex Loading texinfo [version 2003-02-03.16]: Basics,
\bindingoffset=\dimen16
\normaloffset=\dimen17
\pagewidth=\dimen18
@@ -187,11 +187,11 @@ gnored[] |
[21] [22] [23] [24] [25] [26]) [27] [28] )
Here is how much of TeX's memory you used:
1398 strings out of 13013
16279 string characters out of 97233
44937 words of memory out of 263001
16289 string characters out of 97233
44933 words of memory out of 263001
2276 multiletter control sequences out of 10000+0
31953 words of font info for 111 fonts, out of 400000 for 1000
19 hyphenation exceptions out of 1000
13i,8n,10p,308b,695s stack positions out of 300i,100n,500p,50000b,4000s
13i,8n,10p,313b,695s stack positions out of 300i,100n,500p,50000b,4000s
Output written on rluserman.dvi (32 pages, 91652 bytes).
Output written on rluserman.dvi (32 pages, 91852 bytes).
+100 -95
View File
@@ -8,7 +8,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=300, compressed
%DVIPSSource: TeX output 2003.09.22:0904
%DVIPSSource: TeX output 2004.07.27:0931
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -908,23 +908,23 @@ TeXDict begin
%%Page: 1 1
1 0 bop 75 659 a Fp(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p
75 709 1800 17 v 936 757 a Fo(Edition)17 b(5.0,)c(for)i
Fn(Readline)f(Library)g Fo(V)l(ersion)i(5.0.)1559 811
y(Septem)o(b)q(er)g(2003)75 2467 y Fm(Chet)22 b(Ramey)-6
b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
Fn(Readline)f(Library)g Fo(V)l(ersion)i(5.0.)1609 811
y(Jan)o(uary)f(2004)75 2467 y Fm(Chet)22 b(Ramey)-6 b(,)23
b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
2534 y(Brian)h(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
b(oundation)p 75 2570 1800 9 v eop
%%Page: 2 2
2 1 bop 75 1512 a Fo(This)15 b(man)o(ual)g(describ)q(es)i(the)d(end)i
(user)f(in)o(terface)g(of)f(the)h(GNU)f(Readline)i(Library)f(\(v)o
(ersion)g(5.0,)f(19)75 1567 y(Septem)o(b)q(er)19 b(2003\),)e(a)h
(library)h(whic)o(h)g(aids)g(in)g(the)f(consistency)h(of)f(user)g(in)o
(terface)h(across)e(discrete)75 1621 y(programs)d(whic)o(h)i(pro)o
(vide)g(a)f(command)g(line)i(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)
301 1688 y(c)289 1689 y Fl(\015)d Fo(1988-2003)f(F)l(ree)i(Soft)o(w)o
(are)f(F)l(oundation,)h(Inc.)75 1756 y(P)o(ermission)i(is)f(gran)o(ted)
g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h
(man)o(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h
(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h
2 1 bop 75 1512 a Fo(This)20 b(man)o(ual)f(describ)q(es)i(the)f(end)g
(user)f(in)o(terface)h(of)f(the)g(GNU)g(Readline)i(Library)f(\(v)o
(ersion)f(5.0,)75 1567 y(28)e(Jan)o(uary)g(2004\),)f(a)h(library)h
(whic)o(h)g(aids)f(in)h(the)g(consistency)g(of)f(user)g(in)o(terface)h
(across)e(discrete)75 1621 y(programs)e(whic)o(h)i(pro)o(vide)g(a)f
(command)g(line)i(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)301
1688 y(c)289 1689 y Fl(\015)d Fo(1988-2004)f(F)l(ree)i(Soft)o(w)o(are)f
(F)l(oundation,)h(Inc.)75 1756 y(P)o(ermission)i(is)f(gran)o(ted)g(to)f
(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o
(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)f
(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h
(copies.)195 1878 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)l(,)
h(distribute)h(and/or)e(mo)q(dify)h(this)g(do)q(cumen)o(t)g(under)195
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)g
@@ -1922,114 +1922,119 @@ b(With)11 b(an)g(explicit)i(non-p)q(ositiv)o(e)f(n)o(umeric)g(argumen)o
Fn(emacs)e Fo(mo)q(de;)h Fn(vi)g Fo(mo)q(de)h(do)q(es)g(o)o(v)o
(erwrite)315 204 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
b(call)h(to)f Fn(readline\(\))f Fo(starts)f(in)k(insert)e(mo)q(de.)315
271 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
269 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
Fn(self-insert)f Fo(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
326 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
b(Characters)20 b(b)q(ound)i(to)e Fn(backward-)315 381
324 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
b(Characters)20 b(b)q(ound)i(to)e Fn(backward-)315 379
y(delete-char)14 b Fo(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
(oin)o(t)h(with)f(a)g(space.)315 448 y(By)g(default,)h(this)f(command)g
(is)h(un)o(b)q(ound.)75 559 y Fc(1.4.4)30 b(Killing)20
b(And)h(Y)-5 b(anking)75 680 y Fn(kill-line)14 b(\(C-k\))315
735 y Fo(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
(the)g(line.)75 814 y Fn(backward-kill-line)e(\(C-x)h(Rubout\))315
869 y Fo(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
(line.)75 948 y Fn(unix-line-discard)e(\(C-u\))315 1003
(oin)o(t)h(with)f(a)g(space.)315 444 y(By)g(default,)h(this)f(command)g
(is)h(un)o(b)q(ound.)75 550 y Fc(1.4.4)30 b(Killing)20
b(And)h(Y)-5 b(anking)75 669 y Fn(kill-line)14 b(\(C-k\))315
724 y Fo(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
(the)g(line.)75 800 y Fn(backward-kill-line)e(\(C-x)h(Rubout\))315
854 y Fo(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
(line.)75 930 y Fn(unix-line-discard)e(\(C-u\))315 985
y Fo(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1082 y Fn(kill-whole-line)
e(\(\))315 1137 y Fo(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1060 y Fn(kill-whole-line)
e(\(\))315 1115 y Fo(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
b(By)19 b(default,)315 1192 y(this)d(is)f(un)o(b)q(ound.)75
1271 y Fn(kill-word)f(\(M-d\))315 1325 y Fo(Kill)j(from)d(p)q(oin)o(t)h
b(By)19 b(default,)315 1170 y(this)d(is)f(un)o(b)q(ound.)75
1245 y Fn(kill-word)f(\(M-d\))315 1300 y Fo(Kill)j(from)d(p)q(oin)o(t)h
(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1380 y(of)h(the)g(next)g(w)o
(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1355 y(of)h(the)g(next)g(w)o
(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
Fn(forward-word)p Fo(.)75 1459 y Fn(backward-kill-word)e(\(M-)592
1457 y Ff(h)p 603 1431 73 2 v 603 1459 a Fe(DEL)p 603
1467 V 674 1457 a Ff(i)689 1459 y Fn(\))315 1514 y Fo(Kill)k(the)d(w)o
Fn(forward-word)p Fo(.)75 1430 y Fn(backward-kill-word)e(\(M-)592
1428 y Ff(h)p 603 1402 73 2 v 603 1430 a Fe(DEL)p 603
1438 V 674 1428 a Ff(i)689 1430 y Fn(\))315 1485 y Fo(Kill)k(the)d(w)o
(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
(the)h(same)f(as)g Fn(backward-word)p Fo(.)75 1593 y
Fn(unix-word-rubout)f(\(C-w\))315 1648 y Fo(Kill)18 b(the)e(w)o(ord)f
(the)h(same)f(as)g Fn(backward-word)p Fo(.)75 1560 y
Fn(unix-word-rubout)f(\(C-w\))315 1615 y Fo(Kill)18 b(the)e(w)o(ord)f
(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
(b)q(oundary)l(.)23 b(The)16 b(killed)315 1703 y(text)f(is)g(sa)o(v)o
(ed)g(on)g(the)h(kill-ring.)75 1782 y Fn(delete-horizontal-space)c
(\(\))315 1836 y Fo(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
1915 y Fn(kill-region)e(\(\))315 1970 y Fo(Kill)j(the)f(text)e(in)i
(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
(is)h(un)o(b)q(ound.)75 2049 y Fn(copy-region-as-kill)d(\(\))315
2104 y Fo(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
(a)o(y)l(.)315 2159 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
(ound.)75 2238 y Fn(copy-backward-word)d(\(\))315 2293
y Fo(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
2348 y(same)c(as)g Fn(backward-word)p Fo(.)j(By)d(default,)g(this)h
(command)f(is)h(un)o(b)q(ound.)75 2427 y Fn(copy-forward-word)d(\(\))
315 2481 y Fo(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)j(p)q(oin)o(t)f
(b)q(oundary)l(.)23 b(The)16 b(killed)315 1670 y(text)f(is)g(sa)o(v)o
(ed)g(on)g(the)h(kill-ring.)75 1745 y Fn(unix-filename-rubout)c(\(\))
315 1800 y Fo(Kill)20 b(the)f(w)o(ord)e(b)q(ehind)j(p)q(oin)o(t,)f
(using)g(white)g(space)f(and)h(the)f(slash)h(c)o(haracter)e(as)h(the)
315 1855 y(w)o(ord)d(b)q(oundaries.)21 b(The)15 b(killed)j(text)c(is)i
(sa)o(v)o(ed)f(on)g(the)g(kill-ring.)75 1930 y Fn
(delete-horizontal-space)d(\(\))315 1985 y Fo(Delete)k(all)g(spaces)f
(and)h(tabs)e(around)i(p)q(oin)o(t.)k(By)15 b(default,)h(this)f(is)h
(un)o(b)q(ound.)75 2060 y Fn(kill-region)e(\(\))315 2115
y Fo(Kill)j(the)f(text)e(in)i(the)g(curren)o(t)f(region.)20
b(By)15 b(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75
2190 y Fn(copy-region-as-kill)d(\(\))315 2245 y Fo(Cop)o(y)j(the)i
(text)e(in)i(the)f(region)g(to)g(the)g(kill)h(bu\013er,)f(so)g(it)g
(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o(a)o(y)l(.)315
2300 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75
2375 y Fn(copy-backward-word)d(\(\))315 2430 y Fo(Cop)o(y)19
b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i(kill)h
(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
2485 y(same)c(as)g Fn(backward-word)p Fo(.)j(By)d(default,)g(this)h
(command)f(is)h(un)o(b)q(ound.)75 2560 y Fn(copy-forward-word)d(\(\))
315 2615 y Fo(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)j(p)q(oin)o(t)f
(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o(ord)f(b)q(oundaries)i(are)e
(the)315 2536 y(same)g(as)g Fn(forward-word)p Fo(.)j(By)d(default,)h
(this)f(command)g(is)h(un)o(b)q(ound.)75 2615 y Fn(yank)f(\(C-y\))315
2670 y Fo(Y)l(ank)g(the)h(top)f(of)f(the)i(kill)h(ring)e(in)o(to)g(the)
h(bu\013er)f(at)f(p)q(oin)o(t.)p eop
(the)315 2670 y(same)g(as)g Fn(forward-word)p Fo(.)j(By)d(default,)h
(this)f(command)g(is)h(un)o(b)q(ound.)p eop
%%Page: 17 21
17 20 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
b(17)75 149 y Fn(yank-pop)14 b(\(M-y\))315 204 y Fo(Rotate)i(the)h
(kill-ring,)j(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17
b(can)h(only)g(do)f(this)h(if)f(the)h(prior)315 259 y(command)d(is)h
Fn(yank)e Fo(or)h Fn(yank-pop)p Fo(.)75 382 y Fc(1.4.5)30
b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts)75 507 y
Fn(digit-argument)13 b(\()p Fg(M-0)p Fn(,)i Fg(M-1)p
Fn(,)f(...)h Fg(M--)p Fn(\))315 562 y Fo(Add)f(this)g(digit)g(to)f(the)
h(argumen)o(t)e(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h
(argumen)o(t.)315 616 y Fg(M--)h Fo(starts)f(a)h(negativ)o(e)g(argumen)
o(t.)75 702 y Fn(universal-argument)e(\(\))315 756 y
Fo(This)g(is)h(another)e(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o
(t.)18 b(If)13 b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
811 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o(us)
f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315 866
b(17)75 149 y Fn(yank)15 b(\(C-y\))315 204 y Fo(Y)l(ank)g(the)h(top)f
(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
75 276 y Fn(yank-pop)g(\(M-y\))315 331 y Fo(Rotate)i(the)h(kill-ring,)j
(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
(this)h(if)f(the)h(prior)315 386 y(command)d(is)h Fn(yank)e
Fo(or)h Fn(yank-pop)p Fo(.)75 486 y Fc(1.4.5)30 b(Sp)r(ecifying)20
b(Numeric)h(Argumen)n(ts)75 604 y Fn(digit-argument)13
b(\()p Fg(M-0)p Fn(,)i Fg(M-1)p Fn(,)f(...)h Fg(M--)p
Fn(\))315 658 y Fo(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
713 y Fg(M--)h Fo(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
785 y Fn(universal-argument)e(\(\))315 840 y Fo(This)g(is)h(another)e
(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
895 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o(us)
f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315 949
y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
(digits,)g(executing)g Fn(universal-argument)315 921
(digits,)g(executing)g Fn(universal-argument)315 1004
y Fo(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
976 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)f
(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
1030 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
1059 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
1114 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
1085 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
1169 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
(executing)i(this)f(function)h(the)e(\014rst)h(time)315
1140 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
1223 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
1195 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1318 y Fc(1.4.6)30
1278 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1378 y Fc(1.4.6)30
b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
b(ou)75 1443 y Fn(complete)14 b(\()305 1441 y Ff(h)p
317 1414 74 2 v 317 1443 a Fe(T)m(AB)p 317 1450 V 389
1441 a Ff(i)404 1443 y Fn(\))315 1497 y Fo(A)o(ttempt)c(to)h(p)q
b(ou)75 1496 y Fn(complete)14 b(\()305 1494 y Ff(h)p
317 1468 74 2 v 317 1496 a Fe(T)m(AB)p 317 1504 V 389
1494 a Ff(i)404 1496 y Fn(\))315 1551 y Fo(A)o(ttempt)c(to)h(p)q
(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
b(The)11 b(actual)h(completion)315 1552 y(p)q(erformed)j(is)h
b(The)11 b(actual)h(completion)315 1606 y(p)q(erformed)j(is)h
(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
g(completion.)75 1637 y Fn(possible-completions)c(\(M-?\))315
1692 y Fo(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
q(efore)h(p)q(oin)o(t.)75 1777 y Fn(insert-completions)d(\(M-*\))315
1832 y Fo(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
g(completion.)75 1678 y Fn(possible-completions)c(\(M-?\))315
1732 y Fo(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
q(efore)h(p)q(oin)o(t.)75 1804 y Fn(insert-completions)d(\(M-*\))315
1859 y Fo(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
1887 y(b)o(y)f Fn(possible-completions)p Fo(.)75 1972
y Fn(menu-complete)e(\(\))315 2027 y Fo(Similar)g(to)f
1914 y(b)o(y)f Fn(possible-completions)p Fo(.)75 1985
y Fn(menu-complete)e(\(\))315 2040 y Fo(Similar)g(to)f
Fn(complete)p Fo(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
(completed)f(with)h(a)e(single)j(matc)o(h)315 2082 y(from)k(the)h(list)
(completed)f(with)h(a)e(single)j(matc)o(h)315 2095 y(from)k(the)h(list)
h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
b(execution)h(of)f Fn(menu-complete)315 2136 y Fo(steps)h(through)g
b(execution)h(of)f Fn(menu-complete)315 2150 y Fo(steps)h(through)g
(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
(matc)o(h)f(in)i(turn.)315 2191 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
(matc)o(h)f(in)i(turn.)315 2205 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
(the)i(setting)315 2246 y(of)f Fn(bell-style)p Fo(\))e(and)i(the)g
(the)i(setting)315 2259 y(of)f Fn(bell-style)p Fo(\))e(and)i(the)g
(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
Fd(n)i Fo(mo)o(v)o(es)e Fd(n)315 2301 y Fo(p)q(ositions)h(forw)o(ard)e
Fd(n)i Fo(mo)o(v)o(es)e Fd(n)315 2314 y Fo(p)q(ositions)h(forw)o(ard)e
(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
(ma)o(y)g(b)q(e)h(used)g(to)315 2356 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
(ma)o(y)g(b)q(e)h(used)g(to)315 2369 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
(b)q(e)h(b)q(ound)g(to)315 2408 y Ff(h)p 327 2382 V 327
2410 a Fe(T)m(AB)p 327 2418 V 399 2408 a Ff(i)414 2410
(b)q(e)h(b)q(ound)g(to)315 2422 y Ff(h)p 327 2396 V 327
2424 a Fe(T)m(AB)p 327 2431 V 399 2422 a Ff(i)414 2424
y Fo(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)75
2496 y Fn(delete-char-or-list)e(\(\))315 2550 y Fo(Deletes)h(the)f(c)o
(haracter)g(under)h(the)g(cursor)f(if)h(not)f(at)g(the)g(b)q(eginning)j
-61
View File
@@ -1,61 +0,0 @@
/* posixdir.h -- Posix directory reading includes and defines. */
/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option)
any later version.
Bash 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 Bash; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
/* This file should be included instead of <dirent.h> or <sys/dir.h>. */
#if !defined (_POSIXDIR_H_)
#define _POSIXDIR_H_
#if defined (HAVE_DIRENT_H)
# include <dirent.h>
# if defined (HAVE_STRUCT_DIRENT_D_NAMLEN)
# define D_NAMLEN(d) ((d)->d_namlen)
# else
# define D_NAMLEN(d) (strlen ((d)->d_name))
# endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */
#else
# if defined (HAVE_SYS_NDIR_H)
# include <sys/ndir.h>
# endif
# if defined (HAVE_SYS_DIR_H)
# include <sys/dir.h>
# endif
# if defined (HAVE_NDIR_H)
# include <ndir.h>
# endif
# if !defined (dirent)
# define dirent direct
# endif /* !dirent */
# define D_NAMLEN(d) ((d)->d_namlen)
#endif /* !HAVE_DIRENT_H */
#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
# define d_fileno d_ino
#endif
#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO))
/* Posix does not require that the d_ino field be present, and some
systems do not provide it. */
# define REAL_DIR_ENTRY(dp) 1
#else
# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
#endif /* _POSIX_SOURCE */
#endif /* !_POSIXDIR_H_ */
+1
View File
@@ -0,0 +1 @@
../../include/posixdir.h
-40
View File
@@ -1,40 +0,0 @@
/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */
/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option)
any later version.
Bash 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 Bash; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#ifndef _POSIXJMP_H_
#define _POSIXJMP_H_
#include <setjmp.h>
/* This *must* be included *after* config.h */
#if defined (HAVE_POSIX_SIGSETJMP)
# define procenv_t sigjmp_buf
# if !defined (__OPENNT)
# undef setjmp
# define setjmp(x) sigsetjmp((x), 1)
# undef longjmp
# define longjmp(x, n) siglongjmp((x), (n))
# endif /* !__OPENNT */
#else
# define procenv_t jmp_buf
#endif
#endif /* _POSIXJMP_H_ */
+1
View File
@@ -0,0 +1 @@
../../include/posixjmp.h
-142
View File
@@ -1,142 +0,0 @@
/* posixstat.h -- Posix stat(2) definitions for systems that
don't have them. */
/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option)
any later version.
Bash 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 Bash; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
/* This file should be included instead of <sys/stat.h>.
It relies on the local sys/stat.h to work though. */
#if !defined (_POSIXSTAT_H_)
#define _POSIXSTAT_H_
#include <sys/stat.h>
#if defined (STAT_MACROS_BROKEN)
# undef S_ISBLK
# undef S_ISCHR
# undef S_ISDIR
# undef S_ISFIFO
# undef S_ISREG
# undef S_ISLNK
#endif /* STAT_MACROS_BROKEN */
/* These are guaranteed to work only on isc386 */
#if !defined (S_IFDIR) && !defined (S_ISDIR)
# define S_IFDIR 0040000
#endif /* !S_IFDIR && !S_ISDIR */
#if !defined (S_IFMT)
# define S_IFMT 0170000
#endif /* !S_IFMT */
/* Posix 1003.1 5.6.1.1 <sys/stat.h> file types */
/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but
do not provide the S_IS* macros that Posix requires. */
#if defined (_S_IFMT) && !defined (S_IFMT)
#define S_IFMT _S_IFMT
#endif
#if defined (_S_IFIFO) && !defined (S_IFIFO)
#define S_IFIFO _S_IFIFO
#endif
#if defined (_S_IFCHR) && !defined (S_IFCHR)
#define S_IFCHR _S_IFCHR
#endif
#if defined (_S_IFDIR) && !defined (S_IFDIR)
#define S_IFDIR _S_IFDIR
#endif
#if defined (_S_IFBLK) && !defined (S_IFBLK)
#define S_IFBLK _S_IFBLK
#endif
#if defined (_S_IFREG) && !defined (S_IFREG)
#define S_IFREG _S_IFREG
#endif
#if defined (_S_IFLNK) && !defined (S_IFLNK)
#define S_IFLNK _S_IFLNK
#endif
#if defined (_S_IFSOCK) && !defined (S_IFSOCK)
#define S_IFSOCK _S_IFSOCK
#endif
/* Test for each symbol individually and define the ones necessary (some
systems claiming Posix compatibility define some but not all). */
#if defined (S_IFBLK) && !defined (S_ISBLK)
#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */
#endif
#if defined (S_IFCHR) && !defined (S_ISCHR)
#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */
#endif
#if defined (S_IFDIR) && !defined (S_ISDIR)
#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */
#endif
#if defined (S_IFREG) && !defined (S_ISREG)
#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */
#endif
#if defined (S_IFIFO) && !defined (S_ISFIFO)
#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */
#endif
#if defined (S_IFLNK) && !defined (S_ISLNK)
#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */
#endif
#if defined (S_IFSOCK) && !defined (S_ISSOCK)
#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */
#endif
/*
* POSIX 1003.1 5.6.1.2 <sys/stat.h> File Modes
*/
#if !defined (S_IRWXU)
# if !defined (S_IREAD)
# define S_IREAD 00400
# define S_IWRITE 00200
# define S_IEXEC 00100
# endif /* S_IREAD */
# if !defined (S_IRUSR)
# define S_IRUSR S_IREAD /* read, owner */
# define S_IWUSR S_IWRITE /* write, owner */
# define S_IXUSR S_IEXEC /* execute, owner */
# define S_IRGRP (S_IREAD >> 3) /* read, group */
# define S_IWGRP (S_IWRITE >> 3) /* write, group */
# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
# define S_IROTH (S_IREAD >> 6) /* read, other */
# define S_IWOTH (S_IWRITE >> 6) /* write, other */
# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
# endif /* !S_IRUSR */
# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
#endif /* !S_IRWXU */
/* These are non-standard, but are used in builtins.c$symbolic_umask() */
#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)
#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH)
#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
#endif /* _POSIXSTAT_H_ */
+1
View File
@@ -0,0 +1 @@
../../include/posixstat.h
-458
View File
@@ -1,458 +0,0 @@
/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
This file is part of GNU Readline, a library for reading lines
of text with interactive input and history editing.
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 2, or (at your option) any
later version.
Readline 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 Readline; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
#if defined (HAVE_UNISTD_H)
# ifdef _MINIX
# include <sys/types.h>
# endif
# include <unistd.h>
#endif
#if defined (HAVE_STRING_H)
# include <string.h>
#else /* !HAVE_STRING_H */
# include <strings.h>
#endif /* !HAVE_STRING_H */
#if defined (HAVE_STDLIB_H)
# include <stdlib.h>
#else
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#include <sys/types.h>
#include <pwd.h>
#include "tilde.h"
#if defined (TEST) || defined (STATIC_MALLOC)
static void *xmalloc (), *xrealloc ();
#else
# include "xmalloc.h"
#endif /* TEST || STATIC_MALLOC */
#if !defined (HAVE_GETPW_DECLS)
extern struct passwd *getpwuid PARAMS((uid_t));
extern struct passwd *getpwnam PARAMS((const char *));
#endif /* !HAVE_GETPW_DECLS */
#if !defined (savestring)
#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
#endif /* !savestring */
#if !defined (NULL)
# if defined (__STDC__)
# define NULL ((void *) 0)
# else
# define NULL 0x0
# endif /* !__STDC__ */
#endif /* !NULL */
/* If being compiled as part of bash, these will be satisfied from
variables.o. If being compiled as part of readline, they will
be satisfied from shell.o. */
extern char *sh_get_home_dir PARAMS((void));
extern char *sh_get_env_value PARAMS((const char *));
/* The default value of tilde_additional_prefixes. This is set to
whitespace preceding a tilde so that simple programs which do not
perform any word separation get desired behaviour. */
static const char *default_prefixes[] =
{ " ~", "\t~", (const char *)NULL };
/* The default value of tilde_additional_suffixes. This is set to
whitespace or newline so that simple programs which do not
perform any word separation get desired behaviour. */
static const char *default_suffixes[] =
{ " ", "\n", (const char *)NULL };
/* If non-null, this contains the address of a function that the application
wants called before trying the standard tilde expansions. The function
is called with the text sans tilde, and returns a malloc()'ed string
which is the expansion, or a NULL pointer if the expansion fails. */
tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL;
/* If non-null, this contains the address of a function to call if the
standard meaning for expanding a tilde fails. The function is called
with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
which is the expansion, or a NULL pointer if there is no expansion. */
tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL;
/* When non-null, this is a NULL terminated array of strings which
are duplicates for a tilde prefix. Bash uses this to expand
`=~' and `:~'. */
char **tilde_additional_prefixes = (char **)default_prefixes;
/* When non-null, this is a NULL terminated array of strings which match
the end of a username, instead of just "/". Bash sets this to
`:' and `=~'. */
char **tilde_additional_suffixes = (char **)default_suffixes;
static int tilde_find_prefix PARAMS((const char *, int *));
static int tilde_find_suffix PARAMS((const char *));
static char *isolate_tilde_prefix PARAMS((const char *, int *));
static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
/* Find the start of a tilde expansion in STRING, and return the index of
the tilde which starts the expansion. Place the length of the text
which identified this tilde starter in LEN, excluding the tilde itself. */
static int
tilde_find_prefix (string, len)
const char *string;
int *len;
{
register int i, j, string_len;
register char **prefixes;
prefixes = tilde_additional_prefixes;
string_len = strlen (string);
*len = 0;
if (*string == '\0' || *string == '~')
return (0);
if (prefixes)
{
for (i = 0; i < string_len; i++)
{
for (j = 0; prefixes[j]; j++)
{
if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
{
*len = strlen (prefixes[j]) - 1;
return (i + *len);
}
}
}
}
return (string_len);
}
/* Find the end of a tilde expansion in STRING, and return the index of
the character which ends the tilde definition. */
static int
tilde_find_suffix (string)
const char *string;
{
register int i, j, string_len;
register char **suffixes;
suffixes = tilde_additional_suffixes;
string_len = strlen (string);
for (i = 0; i < string_len; i++)
{
#if defined (__MSDOS__)
if (string[i] == '/' || string[i] == '\\' /* || !string[i] */)
#else
if (string[i] == '/' /* || !string[i] */)
#endif
break;
for (j = 0; suffixes && suffixes[j]; j++)
{
if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
return (i);
}
}
return (i);
}
/* Return a new string which is the result of tilde expanding STRING. */
char *
tilde_expand (string)
const char *string;
{
char *result;
int result_size, result_index;
result_index = result_size = 0;
if (result = strchr (string, '~'))
result = (char *)xmalloc (result_size = (strlen (string) + 16));
else
result = (char *)xmalloc (result_size = (strlen (string) + 1));
/* Scan through STRING expanding tildes as we come to them. */
while (1)
{
register int start, end;
char *tilde_word, *expansion;
int len;
/* Make START point to the tilde which starts the expansion. */
start = tilde_find_prefix (string, &len);
/* Copy the skipped text into the result. */
if ((result_index + start + 1) > result_size)
result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
strncpy (result + result_index, string, start);
result_index += start;
/* Advance STRING to the starting tilde. */
string += start;
/* Make END be the index of one after the last character of the
username. */
end = tilde_find_suffix (string);
/* If both START and END are zero, we are all done. */
if (!start && !end)
break;
/* Expand the entire tilde word, and copy it into RESULT. */
tilde_word = (char *)xmalloc (1 + end);
strncpy (tilde_word, string, end);
tilde_word[end] = '\0';
string += end;
expansion = tilde_expand_word (tilde_word);
free (tilde_word);
len = strlen (expansion);
#ifdef __CYGWIN__
/* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when
$HOME for `user' is /. On cygwin, // denotes a network drive. */
if (len > 1 || *expansion != '/' || *string != '/')
#endif
{
if ((result_index + len + 1) > result_size)
result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
strcpy (result + result_index, expansion);
result_index += len;
}
free (expansion);
}
result[result_index] = '\0';
return (result);
}
/* Take FNAME and return the tilde prefix we want expanded. If LENP is
non-null, the index of the end of the prefix into FNAME is returned in
the location it points to. */
static char *
isolate_tilde_prefix (fname, lenp)
const char *fname;
int *lenp;
{
char *ret;
int i;
ret = (char *)xmalloc (strlen (fname));
#if defined (__MSDOS__)
for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
#else
for (i = 1; fname[i] && fname[i] != '/'; i++)
#endif
ret[i - 1] = fname[i];
ret[i - 1] = '\0';
if (lenp)
*lenp = i;
return ret;
}
/* Return a string that is PREFIX concatenated with SUFFIX starting at
SUFFIND. */
static char *
glue_prefix_and_suffix (prefix, suffix, suffind)
char *prefix;
const char *suffix;
int suffind;
{
char *ret;
int plen, slen;
plen = (prefix && *prefix) ? strlen (prefix) : 0;
slen = strlen (suffix + suffind);
ret = (char *)xmalloc (plen + slen + 1);
if (plen)
strcpy (ret, prefix);
strcpy (ret + plen, suffix + suffind);
return ret;
}
/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
tilde. If there is no expansion, call tilde_expansion_failure_hook.
This always returns a newly-allocated string, never static storage. */
char *
tilde_expand_word (filename)
const char *filename;
{
char *dirname, *expansion, *username;
int user_len;
struct passwd *user_entry;
if (filename == 0)
return ((char *)NULL);
if (*filename != '~')
return (savestring (filename));
/* A leading `~/' or a bare `~' is *always* translated to the value of
$HOME or the home directory of the current user, regardless of any
preexpansion hook. */
if (filename[1] == '\0' || filename[1] == '/')
{
/* Prefix $HOME to the rest of the string. */
expansion = sh_get_env_value ("HOME");
/* If there is no HOME variable, look up the directory in
the password database. */
if (expansion == 0)
expansion = sh_get_home_dir ();
return (glue_prefix_and_suffix (expansion, filename, 1));
}
username = isolate_tilde_prefix (filename, &user_len);
if (tilde_expansion_preexpansion_hook)
{
expansion = (*tilde_expansion_preexpansion_hook) (username);
if (expansion)
{
dirname = glue_prefix_and_suffix (expansion, filename, user_len);
free (username);
free (expansion);
return (dirname);
}
}
/* No preexpansion hook, or the preexpansion hook failed. Look in the
password database. */
dirname = (char *)NULL;
user_entry = getpwnam (username);
if (user_entry == 0)
{
/* If the calling program has a special syntax for expanding tildes,
and we couldn't find a standard expansion, then let them try. */
if (tilde_expansion_failure_hook)
{
expansion = (*tilde_expansion_failure_hook) (username);
if (expansion)
{
dirname = glue_prefix_and_suffix (expansion, filename, user_len);
free (expansion);
}
}
free (username);
/* If we don't have a failure hook, or if the failure hook did not
expand the tilde, return a copy of what we were passed. */
if (dirname == 0)
dirname = savestring (filename);
}
else
{
free (username);
dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
}
endpwent ();
return (dirname);
}
#if defined (TEST)
#undef NULL
#include <stdio.h>
main (argc, argv)
int argc;
char **argv;
{
char *result, line[512];
int done = 0;
while (!done)
{
printf ("~expand: ");
fflush (stdout);
if (!gets (line))
strcpy (line, "done");
if ((strcmp (line, "done") == 0) ||
(strcmp (line, "quit") == 0) ||
(strcmp (line, "exit") == 0))
{
done = 1;
break;
}
result = tilde_expand (line);
printf (" --> %s\n", result);
free (result);
}
exit (0);
}
static void memory_error_and_abort ();
static void *
xmalloc (bytes)
size_t bytes;
{
void *temp = (char *)malloc (bytes);
if (!temp)
memory_error_and_abort ();
return (temp);
}
static void *
xrealloc (pointer, bytes)
void *pointer;
int bytes;
{
void *temp;
if (!pointer)
temp = malloc (bytes);
else
temp = realloc (pointer, bytes);
if (!temp)
memory_error_and_abort ();
return (temp);
}
static void
memory_error_and_abort ()
{
fprintf (stderr, "readline: out of virtual memory\n");
abort ();
}
/*
* Local variables:
* compile-command: "gcc -g -DTEST -o tilde tilde.c"
* end:
*/
#endif /* TEST */
+1
View File
@@ -0,0 +1 @@
../tilde/tilde.c
-78
View File
@@ -1,78 +0,0 @@
/* tilde.h: Externally available variables and function in libtilde.a. */
/* Copyright (C) 1992 Free Software Foundation, Inc.
This file contains the Readline Library (the Library), a set of
routines for providing Emacs style line input to programs that ask
for it.
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 2, or (at your option)
any later version.
The 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
General Public License for more details.
The GNU General Public License is often shipped with GNU software, and
is generally kept in a file called COPYING or LICENSE. If you do not
have a copy of the license, write to the Free Software Foundation,
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#if !defined (_TILDE_H_)
# define _TILDE_H_
#ifdef __cplusplus
extern "C" {
#endif
/* A function can be defined using prototypes and compile on both ANSI C
and traditional C compilers with something like this:
extern char *func PARAMS((char *, char *, int)); */
#if !defined (PARAMS)
# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
# define PARAMS(protos) protos
# else
# define PARAMS(protos) ()
# endif
#endif
typedef char *tilde_hook_func_t PARAMS((char *));
/* If non-null, this contains the address of a function that the application
wants called before trying the standard tilde expansions. The function
is called with the text sans tilde, and returns a malloc()'ed string
which is the expansion, or a NULL pointer if the expansion fails. */
extern tilde_hook_func_t *tilde_expansion_preexpansion_hook;
/* If non-null, this contains the address of a function to call if the
standard meaning for expanding a tilde fails. The function is called
with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
which is the expansion, or a NULL pointer if there is no expansion. */
extern tilde_hook_func_t *tilde_expansion_failure_hook;
/* When non-null, this is a NULL terminated array of strings which
are duplicates for a tilde prefix. Bash uses this to expand
`=~' and `:~'. */
extern char **tilde_additional_prefixes;
/* When non-null, this is a NULL terminated array of strings which match
the end of a username, instead of just "/". Bash sets this to
`:' and `=~'. */
extern char **tilde_additional_suffixes;
/* Return a new string which is the result of tilde expanding STRING. */
extern char *tilde_expand PARAMS((const char *));
/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
tilde. If there is no expansion, call tilde_expansion_failure_hook. */
extern char *tilde_expand_word PARAMS((const char *));
#ifdef __cplusplus
}
#endif
#endif /* _TILDE_H_ */
+1
View File
@@ -0,0 +1 @@
../tilde/tilde.h
+1
View File
@@ -355,6 +355,7 @@ COMMAND *
make_case_command (word, clauses, lineno)
WORD_DESC *word;
PATTERN_LIST *clauses;
int lineno;
{
CASE_COM *temp;
-30
View File
@@ -1,30 +0,0 @@
/* pathnames.h -- absolute filenames that bash wants for various defaults. */
/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
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 2, or (at your option)
any later version.
Bash 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 Bash; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#if !defined (_PATHNAMES_H_)
#define _PATHNAMES_H_
/* The default file for hostname completion. */
#define DEFAULT_HOSTS_FILE "/etc/hosts"
/* The default login shell startup file. */
#define SYS_PROFILE "/etc/profile"
#endif /* _PATHNAMES_H */
+5623
View File
File diff suppressed because it is too large Load Diff
+7376
View File
File diff suppressed because it is too large Load Diff
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
-1
View File
@@ -1 +0,0 @@
$
+72
View File
@@ -0,0 +1,72 @@
tf is a function
tf ()
{
echo this is ${0##*/} >/dev/null;
echo a | cat - >/dev/null;
test -f ${0##*/} && echo ${0##*/} is a regular file;
test -d ${0##*/} || echo ${0##*/} is not a directory;
echo a;
echo b;
echo c;
echo background >/dev/null & ( exit 1 );
echo $?;
{
echo a
};
i=0;
while (( " i < 3 " )); do
test -r /dev/fd/$i;
i=$(( i + 1 ));
done;
[[ -r /dev/fd/0 && -w /dev/fd/1 ]] || echo oops >/dev/null;
for name in $( echo 1 2 3 );
do
test -r /dev/fd/$name;
done;
if [[ -r /dev/fd/0 && -w /dev/fd/1 ]]; then
echo ok >/dev/null;
else
if (( " 7 > 40 " )); then
echo oops;
else
echo done;
fi;
fi >/dev/null;
case $PATH in
*$PWD*)
echo \$PWD in \$PATH
;;
*)
echo \$PWD not in \$PATH
;;
esac >/dev/null;
while false; do
echo z;
done >/dev/null;
until true; do
echo z;
done >/dev/null;
echo \&\|'()' \{ echo abcde \; \};
eval fu\%nc'()' \{ echo abcde \; \};
type fu\%nc
}
tf2 is a function
tf2 ()
{
( {
time -p echo a | cat - >/dev/null
} ) 2>&1
}
cprint.tests is a regular file
cprint.tests is not a directory
a
b
c
1
a
&|() { echo abcde ; }
fu%nc is a function
fu%nc ()
{
echo abcde
}
+97
View File
@@ -0,0 +1,97 @@
trap 'rm /tmp/newhistory' 0
# bad options
history -x
# cannot use -r and -w at the same time
history -r -w /dev/null
# bad option
fc -v
# all of these should result in an empty history list
history -c
history -r /dev/null
history -n /dev/null
history -c
HISTFILE=history.list
HISTCONTROL=ignoreboth
HISTIGNORE='&:history*:fc*'
HISTSIZE=32
shopt -s cmdhist
set -o history
history
fc -l
fc -nl
fc -lr
fc -nlr
history -s "echo line for history"
history
history -p '!!'
fc -nl
HISTFILE=/tmp/newhistory
history -a
echo displaying \$HISTFILE after history -a
cat $HISTFILE
history
history -w
cat $HISTFILE
history -s "echo line 2 for history"
history
history -p '!e'
history -p '!!'
# this should show up as one history entry
for x in one two three
do
:
done
history
# just a basic test. a full test suite for history expansion should be
# created
set -H
!!
!e
unset HISTSIZE
unset HISTFILE
fc -l 4
fc -l 4 8
fc -l 502
fc -l one=two three=four 502
history 4
shopt -so history
shopt -s expand_aliases
alias r="fc -s"
echo aa ab ac
r a=x
r x=4 b=8
# this had better fail with `no command found'
r cc
unalias -a
alias
set +o history
shopt -q -o history
echo $?
+50
View File
@@ -0,0 +1,50 @@
:; ./shx
sh:
<&$fd ok
nlbq Mon Aug 3 02:45:00 EDT 1992
bang geoff
quote 712824302
setbq defmsgid=<1992Aug3.024502.6176@host>
bgwait sleep done... wait 6187
bash:
<&$fd ok
nlbq Mon Aug 3 02:45:09 EDT 1992
bang geoff
quote 712824311
setbq defmsgid=<1992Aug3.024512.6212@host>
bgwait sleep done... wait 6223
ash:
<&$fd shx1: 4: Syntax error: Bad fd number
nlbq Mon Aug 3 02:45:19 EDT 1992
bang geoff
quote getdate: `"now"' not a valid date
setbq defmsgid=<1992Aug3.` echo 024521
bgwait sleep done... wait 6241
ksh:
<&$fd ok
nlbq ./shx: 6248 Memory fault - core dumped
bang geoff
quote getdate: `"now"' not a valid date
setbq defmsgid=<1992Aug3.024530.6257@host>
bgwait no such job: 6265
wait 6265
sleep done...
zsh:
<&$fd ok
nlbq Mon Aug 3 02:45:36 EDT 1992
bang shx3: event not found: /s/ [4]
quote 712824337
setbq defmsgid=<..6290@host>
bgwait shx7: unmatched " [9]
sleep done...
:;
+10
View File
@@ -0,0 +1,10 @@
#! /bin/sh
for cmd in sh bash ash ksh zsh
do
echo
echo $cmd:
for demo in shx?
do
$cmd $demo
done
done
+4
View File
@@ -0,0 +1,4 @@
echo "warning: all of these tests will fail if history has not been compiled" >&2
echo "warning: into the shell" >&2
${THIS_SH} +o histexpand ./histexp.tests > /tmp/xx 2>&1
diff /tmp/xx histexp.right && rm -f /tmp/xx