mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-03 10:20:49 +02:00
commit bash-20040728 snapshot
This commit is contained in:
@@ -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
File diff suppressed because it is too large
Load Diff
Symlink
+1
@@ -0,0 +1 @@
|
||||
CWRU.chlog
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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' )
|
||||
);
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "../flags.h"
|
||||
#include "../input.h"
|
||||
#include "../execute_cmd.h"
|
||||
#include "../trap.h"
|
||||
|
||||
#if defined (HISTORY)
|
||||
# include "../bashhist.h"
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+1745
File diff suppressed because it is too large
Load Diff
+1745
File diff suppressed because it is too large
Load Diff
+8583
File diff suppressed because it is too large
Load Diff
+2
-3
@@ -642,7 +642,6 @@ command:
|
||||
</DL>
|
||||
|
||||
|
||||
|
||||
<A NAME="lbAK"> </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>
|
||||
|
||||
Binary file not shown.
+11
-10
@@ -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
|
||||
|
||||
Binary file not shown.
+6
-6
@@ -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
@@ -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).
|
||||
|
||||
Binary file not shown.
+12773
-11041
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -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
@@ -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
|
||||
|
||||
Executable
+44
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
Symlink
+1
@@ -0,0 +1 @@
|
||||
texinfo.tex.20030205
|
||||
Executable
+549
@@ -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
|
||||
@@ -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));
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "bashintl.h"
|
||||
|
||||
#include "shell.h"
|
||||
#include "test.h"
|
||||
|
||||
#include <tilde/tilde.h>
|
||||
|
||||
#if !defined (errno)
|
||||
|
||||
@@ -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
@@ -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 */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../include/ansi_stdlib.h
|
||||
@@ -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
@@ -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:
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../doc/fdl.texi
|
||||
Binary file not shown.
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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.
+541
-480
File diff suppressed because it is too large
Load Diff
+106
-64
@@ -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
|
||||
|
||||
+932
-858
File diff suppressed because it is too large
Load Diff
@@ -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}{}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}}
|
||||
|
||||
@@ -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
@@ -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).
|
||||
|
||||
@@ -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.
@@ -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 ()}}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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_ */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../include/posixdir.h
|
||||
@@ -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_ */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../include/posixjmp.h
|
||||
@@ -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_ */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../include/posixstat.h
|
||||
@@ -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 */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../tilde/tilde.c
|
||||
@@ -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_ */
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../tilde/tilde.h
|
||||
@@ -355,6 +355,7 @@ COMMAND *
|
||||
make_case_command (word, clauses, lineno)
|
||||
WORD_DESC *word;
|
||||
PATTERN_LIST *clauses;
|
||||
int lineno;
|
||||
{
|
||||
CASE_COM *temp;
|
||||
|
||||
|
||||
-30
@@ -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
File diff suppressed because it is too large
Load Diff
+7376
File diff suppressed because it is too large
Load Diff
Executable → Regular
Executable → Regular
Executable → Regular
@@ -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
|
||||
}
|
||||
@@ -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 $?
|
||||
@@ -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...
|
||||
:;
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user