mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-28 07:59:50 +02:00
commit bash-20090319 snapshot
This commit is contained in:
@@ -601,7 +601,7 @@ bb. The command assigned to a key sequence with `bind -x' now sets two new
|
||||
and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT,
|
||||
respectively.
|
||||
|
||||
cc. There is a new >>& redirection operator, which appends the standard output
|
||||
cc. There is a new &>> redirection operator, which appends the standard output
|
||||
and standard error to the named file.
|
||||
|
||||
dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects
|
||||
|
||||
@@ -7710,6 +7710,14 @@ parse.y
|
||||
{.,lib/readline}/doc/fdl.texi
|
||||
- updated to FDL version 1.3
|
||||
|
||||
3/11
|
||||
----
|
||||
parse.y
|
||||
- when using the |& construct with a simple command preceding it, add
|
||||
the implicit redirection to the simple command's redirection list,
|
||||
since the redirections associated with the command struct are never
|
||||
executed. Fixes bug reported by Matt Zyzik <Matt@ice.filescope.com>
|
||||
|
||||
3/14
|
||||
----
|
||||
execute_cmd.c
|
||||
@@ -7770,3 +7778,55 @@ subst.c
|
||||
expand_word_internal if $IFS is NULL, just like expand_word_unsplit.
|
||||
It is now virtually identical to expand_word_unsplit. Rest of fix for
|
||||
problems reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
|
||||
|
||||
3/20
|
||||
----
|
||||
trap.c
|
||||
- in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to
|
||||
parse_and_execute if running the ERR trap (further modification
|
||||
of change from 1/12)
|
||||
|
||||
execute_cmd.c
|
||||
- in execute_simple_command, set line_number to line_number_for_err_trap
|
||||
before calling run_error_trap. Part of fix for bug reported by
|
||||
Brian J. Murrell <brian@interlinx.bc.ca>
|
||||
- change other places calling run_error_trap() to set and use
|
||||
line_number_for_err_trap
|
||||
|
||||
3/21
|
||||
----
|
||||
builtins/fc.def
|
||||
- Even though command substitution through parse_and_execute turns
|
||||
off remember_on_history, command substitution in a shell when
|
||||
set -o history has been enabled (interactive or not) should use it
|
||||
in the last_hist calculation as if it were on. Same calculation
|
||||
in fc_gethnum and fc_builtin. Fixes bug reported by
|
||||
<smallnow@gmail.com>
|
||||
|
||||
sig.c
|
||||
- change termsig_sighandler to terminate immediately if it gets called
|
||||
twice with the same signal before termsig_handler gets called. This
|
||||
fixes the `looping on SIGSEGV' phenomenon reported by Linux users.
|
||||
|
||||
parse.y
|
||||
- in read_secondary_line, don't try to add NULL lines to the history
|
||||
list. Report and patch from Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
3/22
|
||||
----
|
||||
sig.c
|
||||
- Augment change from 3/21 with explicit check for signals we *don't*
|
||||
want this to happen for. Patch from Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
3/28
|
||||
----
|
||||
array.c
|
||||
- in array_reference, return NULL immediately if the desired index
|
||||
is larger than the maximum
|
||||
- add cache of last array referenced and last array element referenced;
|
||||
use in array_reference to optimize case of sequential access;
|
||||
invalidated where necessary in other functions
|
||||
- array_rshift needs to set max_index to 0 if the array was empty
|
||||
before shifting in the new element 0
|
||||
- array_shift needs to use element_index(a->head->prev) to set the
|
||||
max_index, not a simple decrement, to deal with sparse arrays
|
||||
|
||||
+61
-3
@@ -7710,6 +7710,14 @@ parse.y
|
||||
{.,lib/readline}/doc/fdl.texi
|
||||
- updated to FDL version 1.3
|
||||
|
||||
3/11
|
||||
----
|
||||
parse.y
|
||||
- when using the |& construct with a simple command preceding it, add
|
||||
the implicit redirection to the simple command's redirection list,
|
||||
since the redirections associated with the command struct are never
|
||||
executed. Fixes bug reported by Matt Zyzik <Matt@ice.filescope.com>
|
||||
|
||||
3/14
|
||||
----
|
||||
execute_cmd.c
|
||||
@@ -7764,9 +7772,59 @@ subst.c
|
||||
- param_expand now checks for Q_PATQUOTE and treats it identically
|
||||
to Q_DOUBLE_QUOTES when expanding $*
|
||||
- expand_word_unsplit now sets W_NOSPLIT in the flags of the word it
|
||||
passes to expand_word_internal
|
||||
passes to expand_word_internal if $IFS is NULL
|
||||
- expand_word_leave_quoted now sets expand_no_split_dollar_start and
|
||||
the W_NOSPLIT bit in the word flags before calling
|
||||
expand_word_internal, just like expand_word_unsplit. It is now
|
||||
virtually identical to expand_word_unsplit. Rest of fix for
|
||||
expand_word_internal if $IFS is NULL, just like expand_word_unsplit.
|
||||
It is now virtually identical to expand_word_unsplit. Rest of fix for
|
||||
problems reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
|
||||
|
||||
3/20
|
||||
----
|
||||
trap.c
|
||||
- in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to
|
||||
parse_and_execute if running the ERR trap (further modification
|
||||
of change from 1/12)
|
||||
|
||||
execute_cmd.c
|
||||
- in execute_simple_command, set line_number to line_number_for_err_trap
|
||||
before calling run_error_trap. Part of fix for bug reported by
|
||||
Brian J. Murrell <brian@interlinx.bc.ca>
|
||||
- change other places calling run_error_trap() to set and use
|
||||
line_number_for_err_trap
|
||||
|
||||
3/21
|
||||
----
|
||||
builtins/fc.def
|
||||
- Even though command substitution through parse_and_execute turns
|
||||
off remember_on_history, command substitution in a shell when
|
||||
set -o history has been enabled (interactive or not) should use it
|
||||
in the last_hist calculation as if it were on. Same calculation
|
||||
in fc_gethnum and fc_builtin. Fixes bug reported by
|
||||
<smallnow@gmail.com>
|
||||
|
||||
sig.c
|
||||
- change termsig_sighandler to terminate immediately if it gets called
|
||||
twice with the same signal before termsig_handler gets called. This
|
||||
fixes the `looping on SIGSEGV' phenomenon reported by Linux users.
|
||||
|
||||
parse.y
|
||||
- in read_secondary_line, don't try to add NULL lines to the history
|
||||
list. Report and patch from Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
3/22
|
||||
----
|
||||
sig.c
|
||||
- Augment change from 3/21 with explicit check for signals we *don't*
|
||||
want this to happen for. Patch from Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
3/28
|
||||
----
|
||||
array.c
|
||||
- in array_reference, return NULL immediately if the desired index
|
||||
is larger than the maximum
|
||||
- add cache of last array referenced and last array element referenced;
|
||||
use in array_reference to optimize case of sequential access;
|
||||
invalidated where necessary in other functions
|
||||
- array_rshift needs to set max_index to 0 if the array was empty
|
||||
before shifting in the new element 0
|
||||
|
||||
@@ -859,6 +859,7 @@ tests/history.tests f
|
||||
tests/history.right f
|
||||
tests/history.list f 444
|
||||
tests/history1.sub f
|
||||
tests/history2.sub f
|
||||
tests/ifs.tests f
|
||||
tests/ifs.right f
|
||||
tests/ifs-posix.tests f
|
||||
@@ -1035,6 +1036,7 @@ tests/trap.right f
|
||||
tests/trap1.sub f 755
|
||||
tests/trap2.sub f 755
|
||||
tests/trap2a.sub f 755
|
||||
tests/trap3.sub f
|
||||
tests/type.tests f
|
||||
tests/type.right f
|
||||
tests/type1.sub f
|
||||
|
||||
@@ -798,9 +798,11 @@ tests/dbg-support3.sub f
|
||||
tests/dollar-at-star f
|
||||
tests/dollar-at1.sub f
|
||||
tests/dollar-at2.sub f
|
||||
tests/dollar-at3.sub f
|
||||
tests/dollar-star1.sub f
|
||||
tests/dollar-star2.sub f
|
||||
tests/dollar-star3.sub f
|
||||
tests/dollar-star4.sub f
|
||||
tests/dollar.right f
|
||||
tests/dstack.tests f
|
||||
tests/dstack.right f
|
||||
@@ -857,6 +859,7 @@ tests/history.tests f
|
||||
tests/history.right f
|
||||
tests/history.list f 444
|
||||
tests/history1.sub f
|
||||
tests/history2.sub f
|
||||
tests/ifs.tests f
|
||||
tests/ifs.right f
|
||||
tests/ifs-posix.tests f
|
||||
|
||||
@@ -55,6 +55,31 @@
|
||||
|
||||
static char *array_to_string_internal __P((ARRAY_ELEMENT *, ARRAY_ELEMENT *, char *, int));
|
||||
|
||||
static ARRAY *lastarray = 0;
|
||||
static ARRAY_ELEMENT *lastref = 0;
|
||||
|
||||
#define IS_LASTREF(a) ((a) == lastarray)
|
||||
|
||||
#define INVALIDATE_LASTREF(a) \
|
||||
do { \
|
||||
if ((a) == lastarray) { \
|
||||
lastarray = 0; \
|
||||
lastref = 0; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define SET_LASTREF(a, e) \
|
||||
do { \
|
||||
lastarray = (a); \
|
||||
lastref = (e); \
|
||||
} while (0)
|
||||
|
||||
#define UNSET_LASTREF() \
|
||||
do { \
|
||||
lastarray = 0; \
|
||||
lastref = 0; \
|
||||
} while (0)
|
||||
|
||||
ARRAY *
|
||||
array_create()
|
||||
{
|
||||
@@ -87,6 +112,7 @@ ARRAY *a;
|
||||
a->head->next = a->head->prev = a->head;
|
||||
a->max_index = -1;
|
||||
a->num_elements = 0;
|
||||
INVALIDATE_LASTREF(a);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -185,6 +211,7 @@ int n, flags;
|
||||
if (a == 0 || array_empty(a) || n <= 0)
|
||||
return ((ARRAY_ELEMENT *)NULL);
|
||||
|
||||
INVALIDATE_LASTREF(a);
|
||||
for (i = 0, ret = ae = element_forw(a->head); ae != a->head && i < n; ae = element_forw(ae), i++)
|
||||
;
|
||||
if (ae == a->head) {
|
||||
@@ -214,7 +241,7 @@ int n, flags;
|
||||
element_index(ae) -= n; /* renumber retained indices */
|
||||
|
||||
a->num_elements -= n; /* modify bookkeeping information */
|
||||
a->max_index -= n;
|
||||
a->max_index = element_index(a->head->prev);
|
||||
|
||||
if (flags & AS_DISPOSE) {
|
||||
for (ae = ret; ae; ) {
|
||||
@@ -251,8 +278,10 @@ char *s;
|
||||
new = array_create_element(0, s);
|
||||
ADD_BEFORE(ae, new);
|
||||
a->num_elements++;
|
||||
if (array_num_elements(a) == 1) /* array was empty */
|
||||
if (array_num_elements(a) == 1) { /* array was empty */
|
||||
a->max_index = 0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -263,6 +292,7 @@ char *s;
|
||||
|
||||
a->max_index = element_index(a->head->prev);
|
||||
|
||||
INVALIDATE_LASTREF(a);
|
||||
return (a->num_elements);
|
||||
}
|
||||
|
||||
@@ -594,6 +624,7 @@ char *v;
|
||||
ADD_BEFORE(a->head, new);
|
||||
a->max_index = i;
|
||||
a->num_elements++;
|
||||
SET_LASTREF(a, new);
|
||||
return(0);
|
||||
}
|
||||
/*
|
||||
@@ -607,13 +638,16 @@ char *v;
|
||||
array_dispose_element(new);
|
||||
free(element_value(ae));
|
||||
ae->value = v ? savestring(v) : (char *)NULL;
|
||||
SET_LASTREF(a, ae);
|
||||
return(0);
|
||||
} else if (element_index(ae) > i) {
|
||||
ADD_BEFORE(ae, new);
|
||||
a->num_elements++;
|
||||
SET_LASTREF(a, new);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
INVALIDATE_LASTREF(a);
|
||||
return (-1); /* problem */
|
||||
}
|
||||
|
||||
@@ -637,6 +671,7 @@ arrayind_t i;
|
||||
a->num_elements--;
|
||||
if (i == array_max_index(a))
|
||||
a->max_index = element_index(ae->prev);
|
||||
INVALIDATE_LASTREF(a);
|
||||
return(ae);
|
||||
}
|
||||
return((ARRAY_ELEMENT *) NULL);
|
||||
@@ -654,9 +689,19 @@ arrayind_t i;
|
||||
|
||||
if (a == 0 || array_empty(a))
|
||||
return((char *) NULL);
|
||||
for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae))
|
||||
if (element_index(ae) == i)
|
||||
if (i > array_max_index(a))
|
||||
return((char *)NULL);
|
||||
/* Keep roving pointer into array to optimize sequential access */
|
||||
if (lastref && IS_LASTREF(a))
|
||||
ae = (i >= element_index(lastref)) ? lastref : element_forw(a->head);
|
||||
else
|
||||
ae = element_forw(a->head);
|
||||
for ( ; ae != a->head; ae = element_forw(ae))
|
||||
if (element_index(ae) == i) {
|
||||
SET_LASTREF(a, ae);
|
||||
return(element_value(ae));
|
||||
}
|
||||
UNSET_LASTREF();
|
||||
return((char *) NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,8 @@ enum atype {array_indexed, array_assoc};
|
||||
|
||||
typedef struct array {
|
||||
enum atype type;
|
||||
arrayind_t max_index, num_elements;
|
||||
arrayind_t max_index;
|
||||
int num_elements;
|
||||
struct array_element *head;
|
||||
} ARRAY;
|
||||
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
/* array.h -- definitions for the interface exported by array.c that allows
|
||||
the rest of the shell to manipulate array variables. */
|
||||
|
||||
/* Copyright (C) 1997-2009 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _ARRAY_H_
|
||||
#define _ARRAY_H_
|
||||
|
||||
#include "stdc.h"
|
||||
|
||||
typedef intmax_t arrayind_t;
|
||||
|
||||
enum atype {array_indexed, array_assoc};
|
||||
|
||||
typedef struct array {
|
||||
enum atype type;
|
||||
arrayind_t max_index, num_elements;
|
||||
struct array_element *head;
|
||||
} ARRAY;
|
||||
|
||||
typedef struct array_element {
|
||||
arrayind_t ind;
|
||||
char *value;
|
||||
struct array_element *next, *prev;
|
||||
} ARRAY_ELEMENT;
|
||||
|
||||
typedef int sh_ae_map_func_t __P((ARRAY_ELEMENT *, void *));
|
||||
|
||||
/* Basic operations on entire arrays */
|
||||
extern ARRAY *array_create __P((void));
|
||||
extern void array_flush __P((ARRAY *));
|
||||
extern void array_dispose __P((ARRAY *));
|
||||
extern ARRAY *array_copy __P((ARRAY *));
|
||||
extern ARRAY *array_slice __P((ARRAY *, ARRAY_ELEMENT *, ARRAY_ELEMENT *));
|
||||
extern void array_walk __P((ARRAY *, sh_ae_map_func_t *, void *));
|
||||
|
||||
extern ARRAY_ELEMENT *array_shift __P((ARRAY *, int, int));
|
||||
extern int array_rshift __P((ARRAY *, int, char *));
|
||||
extern ARRAY_ELEMENT *array_unshift_element __P((ARRAY *));
|
||||
extern int array_shift_element __P((ARRAY *, char *));
|
||||
|
||||
extern ARRAY *array_quote __P((ARRAY *));
|
||||
extern ARRAY *array_quote_escapes __P((ARRAY *));
|
||||
extern ARRAY *array_dequote __P((ARRAY *));
|
||||
extern ARRAY *array_dequote_escapes __P((ARRAY *));
|
||||
extern ARRAY *array_remove_quoted_nulls __P((ARRAY *));
|
||||
|
||||
extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int));
|
||||
extern char *array_patsub __P((ARRAY *, char *, char *, int));
|
||||
extern char *array_modcase __P((ARRAY *, char *, int, int));
|
||||
|
||||
/* Basic operations on array elements. */
|
||||
extern ARRAY_ELEMENT *array_create_element __P((arrayind_t, char *));
|
||||
extern ARRAY_ELEMENT *array_copy_element __P((ARRAY_ELEMENT *));
|
||||
extern void array_dispose_element __P((ARRAY_ELEMENT *));
|
||||
|
||||
extern int array_insert __P((ARRAY *, arrayind_t, char *));
|
||||
extern ARRAY_ELEMENT *array_remove __P((ARRAY *, arrayind_t));
|
||||
extern char *array_reference __P((ARRAY *, arrayind_t));
|
||||
|
||||
/* Converting to and from arrays */
|
||||
extern WORD_LIST *array_to_word_list __P((ARRAY *));
|
||||
extern ARRAY *array_from_word_list __P((WORD_LIST *));
|
||||
extern WORD_LIST *array_keys_to_word_list __P((ARRAY *));
|
||||
|
||||
extern ARRAY *array_assign_list __P((ARRAY *, WORD_LIST *));
|
||||
|
||||
extern char **array_to_argv __P((ARRAY *));
|
||||
|
||||
extern char *array_to_assign __P((ARRAY *, int));
|
||||
extern char *array_to_string __P((ARRAY *, char *, int));
|
||||
extern ARRAY *array_from_string __P((char *, char *));
|
||||
|
||||
/* Flags for array_shift */
|
||||
#define AS_DISPOSE 0x01
|
||||
|
||||
#define array_num_elements(a) ((a)->num_elements)
|
||||
#define array_max_index(a) ((a)->max_index)
|
||||
#define array_head(a) ((a)->head)
|
||||
#define array_empty(a) ((a)->num_elements == 0)
|
||||
|
||||
#define element_value(ae) ((ae)->value)
|
||||
#define element_index(ae) ((ae)->ind)
|
||||
#define element_forw(ae) ((ae)->next)
|
||||
#define element_back(ae) ((ae)->prev)
|
||||
|
||||
/* Convenience */
|
||||
#define array_push(a,v) \
|
||||
do { array_rshift ((a), 1, (v)); } while (0)
|
||||
#define array_pop(a) \
|
||||
do { array_dispose_element (array_shift ((a), 1, 0)); } while (0)
|
||||
|
||||
#define GET_ARRAY_FROM_VAR(n, v, a) \
|
||||
do { \
|
||||
(v) = find_variable (n); \
|
||||
(a) = ((v) && array_p ((v))) ? array_cell (v) : (ARRAY *)0; \
|
||||
} while (0)
|
||||
|
||||
#define ALL_ELEMENT_SUB(c) ((c) == '@' || (c) == '*')
|
||||
|
||||
#endif /* _ARRAY_H_ */
|
||||
+17
-4
@@ -88,6 +88,7 @@ extern int errno;
|
||||
extern int current_command_line_count;
|
||||
extern int literal_history;
|
||||
extern int posixly_correct;
|
||||
extern int subshell_environment, interactive_shell;
|
||||
|
||||
extern int unlink __P((const char *));
|
||||
|
||||
@@ -172,7 +173,7 @@ fc_builtin (list)
|
||||
register int i;
|
||||
register char *sep;
|
||||
int numbering, reverse, listing, execute;
|
||||
int histbeg, histend, last_hist, retval, opt;
|
||||
int histbeg, histend, last_hist, retval, opt, rh;
|
||||
FILE *stream;
|
||||
REPL *rlist, *rl;
|
||||
char *ename, *command, *newcom, *fcedit;
|
||||
@@ -275,6 +276,8 @@ fc_builtin (list)
|
||||
|
||||
fprintf (stderr, "%s\n", command);
|
||||
fc_replhist (command); /* replace `fc -s' with command */
|
||||
/* Posix says that the re-executed commands should be entered into the
|
||||
history. */
|
||||
return (parse_and_execute (command, "fc", SEVAL_NOHIST));
|
||||
}
|
||||
|
||||
@@ -293,7 +296,12 @@ fc_builtin (list)
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. */
|
||||
|
||||
last_hist = i - remember_on_history - hist_last_line_added;
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were on. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
last_hist = i - rh - hist_last_line_added;
|
||||
|
||||
if (list)
|
||||
{
|
||||
@@ -456,7 +464,7 @@ fc_gethnum (command, hlist)
|
||||
char *command;
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
int sign, n, clen;
|
||||
int sign, n, clen, rh;
|
||||
register int i, j;
|
||||
register char *s;
|
||||
|
||||
@@ -472,7 +480,12 @@ fc_gethnum (command, hlist)
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. This needs to agree with the
|
||||
calculation of last_hist in fc_builtin above. */
|
||||
i -= remember_on_history + hist_last_line_added;
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were on. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
i -= rh + hist_last_line_added;
|
||||
|
||||
/* No specification defaults to most recent command. */
|
||||
if (command == NULL)
|
||||
|
||||
@@ -0,0 +1,669 @@
|
||||
This file is fc.def, from which is created fc.c.
|
||||
It implements the builtin "fc" in Bash.
|
||||
|
||||
Copyright (C) 1987-2009 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$PRODUCES fc.c
|
||||
|
||||
$BUILTIN fc
|
||||
$FUNCTION fc_builtin
|
||||
$DEPENDS_ON HISTORY
|
||||
$SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
|
||||
Display or execute commands from the history list.
|
||||
|
||||
fc is used to list or edit and re-execute commands from the history list.
|
||||
FIRST and LAST can be numbers specifying the range, or FIRST can be a
|
||||
string, which means the most recent command beginning with that
|
||||
string.
|
||||
|
||||
Options:
|
||||
-e ENAME select which editor to use. Default is FCEDIT, then EDITOR,
|
||||
then vi
|
||||
-l list lines instead of editing
|
||||
-n omit line numbers when listing
|
||||
-r reverse the order of the lines (newest listed first)
|
||||
|
||||
With the `fc -s [pat=rep ...] [command]' format, COMMAND is
|
||||
re-executed after the substitution OLD=NEW is performed.
|
||||
|
||||
A useful alias to use with this is r='fc -s', so that typing `r cc'
|
||||
runs the last command beginning with `cc' and typing `r' re-executes
|
||||
the last command.
|
||||
|
||||
Exit Status:
|
||||
Returns success or status of executed command; non-zero if an error occurs.
|
||||
$END
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#if defined (HISTORY)
|
||||
#ifndef _MINIX
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include "../bashtypes.h"
|
||||
#include "posixstat.h"
|
||||
#if ! defined(_MINIX) && defined (HAVE_SYS_FILE_H)
|
||||
# include <sys/file.h>
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <chartypes.h>
|
||||
|
||||
#include "../bashansi.h"
|
||||
#include "../bashintl.h"
|
||||
#include <errno.h>
|
||||
|
||||
#include "../shell.h"
|
||||
#include "../builtins.h"
|
||||
#include "../flags.h"
|
||||
#include "../bashhist.h"
|
||||
#include "maxpath.h"
|
||||
#include <readline/history.h>
|
||||
#include "bashgetopt.h"
|
||||
#include "common.h"
|
||||
|
||||
#if !defined (errno)
|
||||
extern int errno;
|
||||
#endif /* !errno */
|
||||
|
||||
extern int current_command_line_count;
|
||||
extern int literal_history;
|
||||
extern int posixly_correct;
|
||||
extern int subshell_environment, interactive_shell;
|
||||
|
||||
extern int unlink __P((const char *));
|
||||
|
||||
extern FILE *sh_mktmpfp __P((char *, int, char **));
|
||||
|
||||
/* **************************************************************** */
|
||||
/* */
|
||||
/* The K*rn shell style fc command (Fix Command) */
|
||||
/* */
|
||||
/* **************************************************************** */
|
||||
|
||||
/* fc builtin command (fix command) for Bash for those who
|
||||
like K*rn-style history better than csh-style.
|
||||
|
||||
fc [-e ename] [-nlr] [first] [last]
|
||||
|
||||
FIRST and LAST can be numbers specifying the range, or FIRST can be
|
||||
a string, which means the most recent command beginning with that
|
||||
string.
|
||||
|
||||
-e ENAME selects which editor to use. Default is FCEDIT, then EDITOR,
|
||||
then the editor which corresponds to the current readline editing
|
||||
mode, then vi.
|
||||
|
||||
-l means list lines instead of editing.
|
||||
-n means no line numbers listed.
|
||||
-r means reverse the order of the lines (making it newest listed first).
|
||||
|
||||
fc -e - [pat=rep ...] [command]
|
||||
fc -s [pat=rep ...] [command]
|
||||
|
||||
Equivalent to !command:sg/pat/rep execpt there can be multiple PAT=REP's.
|
||||
*/
|
||||
|
||||
/* Data structure describing a list of global replacements to perform. */
|
||||
typedef struct repl {
|
||||
struct repl *next;
|
||||
char *pat;
|
||||
char *rep;
|
||||
} REPL;
|
||||
|
||||
/* Accessors for HIST_ENTRY lists that are called HLIST. */
|
||||
#define histline(i) (hlist[(i)]->line)
|
||||
#define histdata(i) (hlist[(i)]->data)
|
||||
|
||||
#define FREE_RLIST() \
|
||||
do { \
|
||||
for (rl = rlist; rl; ) { \
|
||||
REPL *r; \
|
||||
r = rl->next; \
|
||||
if (rl->pat) \
|
||||
free (rl->pat); \
|
||||
if (rl->rep) \
|
||||
free (rl->rep); \
|
||||
free (rl); \
|
||||
rl = r; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
static char *fc_dosubs __P((char *, REPL *));
|
||||
static char *fc_gethist __P((char *, HIST_ENTRY **));
|
||||
static int fc_gethnum __P((char *, HIST_ENTRY **));
|
||||
static int fc_number __P((WORD_LIST *));
|
||||
static void fc_replhist __P((char *));
|
||||
#ifdef INCLUDE_UNUSED
|
||||
static char *fc_readline __P((FILE *));
|
||||
static void fc_addhist __P((char *));
|
||||
#endif
|
||||
|
||||
/* String to execute on a file that we want to edit. */
|
||||
#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-vi}}"
|
||||
#if defined (STRICT_POSIX)
|
||||
# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-ed}"
|
||||
#else
|
||||
# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}"
|
||||
#endif
|
||||
|
||||
int
|
||||
fc_builtin (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
register int i;
|
||||
register char *sep;
|
||||
int numbering, reverse, listing, execute;
|
||||
int histbeg, histend, last_hist, retval, opt, rh;
|
||||
FILE *stream;
|
||||
REPL *rlist, *rl;
|
||||
char *ename, *command, *newcom, *fcedit;
|
||||
HIST_ENTRY **hlist;
|
||||
char *fn;
|
||||
|
||||
numbering = 1;
|
||||
reverse = listing = execute = 0;
|
||||
ename = (char *)NULL;
|
||||
|
||||
/* Parse out the options and set which of the two forms we're in. */
|
||||
reset_internal_getopt ();
|
||||
lcurrent = list; /* XXX */
|
||||
while (fc_number (loptend = lcurrent) == 0 &&
|
||||
(opt = internal_getopt (list, ":e:lnrs")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
case 'n':
|
||||
numbering = 0;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
listing = 1;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
reverse = 1;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
execute = 1;
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
ename = list_optarg;
|
||||
break;
|
||||
|
||||
default:
|
||||
builtin_usage ();
|
||||
return (EX_USAGE);
|
||||
}
|
||||
}
|
||||
|
||||
list = loptend;
|
||||
|
||||
if (ename && (*ename == '-') && (ename[1] == '\0'))
|
||||
execute = 1;
|
||||
|
||||
/* The "execute" form of the command (re-run, with possible string
|
||||
substitutions). */
|
||||
if (execute)
|
||||
{
|
||||
rlist = (REPL *)NULL;
|
||||
while (list && ((sep = (char *)strchr (list->word->word, '=')) != NULL))
|
||||
{
|
||||
*sep++ = '\0';
|
||||
rl = (REPL *)xmalloc (sizeof (REPL));
|
||||
rl->next = (REPL *)NULL;
|
||||
rl->pat = savestring (list->word->word);
|
||||
rl->rep = savestring (sep);
|
||||
|
||||
if (rlist == NULL)
|
||||
rlist = rl;
|
||||
else
|
||||
{
|
||||
rl->next = rlist;
|
||||
rlist = rl;
|
||||
}
|
||||
list = list->next;
|
||||
}
|
||||
|
||||
/* If we have a list of substitutions to do, then reverse it
|
||||
to get the replacements in the proper order. */
|
||||
|
||||
rlist = REVERSE_LIST (rlist, REPL *);
|
||||
|
||||
hlist = history_list ();
|
||||
|
||||
/* If we still have something in list, it is a command spec.
|
||||
Otherwise, we use the most recent command in time. */
|
||||
command = fc_gethist (list ? list->word->word : (char *)NULL, hlist);
|
||||
|
||||
if (command == NULL)
|
||||
{
|
||||
builtin_error (_("no command found"));
|
||||
if (rlist)
|
||||
FREE_RLIST ();
|
||||
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
if (rlist)
|
||||
{
|
||||
newcom = fc_dosubs (command, rlist);
|
||||
free (command);
|
||||
FREE_RLIST ();
|
||||
command = newcom;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s\n", command);
|
||||
fc_replhist (command); /* replace `fc -s' with command */
|
||||
/* Posix says that the re-executed commands should be entered into the
|
||||
history. */
|
||||
return (parse_and_execute (command, "fc", SEVAL_NOHIST));
|
||||
}
|
||||
|
||||
/* This is the second form of the command (the list-or-edit-and-rerun
|
||||
form). */
|
||||
hlist = history_list ();
|
||||
if (hlist == 0)
|
||||
return (EXECUTION_SUCCESS);
|
||||
for (i = 0; hlist[i]; i++);
|
||||
|
||||
/* With the Bash implementation of history, the current command line
|
||||
("fc blah..." and so on) is already part of the history list by
|
||||
the time we get to this point. This just skips over that command
|
||||
and makes the last command that this deals with be the last command
|
||||
the user entered before the fc. We need to check whether the
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. */
|
||||
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
last_hist = i - rh - hist_last_line_added;
|
||||
itrace("fc: last_hist = %d i = %d rh = %d hist_last_line_added = %d", last_hist, i, rh, hist_last_line_added);
|
||||
itrace("fc: enable_history_list = %d subshell_environment = %d interactive_shell = %d", enable_history_list, subshell_environment, interactive_shell);
|
||||
|
||||
if (list)
|
||||
{
|
||||
histbeg = fc_gethnum (list->word->word, hlist);
|
||||
list = list->next;
|
||||
|
||||
if (list)
|
||||
histend = fc_gethnum (list->word->word, hlist);
|
||||
else
|
||||
histend = listing ? last_hist : histbeg;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The default for listing is the last 16 history items. */
|
||||
if (listing)
|
||||
{
|
||||
histend = last_hist;
|
||||
histbeg = histend - 16 + 1; /* +1 because loop below uses >= */
|
||||
if (histbeg < 0)
|
||||
histbeg = 0;
|
||||
}
|
||||
else
|
||||
/* For editing, it is the last history command. */
|
||||
histbeg = histend = last_hist;
|
||||
}
|
||||
|
||||
itrace("fc: histbeg = %d histend = %d", histbeg, histend);
|
||||
|
||||
/* "When not listing, the fc command that caused the editing shall not be
|
||||
entered into the history list." */
|
||||
if (listing == 0 && hist_last_line_added)
|
||||
{
|
||||
bash_delete_last_history ();
|
||||
/* If we're editing a single command -- the last command in the
|
||||
history -- and we just removed the dummy command added by
|
||||
edit_and_execute_command (), we need to check whether or not we
|
||||
just removed the last command in the history and need to back
|
||||
the pointer up. remember_on_history is off because we're running
|
||||
in parse_and_execute(). */
|
||||
if (histbeg == histend && histend == last_hist && hlist[last_hist] == 0)
|
||||
last_hist = histbeg = --histend;
|
||||
}
|
||||
|
||||
/* We print error messages for line specifications out of range. */
|
||||
if ((histbeg < 0) || (histend < 0))
|
||||
{
|
||||
sh_erange ((char *)NULL, _("history specification"));
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
if (histend < histbeg)
|
||||
{
|
||||
i = histend;
|
||||
histend = histbeg;
|
||||
histbeg = i;
|
||||
|
||||
reverse = 1;
|
||||
}
|
||||
|
||||
if (listing)
|
||||
stream = stdout;
|
||||
else
|
||||
{
|
||||
numbering = 0;
|
||||
stream = sh_mktmpfp ("bash-fc", MT_USERANDOM|MT_USETMPDIR, &fn);
|
||||
if (stream == 0)
|
||||
{
|
||||
builtin_error (_("%s: cannot open temp file: %s"), fn ? fn : "", strerror (errno));
|
||||
FREE (fn);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = reverse ? histend : histbeg; reverse ? i >= histbeg : i <= histend; reverse ? i-- : i++)
|
||||
{
|
||||
QUIT;
|
||||
if (numbering)
|
||||
fprintf (stream, "%d", i + history_base);
|
||||
if (listing)
|
||||
{
|
||||
if (posixly_correct)
|
||||
fputs ("\t", stream);
|
||||
else
|
||||
fprintf (stream, "\t%c", histdata (i) ? '*' : ' ');
|
||||
}
|
||||
fprintf (stream, "%s\n", histline (i));
|
||||
}
|
||||
|
||||
if (listing)
|
||||
return (sh_chkwrite (EXECUTION_SUCCESS));
|
||||
|
||||
fflush (stream);
|
||||
if (ferror (stream))
|
||||
{
|
||||
sh_wrerror ();
|
||||
fclose (stream);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
fclose (stream);
|
||||
|
||||
/* Now edit the file of commands. */
|
||||
if (ename)
|
||||
{
|
||||
command = (char *)xmalloc (strlen (ename) + strlen (fn) + 2);
|
||||
sprintf (command, "%s %s", ename, fn);
|
||||
}
|
||||
else
|
||||
{
|
||||
fcedit = posixly_correct ? POSIX_FC_EDIT_COMMAND : FC_EDIT_COMMAND;
|
||||
command = (char *)xmalloc (3 + strlen (fcedit) + strlen (fn));
|
||||
sprintf (command, "%s %s", fcedit, fn);
|
||||
}
|
||||
retval = parse_and_execute (command, "fc", SEVAL_NOHIST);
|
||||
if (retval != EXECUTION_SUCCESS)
|
||||
{
|
||||
unlink (fn);
|
||||
free (fn);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
/* Make sure parse_and_execute doesn't turn this off, even though a
|
||||
call to parse_and_execute farther up the function call stack (e.g.,
|
||||
if this is called by vi_edit_and_execute_command) may have already
|
||||
called bash_history_disable. */
|
||||
remember_on_history = 1;
|
||||
|
||||
/* Turn on the `v' flag while fc_execute_file runs so the commands
|
||||
will be echoed as they are read by the parser. */
|
||||
begin_unwind_frame ("fc builtin");
|
||||
add_unwind_protect ((Function *)xfree, fn);
|
||||
add_unwind_protect (unlink, fn);
|
||||
unwind_protect_int (echo_input_at_read);
|
||||
echo_input_at_read = 1;
|
||||
|
||||
retval = fc_execute_file (fn);
|
||||
|
||||
run_unwind_frame ("fc builtin");
|
||||
|
||||
return (retval);
|
||||
}
|
||||
|
||||
/* Return 1 if LIST->word->word is a legal number for fc's use. */
|
||||
static int
|
||||
fc_number (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
char *s;
|
||||
|
||||
if (list == 0)
|
||||
return 0;
|
||||
s = list->word->word;
|
||||
if (*s == '-')
|
||||
s++;
|
||||
return (legal_number (s, (intmax_t *)NULL));
|
||||
}
|
||||
|
||||
/* Return an absolute index into HLIST which corresponds to COMMAND. If
|
||||
COMMAND is a number, then it was specified in relative terms. If it
|
||||
is a string, then it is the start of a command line present in HLIST. */
|
||||
static int
|
||||
fc_gethnum (command, hlist)
|
||||
char *command;
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
int sign, n, clen, rh;
|
||||
register int i, j;
|
||||
register char *s;
|
||||
|
||||
sign = 1;
|
||||
/* Count history elements. */
|
||||
for (i = 0; hlist[i]; i++);
|
||||
|
||||
/* With the Bash implementation of history, the current command line
|
||||
("fc blah..." and so on) is already part of the history list by
|
||||
the time we get to this point. This just skips over that command
|
||||
and makes the last command that this deals with be the last command
|
||||
the user entered before the fc. We need to check whether the
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. This needs to agree with the
|
||||
calculation of last_hist in fc_builtin above. */
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
i -= rh + hist_last_line_added;
|
||||
|
||||
/* No specification defaults to most recent command. */
|
||||
if (command == NULL)
|
||||
return (i);
|
||||
|
||||
/* Otherwise, there is a specification. It can be a number relative to
|
||||
the current position, or an absolute history number. */
|
||||
s = command;
|
||||
|
||||
/* Handle possible leading minus sign. */
|
||||
if (s && (*s == '-'))
|
||||
{
|
||||
sign = -1;
|
||||
s++;
|
||||
}
|
||||
|
||||
if (s && DIGIT(*s))
|
||||
{
|
||||
n = atoi (s);
|
||||
n *= sign;
|
||||
|
||||
/* If the value is negative or zero, then it is an offset from
|
||||
the current history item. */
|
||||
if (n < 0)
|
||||
{
|
||||
n += i + 1;
|
||||
return (n < 0 ? 0 : n);
|
||||
}
|
||||
else if (n == 0)
|
||||
return (i);
|
||||
else
|
||||
{
|
||||
n -= history_base;
|
||||
return (i < n ? i : n);
|
||||
}
|
||||
}
|
||||
|
||||
clen = strlen (command);
|
||||
for (j = i; j >= 0; j--)
|
||||
{
|
||||
if (STREQN (command, histline (j), clen))
|
||||
return (j);
|
||||
}
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* Locate the most recent history line which begins with
|
||||
COMMAND in HLIST, and return a malloc()'ed copy of it. */
|
||||
static char *
|
||||
fc_gethist (command, hlist)
|
||||
char *command;
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hlist == 0)
|
||||
return ((char *)NULL);
|
||||
|
||||
i = fc_gethnum (command, hlist);
|
||||
|
||||
if (i >= 0)
|
||||
return (savestring (histline (i)));
|
||||
else
|
||||
return ((char *)NULL);
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_UNUSED
|
||||
/* Read the edited history lines from STREAM and return them
|
||||
one at a time. This can read unlimited length lines. The
|
||||
caller should free the storage. */
|
||||
static char *
|
||||
fc_readline (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
register int c;
|
||||
int line_len = 0, lindex = 0;
|
||||
char *line = (char *)NULL;
|
||||
|
||||
while ((c = getc (stream)) != EOF)
|
||||
{
|
||||
if ((lindex + 2) >= line_len)
|
||||
line = (char *)xrealloc (line, (line_len += 128));
|
||||
|
||||
if (c == '\n')
|
||||
{
|
||||
line[lindex++] = '\n';
|
||||
line[lindex++] = '\0';
|
||||
return (line);
|
||||
}
|
||||
else
|
||||
line[lindex++] = c;
|
||||
}
|
||||
|
||||
if (!lindex)
|
||||
{
|
||||
if (line)
|
||||
free (line);
|
||||
|
||||
return ((char *)NULL);
|
||||
}
|
||||
|
||||
if (lindex + 2 >= line_len)
|
||||
line = (char *)xrealloc (line, lindex + 3);
|
||||
|
||||
line[lindex++] = '\n'; /* Finish with newline if none in file */
|
||||
line[lindex++] = '\0';
|
||||
return (line);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Perform the SUBS on COMMAND.
|
||||
SUBS is a list of substitutions, and COMMAND is a simple string.
|
||||
Return a pointer to a malloc'ed string which contains the substituted
|
||||
command. */
|
||||
static char *
|
||||
fc_dosubs (command, subs)
|
||||
char *command;
|
||||
REPL *subs;
|
||||
{
|
||||
register char *new, *t;
|
||||
register REPL *r;
|
||||
|
||||
for (new = savestring (command), r = subs; r; r = r->next)
|
||||
{
|
||||
t = strsub (new, r->pat, r->rep, 1);
|
||||
free (new);
|
||||
new = t;
|
||||
}
|
||||
return (new);
|
||||
}
|
||||
|
||||
/* Use `command' to replace the last entry in the history list, which,
|
||||
by this time, is `fc blah...'. The intent is that the new command
|
||||
become the history entry, and that `fc' should never appear in the
|
||||
history list. This way you can do `r' to your heart's content. */
|
||||
static void
|
||||
fc_replhist (command)
|
||||
char *command;
|
||||
{
|
||||
int n;
|
||||
|
||||
if (command == 0 || *command == '\0')
|
||||
return;
|
||||
|
||||
n = strlen (command);
|
||||
if (command[n - 1] == '\n')
|
||||
command[n - 1] = '\0';
|
||||
|
||||
if (command && *command)
|
||||
{
|
||||
bash_delete_last_history ();
|
||||
maybe_add_history (command); /* Obeys HISTCONTROL setting. */
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_UNUSED
|
||||
/* Add LINE to the history, after removing a single trailing newline. */
|
||||
static void
|
||||
fc_addhist (line)
|
||||
char *line;
|
||||
{
|
||||
register int n;
|
||||
|
||||
if (line == 0 || *line == 0)
|
||||
return;
|
||||
|
||||
n = strlen (line);
|
||||
|
||||
if (line[n - 1] == '\n')
|
||||
line[n - 1] = '\0';
|
||||
|
||||
if (line && *line)
|
||||
maybe_add_history (line); /* Obeys HISTCONTROL setting. */
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HISTORY */
|
||||
@@ -0,0 +1,665 @@
|
||||
This file is fc.def, from which is created fc.c.
|
||||
It implements the builtin "fc" in Bash.
|
||||
|
||||
Copyright (C) 1987-2009 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$PRODUCES fc.c
|
||||
|
||||
$BUILTIN fc
|
||||
$FUNCTION fc_builtin
|
||||
$DEPENDS_ON HISTORY
|
||||
$SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
|
||||
Display or execute commands from the history list.
|
||||
|
||||
fc is used to list or edit and re-execute commands from the history list.
|
||||
FIRST and LAST can be numbers specifying the range, or FIRST can be a
|
||||
string, which means the most recent command beginning with that
|
||||
string.
|
||||
|
||||
Options:
|
||||
-e ENAME select which editor to use. Default is FCEDIT, then EDITOR,
|
||||
then vi
|
||||
-l list lines instead of editing
|
||||
-n omit line numbers when listing
|
||||
-r reverse the order of the lines (newest listed first)
|
||||
|
||||
With the `fc -s [pat=rep ...] [command]' format, COMMAND is
|
||||
re-executed after the substitution OLD=NEW is performed.
|
||||
|
||||
A useful alias to use with this is r='fc -s', so that typing `r cc'
|
||||
runs the last command beginning with `cc' and typing `r' re-executes
|
||||
the last command.
|
||||
|
||||
Exit Status:
|
||||
Returns success or status of executed command; non-zero if an error occurs.
|
||||
$END
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#if defined (HISTORY)
|
||||
#ifndef _MINIX
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include "../bashtypes.h"
|
||||
#include "posixstat.h"
|
||||
#if ! defined(_MINIX) && defined (HAVE_SYS_FILE_H)
|
||||
# include <sys/file.h>
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <chartypes.h>
|
||||
|
||||
#include "../bashansi.h"
|
||||
#include "../bashintl.h"
|
||||
#include <errno.h>
|
||||
|
||||
#include "../shell.h"
|
||||
#include "../builtins.h"
|
||||
#include "../flags.h"
|
||||
#include "../bashhist.h"
|
||||
#include "maxpath.h"
|
||||
#include <readline/history.h>
|
||||
#include "bashgetopt.h"
|
||||
#include "common.h"
|
||||
|
||||
#if !defined (errno)
|
||||
extern int errno;
|
||||
#endif /* !errno */
|
||||
|
||||
extern int current_command_line_count;
|
||||
extern int literal_history;
|
||||
extern int posixly_correct;
|
||||
extern int subshell_environment, interactive_shell;
|
||||
|
||||
extern int unlink __P((const char *));
|
||||
|
||||
extern FILE *sh_mktmpfp __P((char *, int, char **));
|
||||
|
||||
/* **************************************************************** */
|
||||
/* */
|
||||
/* The K*rn shell style fc command (Fix Command) */
|
||||
/* */
|
||||
/* **************************************************************** */
|
||||
|
||||
/* fc builtin command (fix command) for Bash for those who
|
||||
like K*rn-style history better than csh-style.
|
||||
|
||||
fc [-e ename] [-nlr] [first] [last]
|
||||
|
||||
FIRST and LAST can be numbers specifying the range, or FIRST can be
|
||||
a string, which means the most recent command beginning with that
|
||||
string.
|
||||
|
||||
-e ENAME selects which editor to use. Default is FCEDIT, then EDITOR,
|
||||
then the editor which corresponds to the current readline editing
|
||||
mode, then vi.
|
||||
|
||||
-l means list lines instead of editing.
|
||||
-n means no line numbers listed.
|
||||
-r means reverse the order of the lines (making it newest listed first).
|
||||
|
||||
fc -e - [pat=rep ...] [command]
|
||||
fc -s [pat=rep ...] [command]
|
||||
|
||||
Equivalent to !command:sg/pat/rep execpt there can be multiple PAT=REP's.
|
||||
*/
|
||||
|
||||
/* Data structure describing a list of global replacements to perform. */
|
||||
typedef struct repl {
|
||||
struct repl *next;
|
||||
char *pat;
|
||||
char *rep;
|
||||
} REPL;
|
||||
|
||||
/* Accessors for HIST_ENTRY lists that are called HLIST. */
|
||||
#define histline(i) (hlist[(i)]->line)
|
||||
#define histdata(i) (hlist[(i)]->data)
|
||||
|
||||
#define FREE_RLIST() \
|
||||
do { \
|
||||
for (rl = rlist; rl; ) { \
|
||||
REPL *r; \
|
||||
r = rl->next; \
|
||||
if (rl->pat) \
|
||||
free (rl->pat); \
|
||||
if (rl->rep) \
|
||||
free (rl->rep); \
|
||||
free (rl); \
|
||||
rl = r; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
static char *fc_dosubs __P((char *, REPL *));
|
||||
static char *fc_gethist __P((char *, HIST_ENTRY **));
|
||||
static int fc_gethnum __P((char *, HIST_ENTRY **));
|
||||
static int fc_number __P((WORD_LIST *));
|
||||
static void fc_replhist __P((char *));
|
||||
#ifdef INCLUDE_UNUSED
|
||||
static char *fc_readline __P((FILE *));
|
||||
static void fc_addhist __P((char *));
|
||||
#endif
|
||||
|
||||
/* String to execute on a file that we want to edit. */
|
||||
#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-vi}}"
|
||||
#if defined (STRICT_POSIX)
|
||||
# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-ed}"
|
||||
#else
|
||||
# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}"
|
||||
#endif
|
||||
|
||||
int
|
||||
fc_builtin (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
register int i;
|
||||
register char *sep;
|
||||
int numbering, reverse, listing, execute;
|
||||
int histbeg, histend, last_hist, retval, opt, rh;
|
||||
FILE *stream;
|
||||
REPL *rlist, *rl;
|
||||
char *ename, *command, *newcom, *fcedit;
|
||||
HIST_ENTRY **hlist;
|
||||
char *fn;
|
||||
|
||||
numbering = 1;
|
||||
reverse = listing = execute = 0;
|
||||
ename = (char *)NULL;
|
||||
|
||||
/* Parse out the options and set which of the two forms we're in. */
|
||||
reset_internal_getopt ();
|
||||
lcurrent = list; /* XXX */
|
||||
while (fc_number (loptend = lcurrent) == 0 &&
|
||||
(opt = internal_getopt (list, ":e:lnrs")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
case 'n':
|
||||
numbering = 0;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
listing = 1;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
reverse = 1;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
execute = 1;
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
ename = list_optarg;
|
||||
break;
|
||||
|
||||
default:
|
||||
builtin_usage ();
|
||||
return (EX_USAGE);
|
||||
}
|
||||
}
|
||||
|
||||
list = loptend;
|
||||
|
||||
if (ename && (*ename == '-') && (ename[1] == '\0'))
|
||||
execute = 1;
|
||||
|
||||
/* The "execute" form of the command (re-run, with possible string
|
||||
substitutions). */
|
||||
if (execute)
|
||||
{
|
||||
rlist = (REPL *)NULL;
|
||||
while (list && ((sep = (char *)strchr (list->word->word, '=')) != NULL))
|
||||
{
|
||||
*sep++ = '\0';
|
||||
rl = (REPL *)xmalloc (sizeof (REPL));
|
||||
rl->next = (REPL *)NULL;
|
||||
rl->pat = savestring (list->word->word);
|
||||
rl->rep = savestring (sep);
|
||||
|
||||
if (rlist == NULL)
|
||||
rlist = rl;
|
||||
else
|
||||
{
|
||||
rl->next = rlist;
|
||||
rlist = rl;
|
||||
}
|
||||
list = list->next;
|
||||
}
|
||||
|
||||
/* If we have a list of substitutions to do, then reverse it
|
||||
to get the replacements in the proper order. */
|
||||
|
||||
rlist = REVERSE_LIST (rlist, REPL *);
|
||||
|
||||
hlist = history_list ();
|
||||
|
||||
/* If we still have something in list, it is a command spec.
|
||||
Otherwise, we use the most recent command in time. */
|
||||
command = fc_gethist (list ? list->word->word : (char *)NULL, hlist);
|
||||
|
||||
if (command == NULL)
|
||||
{
|
||||
builtin_error (_("no command found"));
|
||||
if (rlist)
|
||||
FREE_RLIST ();
|
||||
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
if (rlist)
|
||||
{
|
||||
newcom = fc_dosubs (command, rlist);
|
||||
free (command);
|
||||
FREE_RLIST ();
|
||||
command = newcom;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s\n", command);
|
||||
fc_replhist (command); /* replace `fc -s' with command */
|
||||
/* Posix says that the re-executed commands should be entered into the
|
||||
history. */
|
||||
return (parse_and_execute (command, "fc", SEVAL_NOHIST));
|
||||
}
|
||||
|
||||
/* This is the second form of the command (the list-or-edit-and-rerun
|
||||
form). */
|
||||
hlist = history_list ();
|
||||
if (hlist == 0)
|
||||
return (EXECUTION_SUCCESS);
|
||||
for (i = 0; hlist[i]; i++);
|
||||
|
||||
/* With the Bash implementation of history, the current command line
|
||||
("fc blah..." and so on) is already part of the history list by
|
||||
the time we get to this point. This just skips over that command
|
||||
and makes the last command that this deals with be the last command
|
||||
the user entered before the fc. We need to check whether the
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. */
|
||||
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
last_hist = i - rh - hist_last_line_added;
|
||||
|
||||
if (list)
|
||||
{
|
||||
histbeg = fc_gethnum (list->word->word, hlist);
|
||||
list = list->next;
|
||||
|
||||
if (list)
|
||||
histend = fc_gethnum (list->word->word, hlist);
|
||||
else
|
||||
histend = listing ? last_hist : histbeg;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The default for listing is the last 16 history items. */
|
||||
if (listing)
|
||||
{
|
||||
histend = last_hist;
|
||||
histbeg = histend - 16 + 1; /* +1 because loop below uses >= */
|
||||
if (histbeg < 0)
|
||||
histbeg = 0;
|
||||
}
|
||||
else
|
||||
/* For editing, it is the last history command. */
|
||||
histbeg = histend = last_hist;
|
||||
}
|
||||
|
||||
/* "When not listing, the fc command that caused the editing shall not be
|
||||
entered into the history list." */
|
||||
if (listing == 0 && hist_last_line_added)
|
||||
{
|
||||
bash_delete_last_history ();
|
||||
/* If we're editing a single command -- the last command in the
|
||||
history -- and we just removed the dummy command added by
|
||||
edit_and_execute_command (), we need to check whether or not we
|
||||
just removed the last command in the history and need to back
|
||||
the pointer up. remember_on_history is off because we're running
|
||||
in parse_and_execute(). */
|
||||
if (histbeg == histend && histend == last_hist && hlist[last_hist] == 0)
|
||||
last_hist = histbeg = --histend;
|
||||
}
|
||||
|
||||
/* We print error messages for line specifications out of range. */
|
||||
if ((histbeg < 0) || (histend < 0))
|
||||
{
|
||||
sh_erange ((char *)NULL, _("history specification"));
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
if (histend < histbeg)
|
||||
{
|
||||
i = histend;
|
||||
histend = histbeg;
|
||||
histbeg = i;
|
||||
|
||||
reverse = 1;
|
||||
}
|
||||
|
||||
if (listing)
|
||||
stream = stdout;
|
||||
else
|
||||
{
|
||||
numbering = 0;
|
||||
stream = sh_mktmpfp ("bash-fc", MT_USERANDOM|MT_USETMPDIR, &fn);
|
||||
if (stream == 0)
|
||||
{
|
||||
builtin_error (_("%s: cannot open temp file: %s"), fn ? fn : "", strerror (errno));
|
||||
FREE (fn);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = reverse ? histend : histbeg; reverse ? i >= histbeg : i <= histend; reverse ? i-- : i++)
|
||||
{
|
||||
QUIT;
|
||||
if (numbering)
|
||||
fprintf (stream, "%d", i + history_base);
|
||||
if (listing)
|
||||
{
|
||||
if (posixly_correct)
|
||||
fputs ("\t", stream);
|
||||
else
|
||||
fprintf (stream, "\t%c", histdata (i) ? '*' : ' ');
|
||||
}
|
||||
fprintf (stream, "%s\n", histline (i));
|
||||
}
|
||||
|
||||
if (listing)
|
||||
return (sh_chkwrite (EXECUTION_SUCCESS));
|
||||
|
||||
fflush (stream);
|
||||
if (ferror (stream))
|
||||
{
|
||||
sh_wrerror ();
|
||||
fclose (stream);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
fclose (stream);
|
||||
|
||||
/* Now edit the file of commands. */
|
||||
if (ename)
|
||||
{
|
||||
command = (char *)xmalloc (strlen (ename) + strlen (fn) + 2);
|
||||
sprintf (command, "%s %s", ename, fn);
|
||||
}
|
||||
else
|
||||
{
|
||||
fcedit = posixly_correct ? POSIX_FC_EDIT_COMMAND : FC_EDIT_COMMAND;
|
||||
command = (char *)xmalloc (3 + strlen (fcedit) + strlen (fn));
|
||||
sprintf (command, "%s %s", fcedit, fn);
|
||||
}
|
||||
retval = parse_and_execute (command, "fc", SEVAL_NOHIST);
|
||||
if (retval != EXECUTION_SUCCESS)
|
||||
{
|
||||
unlink (fn);
|
||||
free (fn);
|
||||
return (EXECUTION_FAILURE);
|
||||
}
|
||||
|
||||
/* Make sure parse_and_execute doesn't turn this off, even though a
|
||||
call to parse_and_execute farther up the function call stack (e.g.,
|
||||
if this is called by vi_edit_and_execute_command) may have already
|
||||
called bash_history_disable. */
|
||||
remember_on_history = 1;
|
||||
|
||||
/* Turn on the `v' flag while fc_execute_file runs so the commands
|
||||
will be echoed as they are read by the parser. */
|
||||
begin_unwind_frame ("fc builtin");
|
||||
add_unwind_protect ((Function *)xfree, fn);
|
||||
add_unwind_protect (unlink, fn);
|
||||
unwind_protect_int (echo_input_at_read);
|
||||
echo_input_at_read = 1;
|
||||
|
||||
retval = fc_execute_file (fn);
|
||||
|
||||
run_unwind_frame ("fc builtin");
|
||||
|
||||
return (retval);
|
||||
}
|
||||
|
||||
/* Return 1 if LIST->word->word is a legal number for fc's use. */
|
||||
static int
|
||||
fc_number (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
char *s;
|
||||
|
||||
if (list == 0)
|
||||
return 0;
|
||||
s = list->word->word;
|
||||
if (*s == '-')
|
||||
s++;
|
||||
return (legal_number (s, (intmax_t *)NULL));
|
||||
}
|
||||
|
||||
/* Return an absolute index into HLIST which corresponds to COMMAND. If
|
||||
COMMAND is a number, then it was specified in relative terms. If it
|
||||
is a string, then it is the start of a command line present in HLIST. */
|
||||
static int
|
||||
fc_gethnum (command, hlist)
|
||||
char *command;
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
int sign, n, clen, rh;
|
||||
register int i, j;
|
||||
register char *s;
|
||||
|
||||
sign = 1;
|
||||
/* Count history elements. */
|
||||
for (i = 0; hlist[i]; i++);
|
||||
|
||||
/* With the Bash implementation of history, the current command line
|
||||
("fc blah..." and so on) is already part of the history list by
|
||||
the time we get to this point. This just skips over that command
|
||||
and makes the last command that this deals with be the last command
|
||||
the user entered before the fc. We need to check whether the
|
||||
line was actually added (HISTIGNORE may have caused it to not be),
|
||||
so we check hist_last_line_added. This needs to agree with the
|
||||
calculation of last_hist in fc_builtin above. */
|
||||
/* Even though command substitution through parse_and_execute turns off
|
||||
remember_on_history, command substitution in a shell when set -o history
|
||||
has been enabled (interactive or not) should use it in the last_hist
|
||||
calculation as if it were. */
|
||||
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
|
||||
i -= rh + hist_last_line_added;
|
||||
|
||||
/* No specification defaults to most recent command. */
|
||||
if (command == NULL)
|
||||
return (i);
|
||||
|
||||
/* Otherwise, there is a specification. It can be a number relative to
|
||||
the current position, or an absolute history number. */
|
||||
s = command;
|
||||
|
||||
/* Handle possible leading minus sign. */
|
||||
if (s && (*s == '-'))
|
||||
{
|
||||
sign = -1;
|
||||
s++;
|
||||
}
|
||||
|
||||
if (s && DIGIT(*s))
|
||||
{
|
||||
n = atoi (s);
|
||||
n *= sign;
|
||||
|
||||
/* If the value is negative or zero, then it is an offset from
|
||||
the current history item. */
|
||||
if (n < 0)
|
||||
{
|
||||
n += i + 1;
|
||||
return (n < 0 ? 0 : n);
|
||||
}
|
||||
else if (n == 0)
|
||||
return (i);
|
||||
else
|
||||
{
|
||||
n -= history_base;
|
||||
return (i < n ? i : n);
|
||||
}
|
||||
}
|
||||
|
||||
clen = strlen (command);
|
||||
for (j = i; j >= 0; j--)
|
||||
{
|
||||
if (STREQN (command, histline (j), clen))
|
||||
return (j);
|
||||
}
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* Locate the most recent history line which begins with
|
||||
COMMAND in HLIST, and return a malloc()'ed copy of it. */
|
||||
static char *
|
||||
fc_gethist (command, hlist)
|
||||
char *command;
|
||||
HIST_ENTRY **hlist;
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hlist == 0)
|
||||
return ((char *)NULL);
|
||||
|
||||
i = fc_gethnum (command, hlist);
|
||||
|
||||
if (i >= 0)
|
||||
return (savestring (histline (i)));
|
||||
else
|
||||
return ((char *)NULL);
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_UNUSED
|
||||
/* Read the edited history lines from STREAM and return them
|
||||
one at a time. This can read unlimited length lines. The
|
||||
caller should free the storage. */
|
||||
static char *
|
||||
fc_readline (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
register int c;
|
||||
int line_len = 0, lindex = 0;
|
||||
char *line = (char *)NULL;
|
||||
|
||||
while ((c = getc (stream)) != EOF)
|
||||
{
|
||||
if ((lindex + 2) >= line_len)
|
||||
line = (char *)xrealloc (line, (line_len += 128));
|
||||
|
||||
if (c == '\n')
|
||||
{
|
||||
line[lindex++] = '\n';
|
||||
line[lindex++] = '\0';
|
||||
return (line);
|
||||
}
|
||||
else
|
||||
line[lindex++] = c;
|
||||
}
|
||||
|
||||
if (!lindex)
|
||||
{
|
||||
if (line)
|
||||
free (line);
|
||||
|
||||
return ((char *)NULL);
|
||||
}
|
||||
|
||||
if (lindex + 2 >= line_len)
|
||||
line = (char *)xrealloc (line, lindex + 3);
|
||||
|
||||
line[lindex++] = '\n'; /* Finish with newline if none in file */
|
||||
line[lindex++] = '\0';
|
||||
return (line);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Perform the SUBS on COMMAND.
|
||||
SUBS is a list of substitutions, and COMMAND is a simple string.
|
||||
Return a pointer to a malloc'ed string which contains the substituted
|
||||
command. */
|
||||
static char *
|
||||
fc_dosubs (command, subs)
|
||||
char *command;
|
||||
REPL *subs;
|
||||
{
|
||||
register char *new, *t;
|
||||
register REPL *r;
|
||||
|
||||
for (new = savestring (command), r = subs; r; r = r->next)
|
||||
{
|
||||
t = strsub (new, r->pat, r->rep, 1);
|
||||
free (new);
|
||||
new = t;
|
||||
}
|
||||
return (new);
|
||||
}
|
||||
|
||||
/* Use `command' to replace the last entry in the history list, which,
|
||||
by this time, is `fc blah...'. The intent is that the new command
|
||||
become the history entry, and that `fc' should never appear in the
|
||||
history list. This way you can do `r' to your heart's content. */
|
||||
static void
|
||||
fc_replhist (command)
|
||||
char *command;
|
||||
{
|
||||
int n;
|
||||
|
||||
if (command == 0 || *command == '\0')
|
||||
return;
|
||||
|
||||
n = strlen (command);
|
||||
if (command[n - 1] == '\n')
|
||||
command[n - 1] = '\0';
|
||||
|
||||
if (command && *command)
|
||||
{
|
||||
bash_delete_last_history ();
|
||||
maybe_add_history (command); /* Obeys HISTCONTROL setting. */
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_UNUSED
|
||||
/* Add LINE to the history, after removing a single trailing newline. */
|
||||
static void
|
||||
fc_addhist (line)
|
||||
char *line;
|
||||
{
|
||||
register int n;
|
||||
|
||||
if (line == 0 || *line == 0)
|
||||
return;
|
||||
|
||||
n = strlen (line);
|
||||
|
||||
if (line[n - 1] == '\n')
|
||||
line[n - 1] = '\0';
|
||||
|
||||
if (line && *line)
|
||||
maybe_add_history (line); /* Obeys HISTCONTROL setting. */
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HISTORY */
|
||||
@@ -1,205 +1,118 @@
|
||||
*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400
|
||||
--- parse.y 2009-03-14 20:24:51.000000000 -0400
|
||||
*** array.c 2009-03-29 17:21:09.000000000 -0400
|
||||
--- array.c.save3 2009-03-28 18:16:49.000000000 -0400
|
||||
***************
|
||||
*** 260,263 ****
|
||||
--- 260,266 ----
|
||||
int current_token;
|
||||
*** 56,59 ****
|
||||
--- 56,84 ----
|
||||
static char *array_to_string_internal __P((ARRAY_ELEMENT *, ARRAY_ELEMENT *, char *, int));
|
||||
|
||||
+ /* The current parser state. */
|
||||
+ int parser_state;
|
||||
+ static ARRAY *lastarray = 0;
|
||||
+ static ARRAY_ELEMENT *lastref = 0;
|
||||
+
|
||||
/* Variables to manage the task of reading here documents, because we need to
|
||||
defer the reading until after a complete command has been collected. */
|
||||
***************
|
||||
*** 284,290 ****
|
||||
static int arith_for_lineno;
|
||||
|
||||
- /* The current parser state. */
|
||||
- static int parser_state;
|
||||
-
|
||||
/* The last read token, or NULL. read_token () uses this for context
|
||||
checking. */
|
||||
--- 287,290 ----
|
||||
***************
|
||||
*** 1123,1127 ****
|
||||
REDIRECT *r;
|
||||
|
||||
! tc = $1;
|
||||
rd.dest = 1;
|
||||
r = make_redirection (2, r_duplicating_output, rd);
|
||||
--- 1123,1127 ----
|
||||
REDIRECT *r;
|
||||
|
||||
! tc = $1->type == cm_simple ? (COMMAND *)$1->value.Simple : $1;
|
||||
rd.dest = 1;
|
||||
r = make_redirection (2, r_duplicating_output, rd);
|
||||
***************
|
||||
*** 2397,2401 ****
|
||||
|
||||
#define command_token_position(token) \
|
||||
! (((token) == ASSIGNMENT_WORD) || \
|
||||
((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token)))
|
||||
|
||||
--- 2397,2401 ----
|
||||
|
||||
#define command_token_position(token) \
|
||||
! (((token) == ASSIGNMENT_WORD) || (parser_state&PST_REDIRLIST) || \
|
||||
((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token)))
|
||||
|
||||
***************
|
||||
*** 2968,2972 ****
|
||||
int retind, retsize, rflags;
|
||||
|
||||
! /* itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */
|
||||
count = 1;
|
||||
tflags = 0;
|
||||
--- 2968,2972 ----
|
||||
int retind, retsize, rflags;
|
||||
|
||||
! /*itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */
|
||||
count = 1;
|
||||
tflags = 0;
|
||||
***************
|
||||
*** 3263,3266 ****
|
||||
--- 3263,3283 ----
|
||||
prompt_again ();
|
||||
|
||||
+ /* XXX -- possibly allow here doc to be delimited by ending right
|
||||
+ paren. */
|
||||
+ if ((tflags & LEX_INHEREDOC) && ch == close && count == 1)
|
||||
+ {
|
||||
+ int tind;
|
||||
+ /*itrace("parse_comsub: in here doc, ch == close, retind - firstind = %d hdlen = %d retind = %d", retind-lex_firstind, hdlen, retind);*/
|
||||
+ tind = lex_firstind;
|
||||
+ while ((tflags & LEX_STRIPDOC) && ret[tind] == '\t')
|
||||
+ tind++;
|
||||
+ if (retind-tind == hdlen && STREQN (ret + tind, heredelim, hdlen))
|
||||
+ {
|
||||
+ tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC);
|
||||
+ /*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/
|
||||
+ lex_firstind = -1;
|
||||
+ }
|
||||
+ }
|
||||
+ #define IS_LASTREF(a) ((a) == lastarray)
|
||||
+
|
||||
/* Don't bother counting parens or doing anything else if in a comment */
|
||||
if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC))
|
||||
+ #define INVALIDATE_LASTREF(a) \
|
||||
+ do { \
|
||||
+ if ((a) == lastarray) { \
|
||||
+ lastarray = 0; \
|
||||
+ lastref = 0; \
|
||||
+ } \
|
||||
+ } while (0)
|
||||
+
|
||||
+ #define SET_LASTREF(a, e) \
|
||||
+ do { \
|
||||
+ lastarray = (a); \
|
||||
+ lastref = (e); \
|
||||
+ } while (0)
|
||||
+
|
||||
+ #define UNSET_LASTREF() \
|
||||
+ do { \
|
||||
+ lastarray = 0; \
|
||||
+ lastref = 0; \
|
||||
+ } while (0)
|
||||
+
|
||||
ARRAY *
|
||||
array_create()
|
||||
***************
|
||||
*** 3271,3275 ****
|
||||
--- 3288,3295 ----
|
||||
|
||||
if ((tflags & LEX_INCOMMENT) && ch == '\n')
|
||||
+ {
|
||||
+ /*itrace("parse_comsub:%d: lex_incomment -> 0 ch = `%c'", line_number, ch);*/
|
||||
tflags &= ~LEX_INCOMMENT;
|
||||
+ }
|
||||
|
||||
continue;
|
||||
***************
|
||||
*** 3365,3369 ****
|
||||
RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64);
|
||||
ret[retind++] = peekc;
|
||||
! /*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch); */
|
||||
tflags |= LEX_RESWDOK;
|
||||
lex_rwlen = 0;
|
||||
--- 3385,3389 ----
|
||||
RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64);
|
||||
ret[retind++] = peekc;
|
||||
! /*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/
|
||||
tflags |= LEX_RESWDOK;
|
||||
lex_rwlen = 0;
|
||||
***************
|
||||
*** 3373,3378 ****
|
||||
{
|
||||
shell_ungetc (peekc);
|
||||
- tflags |= LEX_RESWDOK;
|
||||
/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/
|
||||
lex_rwlen = 0;
|
||||
continue;
|
||||
--- 3393,3398 ----
|
||||
{
|
||||
shell_ungetc (peekc);
|
||||
/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/
|
||||
+ tflags |= LEX_RESWDOK;
|
||||
lex_rwlen = 0;
|
||||
continue;
|
||||
***************
|
||||
*** 3404,3413 ****
|
||||
{
|
||||
tflags |= LEX_INCASE;
|
||||
! /*itrace("parse_comsub:%d: found `case', lex_incase -> 1", line_number);*/
|
||||
*** 88,91 ****
|
||||
--- 113,117 ----
|
||||
a->max_index = -1;
|
||||
a->num_elements = 0;
|
||||
+ INVALIDATE_LASTREF(a);
|
||||
}
|
||||
else if (STREQN (ret + retind - 4, "esac", 4))
|
||||
{
|
||||
tflags &= ~LEX_INCASE;
|
||||
! /*itrace("parse_comsub:%d: found `esac', lex_incase -> 0", line_number);*/
|
||||
}
|
||||
tflags &= ~LEX_RESWDOK;
|
||||
--- 3424,3433 ----
|
||||
{
|
||||
tflags |= LEX_INCASE;
|
||||
! /*itrace("parse_comsub:%d: found `case', lex_incase -> 1 lex_reswdok -> 0", line_number);*/
|
||||
}
|
||||
else if (STREQN (ret + retind - 4, "esac", 4))
|
||||
{
|
||||
tflags &= ~LEX_INCASE;
|
||||
! /*itrace("parse_comsub:%d: found `esac', lex_incase -> 0 lex_reswdok -> 0", line_number);*/
|
||||
}
|
||||
tflags &= ~LEX_RESWDOK;
|
||||
|
||||
***************
|
||||
*** 3432,3435 ****
|
||||
--- 3452,3456 ----
|
||||
*** 186,189 ****
|
||||
--- 212,216 ----
|
||||
return ((ARRAY_ELEMENT *)NULL);
|
||||
|
||||
+ INVALIDATE_LASTREF(a);
|
||||
for (i = 0, ret = ae = element_forw(a->head); ae != a->head && i < n; ae = element_forw(ae), i++)
|
||||
;
|
||||
***************
|
||||
*** 264,267 ****
|
||||
--- 291,295 ----
|
||||
a->max_index = element_index(a->head->prev);
|
||||
|
||||
+ INVALIDATE_LASTREF(a);
|
||||
return (a->num_elements);
|
||||
}
|
||||
***************
|
||||
*** 595,598 ****
|
||||
--- 623,627 ----
|
||||
a->max_index = i;
|
||||
a->num_elements++;
|
||||
+ SET_LASTREF(a, new);
|
||||
return(0);
|
||||
}
|
||||
|
||||
+ /* Might be the start of a here-doc delimiter */
|
||||
if MBTEST((tflags & LEX_INCOMMENT) == 0 && (tflags & LEX_CKCASE) && ch == '<')
|
||||
{
|
||||
***************
|
||||
*** 3488,3492 ****
|
||||
--- 3509,3516 ----
|
||||
*** 608,618 ****
|
||||
--- 637,650 ----
|
||||
free(element_value(ae));
|
||||
ae->value = v ? savestring(v) : (char *)NULL;
|
||||
+ SET_LASTREF(a, ae);
|
||||
return(0);
|
||||
} else if (element_index(ae) > i) {
|
||||
ADD_BEFORE(ae, new);
|
||||
a->num_elements++;
|
||||
+ SET_LASTREF(a, new);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
+ INVALIDATE_LASTREF(a);
|
||||
return (-1); /* problem */
|
||||
}
|
||||
else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && (tflags & LEX_INCASE) == 0 && ch == open) /* nested begin */
|
||||
+ {
|
||||
count++;
|
||||
+ /*itrace("parse_comsub:%d: found open: count = %d", line_number, count);*/
|
||||
+ }
|
||||
|
||||
/* Add this character. */
|
||||
***************
|
||||
*** 5232,5236 ****
|
||||
if (interactive && EOF_Reached)
|
||||
EOF_Reached = 0;
|
||||
! last_command_exit_value = EX_USAGE;
|
||||
return;
|
||||
}
|
||||
--- 5256,5260 ----
|
||||
if (interactive && EOF_Reached)
|
||||
EOF_Reached = 0;
|
||||
! last_command_exit_value = EX_BADUSAGE;
|
||||
return;
|
||||
}
|
||||
*** 638,641 ****
|
||||
--- 670,674 ----
|
||||
if (i == array_max_index(a))
|
||||
a->max_index = element_index(ae->prev);
|
||||
+ INVALIDATE_LASTREF(a);
|
||||
return(ae);
|
||||
}
|
||||
***************
|
||||
*** 5247,5251 ****
|
||||
print_offending_line ();
|
||||
|
||||
! last_command_exit_value = EX_USAGE;
|
||||
return;
|
||||
}
|
||||
--- 5271,5275 ----
|
||||
print_offending_line ();
|
||||
|
||||
! last_command_exit_value = EX_BADUSAGE;
|
||||
return;
|
||||
}
|
||||
***************
|
||||
*** 5278,5282 ****
|
||||
}
|
||||
|
||||
! last_command_exit_value = EX_USAGE;
|
||||
*** 655,661 ****
|
||||
if (a == 0 || array_empty(a))
|
||||
return((char *) NULL);
|
||||
! for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae))
|
||||
! if (element_index(ae) == i)
|
||||
return(element_value(ae));
|
||||
return((char *) NULL);
|
||||
}
|
||||
|
||||
--- 5302,5306 ----
|
||||
}
|
||||
|
||||
! last_command_exit_value = EX_BADUSAGE;
|
||||
--- 688,704 ----
|
||||
if (a == 0 || array_empty(a))
|
||||
return((char *) NULL);
|
||||
! if (i > array_max_index(a))
|
||||
! return ((char *)NULL);
|
||||
! /* Keep roving pointer into array to optimize sequential access */
|
||||
! if (lastref && IS_LASTREF(a))
|
||||
! ae = (i >= element_index(lastref)) ? lastref : element_forw(a->head);
|
||||
! else
|
||||
! ae = element_forw(a->head);
|
||||
! for ( ; ae != a->head; ae = element_forw(ae))
|
||||
! if (element_index(ae) == i) {
|
||||
! SET_LASTREF(a, ae);
|
||||
return(element_value(ae));
|
||||
+ }
|
||||
+ UNSET_LASTREF();
|
||||
return((char *) NULL);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
+126
-126
@@ -1,378 +1,378 @@
|
||||
@xrdef{Introduction-title}{Introduction}
|
||||
@xrdef{Introduction-pg}{1}
|
||||
@xrdef{Introduction-snt}{Chapter@tie 1}
|
||||
@xrdef{What is Bash?-title}{What is Bash?}
|
||||
@xrdef{What is Bash?-pg}{1}
|
||||
@xrdef{What is Bash?-snt}{Section@tie 1.1}
|
||||
@xrdef{What is a shell?-title}{What is a shell?}
|
||||
@xrdef{What is a shell?-pg}{1}
|
||||
@xrdef{What is a shell?-snt}{Section@tie 1.2}
|
||||
@xrdef{Introduction-pg}{1}
|
||||
@xrdef{What is Bash?-pg}{1}
|
||||
@xrdef{What is a shell?-pg}{1}
|
||||
@xrdef{Definitions-title}{Definitions}
|
||||
@xrdef{Definitions-pg}{3}
|
||||
@xrdef{Definitions-snt}{Chapter@tie 2}
|
||||
@xrdef{Definitions-pg}{3}
|
||||
@xrdef{Basic Shell Features-title}{Basic Shell Features}
|
||||
@xrdef{Basic Shell Features-pg}{5}
|
||||
@xrdef{Basic Shell Features-snt}{Chapter@tie 3}
|
||||
@xrdef{Shell Syntax-title}{Shell Syntax}
|
||||
@xrdef{Shell Syntax-pg}{5}
|
||||
@xrdef{Shell Syntax-snt}{Section@tie 3.1}
|
||||
@xrdef{Shell Operation-title}{Shell Operation}
|
||||
@xrdef{Shell Operation-pg}{5}
|
||||
@xrdef{Shell Operation-snt}{Section@tie 3.1.1}
|
||||
@xrdef{Quoting-title}{Quoting}
|
||||
@xrdef{Quoting-pg}{6}
|
||||
@xrdef{Quoting-snt}{Section@tie 3.1.2}
|
||||
@xrdef{Basic Shell Features-pg}{5}
|
||||
@xrdef{Shell Syntax-pg}{5}
|
||||
@xrdef{Shell Operation-pg}{5}
|
||||
@xrdef{Escape Character-title}{Escape Character}
|
||||
@xrdef{Escape Character-pg}{6}
|
||||
@xrdef{Escape Character-snt}{Section@tie 3.1.2.1}
|
||||
@xrdef{Single Quotes-title}{Single Quotes}
|
||||
@xrdef{Single Quotes-pg}{6}
|
||||
@xrdef{Single Quotes-snt}{Section@tie 3.1.2.2}
|
||||
@xrdef{Double Quotes-title}{Double Quotes}
|
||||
@xrdef{Double Quotes-pg}{6}
|
||||
@xrdef{Double Quotes-snt}{Section@tie 3.1.2.3}
|
||||
@xrdef{ANSI-C Quoting-title}{ANSI-C Quoting}
|
||||
@xrdef{ANSI-C Quoting-pg}{6}
|
||||
@xrdef{ANSI-C Quoting-snt}{Section@tie 3.1.2.4}
|
||||
@xrdef{Quoting-pg}{6}
|
||||
@xrdef{Escape Character-pg}{6}
|
||||
@xrdef{Single Quotes-pg}{6}
|
||||
@xrdef{Double Quotes-pg}{6}
|
||||
@xrdef{ANSI-C Quoting-pg}{6}
|
||||
@xrdef{Locale Translation-title}{Locale-Specific Translation}
|
||||
@xrdef{Locale Translation-pg}{7}
|
||||
@xrdef{Locale Translation-snt}{Section@tie 3.1.2.5}
|
||||
@xrdef{Comments-title}{Comments}
|
||||
@xrdef{Comments-pg}{7}
|
||||
@xrdef{Comments-snt}{Section@tie 3.1.3}
|
||||
@xrdef{Shell Commands-title}{Shell Commands}
|
||||
@xrdef{Shell Commands-pg}{8}
|
||||
@xrdef{Shell Commands-snt}{Section@tie 3.2}
|
||||
@xrdef{Simple Commands-title}{Simple Commands}
|
||||
@xrdef{Simple Commands-pg}{8}
|
||||
@xrdef{Simple Commands-snt}{Section@tie 3.2.1}
|
||||
@xrdef{Locale Translation-pg}{7}
|
||||
@xrdef{Comments-pg}{7}
|
||||
@xrdef{Shell Commands-pg}{7}
|
||||
@xrdef{Pipelines-title}{Pipelines}
|
||||
@xrdef{Pipelines-pg}{8}
|
||||
@xrdef{Pipelines-snt}{Section@tie 3.2.2}
|
||||
@xrdef{Lists-title}{Lists of Commands}
|
||||
@xrdef{Lists-pg}{9}
|
||||
@xrdef{Lists-snt}{Section@tie 3.2.3}
|
||||
@xrdef{Simple Commands-pg}{8}
|
||||
@xrdef{Pipelines-pg}{8}
|
||||
@xrdef{Lists-pg}{8}
|
||||
@xrdef{Compound Commands-title}{Compound Commands}
|
||||
@xrdef{Compound Commands-pg}{9}
|
||||
@xrdef{Compound Commands-snt}{Section@tie 3.2.4}
|
||||
@xrdef{Looping Constructs-title}{Looping Constructs}
|
||||
@xrdef{Looping Constructs-pg}{10}
|
||||
@xrdef{Looping Constructs-snt}{Section@tie 3.2.4.1}
|
||||
@xrdef{Compound Commands-pg}{9}
|
||||
@xrdef{Looping Constructs-pg}{9}
|
||||
@xrdef{Conditional Constructs-title}{Conditional Constructs}
|
||||
@xrdef{Conditional Constructs-pg}{10}
|
||||
@xrdef{Conditional Constructs-snt}{Section@tie 3.2.4.2}
|
||||
@xrdef{Conditional Constructs-pg}{10}
|
||||
@xrdef{Command Grouping-title}{Grouping Commands}
|
||||
@xrdef{Command Grouping-pg}{13}
|
||||
@xrdef{Command Grouping-snt}{Section@tie 3.2.4.3}
|
||||
@xrdef{Coprocesses-title}{Coprocesses}
|
||||
@xrdef{Coprocesses-pg}{14}
|
||||
@xrdef{Coprocesses-snt}{Section@tie 3.2.5}
|
||||
@xrdef{Command Grouping-pg}{13}
|
||||
@xrdef{Coprocesses-pg}{13}
|
||||
@xrdef{Shell Functions-title}{Shell Functions}
|
||||
@xrdef{Shell Functions-pg}{14}
|
||||
@xrdef{Shell Functions-snt}{Section@tie 3.3}
|
||||
@xrdef{Shell Functions-pg}{14}
|
||||
@xrdef{Shell Parameters-title}{Shell Parameters}
|
||||
@xrdef{Shell Parameters-pg}{16}
|
||||
@xrdef{Shell Parameters-snt}{Section@tie 3.4}
|
||||
@xrdef{Shell Parameters-pg}{15}
|
||||
@xrdef{Positional Parameters-title}{Positional Parameters}
|
||||
@xrdef{Positional Parameters-pg}{16}
|
||||
@xrdef{Positional Parameters-snt}{Section@tie 3.4.1}
|
||||
@xrdef{Special Parameters-title}{Special Parameters}
|
||||
@xrdef{Special Parameters-pg}{17}
|
||||
@xrdef{Special Parameters-snt}{Section@tie 3.4.2}
|
||||
@xrdef{Positional Parameters-pg}{16}
|
||||
@xrdef{Special Parameters-pg}{16}
|
||||
@xrdef{Shell Expansions-title}{Shell Expansions}
|
||||
@xrdef{Shell Expansions-pg}{17}
|
||||
@xrdef{Shell Expansions-snt}{Section@tie 3.5}
|
||||
@xrdef{Brace Expansion-title}{Brace Expansion}
|
||||
@xrdef{Brace Expansion-pg}{18}
|
||||
@xrdef{Brace Expansion-snt}{Section@tie 3.5.1}
|
||||
@xrdef{Shell Expansions-pg}{17}
|
||||
@xrdef{Tilde Expansion-title}{Tilde Expansion}
|
||||
@xrdef{Tilde Expansion-pg}{19}
|
||||
@xrdef{Tilde Expansion-snt}{Section@tie 3.5.2}
|
||||
@xrdef{Brace Expansion-pg}{18}
|
||||
@xrdef{Tilde Expansion-pg}{18}
|
||||
@xrdef{Shell Parameter Expansion-title}{Shell Parameter Expansion}
|
||||
@xrdef{Shell Parameter Expansion-pg}{20}
|
||||
@xrdef{Shell Parameter Expansion-snt}{Section@tie 3.5.3}
|
||||
@xrdef{Shell Parameter Expansion-pg}{19}
|
||||
@xrdef{Command Substitution-title}{Command Substitution}
|
||||
@xrdef{Command Substitution-pg}{23}
|
||||
@xrdef{Command Substitution-snt}{Section@tie 3.5.4}
|
||||
@xrdef{Arithmetic Expansion-title}{Arithmetic Expansion}
|
||||
@xrdef{Arithmetic Expansion-pg}{23}
|
||||
@xrdef{Arithmetic Expansion-snt}{Section@tie 3.5.5}
|
||||
@xrdef{Command Substitution-pg}{22}
|
||||
@xrdef{Process Substitution-title}{Process Substitution}
|
||||
@xrdef{Process Substitution-pg}{23}
|
||||
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
|
||||
@xrdef{Word Splitting-title}{Word Splitting}
|
||||
@xrdef{Word Splitting-pg}{24}
|
||||
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
|
||||
@xrdef{Filename Expansion-title}{Filename Expansion}
|
||||
@xrdef{Filename Expansion-pg}{24}
|
||||
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
|
||||
@xrdef{Arithmetic Expansion-pg}{23}
|
||||
@xrdef{Process Substitution-pg}{23}
|
||||
@xrdef{Word Splitting-pg}{23}
|
||||
@xrdef{Pattern Matching-title}{Pattern Matching}
|
||||
@xrdef{Pattern Matching-pg}{25}
|
||||
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
|
||||
@xrdef{Filename Expansion-pg}{24}
|
||||
@xrdef{Pattern Matching-pg}{24}
|
||||
@xrdef{Quote Removal-title}{Quote Removal}
|
||||
@xrdef{Quote Removal-pg}{26}
|
||||
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
|
||||
@xrdef{Redirections-title}{Redirections}
|
||||
@xrdef{Redirections-pg}{26}
|
||||
@xrdef{Redirections-snt}{Section@tie 3.6}
|
||||
@xrdef{Quote Removal-pg}{25}
|
||||
@xrdef{Redirections-pg}{25}
|
||||
@xrdef{Executing Commands-title}{Executing Commands}
|
||||
@xrdef{Executing Commands-pg}{30}
|
||||
@xrdef{Executing Commands-snt}{Section@tie 3.7}
|
||||
@xrdef{Simple Command Expansion-title}{Simple Command Expansion}
|
||||
@xrdef{Simple Command Expansion-pg}{30}
|
||||
@xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1}
|
||||
@xrdef{Command Search and Execution-title}{Command Search and Execution}
|
||||
@xrdef{Command Search and Execution-pg}{30}
|
||||
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
|
||||
@xrdef{Executing Commands-pg}{29}
|
||||
@xrdef{Simple Command Expansion-pg}{29}
|
||||
@xrdef{Command Search and Execution-pg}{29}
|
||||
@xrdef{Command Execution Environment-title}{Command Execution Environment}
|
||||
@xrdef{Command Execution Environment-pg}{31}
|
||||
@xrdef{Command Execution Environment-snt}{Section@tie 3.7.3}
|
||||
@xrdef{Command Execution Environment-pg}{30}
|
||||
@xrdef{Environment-title}{Environment}
|
||||
@xrdef{Environment-pg}{32}
|
||||
@xrdef{Environment-snt}{Section@tie 3.7.4}
|
||||
@xrdef{Exit Status-title}{Exit Status}
|
||||
@xrdef{Exit Status-pg}{33}
|
||||
@xrdef{Exit Status-snt}{Section@tie 3.7.5}
|
||||
@xrdef{Environment-pg}{31}
|
||||
@xrdef{Exit Status-pg}{31}
|
||||
@xrdef{Signals-title}{Signals}
|
||||
@xrdef{Signals-pg}{33}
|
||||
@xrdef{Signals-snt}{Section@tie 3.7.6}
|
||||
@xrdef{Shell Scripts-title}{Shell Scripts}
|
||||
@xrdef{Shell Scripts-pg}{34}
|
||||
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
|
||||
@xrdef{Signals-pg}{32}
|
||||
@xrdef{Shell Scripts-pg}{33}
|
||||
@xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
|
||||
@xrdef{Shell Builtin Commands-pg}{35}
|
||||
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
|
||||
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
|
||||
@xrdef{Bourne Shell Builtins-pg}{35}
|
||||
@xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1}
|
||||
@xrdef{Shell Builtin Commands-pg}{35}
|
||||
@xrdef{Bourne Shell Builtins-pg}{35}
|
||||
@xrdef{Bash Builtins-title}{Bash Builtin Commands}
|
||||
@xrdef{Bash Builtins-pg}{41}
|
||||
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
|
||||
@xrdef{Bash Builtins-pg}{41}
|
||||
@xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior}
|
||||
@xrdef{Modifying Shell Behavior-pg}{51}
|
||||
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
|
||||
@xrdef{The Set Builtin-title}{The Set Builtin}
|
||||
@xrdef{The Set Builtin-pg}{51}
|
||||
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
|
||||
@xrdef{Modifying Shell Behavior-pg}{51}
|
||||
@xrdef{The Set Builtin-pg}{51}
|
||||
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
|
||||
@xrdef{The Shopt Builtin-pg}{55}
|
||||
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
|
||||
@xrdef{The Shopt Builtin-pg}{55}
|
||||
@xrdef{Special Builtins-title}{Special Builtins}
|
||||
@xrdef{Special Builtins-pg}{59}
|
||||
@xrdef{Special Builtins-snt}{Section@tie 4.4}
|
||||
@xrdef{Special Builtins-pg}{59}
|
||||
@xrdef{Shell Variables-title}{Shell Variables}
|
||||
@xrdef{Shell Variables-pg}{61}
|
||||
@xrdef{Shell Variables-snt}{Chapter@tie 5}
|
||||
@xrdef{Bourne Shell Variables-title}{Bourne Shell Variables}
|
||||
@xrdef{Bourne Shell Variables-pg}{61}
|
||||
@xrdef{Bourne Shell Variables-snt}{Section@tie 5.1}
|
||||
@xrdef{Bash Variables-title}{Bash Variables}
|
||||
@xrdef{Bash Variables-pg}{61}
|
||||
@xrdef{Bash Variables-snt}{Section@tie 5.2}
|
||||
@xrdef{Shell Variables-pg}{61}
|
||||
@xrdef{Bourne Shell Variables-pg}{61}
|
||||
@xrdef{Bash Variables-pg}{61}
|
||||
@xrdef{Bash Features-title}{Bash Features}
|
||||
@xrdef{Bash Features-pg}{71}
|
||||
@xrdef{Bash Features-snt}{Chapter@tie 6}
|
||||
@xrdef{Invoking Bash-title}{Invoking Bash}
|
||||
@xrdef{Invoking Bash-pg}{71}
|
||||
@xrdef{Invoking Bash-snt}{Section@tie 6.1}
|
||||
@xrdef{Bash Features-pg}{71}
|
||||
@xrdef{Invoking Bash-pg}{71}
|
||||
@xrdef{Bash Startup Files-title}{Bash Startup Files}
|
||||
@xrdef{Bash Startup Files-pg}{73}
|
||||
@xrdef{Bash Startup Files-snt}{Section@tie 6.2}
|
||||
@xrdef{Bash Startup Files-pg}{73}
|
||||
@xrdef{Interactive Shells-title}{Interactive Shells}
|
||||
@xrdef{Interactive Shells-pg}{75}
|
||||
@xrdef{Interactive Shells-snt}{Section@tie 6.3}
|
||||
@xrdef{What is an Interactive Shell?-title}{What is an Interactive Shell?}
|
||||
@xrdef{What is an Interactive Shell?-pg}{75}
|
||||
@xrdef{What is an Interactive Shell?-snt}{Section@tie 6.3.1}
|
||||
@xrdef{Interactive Shells-pg}{74}
|
||||
@xrdef{Is this Shell Interactive?-title}{Is this Shell Interactive?}
|
||||
@xrdef{Is this Shell Interactive?-pg}{75}
|
||||
@xrdef{Is this Shell Interactive?-snt}{Section@tie 6.3.2}
|
||||
@xrdef{Interactive Shell Behavior-title}{Interactive Shell Behavior}
|
||||
@xrdef{Interactive Shell Behavior-pg}{75}
|
||||
@xrdef{Interactive Shell Behavior-snt}{Section@tie 6.3.3}
|
||||
@xrdef{What is an Interactive Shell?-pg}{75}
|
||||
@xrdef{Is this Shell Interactive?-pg}{75}
|
||||
@xrdef{Interactive Shell Behavior-pg}{75}
|
||||
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
|
||||
@xrdef{Bash Conditional Expressions-pg}{77}
|
||||
@xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
|
||||
@xrdef{Bash Conditional Expressions-pg}{76}
|
||||
@xrdef{Shell Arithmetic-title}{Shell Arithmetic}
|
||||
@xrdef{Shell Arithmetic-pg}{78}
|
||||
@xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
|
||||
@xrdef{Shell Arithmetic-pg}{78}
|
||||
@xrdef{Aliases-title}{Aliases}
|
||||
@xrdef{Aliases-pg}{79}
|
||||
@xrdef{Aliases-snt}{Section@tie 6.6}
|
||||
@xrdef{Aliases-pg}{79}
|
||||
@xrdef{Arrays-title}{Arrays}
|
||||
@xrdef{Arrays-pg}{80}
|
||||
@xrdef{Arrays-snt}{Section@tie 6.7}
|
||||
@xrdef{Arrays-pg}{80}
|
||||
@xrdef{The Directory Stack-title}{The Directory Stack}
|
||||
@xrdef{The Directory Stack-pg}{81}
|
||||
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
|
||||
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
|
||||
@xrdef{Directory Stack Builtins-pg}{82}
|
||||
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
|
||||
@xrdef{The Directory Stack-pg}{81}
|
||||
@xrdef{Directory Stack Builtins-pg}{81}
|
||||
@xrdef{Printing a Prompt-title}{Controlling the Prompt}
|
||||
@xrdef{Printing a Prompt-pg}{83}
|
||||
@xrdef{Printing a Prompt-snt}{Section@tie 6.9}
|
||||
@xrdef{Printing a Prompt-pg}{82}
|
||||
@xrdef{The Restricted Shell-title}{The Restricted Shell}
|
||||
@xrdef{The Restricted Shell-pg}{84}
|
||||
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
|
||||
@xrdef{Bash POSIX Mode-title}{Bash POSIX Mode}
|
||||
@xrdef{Bash POSIX Mode-pg}{85}
|
||||
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
|
||||
@xrdef{The Restricted Shell-pg}{84}
|
||||
@xrdef{Bash POSIX Mode-pg}{84}
|
||||
@xrdef{Job Control-title}{Job Control}
|
||||
@xrdef{Job Control-pg}{89}
|
||||
@xrdef{Job Control-snt}{Chapter@tie 7}
|
||||
@xrdef{Job Control Basics-title}{Job Control Basics}
|
||||
@xrdef{Job Control Basics-pg}{89}
|
||||
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
|
||||
@xrdef{Job Control-pg}{87}
|
||||
@xrdef{Job Control Basics-pg}{87}
|
||||
@xrdef{Job Control Builtins-title}{Job Control Builtins}
|
||||
@xrdef{Job Control Builtins-pg}{90}
|
||||
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
|
||||
@xrdef{Job Control Builtins-pg}{88}
|
||||
@xrdef{Job Control Variables-title}{Job Control Variables}
|
||||
@xrdef{Job Control Variables-pg}{92}
|
||||
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
|
||||
@xrdef{Job Control Variables-pg}{90}
|
||||
@xrdef{Command Line Editing-title}{Command Line Editing}
|
||||
@xrdef{Command Line Editing-pg}{93}
|
||||
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
|
||||
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
|
||||
@xrdef{Introduction and Notation-pg}{93}
|
||||
@xrdef{Introduction and Notation-snt}{Section@tie 8.1}
|
||||
@xrdef{Readline Interaction-title}{Readline Interaction}
|
||||
@xrdef{Readline Interaction-pg}{93}
|
||||
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
|
||||
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
|
||||
@xrdef{Readline Bare Essentials-pg}{94}
|
||||
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
|
||||
@xrdef{Command Line Editing-pg}{91}
|
||||
@xrdef{Introduction and Notation-pg}{91}
|
||||
@xrdef{Readline Interaction-pg}{91}
|
||||
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
|
||||
@xrdef{Readline Movement Commands-pg}{94}
|
||||
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
|
||||
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
|
||||
@xrdef{Readline Killing Commands-pg}{95}
|
||||
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
|
||||
@xrdef{Readline Bare Essentials-pg}{92}
|
||||
@xrdef{Readline Movement Commands-pg}{92}
|
||||
@xrdef{Readline Arguments-title}{Readline Arguments}
|
||||
@xrdef{Readline Arguments-pg}{95}
|
||||
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
|
||||
@xrdef{Searching-title}{Searching for Commands in the History}
|
||||
@xrdef{Searching-pg}{96}
|
||||
@xrdef{Searching-snt}{Section@tie 8.2.5}
|
||||
@xrdef{Readline Killing Commands-pg}{93}
|
||||
@xrdef{Readline Arguments-pg}{93}
|
||||
@xrdef{Searching-pg}{93}
|
||||
@xrdef{Readline Init File-title}{Readline Init File}
|
||||
@xrdef{Readline Init File-pg}{96}
|
||||
@xrdef{Readline Init File-snt}{Section@tie 8.3}
|
||||
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
|
||||
@xrdef{Readline Init File Syntax-pg}{96}
|
||||
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
|
||||
@xrdef{Readline Init File-pg}{94}
|
||||
@xrdef{Readline Init File Syntax-pg}{94}
|
||||
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
|
||||
@xrdef{Conditional Init Constructs-pg}{102}
|
||||
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
|
||||
@xrdef{Sample Init File-title}{Sample Init File}
|
||||
@xrdef{Sample Init File-pg}{103}
|
||||
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
|
||||
@xrdef{Conditional Init Constructs-pg}{100}
|
||||
@xrdef{Sample Init File-pg}{100}
|
||||
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
|
||||
@xrdef{Bindable Readline Commands-pg}{106}
|
||||
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
|
||||
@xrdef{Commands For Moving-title}{Commands For Moving}
|
||||
@xrdef{Commands For Moving-pg}{106}
|
||||
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
|
||||
@xrdef{Commands For History-title}{Commands For Manipulating The History}
|
||||
@xrdef{Commands For History-pg}{107}
|
||||
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
|
||||
@xrdef{Bindable Readline Commands-pg}{103}
|
||||
@xrdef{Commands For Moving-pg}{103}
|
||||
@xrdef{Commands For History-pg}{104}
|
||||
@xrdef{Commands For Text-title}{Commands For Changing Text}
|
||||
@xrdef{Commands For Text-pg}{108}
|
||||
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
|
||||
@xrdef{Commands For Text-pg}{105}
|
||||
@xrdef{Commands For Killing-title}{Killing And Yanking}
|
||||
@xrdef{Commands For Killing-pg}{109}
|
||||
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
|
||||
@xrdef{Commands For Killing-pg}{106}
|
||||
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
|
||||
@xrdef{Numeric Arguments-pg}{110}
|
||||
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
|
||||
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
|
||||
@xrdef{Commands For Completion-pg}{110}
|
||||
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
|
||||
@xrdef{Numeric Arguments-pg}{107}
|
||||
@xrdef{Commands For Completion-pg}{107}
|
||||
@xrdef{Keyboard Macros-title}{Keyboard Macros}
|
||||
@xrdef{Keyboard Macros-pg}{112}
|
||||
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
|
||||
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
|
||||
@xrdef{Miscellaneous Commands-pg}{112}
|
||||
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
|
||||
@xrdef{Keyboard Macros-pg}{109}
|
||||
@xrdef{Miscellaneous Commands-pg}{109}
|
||||
@xrdef{Readline vi Mode-title}{Readline vi Mode}
|
||||
@xrdef{Readline vi Mode-pg}{114}
|
||||
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
|
||||
@xrdef{Programmable Completion-title}{Programmable Completion}
|
||||
@xrdef{Programmable Completion-pg}{115}
|
||||
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
|
||||
@xrdef{Readline vi Mode-pg}{111}
|
||||
@xrdef{Programmable Completion-pg}{112}
|
||||
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
|
||||
@xrdef{Programmable Completion Builtins-pg}{116}
|
||||
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
|
||||
@xrdef{Programmable Completion Builtins-pg}{113}
|
||||
@xrdef{Using History Interactively-title}{Using History Interactively}
|
||||
@xrdef{Using History Interactively-pg}{121}
|
||||
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
|
||||
@xrdef{Bash History Facilities-title}{Bash History Facilities}
|
||||
@xrdef{Bash History Facilities-pg}{121}
|
||||
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
|
||||
@xrdef{Bash History Builtins-title}{Bash History Builtins}
|
||||
@xrdef{Bash History Builtins-pg}{121}
|
||||
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
|
||||
@xrdef{Using History Interactively-pg}{119}
|
||||
@xrdef{Bash History Facilities-pg}{119}
|
||||
@xrdef{Bash History Builtins-pg}{119}
|
||||
@xrdef{History Interaction-title}{History Expansion}
|
||||
@xrdef{History Interaction-pg}{123}
|
||||
@xrdef{History Interaction-snt}{Section@tie 9.3}
|
||||
@xrdef{Event Designators-title}{Event Designators}
|
||||
@xrdef{Event Designators-pg}{124}
|
||||
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
|
||||
@xrdef{History Interaction-pg}{121}
|
||||
@xrdef{Event Designators-pg}{121}
|
||||
@xrdef{Word Designators-title}{Word Designators}
|
||||
@xrdef{Word Designators-pg}{124}
|
||||
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
|
||||
@xrdef{Word Designators-pg}{122}
|
||||
@xrdef{Modifiers-title}{Modifiers}
|
||||
@xrdef{Modifiers-pg}{125}
|
||||
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
|
||||
@xrdef{Modifiers-pg}{123}
|
||||
@xrdef{Installing Bash-title}{Installing Bash}
|
||||
@xrdef{Installing Bash-pg}{127}
|
||||
@xrdef{Installing Bash-snt}{Chapter@tie 10}
|
||||
@xrdef{Basic Installation-title}{Basic Installation}
|
||||
@xrdef{Basic Installation-pg}{127}
|
||||
@xrdef{Basic Installation-snt}{Section@tie 10.1}
|
||||
@xrdef{Compilers and Options-title}{Compilers and Options}
|
||||
@xrdef{Compilers and Options-pg}{128}
|
||||
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
|
||||
@xrdef{Installing Bash-pg}{125}
|
||||
@xrdef{Basic Installation-pg}{125}
|
||||
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{128}
|
||||
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
|
||||
@xrdef{Installation Names-title}{Installation Names}
|
||||
@xrdef{Installation Names-pg}{128}
|
||||
@xrdef{Installation Names-snt}{Section@tie 10.4}
|
||||
@xrdef{Specifying the System Type-title}{Specifying the System Type}
|
||||
@xrdef{Specifying the System Type-pg}{129}
|
||||
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
|
||||
@xrdef{Compilers and Options-pg}{126}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{126}
|
||||
@xrdef{Installation Names-pg}{126}
|
||||
@xrdef{Specifying the System Type-pg}{126}
|
||||
@xrdef{Sharing Defaults-title}{Sharing Defaults}
|
||||
@xrdef{Sharing Defaults-pg}{129}
|
||||
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
|
||||
@xrdef{Operation Controls-title}{Operation Controls}
|
||||
@xrdef{Operation Controls-pg}{129}
|
||||
@xrdef{Operation Controls-snt}{Section@tie 10.7}
|
||||
@xrdef{Optional Features-title}{Optional Features}
|
||||
@xrdef{Optional Features-pg}{129}
|
||||
@xrdef{Optional Features-snt}{Section@tie 10.8}
|
||||
@xrdef{Sharing Defaults-pg}{127}
|
||||
@xrdef{Operation Controls-pg}{127}
|
||||
@xrdef{Optional Features-pg}{127}
|
||||
@xrdef{Reporting Bugs-title}{Reporting Bugs}
|
||||
@xrdef{Reporting Bugs-pg}{135}
|
||||
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{Reporting Bugs-pg}{133}
|
||||
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
|
||||
@xrdef{Major Differences From The Bourne Shell-pg}{137}
|
||||
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
|
||||
@xrdef{Major Differences From The Bourne Shell-pg}{135}
|
||||
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
|
||||
@xrdef{GNU Free Documentation License-pg}{143}
|
||||
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
|
||||
@xrdef{GNU Free Documentation License-pg}{141}
|
||||
@xrdef{Indexes-title}{Indexes}
|
||||
@xrdef{Indexes-pg}{151}
|
||||
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
|
||||
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
|
||||
@xrdef{Builtin Index-pg}{151}
|
||||
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
|
||||
@xrdef{Indexes-pg}{149}
|
||||
@xrdef{Builtin Index-pg}{149}
|
||||
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
|
||||
@xrdef{Reserved Word Index-pg}{152}
|
||||
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
|
||||
@xrdef{Variable Index-title}{Parameter and Variable Index}
|
||||
@xrdef{Variable Index-pg}{152}
|
||||
@xrdef{Variable Index-snt}{Section@tie @char68.3}
|
||||
@xrdef{Reserved Word Index-pg}{150}
|
||||
@xrdef{Variable Index-pg}{150}
|
||||
@xrdef{Function Index-title}{Function Index}
|
||||
@xrdef{Function Index-pg}{154}
|
||||
@xrdef{Function Index-snt}{Section@tie @char68.4}
|
||||
@xrdef{Function Index-pg}{152}
|
||||
@xrdef{Concept Index-title}{Concept Index}
|
||||
@xrdef{Concept Index-pg}{156}
|
||||
@xrdef{Concept Index-snt}{Section@tie @char68.5}
|
||||
@xrdef{Concept Index-pg}{154}
|
||||
|
||||
+14
-14
@@ -6,7 +6,7 @@
|
||||
\entry{eval}{36}{\code {eval}}
|
||||
\entry{exec}{36}{\code {exec}}
|
||||
\entry{exit}{36}{\code {exit}}
|
||||
\entry{export}{37}{\code {export}}
|
||||
\entry{export}{36}{\code {export}}
|
||||
\entry{getopts}{37}{\code {getopts}}
|
||||
\entry{hash}{37}{\code {hash}}
|
||||
\entry{pwd}{38}{\code {pwd}}
|
||||
@@ -42,18 +42,18 @@
|
||||
\entry{unalias}{50}{\code {unalias}}
|
||||
\entry{set}{51}{\code {set}}
|
||||
\entry{shopt}{55}{\code {shopt}}
|
||||
\entry{dirs}{82}{\code {dirs}}
|
||||
\entry{dirs}{81}{\code {dirs}}
|
||||
\entry{popd}{82}{\code {popd}}
|
||||
\entry{pushd}{82}{\code {pushd}}
|
||||
\entry{bg}{90}{\code {bg}}
|
||||
\entry{fg}{90}{\code {fg}}
|
||||
\entry{jobs}{90}{\code {jobs}}
|
||||
\entry{kill}{91}{\code {kill}}
|
||||
\entry{wait}{91}{\code {wait}}
|
||||
\entry{disown}{91}{\code {disown}}
|
||||
\entry{suspend}{91}{\code {suspend}}
|
||||
\entry{compgen}{116}{\code {compgen}}
|
||||
\entry{complete}{117}{\code {complete}}
|
||||
\entry{compopt}{120}{\code {compopt}}
|
||||
\entry{fc}{122}{\code {fc}}
|
||||
\entry{history}{122}{\code {history}}
|
||||
\entry{bg}{88}{\code {bg}}
|
||||
\entry{fg}{88}{\code {fg}}
|
||||
\entry{jobs}{88}{\code {jobs}}
|
||||
\entry{kill}{89}{\code {kill}}
|
||||
\entry{wait}{89}{\code {wait}}
|
||||
\entry{disown}{89}{\code {disown}}
|
||||
\entry{suspend}{89}{\code {suspend}}
|
||||
\entry{compgen}{113}{\code {compgen}}
|
||||
\entry{complete}{114}{\code {complete}}
|
||||
\entry{compopt}{116}{\code {compopt}}
|
||||
\entry{fc}{119}{\code {fc}}
|
||||
\entry{history}{120}{\code {history}}
|
||||
|
||||
+14
-14
@@ -7,7 +7,7 @@
|
||||
\initial {A}
|
||||
\entry {\code {alias}}{41}
|
||||
\initial {B}
|
||||
\entry {\code {bg}}{90}
|
||||
\entry {\code {bg}}{88}
|
||||
\entry {\code {bind}}{41}
|
||||
\entry {\code {break}}{35}
|
||||
\entry {\code {builtin}}{43}
|
||||
@@ -15,34 +15,34 @@
|
||||
\entry {\code {caller}}{43}
|
||||
\entry {\code {cd}}{36}
|
||||
\entry {\code {command}}{43}
|
||||
\entry {\code {compgen}}{116}
|
||||
\entry {\code {complete}}{117}
|
||||
\entry {\code {compopt}}{120}
|
||||
\entry {\code {compgen}}{113}
|
||||
\entry {\code {complete}}{114}
|
||||
\entry {\code {compopt}}{116}
|
||||
\entry {\code {continue}}{36}
|
||||
\initial {D}
|
||||
\entry {\code {declare}}{43}
|
||||
\entry {\code {dirs}}{82}
|
||||
\entry {\code {disown}}{91}
|
||||
\entry {\code {dirs}}{81}
|
||||
\entry {\code {disown}}{89}
|
||||
\initial {E}
|
||||
\entry {\code {echo}}{44}
|
||||
\entry {\code {enable}}{45}
|
||||
\entry {\code {eval}}{36}
|
||||
\entry {\code {exec}}{36}
|
||||
\entry {\code {exit}}{36}
|
||||
\entry {\code {export}}{37}
|
||||
\entry {\code {export}}{36}
|
||||
\initial {F}
|
||||
\entry {\code {fc}}{122}
|
||||
\entry {\code {fg}}{90}
|
||||
\entry {\code {fc}}{119}
|
||||
\entry {\code {fg}}{88}
|
||||
\initial {G}
|
||||
\entry {\code {getopts}}{37}
|
||||
\initial {H}
|
||||
\entry {\code {hash}}{37}
|
||||
\entry {\code {help}}{46}
|
||||
\entry {\code {history}}{122}
|
||||
\entry {\code {history}}{120}
|
||||
\initial {J}
|
||||
\entry {\code {jobs}}{90}
|
||||
\entry {\code {jobs}}{88}
|
||||
\initial {K}
|
||||
\entry {\code {kill}}{91}
|
||||
\entry {\code {kill}}{89}
|
||||
\initial {L}
|
||||
\entry {\code {let}}{46}
|
||||
\entry {\code {local}}{46}
|
||||
@@ -64,7 +64,7 @@
|
||||
\entry {\code {shift}}{38}
|
||||
\entry {\code {shopt}}{55}
|
||||
\entry {\code {source}}{49}
|
||||
\entry {\code {suspend}}{91}
|
||||
\entry {\code {suspend}}{89}
|
||||
\initial {T}
|
||||
\entry {\code {test}}{39}
|
||||
\entry {\code {times}}{40}
|
||||
@@ -77,4 +77,4 @@
|
||||
\entry {\code {unalias}}{50}
|
||||
\entry {\code {unset}}{41}
|
||||
\initial {W}
|
||||
\entry {\code {wait}}{91}
|
||||
\entry {\code {wait}}{89}
|
||||
|
||||
+57
-57
@@ -26,58 +26,58 @@
|
||||
\entry{native languages}{7}{native languages}
|
||||
\entry{translation, native languages}{7}{translation, native languages}
|
||||
\entry{comments, shell}{7}{comments, shell}
|
||||
\entry{commands, shell}{8}{commands, shell}
|
||||
\entry{commands, shell}{7}{commands, shell}
|
||||
\entry{commands, simple}{8}{commands, simple}
|
||||
\entry{pipeline}{8}{pipeline}
|
||||
\entry{commands, pipelines}{8}{commands, pipelines}
|
||||
\entry{command timing}{8}{command timing}
|
||||
\entry{commands, lists}{9}{commands, lists}
|
||||
\entry{commands, lists}{8}{commands, lists}
|
||||
\entry{commands, compound}{9}{commands, compound}
|
||||
\entry{commands, looping}{10}{commands, looping}
|
||||
\entry{commands, looping}{9}{commands, looping}
|
||||
\entry{commands, conditional}{10}{commands, conditional}
|
||||
\entry{commands, grouping}{13}{commands, grouping}
|
||||
\entry{coprocess}{14}{coprocess}
|
||||
\entry{coprocess}{13}{coprocess}
|
||||
\entry{shell function}{14}{shell function}
|
||||
\entry{functions, shell}{14}{functions, shell}
|
||||
\entry{parameters}{16}{parameters}
|
||||
\entry{variable, shell}{16}{variable, shell}
|
||||
\entry{shell variable}{16}{shell variable}
|
||||
\entry{parameters}{15}{parameters}
|
||||
\entry{variable, shell}{15}{variable, shell}
|
||||
\entry{shell variable}{15}{shell variable}
|
||||
\entry{parameters, positional}{16}{parameters, positional}
|
||||
\entry{parameters, special}{17}{parameters, special}
|
||||
\entry{parameters, special}{16}{parameters, special}
|
||||
\entry{expansion}{17}{expansion}
|
||||
\entry{brace expansion}{18}{brace expansion}
|
||||
\entry{expansion, brace}{18}{expansion, brace}
|
||||
\entry{tilde expansion}{19}{tilde expansion}
|
||||
\entry{expansion, tilde}{19}{expansion, tilde}
|
||||
\entry{parameter expansion}{20}{parameter expansion}
|
||||
\entry{expansion, parameter}{20}{expansion, parameter}
|
||||
\entry{command substitution}{23}{command substitution}
|
||||
\entry{tilde expansion}{18}{tilde expansion}
|
||||
\entry{expansion, tilde}{18}{expansion, tilde}
|
||||
\entry{parameter expansion}{19}{parameter expansion}
|
||||
\entry{expansion, parameter}{19}{expansion, parameter}
|
||||
\entry{command substitution}{22}{command substitution}
|
||||
\entry{expansion, arithmetic}{23}{expansion, arithmetic}
|
||||
\entry{arithmetic expansion}{23}{arithmetic expansion}
|
||||
\entry{process substitution}{23}{process substitution}
|
||||
\entry{word splitting}{24}{word splitting}
|
||||
\entry{word splitting}{23}{word splitting}
|
||||
\entry{expansion, filename}{24}{expansion, filename}
|
||||
\entry{expansion, pathname}{24}{expansion, pathname}
|
||||
\entry{filename expansion}{24}{filename expansion}
|
||||
\entry{pathname expansion}{24}{pathname expansion}
|
||||
\entry{pattern matching}{25}{pattern matching}
|
||||
\entry{matching, pattern}{25}{matching, pattern}
|
||||
\entry{redirection}{26}{redirection}
|
||||
\entry{command expansion}{30}{command expansion}
|
||||
\entry{command execution}{30}{command execution}
|
||||
\entry{command search}{30}{command search}
|
||||
\entry{execution environment}{31}{execution environment}
|
||||
\entry{environment}{32}{environment}
|
||||
\entry{exit status}{33}{exit status}
|
||||
\entry{signal handling}{33}{signal handling}
|
||||
\entry{shell script}{34}{shell script}
|
||||
\entry{pattern matching}{24}{pattern matching}
|
||||
\entry{matching, pattern}{24}{matching, pattern}
|
||||
\entry{redirection}{25}{redirection}
|
||||
\entry{command expansion}{29}{command expansion}
|
||||
\entry{command execution}{29}{command execution}
|
||||
\entry{command search}{29}{command search}
|
||||
\entry{execution environment}{30}{execution environment}
|
||||
\entry{environment}{31}{environment}
|
||||
\entry{exit status}{31}{exit status}
|
||||
\entry{signal handling}{32}{signal handling}
|
||||
\entry{shell script}{33}{shell script}
|
||||
\entry{special builtin}{59}{special builtin}
|
||||
\entry{login shell}{73}{login shell}
|
||||
\entry{interactive shell}{73}{interactive shell}
|
||||
\entry{startup files}{73}{startup files}
|
||||
\entry{interactive shell}{75}{interactive shell}
|
||||
\entry{shell, interactive}{75}{shell, interactive}
|
||||
\entry{expressions, conditional}{77}{expressions, conditional}
|
||||
\entry{interactive shell}{74}{interactive shell}
|
||||
\entry{shell, interactive}{74}{shell, interactive}
|
||||
\entry{expressions, conditional}{76}{expressions, conditional}
|
||||
\entry{arithmetic, shell}{78}{arithmetic, shell}
|
||||
\entry{shell arithmetic}{78}{shell arithmetic}
|
||||
\entry{expressions, arithmetic}{78}{expressions, arithmetic}
|
||||
@@ -86,33 +86,33 @@
|
||||
\entry{alias expansion}{79}{alias expansion}
|
||||
\entry{arrays}{80}{arrays}
|
||||
\entry{directory stack}{81}{directory stack}
|
||||
\entry{prompting}{83}{prompting}
|
||||
\entry{prompting}{82}{prompting}
|
||||
\entry{restricted shell}{84}{restricted shell}
|
||||
\entry{POSIX Mode}{85}{POSIX Mode}
|
||||
\entry{job control}{89}{job control}
|
||||
\entry{foreground}{89}{foreground}
|
||||
\entry{background}{89}{background}
|
||||
\entry{suspending jobs}{89}{suspending jobs}
|
||||
\entry{Readline, how to use}{92}{Readline, how to use}
|
||||
\entry{interaction, readline}{93}{interaction, readline}
|
||||
\entry{notation, readline}{94}{notation, readline}
|
||||
\entry{command editing}{94}{command editing}
|
||||
\entry{editing command lines}{94}{editing command lines}
|
||||
\entry{killing text}{95}{killing text}
|
||||
\entry{yanking text}{95}{yanking text}
|
||||
\entry{kill ring}{95}{kill ring}
|
||||
\entry{initialization file, readline}{96}{initialization file, readline}
|
||||
\entry{variables, readline}{97}{variables, readline}
|
||||
\entry{programmable completion}{115}{programmable completion}
|
||||
\entry{completion builtins}{116}{completion builtins}
|
||||
\entry{History, how to use}{120}{History, how to use}
|
||||
\entry{command history}{121}{command history}
|
||||
\entry{history list}{121}{history list}
|
||||
\entry{history builtins}{121}{history builtins}
|
||||
\entry{history expansion}{123}{history expansion}
|
||||
\entry{event designators}{124}{event designators}
|
||||
\entry{history events}{124}{history events}
|
||||
\entry{installation}{127}{installation}
|
||||
\entry{configuration}{127}{configuration}
|
||||
\entry{Bash installation}{127}{Bash installation}
|
||||
\entry{Bash configuration}{127}{Bash configuration}
|
||||
\entry{POSIX Mode}{84}{POSIX Mode}
|
||||
\entry{job control}{87}{job control}
|
||||
\entry{foreground}{87}{foreground}
|
||||
\entry{background}{87}{background}
|
||||
\entry{suspending jobs}{87}{suspending jobs}
|
||||
\entry{Readline, how to use}{90}{Readline, how to use}
|
||||
\entry{interaction, readline}{91}{interaction, readline}
|
||||
\entry{notation, readline}{92}{notation, readline}
|
||||
\entry{command editing}{92}{command editing}
|
||||
\entry{editing command lines}{92}{editing command lines}
|
||||
\entry{killing text}{93}{killing text}
|
||||
\entry{yanking text}{93}{yanking text}
|
||||
\entry{kill ring}{93}{kill ring}
|
||||
\entry{initialization file, readline}{94}{initialization file, readline}
|
||||
\entry{variables, readline}{95}{variables, readline}
|
||||
\entry{programmable completion}{112}{programmable completion}
|
||||
\entry{completion builtins}{113}{completion builtins}
|
||||
\entry{History, how to use}{117}{History, how to use}
|
||||
\entry{command history}{119}{command history}
|
||||
\entry{history list}{119}{history list}
|
||||
\entry{history builtins}{119}{history builtins}
|
||||
\entry{history expansion}{121}{history expansion}
|
||||
\entry{event designators}{121}{event designators}
|
||||
\entry{history events}{121}{history events}
|
||||
\entry{installation}{125}{installation}
|
||||
\entry{configuration}{125}{configuration}
|
||||
\entry{Bash installation}{125}{Bash installation}
|
||||
\entry{Bash configuration}{125}{Bash configuration}
|
||||
|
||||
+57
-57
@@ -5,132 +5,132 @@
|
||||
\entry {arithmetic, shell}{78}
|
||||
\entry {arrays}{80}
|
||||
\initial {B}
|
||||
\entry {background}{89}
|
||||
\entry {Bash configuration}{127}
|
||||
\entry {Bash installation}{127}
|
||||
\entry {background}{87}
|
||||
\entry {Bash configuration}{125}
|
||||
\entry {Bash installation}{125}
|
||||
\entry {Bourne shell}{5}
|
||||
\entry {brace expansion}{18}
|
||||
\entry {builtin}{3}
|
||||
\initial {C}
|
||||
\entry {command editing}{94}
|
||||
\entry {command execution}{30}
|
||||
\entry {command expansion}{30}
|
||||
\entry {command history}{121}
|
||||
\entry {command search}{30}
|
||||
\entry {command substitution}{23}
|
||||
\entry {command editing}{92}
|
||||
\entry {command execution}{29}
|
||||
\entry {command expansion}{29}
|
||||
\entry {command history}{119}
|
||||
\entry {command search}{29}
|
||||
\entry {command substitution}{22}
|
||||
\entry {command timing}{8}
|
||||
\entry {commands, compound}{9}
|
||||
\entry {commands, conditional}{10}
|
||||
\entry {commands, grouping}{13}
|
||||
\entry {commands, lists}{9}
|
||||
\entry {commands, looping}{10}
|
||||
\entry {commands, lists}{8}
|
||||
\entry {commands, looping}{9}
|
||||
\entry {commands, pipelines}{8}
|
||||
\entry {commands, shell}{8}
|
||||
\entry {commands, shell}{7}
|
||||
\entry {commands, simple}{8}
|
||||
\entry {comments, shell}{7}
|
||||
\entry {completion builtins}{116}
|
||||
\entry {configuration}{127}
|
||||
\entry {completion builtins}{113}
|
||||
\entry {configuration}{125}
|
||||
\entry {control operator}{3}
|
||||
\entry {coprocess}{14}
|
||||
\entry {coprocess}{13}
|
||||
\initial {D}
|
||||
\entry {directory stack}{81}
|
||||
\initial {E}
|
||||
\entry {editing command lines}{94}
|
||||
\entry {environment}{32}
|
||||
\entry {editing command lines}{92}
|
||||
\entry {environment}{31}
|
||||
\entry {evaluation, arithmetic}{78}
|
||||
\entry {event designators}{124}
|
||||
\entry {execution environment}{31}
|
||||
\entry {exit status}{3, 33}
|
||||
\entry {event designators}{121}
|
||||
\entry {execution environment}{30}
|
||||
\entry {exit status}{3, 31}
|
||||
\entry {expansion}{17}
|
||||
\entry {expansion, arithmetic}{23}
|
||||
\entry {expansion, brace}{18}
|
||||
\entry {expansion, filename}{24}
|
||||
\entry {expansion, parameter}{20}
|
||||
\entry {expansion, parameter}{19}
|
||||
\entry {expansion, pathname}{24}
|
||||
\entry {expansion, tilde}{19}
|
||||
\entry {expansion, tilde}{18}
|
||||
\entry {expressions, arithmetic}{78}
|
||||
\entry {expressions, conditional}{77}
|
||||
\entry {expressions, conditional}{76}
|
||||
\initial {F}
|
||||
\entry {field}{3}
|
||||
\entry {filename}{3}
|
||||
\entry {filename expansion}{24}
|
||||
\entry {foreground}{89}
|
||||
\entry {foreground}{87}
|
||||
\entry {functions, shell}{14}
|
||||
\initial {H}
|
||||
\entry {history builtins}{121}
|
||||
\entry {history events}{124}
|
||||
\entry {history expansion}{123}
|
||||
\entry {history list}{121}
|
||||
\entry {History, how to use}{120}
|
||||
\entry {history builtins}{119}
|
||||
\entry {history events}{121}
|
||||
\entry {history expansion}{121}
|
||||
\entry {history list}{119}
|
||||
\entry {History, how to use}{117}
|
||||
\initial {I}
|
||||
\entry {identifier}{3}
|
||||
\entry {initialization file, readline}{96}
|
||||
\entry {installation}{127}
|
||||
\entry {interaction, readline}{93}
|
||||
\entry {interactive shell}{73, 75}
|
||||
\entry {initialization file, readline}{94}
|
||||
\entry {installation}{125}
|
||||
\entry {interaction, readline}{91}
|
||||
\entry {interactive shell}{73, 74}
|
||||
\entry {internationalization}{7}
|
||||
\initial {J}
|
||||
\entry {job}{3}
|
||||
\entry {job control}{3, 89}
|
||||
\entry {job control}{3, 87}
|
||||
\initial {K}
|
||||
\entry {kill ring}{95}
|
||||
\entry {killing text}{95}
|
||||
\entry {kill ring}{93}
|
||||
\entry {killing text}{93}
|
||||
\initial {L}
|
||||
\entry {localization}{7}
|
||||
\entry {login shell}{73}
|
||||
\initial {M}
|
||||
\entry {matching, pattern}{25}
|
||||
\entry {matching, pattern}{24}
|
||||
\entry {metacharacter}{3}
|
||||
\initial {N}
|
||||
\entry {name}{3}
|
||||
\entry {native languages}{7}
|
||||
\entry {notation, readline}{94}
|
||||
\entry {notation, readline}{92}
|
||||
\initial {O}
|
||||
\entry {operator, shell}{3}
|
||||
\initial {P}
|
||||
\entry {parameter expansion}{20}
|
||||
\entry {parameters}{16}
|
||||
\entry {parameter expansion}{19}
|
||||
\entry {parameters}{15}
|
||||
\entry {parameters, positional}{16}
|
||||
\entry {parameters, special}{17}
|
||||
\entry {parameters, special}{16}
|
||||
\entry {pathname expansion}{24}
|
||||
\entry {pattern matching}{25}
|
||||
\entry {pattern matching}{24}
|
||||
\entry {pipeline}{8}
|
||||
\entry {POSIX}{3}
|
||||
\entry {POSIX Mode}{85}
|
||||
\entry {POSIX Mode}{84}
|
||||
\entry {process group}{3}
|
||||
\entry {process group ID}{3}
|
||||
\entry {process substitution}{23}
|
||||
\entry {programmable completion}{115}
|
||||
\entry {prompting}{83}
|
||||
\entry {programmable completion}{112}
|
||||
\entry {prompting}{82}
|
||||
\initial {Q}
|
||||
\entry {quoting}{6}
|
||||
\entry {quoting, ANSI}{6}
|
||||
\initial {R}
|
||||
\entry {Readline, how to use}{92}
|
||||
\entry {redirection}{26}
|
||||
\entry {Readline, how to use}{90}
|
||||
\entry {redirection}{25}
|
||||
\entry {reserved word}{3}
|
||||
\entry {restricted shell}{84}
|
||||
\entry {return status}{4}
|
||||
\initial {S}
|
||||
\entry {shell arithmetic}{78}
|
||||
\entry {shell function}{14}
|
||||
\entry {shell script}{34}
|
||||
\entry {shell variable}{16}
|
||||
\entry {shell, interactive}{75}
|
||||
\entry {shell script}{33}
|
||||
\entry {shell variable}{15}
|
||||
\entry {shell, interactive}{74}
|
||||
\entry {signal}{4}
|
||||
\entry {signal handling}{33}
|
||||
\entry {signal handling}{32}
|
||||
\entry {special builtin}{4, 59}
|
||||
\entry {startup files}{73}
|
||||
\entry {suspending jobs}{89}
|
||||
\entry {suspending jobs}{87}
|
||||
\initial {T}
|
||||
\entry {tilde expansion}{19}
|
||||
\entry {tilde expansion}{18}
|
||||
\entry {token}{4}
|
||||
\entry {translation, native languages}{7}
|
||||
\initial {V}
|
||||
\entry {variable, shell}{16}
|
||||
\entry {variables, readline}{97}
|
||||
\entry {variable, shell}{15}
|
||||
\entry {variables, readline}{95}
|
||||
\initial {W}
|
||||
\entry {word}{4}
|
||||
\entry {word splitting}{24}
|
||||
\entry {word splitting}{23}
|
||||
\initial {Y}
|
||||
\entry {yanking text}{95}
|
||||
\entry {yanking text}{93}
|
||||
|
||||
Binary file not shown.
+101
-101
@@ -1,101 +1,101 @@
|
||||
\entry{beginning-of-line (C-a)}{106}{\code {beginning-of-line (C-a)}}
|
||||
\entry{end-of-line (C-e)}{106}{\code {end-of-line (C-e)}}
|
||||
\entry{forward-char (C-f)}{106}{\code {forward-char (C-f)}}
|
||||
\entry{backward-char (C-b)}{106}{\code {backward-char (C-b)}}
|
||||
\entry{forward-word (M-f)}{106}{\code {forward-word (M-f)}}
|
||||
\entry{backward-word (M-b)}{106}{\code {backward-word (M-b)}}
|
||||
\entry{shell-forward-word ()}{106}{\code {shell-forward-word ()}}
|
||||
\entry{shell-backward-word ()}{106}{\code {shell-backward-word ()}}
|
||||
\entry{clear-screen (C-l)}{106}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{107}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{107}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{107}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{107}{\code {next-history (C-n)}}
|
||||
\entry{beginning-of-history (M-<)}{107}{\code {beginning-of-history (M-<)}}
|
||||
\entry{end-of-history (M->)}{107}{\code {end-of-history (M->)}}
|
||||
\entry{reverse-search-history (C-r)}{107}{\code {reverse-search-history (C-r)}}
|
||||
\entry{forward-search-history (C-s)}{107}{\code {forward-search-history (C-s)}}
|
||||
\entry{non-incremental-reverse-search-history (M-p)}{107}{\code {non-incremental-reverse-search-history (M-p)}}
|
||||
\entry{non-incremental-forward-search-history (M-n)}{107}{\code {non-incremental-forward-search-history (M-n)}}
|
||||
\entry{history-search-forward ()}{107}{\code {history-search-forward ()}}
|
||||
\entry{history-search-backward ()}{107}{\code {history-search-backward ()}}
|
||||
\entry{yank-nth-arg (M-C-y)}{107}{\code {yank-nth-arg (M-C-y)}}
|
||||
\entry{yank-last-arg (M-. or M-_)}{108}{\code {yank-last-arg (M-. or M-_)}}
|
||||
\entry{delete-char (C-d)}{108}{\code {delete-char (C-d)}}
|
||||
\entry{backward-delete-char (Rubout)}{108}{\code {backward-delete-char (Rubout)}}
|
||||
\entry{forward-backward-delete-char ()}{108}{\code {forward-backward-delete-char ()}}
|
||||
\entry{quoted-insert (C-q or C-v)}{108}{\code {quoted-insert (C-q or C-v)}}
|
||||
\entry{self-insert (a, b, A, 1, !, ...{})}{108}{\code {self-insert (a, b, A, 1, !, \dots {})}}
|
||||
\entry{transpose-chars (C-t)}{108}{\code {transpose-chars (C-t)}}
|
||||
\entry{transpose-words (M-t)}{108}{\code {transpose-words (M-t)}}
|
||||
\entry{upcase-word (M-u)}{108}{\code {upcase-word (M-u)}}
|
||||
\entry{downcase-word (M-l)}{108}{\code {downcase-word (M-l)}}
|
||||
\entry{capitalize-word (M-c)}{109}{\code {capitalize-word (M-c)}}
|
||||
\entry{overwrite-mode ()}{109}{\code {overwrite-mode ()}}
|
||||
\entry{kill-line (C-k)}{109}{\code {kill-line (C-k)}}
|
||||
\entry{backward-kill-line (C-x Rubout)}{109}{\code {backward-kill-line (C-x Rubout)}}
|
||||
\entry{unix-line-discard (C-u)}{109}{\code {unix-line-discard (C-u)}}
|
||||
\entry{kill-whole-line ()}{109}{\code {kill-whole-line ()}}
|
||||
\entry{kill-word (M-d)}{109}{\code {kill-word (M-d)}}
|
||||
\entry{backward-kill-word (M-DEL)}{109}{\code {backward-kill-word (M-\key {DEL})}}
|
||||
\entry{shell-kill-word ()}{109}{\code {shell-kill-word ()}}
|
||||
\entry{backward-kill-word ()}{109}{\code {backward-kill-word ()}}
|
||||
\entry{unix-word-rubout (C-w)}{109}{\code {unix-word-rubout (C-w)}}
|
||||
\entry{unix-filename-rubout ()}{109}{\code {unix-filename-rubout ()}}
|
||||
\entry{delete-horizontal-space ()}{110}{\code {delete-horizontal-space ()}}
|
||||
\entry{kill-region ()}{110}{\code {kill-region ()}}
|
||||
\entry{copy-region-as-kill ()}{110}{\code {copy-region-as-kill ()}}
|
||||
\entry{copy-backward-word ()}{110}{\code {copy-backward-word ()}}
|
||||
\entry{copy-forward-word ()}{110}{\code {copy-forward-word ()}}
|
||||
\entry{yank (C-y)}{110}{\code {yank (C-y)}}
|
||||
\entry{yank-pop (M-y)}{110}{\code {yank-pop (M-y)}}
|
||||
\entry{digit-argument (M-0, M-1, ...{} M--)}{110}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
|
||||
\entry{universal-argument ()}{110}{\code {universal-argument ()}}
|
||||
\entry{complete (TAB)}{110}{\code {complete (\key {TAB})}}
|
||||
\entry{possible-completions (M-?)}{111}{\code {possible-completions (M-?)}}
|
||||
\entry{insert-completions (M-*)}{111}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{111}{\code {menu-complete ()}}
|
||||
\entry{delete-char-or-list ()}{111}{\code {delete-char-or-list ()}}
|
||||
\entry{complete-filename (M-/)}{111}{\code {complete-filename (M-/)}}
|
||||
\entry{possible-filename-completions (C-x /)}{111}{\code {possible-filename-completions (C-x /)}}
|
||||
\entry{complete-username (M-~)}{111}{\code {complete-username (M-~)}}
|
||||
\entry{possible-username-completions (C-x ~)}{111}{\code {possible-username-completions (C-x ~)}}
|
||||
\entry{complete-variable (M-$)}{111}{\code {complete-variable (M-$)}}
|
||||
\entry{possible-variable-completions (C-x $)}{111}{\code {possible-variable-completions (C-x $)}}
|
||||
\entry{complete-hostname (M-@)}{111}{\code {complete-hostname (M-@)}}
|
||||
\entry{possible-hostname-completions (C-x @)}{111}{\code {possible-hostname-completions (C-x @)}}
|
||||
\entry{complete-command (M-!)}{111}{\code {complete-command (M-!)}}
|
||||
\entry{possible-command-completions (C-x !)}{112}{\code {possible-command-completions (C-x !)}}
|
||||
\entry{dynamic-complete-history (M-TAB)}{112}{\code {dynamic-complete-history (M-\key {TAB})}}
|
||||
\entry{dabbrev-expand ()}{112}{\code {dabbrev-expand ()}}
|
||||
\entry{complete-into-braces (M-{\tt \char 123})}{112}{\code {complete-into-braces (M-{\tt \char 123})}}
|
||||
\entry{start-kbd-macro (C-x ()}{112}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{112}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{112}{\code {call-last-kbd-macro (C-x e)}}
|
||||
\entry{re-read-init-file (C-x C-r)}{112}{\code {re-read-init-file (C-x C-r)}}
|
||||
\entry{abort (C-g)}{112}{\code {abort (C-g)}}
|
||||
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{112}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
|
||||
\entry{prefix-meta (ESC)}{112}{\code {prefix-meta (\key {ESC})}}
|
||||
\entry{undo (C-_ or C-x C-u)}{112}{\code {undo (C-_ or C-x C-u)}}
|
||||
\entry{revert-line (M-r)}{113}{\code {revert-line (M-r)}}
|
||||
\entry{tilde-expand (M-&)}{113}{\code {tilde-expand (M-&)}}
|
||||
\entry{set-mark (C-@)}{113}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{113}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{113}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{113}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{113}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{113}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{113}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{113}{\code {dump-macros ()}}
|
||||
\entry{glob-complete-word (M-g)}{113}{\code {glob-complete-word (M-g)}}
|
||||
\entry{glob-expand-word (C-x *)}{114}{\code {glob-expand-word (C-x *)}}
|
||||
\entry{glob-list-expansions (C-x g)}{114}{\code {glob-list-expansions (C-x g)}}
|
||||
\entry{display-shell-version (C-x C-v)}{114}{\code {display-shell-version (C-x C-v)}}
|
||||
\entry{shell-expand-line (M-C-e)}{114}{\code {shell-expand-line (M-C-e)}}
|
||||
\entry{history-expand-line (M-^)}{114}{\code {history-expand-line (M-^)}}
|
||||
\entry{magic-space ()}{114}{\code {magic-space ()}}
|
||||
\entry{alias-expand-line ()}{114}{\code {alias-expand-line ()}}
|
||||
\entry{history-and-alias-expand-line ()}{114}{\code {history-and-alias-expand-line ()}}
|
||||
\entry{insert-last-argument (M-. or M-_)}{114}{\code {insert-last-argument (M-. or M-_)}}
|
||||
\entry{operate-and-get-next (C-o)}{114}{\code {operate-and-get-next (C-o)}}
|
||||
\entry{edit-and-execute-command (C-xC-e)}{114}{\code {edit-and-execute-command (C-xC-e)}}
|
||||
\entry{beginning-of-line (C-a)}{103}{\code {beginning-of-line (C-a)}}
|
||||
\entry{end-of-line (C-e)}{103}{\code {end-of-line (C-e)}}
|
||||
\entry{forward-char (C-f)}{103}{\code {forward-char (C-f)}}
|
||||
\entry{backward-char (C-b)}{103}{\code {backward-char (C-b)}}
|
||||
\entry{forward-word (M-f)}{103}{\code {forward-word (M-f)}}
|
||||
\entry{backward-word (M-b)}{103}{\code {backward-word (M-b)}}
|
||||
\entry{shell-forward-word ()}{103}{\code {shell-forward-word ()}}
|
||||
\entry{shell-backward-word ()}{103}{\code {shell-backward-word ()}}
|
||||
\entry{clear-screen (C-l)}{103}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{103}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{104}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{104}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{104}{\code {next-history (C-n)}}
|
||||
\entry{beginning-of-history (M-<)}{104}{\code {beginning-of-history (M-<)}}
|
||||
\entry{end-of-history (M->)}{104}{\code {end-of-history (M->)}}
|
||||
\entry{reverse-search-history (C-r)}{104}{\code {reverse-search-history (C-r)}}
|
||||
\entry{forward-search-history (C-s)}{104}{\code {forward-search-history (C-s)}}
|
||||
\entry{non-incremental-reverse-search-history (M-p)}{104}{\code {non-incremental-reverse-search-history (M-p)}}
|
||||
\entry{non-incremental-forward-search-history (M-n)}{104}{\code {non-incremental-forward-search-history (M-n)}}
|
||||
\entry{history-search-forward ()}{104}{\code {history-search-forward ()}}
|
||||
\entry{history-search-backward ()}{104}{\code {history-search-backward ()}}
|
||||
\entry{yank-nth-arg (M-C-y)}{104}{\code {yank-nth-arg (M-C-y)}}
|
||||
\entry{yank-last-arg (M-. or M-_)}{105}{\code {yank-last-arg (M-. or M-_)}}
|
||||
\entry{delete-char (C-d)}{105}{\code {delete-char (C-d)}}
|
||||
\entry{backward-delete-char (Rubout)}{105}{\code {backward-delete-char (Rubout)}}
|
||||
\entry{forward-backward-delete-char ()}{105}{\code {forward-backward-delete-char ()}}
|
||||
\entry{quoted-insert (C-q or C-v)}{105}{\code {quoted-insert (C-q or C-v)}}
|
||||
\entry{self-insert (a, b, A, 1, !, ...{})}{105}{\code {self-insert (a, b, A, 1, !, \dots {})}}
|
||||
\entry{transpose-chars (C-t)}{105}{\code {transpose-chars (C-t)}}
|
||||
\entry{transpose-words (M-t)}{105}{\code {transpose-words (M-t)}}
|
||||
\entry{upcase-word (M-u)}{105}{\code {upcase-word (M-u)}}
|
||||
\entry{downcase-word (M-l)}{105}{\code {downcase-word (M-l)}}
|
||||
\entry{capitalize-word (M-c)}{106}{\code {capitalize-word (M-c)}}
|
||||
\entry{overwrite-mode ()}{106}{\code {overwrite-mode ()}}
|
||||
\entry{kill-line (C-k)}{106}{\code {kill-line (C-k)}}
|
||||
\entry{backward-kill-line (C-x Rubout)}{106}{\code {backward-kill-line (C-x Rubout)}}
|
||||
\entry{unix-line-discard (C-u)}{106}{\code {unix-line-discard (C-u)}}
|
||||
\entry{kill-whole-line ()}{106}{\code {kill-whole-line ()}}
|
||||
\entry{kill-word (M-d)}{106}{\code {kill-word (M-d)}}
|
||||
\entry{backward-kill-word (M-DEL)}{106}{\code {backward-kill-word (M-\key {DEL})}}
|
||||
\entry{shell-kill-word ()}{106}{\code {shell-kill-word ()}}
|
||||
\entry{backward-kill-word ()}{106}{\code {backward-kill-word ()}}
|
||||
\entry{unix-word-rubout (C-w)}{106}{\code {unix-word-rubout (C-w)}}
|
||||
\entry{unix-filename-rubout ()}{106}{\code {unix-filename-rubout ()}}
|
||||
\entry{delete-horizontal-space ()}{106}{\code {delete-horizontal-space ()}}
|
||||
\entry{kill-region ()}{107}{\code {kill-region ()}}
|
||||
\entry{copy-region-as-kill ()}{107}{\code {copy-region-as-kill ()}}
|
||||
\entry{copy-backward-word ()}{107}{\code {copy-backward-word ()}}
|
||||
\entry{copy-forward-word ()}{107}{\code {copy-forward-word ()}}
|
||||
\entry{yank (C-y)}{107}{\code {yank (C-y)}}
|
||||
\entry{yank-pop (M-y)}{107}{\code {yank-pop (M-y)}}
|
||||
\entry{digit-argument (M-0, M-1, ...{} M--)}{107}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
|
||||
\entry{universal-argument ()}{107}{\code {universal-argument ()}}
|
||||
\entry{complete (TAB)}{107}{\code {complete (\key {TAB})}}
|
||||
\entry{possible-completions (M-?)}{107}{\code {possible-completions (M-?)}}
|
||||
\entry{insert-completions (M-*)}{108}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{108}{\code {menu-complete ()}}
|
||||
\entry{delete-char-or-list ()}{108}{\code {delete-char-or-list ()}}
|
||||
\entry{complete-filename (M-/)}{108}{\code {complete-filename (M-/)}}
|
||||
\entry{possible-filename-completions (C-x /)}{108}{\code {possible-filename-completions (C-x /)}}
|
||||
\entry{complete-username (M-~)}{108}{\code {complete-username (M-~)}}
|
||||
\entry{possible-username-completions (C-x ~)}{108}{\code {possible-username-completions (C-x ~)}}
|
||||
\entry{complete-variable (M-$)}{108}{\code {complete-variable (M-$)}}
|
||||
\entry{possible-variable-completions (C-x $)}{108}{\code {possible-variable-completions (C-x $)}}
|
||||
\entry{complete-hostname (M-@)}{108}{\code {complete-hostname (M-@)}}
|
||||
\entry{possible-hostname-completions (C-x @)}{108}{\code {possible-hostname-completions (C-x @)}}
|
||||
\entry{complete-command (M-!)}{108}{\code {complete-command (M-!)}}
|
||||
\entry{possible-command-completions (C-x !)}{108}{\code {possible-command-completions (C-x !)}}
|
||||
\entry{dynamic-complete-history (M-TAB)}{109}{\code {dynamic-complete-history (M-\key {TAB})}}
|
||||
\entry{dabbrev-expand ()}{109}{\code {dabbrev-expand ()}}
|
||||
\entry{complete-into-braces (M-{\tt \char 123})}{109}{\code {complete-into-braces (M-{\tt \char 123})}}
|
||||
\entry{start-kbd-macro (C-x ()}{109}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{109}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{109}{\code {call-last-kbd-macro (C-x e)}}
|
||||
\entry{re-read-init-file (C-x C-r)}{109}{\code {re-read-init-file (C-x C-r)}}
|
||||
\entry{abort (C-g)}{109}{\code {abort (C-g)}}
|
||||
\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{109}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
|
||||
\entry{prefix-meta (ESC)}{109}{\code {prefix-meta (\key {ESC})}}
|
||||
\entry{undo (C-_ or C-x C-u)}{109}{\code {undo (C-_ or C-x C-u)}}
|
||||
\entry{revert-line (M-r)}{109}{\code {revert-line (M-r)}}
|
||||
\entry{tilde-expand (M-&)}{109}{\code {tilde-expand (M-&)}}
|
||||
\entry{set-mark (C-@)}{110}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{110}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{110}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{110}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{110}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{110}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{110}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{110}{\code {dump-macros ()}}
|
||||
\entry{glob-complete-word (M-g)}{110}{\code {glob-complete-word (M-g)}}
|
||||
\entry{glob-expand-word (C-x *)}{110}{\code {glob-expand-word (C-x *)}}
|
||||
\entry{glob-list-expansions (C-x g)}{111}{\code {glob-list-expansions (C-x g)}}
|
||||
\entry{display-shell-version (C-x C-v)}{111}{\code {display-shell-version (C-x C-v)}}
|
||||
\entry{shell-expand-line (M-C-e)}{111}{\code {shell-expand-line (M-C-e)}}
|
||||
\entry{history-expand-line (M-^)}{111}{\code {history-expand-line (M-^)}}
|
||||
\entry{magic-space ()}{111}{\code {magic-space ()}}
|
||||
\entry{alias-expand-line ()}{111}{\code {alias-expand-line ()}}
|
||||
\entry{history-and-alias-expand-line ()}{111}{\code {history-and-alias-expand-line ()}}
|
||||
\entry{insert-last-argument (M-. or M-_)}{111}{\code {insert-last-argument (M-. or M-_)}}
|
||||
\entry{operate-and-get-next (C-o)}{111}{\code {operate-and-get-next (C-o)}}
|
||||
\entry{edit-and-execute-command (C-xC-e)}{111}{\code {edit-and-execute-command (C-xC-e)}}
|
||||
|
||||
+101
-101
@@ -1,121 +1,121 @@
|
||||
\initial {A}
|
||||
\entry {\code {abort (C-g)}}{112}
|
||||
\entry {\code {accept-line (Newline or Return)}}{107}
|
||||
\entry {\code {alias-expand-line ()}}{114}
|
||||
\entry {\code {abort (C-g)}}{109}
|
||||
\entry {\code {accept-line (Newline or Return)}}{104}
|
||||
\entry {\code {alias-expand-line ()}}{111}
|
||||
\initial {B}
|
||||
\entry {\code {backward-char (C-b)}}{106}
|
||||
\entry {\code {backward-delete-char (Rubout)}}{108}
|
||||
\entry {\code {backward-kill-line (C-x Rubout)}}{109}
|
||||
\entry {\code {backward-kill-word ()}}{109}
|
||||
\entry {\code {backward-kill-word (M-\key {DEL})}}{109}
|
||||
\entry {\code {backward-word (M-b)}}{106}
|
||||
\entry {\code {beginning-of-history (M-<)}}{107}
|
||||
\entry {\code {beginning-of-line (C-a)}}{106}
|
||||
\entry {\code {backward-char (C-b)}}{103}
|
||||
\entry {\code {backward-delete-char (Rubout)}}{105}
|
||||
\entry {\code {backward-kill-line (C-x Rubout)}}{106}
|
||||
\entry {\code {backward-kill-word ()}}{106}
|
||||
\entry {\code {backward-kill-word (M-\key {DEL})}}{106}
|
||||
\entry {\code {backward-word (M-b)}}{103}
|
||||
\entry {\code {beginning-of-history (M-<)}}{104}
|
||||
\entry {\code {beginning-of-line (C-a)}}{103}
|
||||
\initial {C}
|
||||
\entry {\code {call-last-kbd-macro (C-x e)}}{112}
|
||||
\entry {\code {capitalize-word (M-c)}}{109}
|
||||
\entry {\code {character-search (C-])}}{113}
|
||||
\entry {\code {character-search-backward (M-C-])}}{113}
|
||||
\entry {\code {clear-screen (C-l)}}{106}
|
||||
\entry {\code {complete (\key {TAB})}}{110}
|
||||
\entry {\code {complete-command (M-!)}}{111}
|
||||
\entry {\code {complete-filename (M-/)}}{111}
|
||||
\entry {\code {complete-hostname (M-@)}}{111}
|
||||
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{112}
|
||||
\entry {\code {complete-username (M-~)}}{111}
|
||||
\entry {\code {complete-variable (M-$)}}{111}
|
||||
\entry {\code {copy-backward-word ()}}{110}
|
||||
\entry {\code {copy-forward-word ()}}{110}
|
||||
\entry {\code {copy-region-as-kill ()}}{110}
|
||||
\entry {\code {call-last-kbd-macro (C-x e)}}{109}
|
||||
\entry {\code {capitalize-word (M-c)}}{106}
|
||||
\entry {\code {character-search (C-])}}{110}
|
||||
\entry {\code {character-search-backward (M-C-])}}{110}
|
||||
\entry {\code {clear-screen (C-l)}}{103}
|
||||
\entry {\code {complete (\key {TAB})}}{107}
|
||||
\entry {\code {complete-command (M-!)}}{108}
|
||||
\entry {\code {complete-filename (M-/)}}{108}
|
||||
\entry {\code {complete-hostname (M-@)}}{108}
|
||||
\entry {\code {complete-into-braces (M-{\tt \char 123})}}{109}
|
||||
\entry {\code {complete-username (M-~)}}{108}
|
||||
\entry {\code {complete-variable (M-$)}}{108}
|
||||
\entry {\code {copy-backward-word ()}}{107}
|
||||
\entry {\code {copy-forward-word ()}}{107}
|
||||
\entry {\code {copy-region-as-kill ()}}{107}
|
||||
\initial {D}
|
||||
\entry {\code {dabbrev-expand ()}}{112}
|
||||
\entry {\code {delete-char (C-d)}}{108}
|
||||
\entry {\code {delete-char-or-list ()}}{111}
|
||||
\entry {\code {delete-horizontal-space ()}}{110}
|
||||
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{110}
|
||||
\entry {\code {display-shell-version (C-x C-v)}}{114}
|
||||
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{112}
|
||||
\entry {\code {downcase-word (M-l)}}{108}
|
||||
\entry {\code {dump-functions ()}}{113}
|
||||
\entry {\code {dump-macros ()}}{113}
|
||||
\entry {\code {dump-variables ()}}{113}
|
||||
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{112}
|
||||
\entry {\code {dabbrev-expand ()}}{109}
|
||||
\entry {\code {delete-char (C-d)}}{105}
|
||||
\entry {\code {delete-char-or-list ()}}{108}
|
||||
\entry {\code {delete-horizontal-space ()}}{106}
|
||||
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{107}
|
||||
\entry {\code {display-shell-version (C-x C-v)}}{111}
|
||||
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{109}
|
||||
\entry {\code {downcase-word (M-l)}}{105}
|
||||
\entry {\code {dump-functions ()}}{110}
|
||||
\entry {\code {dump-macros ()}}{110}
|
||||
\entry {\code {dump-variables ()}}{110}
|
||||
\entry {\code {dynamic-complete-history (M-\key {TAB})}}{109}
|
||||
\initial {E}
|
||||
\entry {\code {edit-and-execute-command (C-xC-e)}}{114}
|
||||
\entry {\code {end-kbd-macro (C-x ))}}{112}
|
||||
\entry {\code {end-of-history (M->)}}{107}
|
||||
\entry {\code {end-of-line (C-e)}}{106}
|
||||
\entry {\code {exchange-point-and-mark (C-x C-x)}}{113}
|
||||
\entry {\code {edit-and-execute-command (C-xC-e)}}{111}
|
||||
\entry {\code {end-kbd-macro (C-x ))}}{109}
|
||||
\entry {\code {end-of-history (M->)}}{104}
|
||||
\entry {\code {end-of-line (C-e)}}{103}
|
||||
\entry {\code {exchange-point-and-mark (C-x C-x)}}{110}
|
||||
\initial {F}
|
||||
\entry {\code {forward-backward-delete-char ()}}{108}
|
||||
\entry {\code {forward-char (C-f)}}{106}
|
||||
\entry {\code {forward-search-history (C-s)}}{107}
|
||||
\entry {\code {forward-word (M-f)}}{106}
|
||||
\entry {\code {forward-backward-delete-char ()}}{105}
|
||||
\entry {\code {forward-char (C-f)}}{103}
|
||||
\entry {\code {forward-search-history (C-s)}}{104}
|
||||
\entry {\code {forward-word (M-f)}}{103}
|
||||
\initial {G}
|
||||
\entry {\code {glob-complete-word (M-g)}}{113}
|
||||
\entry {\code {glob-expand-word (C-x *)}}{114}
|
||||
\entry {\code {glob-list-expansions (C-x g)}}{114}
|
||||
\entry {\code {glob-complete-word (M-g)}}{110}
|
||||
\entry {\code {glob-expand-word (C-x *)}}{110}
|
||||
\entry {\code {glob-list-expansions (C-x g)}}{111}
|
||||
\initial {H}
|
||||
\entry {\code {history-and-alias-expand-line ()}}{114}
|
||||
\entry {\code {history-expand-line (M-^)}}{114}
|
||||
\entry {\code {history-search-backward ()}}{107}
|
||||
\entry {\code {history-search-forward ()}}{107}
|
||||
\entry {\code {history-and-alias-expand-line ()}}{111}
|
||||
\entry {\code {history-expand-line (M-^)}}{111}
|
||||
\entry {\code {history-search-backward ()}}{104}
|
||||
\entry {\code {history-search-forward ()}}{104}
|
||||
\initial {I}
|
||||
\entry {\code {insert-comment (M-#)}}{113}
|
||||
\entry {\code {insert-completions (M-*)}}{111}
|
||||
\entry {\code {insert-last-argument (M-. or M-_)}}{114}
|
||||
\entry {\code {insert-comment (M-#)}}{110}
|
||||
\entry {\code {insert-completions (M-*)}}{108}
|
||||
\entry {\code {insert-last-argument (M-. or M-_)}}{111}
|
||||
\initial {K}
|
||||
\entry {\code {kill-line (C-k)}}{109}
|
||||
\entry {\code {kill-region ()}}{110}
|
||||
\entry {\code {kill-whole-line ()}}{109}
|
||||
\entry {\code {kill-word (M-d)}}{109}
|
||||
\entry {\code {kill-line (C-k)}}{106}
|
||||
\entry {\code {kill-region ()}}{107}
|
||||
\entry {\code {kill-whole-line ()}}{106}
|
||||
\entry {\code {kill-word (M-d)}}{106}
|
||||
\initial {M}
|
||||
\entry {\code {magic-space ()}}{114}
|
||||
\entry {\code {menu-complete ()}}{111}
|
||||
\entry {\code {magic-space ()}}{111}
|
||||
\entry {\code {menu-complete ()}}{108}
|
||||
\initial {N}
|
||||
\entry {\code {next-history (C-n)}}{107}
|
||||
\entry {\code {non-incremental-forward-search-history (M-n)}}{107}
|
||||
\entry {\code {non-incremental-reverse-search-history (M-p)}}{107}
|
||||
\entry {\code {next-history (C-n)}}{104}
|
||||
\entry {\code {non-incremental-forward-search-history (M-n)}}{104}
|
||||
\entry {\code {non-incremental-reverse-search-history (M-p)}}{104}
|
||||
\initial {O}
|
||||
\entry {\code {operate-and-get-next (C-o)}}{114}
|
||||
\entry {\code {overwrite-mode ()}}{109}
|
||||
\entry {\code {operate-and-get-next (C-o)}}{111}
|
||||
\entry {\code {overwrite-mode ()}}{106}
|
||||
\initial {P}
|
||||
\entry {\code {possible-command-completions (C-x !)}}{112}
|
||||
\entry {\code {possible-completions (M-?)}}{111}
|
||||
\entry {\code {possible-filename-completions (C-x /)}}{111}
|
||||
\entry {\code {possible-hostname-completions (C-x @)}}{111}
|
||||
\entry {\code {possible-username-completions (C-x ~)}}{111}
|
||||
\entry {\code {possible-variable-completions (C-x $)}}{111}
|
||||
\entry {\code {prefix-meta (\key {ESC})}}{112}
|
||||
\entry {\code {previous-history (C-p)}}{107}
|
||||
\entry {\code {possible-command-completions (C-x !)}}{108}
|
||||
\entry {\code {possible-completions (M-?)}}{107}
|
||||
\entry {\code {possible-filename-completions (C-x /)}}{108}
|
||||
\entry {\code {possible-hostname-completions (C-x @)}}{108}
|
||||
\entry {\code {possible-username-completions (C-x ~)}}{108}
|
||||
\entry {\code {possible-variable-completions (C-x $)}}{108}
|
||||
\entry {\code {prefix-meta (\key {ESC})}}{109}
|
||||
\entry {\code {previous-history (C-p)}}{104}
|
||||
\initial {Q}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{108}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{105}
|
||||
\initial {R}
|
||||
\entry {\code {re-read-init-file (C-x C-r)}}{112}
|
||||
\entry {\code {redraw-current-line ()}}{107}
|
||||
\entry {\code {reverse-search-history (C-r)}}{107}
|
||||
\entry {\code {revert-line (M-r)}}{113}
|
||||
\entry {\code {re-read-init-file (C-x C-r)}}{109}
|
||||
\entry {\code {redraw-current-line ()}}{103}
|
||||
\entry {\code {reverse-search-history (C-r)}}{104}
|
||||
\entry {\code {revert-line (M-r)}}{109}
|
||||
\initial {S}
|
||||
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{108}
|
||||
\entry {\code {set-mark (C-@)}}{113}
|
||||
\entry {\code {shell-backward-word ()}}{106}
|
||||
\entry {\code {shell-expand-line (M-C-e)}}{114}
|
||||
\entry {\code {shell-forward-word ()}}{106}
|
||||
\entry {\code {shell-kill-word ()}}{109}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{112}
|
||||
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{105}
|
||||
\entry {\code {set-mark (C-@)}}{110}
|
||||
\entry {\code {shell-backward-word ()}}{103}
|
||||
\entry {\code {shell-expand-line (M-C-e)}}{111}
|
||||
\entry {\code {shell-forward-word ()}}{103}
|
||||
\entry {\code {shell-kill-word ()}}{106}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{109}
|
||||
\initial {T}
|
||||
\entry {\code {tilde-expand (M-&)}}{113}
|
||||
\entry {\code {transpose-chars (C-t)}}{108}
|
||||
\entry {\code {transpose-words (M-t)}}{108}
|
||||
\entry {\code {tilde-expand (M-&)}}{109}
|
||||
\entry {\code {transpose-chars (C-t)}}{105}
|
||||
\entry {\code {transpose-words (M-t)}}{105}
|
||||
\initial {U}
|
||||
\entry {\code {undo (C-_ or C-x C-u)}}{112}
|
||||
\entry {\code {universal-argument ()}}{110}
|
||||
\entry {\code {unix-filename-rubout ()}}{109}
|
||||
\entry {\code {unix-line-discard (C-u)}}{109}
|
||||
\entry {\code {unix-word-rubout (C-w)}}{109}
|
||||
\entry {\code {upcase-word (M-u)}}{108}
|
||||
\entry {\code {undo (C-_ or C-x C-u)}}{109}
|
||||
\entry {\code {universal-argument ()}}{107}
|
||||
\entry {\code {unix-filename-rubout ()}}{106}
|
||||
\entry {\code {unix-line-discard (C-u)}}{106}
|
||||
\entry {\code {unix-word-rubout (C-w)}}{106}
|
||||
\entry {\code {upcase-word (M-u)}}{105}
|
||||
\initial {Y}
|
||||
\entry {\code {yank (C-y)}}{110}
|
||||
\entry {\code {yank-last-arg (M-. or M-_)}}{108}
|
||||
\entry {\code {yank-nth-arg (M-C-y)}}{107}
|
||||
\entry {\code {yank-pop (M-y)}}{110}
|
||||
\entry {\code {yank (C-y)}}{107}
|
||||
\entry {\code {yank-last-arg (M-. or M-_)}}{105}
|
||||
\entry {\code {yank-nth-arg (M-C-y)}}{104}
|
||||
\entry {\code {yank-pop (M-y)}}{107}
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
<HTML>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- Created on March, 10 2009 by texi2html 1.64 -->
|
||||
<!-- Created on March, 18 2009 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -1202,7 +1202,7 @@ A list of patterns and an associated command-list is known
|
||||
as a <VAR>clause</VAR>.
|
||||
</P><P>
|
||||
|
||||
Each clause must be terminated with <SAMP>`;;'</SAMP>, <SAMP>`,&'</SAMP>, or <SAMP>`;;&'</SAMP>.
|
||||
Each clause must be terminated with <SAMP>`;;'</SAMP>, <SAMP>`;&'</SAMP>, or <SAMP>`;;&'</SAMP>.
|
||||
The <VAR>word</VAR> undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, and quote removal before matching is
|
||||
attempted. Each <VAR>pattern</VAR> undergoes tilde expansion, parameter
|
||||
@@ -15868,7 +15868,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>March, 10 2009</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -16030,7 +16030,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>March, 10 2009</I>
|
||||
by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ preserved on all copies.
|
||||
|
||||
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
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with the Front-Cover texts
|
||||
being "A GNU Manual", and with the Back-Cover Texts as in (a)
|
||||
below. A copy of the license is included in the section entitled
|
||||
@@ -767,7 +767,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
|
||||
A list of patterns and an associated command-list is known as a
|
||||
CLAUSE.
|
||||
|
||||
Each clause must be terminated with `;;', `,&', or `;;&'. The
|
||||
Each clause must be terminated with `;;', `;&', or `;;&'. The
|
||||
WORD undergoes tilde expansion, parameter expansion, command
|
||||
substitution, arithmetic expansion, and quote removal before
|
||||
matching is attempted. Each PATTERN undergoes tilde expansion,
|
||||
|
||||
+118
-120
@@ -1,7 +1,7 @@
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 10 MAR 2009 11:44
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:21
|
||||
**/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,
|
||||
Loading texinfo [version 2009-01-18.17]:
|
||||
\bindingoffset=\dimen16
|
||||
\normaloffset=\dimen17
|
||||
\pagewidth=\dimen18
|
||||
@@ -32,81 +32,94 @@ Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
\toksD=\toks18
|
||||
\boxA=\box19
|
||||
\countA=\count30
|
||||
\nopdfimagehelp=\toks19
|
||||
fonts,
|
||||
\sffam=\fam8
|
||||
\textleading=\dimen26
|
||||
\mainmagstep=\count31
|
||||
\fontdepth=\count32
|
||||
page headings,
|
||||
markup,
|
||||
\fontdepth=\count31
|
||||
glyphs,
|
||||
\errorbox=\box20
|
||||
|
||||
page headings,
|
||||
\titlepagetopglue=\skip20
|
||||
\titlepagebottomglue=\skip21
|
||||
\evenheadline=\toks19
|
||||
\oddheadline=\toks20
|
||||
\evenfootline=\toks21
|
||||
\oddfootline=\toks22
|
||||
|
||||
tables,
|
||||
\evenheadline=\toks20
|
||||
\oddheadline=\toks21
|
||||
\evenfootline=\toks22
|
||||
\oddfootline=\toks23
|
||||
tables,
|
||||
\tableindent=\dimen27
|
||||
\itemindent=\dimen28
|
||||
\itemmargin=\dimen29
|
||||
\itemmax=\dimen30
|
||||
\itemno=\count33
|
||||
\itemno=\count32
|
||||
\multitableparskip=\skip22
|
||||
\multitableparindent=\skip23
|
||||
\multitablecolspace=\dimen31
|
||||
\multitablelinespace=\skip24
|
||||
\colcount=\count34
|
||||
\savedfootnotes=\box20
|
||||
conditionals, indexing,
|
||||
\secondaryindent=\skip25
|
||||
\colcount=\count33
|
||||
\everytab=\toks24
|
||||
conditionals,
|
||||
\doignorecount=\count34
|
||||
indexing,
|
||||
\whatsitskip=\skip25
|
||||
\whatsitpenalty=\count35
|
||||
\secondaryindent=\skip26
|
||||
\partialpage=\box21
|
||||
\doublecolumnhsize=\dimen32
|
||||
sectioning,
|
||||
\chapno=\count35
|
||||
\secno=\count36
|
||||
\subsecno=\count37
|
||||
\subsubsecno=\count38
|
||||
\appendixno=\count39
|
||||
\absseclevel=\count40
|
||||
\secbase=\count41
|
||||
\chapheadingskip=\skip26
|
||||
\secheadingskip=\skip27
|
||||
\subsecheadingskip=\skip28
|
||||
\unnumberedno=\count36
|
||||
\chapno=\count37
|
||||
\secno=\count38
|
||||
\subsecno=\count39
|
||||
\subsubsecno=\count40
|
||||
\appendixno=\count41
|
||||
\absseclevel=\count42
|
||||
\secbase=\count43
|
||||
\chapheadingskip=\skip27
|
||||
\secheadingskip=\skip28
|
||||
\subsecheadingskip=\skip29
|
||||
toc,
|
||||
\tocfile=\write0
|
||||
\contentsrightmargin=\skip29
|
||||
\savepageno=\count42
|
||||
\lastnegativepageno=\count43
|
||||
\shortappendixwidth=\dimen33
|
||||
\tocindent=\dimen34
|
||||
\contentsrightmargin=\skip30
|
||||
\savepageno=\count44
|
||||
\lastnegativepageno=\count45
|
||||
\tocindent=\dimen33
|
||||
environments,
|
||||
\errorbox=\box22
|
||||
\lispnarrowing=\skip30
|
||||
\envskipamount=\skip31
|
||||
\circthick=\dimen35
|
||||
\cartouter=\dimen36
|
||||
\cartinner=\dimen37
|
||||
\normbskip=\skip32
|
||||
\normpskip=\skip33
|
||||
\normlskip=\skip34
|
||||
\lskip=\skip35
|
||||
\rskip=\skip36
|
||||
\lispnarrowing=\skip31
|
||||
\envskipamount=\skip32
|
||||
\circthick=\dimen34
|
||||
\cartouter=\dimen35
|
||||
\cartinner=\dimen36
|
||||
\normbskip=\skip33
|
||||
\normpskip=\skip34
|
||||
\normlskip=\skip35
|
||||
\lskip=\skip36
|
||||
\rskip=\skip37
|
||||
\nonfillparindent=\dimen37
|
||||
\tabw=\dimen38
|
||||
defuns,
|
||||
\defbodyindent=\skip37
|
||||
\defargsindent=\skip38
|
||||
\deflastargmargin=\skip39
|
||||
\parencount=\count44
|
||||
|
||||
defuns,
|
||||
\defbodyindent=\skip38
|
||||
\defargsindent=\skip39
|
||||
\deflastargmargin=\skip40
|
||||
\defunpenalty=\count46
|
||||
\parencount=\count47
|
||||
\brackcount=\count48
|
||||
macros,
|
||||
\macscribble=\write1
|
||||
\paramno=\count45
|
||||
\macname=\toks23
|
||||
|
||||
cross references,
|
||||
\paramno=\count49
|
||||
\macname=\toks25
|
||||
cross references,
|
||||
\auxfile=\write2
|
||||
\savesfregister=\count46
|
||||
\footnoteno=\count47
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\savesfregister=\count50
|
||||
insertions,
|
||||
\footnoteno=\count51
|
||||
\SAVEfootins=\box22
|
||||
\SAVEmargin=\box23
|
||||
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\epsffilein=\read0
|
||||
\epsfframemargin=\dimen39
|
||||
\epsfframethickness=\dimen40
|
||||
@@ -116,27 +129,30 @@ cross references,
|
||||
\epsfxsize=\dimen44
|
||||
\epsfysize=\dimen45
|
||||
\pspoints=\dimen46
|
||||
\epsfnoopenhelp=\toks24
|
||||
\epsfnoopenhelp=\toks26
|
||||
)
|
||||
\noepsfhelp=\toks25
|
||||
|
||||
localization,
|
||||
\nolanghelp=\toks26
|
||||
\noepsfhelp=\toks27
|
||||
localization,
|
||||
\nolanghelp=\toks28
|
||||
\countUTFx=\count52
|
||||
\countUTFy=\count53
|
||||
\countUTFz=\count54
|
||||
formatting,
|
||||
\defaultparindent=\dimen47
|
||||
and turning on texinfo input format.) (./bashref.aux)
|
||||
|
||||
and turning on texinfo input format.) (./bashref.aux)
|
||||
\openout2 = `bashref.aux'.
|
||||
|
||||
@cpindfile=@write3
|
||||
@fnindfile=@write4
|
||||
@vrindfile=@write5
|
||||
@tpindfile=@write6
|
||||
@kyindfile=@write7
|
||||
@pgindfile=@write8
|
||||
|
||||
(./version.texi)
|
||||
(./version.texi)
|
||||
@btindfile=@write9
|
||||
@rwindfile=@write10
|
||||
[1
|
||||
\openout2 = `bashref.aux'.
|
||||
|
||||
\openout3 = `bashref.cp'.
|
||||
|
||||
\openout4 = `bashref.fn'.
|
||||
@@ -153,11 +169,15 @@ localization,
|
||||
|
||||
\openout10 = `bashref.rw'.
|
||||
|
||||
] [2] (./bashref.toc [-1] [-2] [-3]) [-4] Chapter 1
|
||||
]
|
||||
\openout1 = `bashref.tmp'.
|
||||
|
||||
|
||||
(./bashref.tmp) [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]
|
||||
Chapter 2
|
||||
[1] [2] [3] Chapter 3 [4] [5] [6] [7] [8] [9]
|
||||
Overfull \hbox (43.33539pt too wide) in paragraph at lines 853--853
|
||||
[]@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
|
||||
textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
|
||||
@@ -170,9 +190,9 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
|
||||
.@texttt s
|
||||
.etc.
|
||||
|
||||
[11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]
|
||||
[26] [27] [28] [29] [30] [31] [32] [33] Chapter 4 [34] [35] [36] [37] [38]
|
||||
[39] [40] [41]
|
||||
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]
|
||||
[25] [26] [27] [28] [29] [30] [31] [32] Chapter 4 [33] [34] [35] [36] [37]
|
||||
[38] [39] [40] [41]
|
||||
Underfull \hbox (badness 5231) in paragraph at lines 3280--3293
|
||||
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
|
||||
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
|
||||
@@ -201,18 +221,18 @@ pt@texttt ] [-t @textttsl time-
|
||||
|
||||
[47] [48] [49] [50] [51] [52] [53] [54] [55]
|
||||
Underfull \hbox (badness 2573) in paragraph at lines 4383--4387
|
||||
[] []@textrm Error trac-ing is en-abled: com-mand sub-sti-tu-tion, shell
|
||||
[]@textrm Error trac-ing is en-abled: com-mand sub-sti-tu-tion, shell
|
||||
|
||||
@hbox(7.60416+2.12917)x433.62, glue set 2.95305
|
||||
.@glue(@leftskip) 137.31363
|
||||
.@hbox(0.0+0.0)x0.0
|
||||
.@glue 0.0
|
||||
.@hbox(7.05666+0.0)x0.0, glue set - 15.74411fil
|
||||
..@glue 0.0 plus 1.0fil minus 1.0fil
|
||||
..@textrm 6
|
||||
..@textrm .
|
||||
..@glue 7.22743
|
||||
..@kern 7.22743
|
||||
.@textrm E
|
||||
.@textrm r
|
||||
.@textrm r
|
||||
.etc.
|
||||
|
||||
[56] [57] [58] Chapter 5 [59] [60] [61] [62] [63] [64] [65] [66] [67] [68]
|
||||
@@ -224,9 +244,9 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
|
||||
@hbox(7.60416+2.43333)x433.62
|
||||
.@glue(@leftskip) 28.90755
|
||||
.@hbox(0.0+0.0)x0.0
|
||||
.@kern 0.0
|
||||
.@texttt b
|
||||
.@texttt a
|
||||
.@texttt s
|
||||
.etc.
|
||||
|
||||
|
||||
@@ -269,7 +289,7 @@ the file
|
||||
.@textrm n
|
||||
.etc.
|
||||
|
||||
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]
|
||||
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85]
|
||||
Underfull \hbox (badness 2521) in paragraph at lines 6539--6542
|
||||
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
|
||||
e[] @textrm when build-ing (see Sec-tion 10.8
|
||||
@@ -282,9 +302,9 @@ e[] @textrm when build-ing (see Sec-tion 10.8
|
||||
.@texttt n
|
||||
.etc.
|
||||
|
||||
Chapter 7 [87] [88] [89] [90] [91]
|
||||
(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [92] [93]
|
||||
[94] [95] [96] [97] [98]
|
||||
Chapter 7 [86] [87] [88] [89]
|
||||
(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [90] [91]
|
||||
[92] [93] [94] [95] [96]
|
||||
Underfull \hbox (badness 5231) in paragraph at lines 524--540
|
||||
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
|
||||
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
|
||||
@@ -297,7 +317,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
|
||||
.@texttt c
|
||||
.etc.
|
||||
|
||||
[99] [100] [101] [102] [103]
|
||||
[97] [98] [99] [100]
|
||||
Overfull \hbox (26.43913pt too wide) in paragraph at lines 846--846
|
||||
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
|
||||
gnored[]
|
||||
@@ -310,8 +330,8 @@ gnored[]
|
||||
.@texttt t
|
||||
.etc.
|
||||
|
||||
[104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115]
|
||||
[116] [117]
|
||||
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112]
|
||||
[113] [114]
|
||||
Underfull \hbox (badness 2753) in paragraph at lines 1827--1830
|
||||
@texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
|
||||
|
||||
@@ -323,8 +343,9 @@ Underfull \hbox (badness 2753) in paragraph at lines 1827--1830
|
||||
.@texttt o
|
||||
.etc.
|
||||
|
||||
[118] [119]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
|
||||
[120] [121] [122] [123] [124]) Chapter 10 [125] [126] [127] [128] [129]
|
||||
[115] [116]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
|
||||
[117] [118] [119] [120] [121] [122]) Chapter 10 [123] [124] [125] [126]
|
||||
[127]
|
||||
Underfull \hbox (badness 2772) in paragraph at lines 7140--7144
|
||||
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
|
||||
s/large_
|
||||
@@ -337,41 +358,18 @@ s/large_
|
||||
.@textrm a
|
||||
.etc.
|
||||
|
||||
[130] [131] [132] Appendix A [133] [134] Appendix B [135] [136] [137] [138]
|
||||
[139] [140] [141] Appendix C [142] (./fdl.texi [143] [144] [145] [146] [147]
|
||||
[148] [149]) Appendix D [150] (./bashref.bts [151]) (./bashref.rws)
|
||||
(./bashref.vrs [152] [153]) (./bashref.fns [154] [155]) (./bashref.cps [156])
|
||||
Overfull \vbox (40.58205pt too high) has occurred while \output is active
|
||||
\vbox(643.19986+0.0)x433.62
|
||||
.\glue(\topskip) 0.0
|
||||
.\hbox(682.0319+1.75)x433.62, glue set 18.01016fil
|
||||
..\vbox(682.0319+1.75)x207.80492, glue set 1.42673
|
||||
...\glue(\topskip) 29.75
|
||||
...\hbox(6.25+0.0)x207.80492, glue set 157.43721fill []
|
||||
...\glue 0.0 plus 1.0
|
||||
...\glue(\parskip) 0.0
|
||||
...\glue(\baselineskip) 4.25
|
||||
...etc.
|
||||
..\glue 0.0 plus 1.0fil
|
||||
..\vbox(682.0319+1.75)x207.80492, glue set 0.0064
|
||||
...\glue(\splittopskip) 26.12001
|
||||
...\hbox(9.87999+0.0)x207.80492, glue set 196.73825fil []
|
||||
...\glue 3.46501 plus 1.05006
|
||||
...\penalty 10000
|
||||
...\glue 0.0 plus 1.0
|
||||
...etc.
|
||||
.\penalty 10000
|
||||
.\glue 0.0 plus 1.0fill
|
||||
|
||||
|
||||
[157] [158] )
|
||||
[128] [129] [130] Appendix A [131] [132] Appendix B [133] [134] [135] [136]
|
||||
[137] [138] [139] Appendix C [140] (./fdl.texi [141] [142] [143] [144] [145]
|
||||
[146] [147]) Appendix D [148] (./bashref.bts) [149] (./bashref.rws)
|
||||
(./bashref.vrs [150] [151]) (./bashref.fns [152] [153]) (./bashref.cps [154])
|
||||
[155] [156] )
|
||||
Here is how much of TeX's memory you used:
|
||||
1735 strings out of 97980
|
||||
23684 string characters out of 1221004
|
||||
52957 words of memory out of 1500000
|
||||
2586 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 1200000 for 2000
|
||||
19 hyphenation exceptions out of 8191
|
||||
15i,8n,11p,269b,474s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
2078 strings out of 97980
|
||||
28503 string characters out of 1221004
|
||||
64631 words of memory out of 1500000
|
||||
2894 multiletter control sequences out of 10000+50000
|
||||
32127 words of font info for 112 fonts, out of 1200000 for 2000
|
||||
51 hyphenation exceptions out of 8191
|
||||
16i,6n,14p,315b,699s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
|
||||
Output written on bashref.dvi (164 pages, 642324 bytes).
|
||||
Output written on bashref.dvi (162 pages, 653260 bytes).
|
||||
|
||||
Binary file not shown.
+8399
-8603
File diff suppressed because it is too large
Load Diff
+11
-11
@@ -1,21 +1,21 @@
|
||||
\entry{time}{8}{\code {time}}
|
||||
\entry{!}{8}{\code {!}}
|
||||
\entry{until}{10}{\code {until}}
|
||||
\entry{do}{10}{\code {do}}
|
||||
\entry{done}{10}{\code {done}}
|
||||
\entry{while}{10}{\code {while}}
|
||||
\entry{until}{9}{\code {until}}
|
||||
\entry{do}{9}{\code {do}}
|
||||
\entry{done}{9}{\code {done}}
|
||||
\entry{while}{9}{\code {while}}
|
||||
\entry{for}{10}{\code {for}}
|
||||
\entry{if}{10}{\code {if}}
|
||||
\entry{then}{10}{\code {then}}
|
||||
\entry{else}{10}{\code {else}}
|
||||
\entry{elif}{10}{\code {elif}}
|
||||
\entry{fi}{10}{\code {fi}}
|
||||
\entry{case}{11}{\code {case}}
|
||||
\entry{in}{11}{\code {in}}
|
||||
\entry{esac}{11}{\code {esac}}
|
||||
\entry{select}{12}{\code {select}}
|
||||
\entry{case}{10}{\code {case}}
|
||||
\entry{in}{10}{\code {in}}
|
||||
\entry{esac}{10}{\code {esac}}
|
||||
\entry{select}{11}{\code {select}}
|
||||
\entry{[[}{12}{\code {[[}}
|
||||
\entry{]]}{12}{\code {]]}}
|
||||
\entry{{\tt \char 123}}{14}{\code {{\tt \char 123}}}
|
||||
\entry{{\tt \char 125}}{14}{\code {{\tt \char 125}}}
|
||||
\entry{function}{15}{\code {function}}
|
||||
\entry{{\tt \char 123}}{13}{\code {{\tt \char 123}}}
|
||||
\entry{{\tt \char 125}}{13}{\code {{\tt \char 125}}}
|
||||
\entry{function}{14}{\code {function}}
|
||||
|
||||
+11
-11
@@ -5,31 +5,31 @@
|
||||
\initial {]}
|
||||
\entry {\code {]]}}{12}
|
||||
\initial {{\tt \char 123}}
|
||||
\entry {\code {{\tt \char 123}}}{14}
|
||||
\entry {\code {{\tt \char 123}}}{13}
|
||||
\initial {{\tt \char 125}}
|
||||
\entry {\code {{\tt \char 125}}}{14}
|
||||
\entry {\code {{\tt \char 125}}}{13}
|
||||
\initial {C}
|
||||
\entry {\code {case}}{11}
|
||||
\entry {\code {case}}{10}
|
||||
\initial {D}
|
||||
\entry {\code {do}}{10}
|
||||
\entry {\code {done}}{10}
|
||||
\entry {\code {do}}{9}
|
||||
\entry {\code {done}}{9}
|
||||
\initial {E}
|
||||
\entry {\code {elif}}{10}
|
||||
\entry {\code {else}}{10}
|
||||
\entry {\code {esac}}{11}
|
||||
\entry {\code {esac}}{10}
|
||||
\initial {F}
|
||||
\entry {\code {fi}}{10}
|
||||
\entry {\code {for}}{10}
|
||||
\entry {\code {function}}{15}
|
||||
\entry {\code {function}}{14}
|
||||
\initial {I}
|
||||
\entry {\code {if}}{10}
|
||||
\entry {\code {in}}{11}
|
||||
\entry {\code {in}}{10}
|
||||
\initial {S}
|
||||
\entry {\code {select}}{12}
|
||||
\entry {\code {select}}{11}
|
||||
\initial {T}
|
||||
\entry {\code {then}}{10}
|
||||
\entry {\code {time}}{8}
|
||||
\initial {U}
|
||||
\entry {\code {until}}{10}
|
||||
\entry {\code {until}}{9}
|
||||
\initial {W}
|
||||
\entry {\code {while}}{10}
|
||||
\entry {\code {while}}{9}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ are preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
This text is a brief description of the features that are present in
|
||||
the Bash shell (version @value{VERSION}, @value{UPDATED}).
|
||||
|
||||
This is Edition @value{EDITION}, last updated @value{UPDATED},
|
||||
of @cite{The GNU Bash Reference Manual},
|
||||
for @code{Bash}, Version @value{VERSION}.
|
||||
|
||||
Copyright @copyright{} 1988--2009 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 preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
included in the section entitled ``GNU Free Documentation License''.
|
||||
|
||||
(a) The FSF's Back-Cover Text is: You are free to copy and modify
|
||||
this GNU manual. Buying copies from GNU Press supports the FSF in
|
||||
developing GNU and promoting software freedom.''
|
||||
|
||||
@end quotation
|
||||
@endinput
|
||||
+137
-137
@@ -1,137 +1,137 @@
|
||||
\chapentry{Introduction}{1}{1}
|
||||
\secentry{What is Bash?}{1}{1}{1}
|
||||
\secentry{What is a shell?}{1}{2}{1}
|
||||
\chapentry{Definitions}{2}{3}
|
||||
\chapentry{Basic Shell Features}{3}{5}
|
||||
\secentry{Shell Syntax}{3}{1}{5}
|
||||
\subsecentry{Shell Operation}{3}{1}{1}{5}
|
||||
\subsecentry{Quoting}{3}{1}{2}{5}
|
||||
\subsubsecentry{Escape Character}{3}{1}{2}{1}{6}
|
||||
\subsubsecentry{Single Quotes}{3}{1}{2}{2}{6}
|
||||
\subsubsecentry{Double Quotes}{3}{1}{2}{3}{6}
|
||||
\subsubsecentry{ANSI-C Quoting}{3}{1}{2}{4}{6}
|
||||
\subsubsecentry{Locale-Specific Translation}{3}{1}{2}{5}{7}
|
||||
\subsecentry{Comments}{3}{1}{3}{7}
|
||||
\secentry{Shell Commands}{3}{2}{7}
|
||||
\subsecentry{Simple Commands}{3}{2}{1}{8}
|
||||
\subsecentry{Pipelines}{3}{2}{2}{8}
|
||||
\subsecentry{Lists of Commands}{3}{2}{3}{9}
|
||||
\subsecentry{Compound Commands}{3}{2}{4}{9}
|
||||
\subsubsecentry{Looping Constructs}{3}{2}{4}{1}{9}
|
||||
\subsubsecentry{Conditional Constructs}{3}{2}{4}{2}{10}
|
||||
\subsubsecentry{Grouping Commands}{3}{2}{4}{3}{13}
|
||||
\subsecentry{Coprocesses}{3}{2}{5}{14}
|
||||
\secentry{Shell Functions}{3}{3}{14}
|
||||
\secentry{Shell Parameters}{3}{4}{16}
|
||||
\subsecentry{Positional Parameters}{3}{4}{1}{16}
|
||||
\subsecentry{Special Parameters}{3}{4}{2}{16}
|
||||
\secentry{Shell Expansions}{3}{5}{17}
|
||||
\subsecentry{Brace Expansion}{3}{5}{1}{18}
|
||||
\subsecentry{Tilde Expansion}{3}{5}{2}{19}
|
||||
\subsecentry{Shell Parameter Expansion}{3}{5}{3}{20}
|
||||
\subsecentry{Command Substitution}{3}{5}{4}{22}
|
||||
\subsecentry{Arithmetic Expansion}{3}{5}{5}{23}
|
||||
\subsecentry{Process Substitution}{3}{5}{6}{23}
|
||||
\subsecentry{Word Splitting}{3}{5}{7}{24}
|
||||
\subsecentry{Filename Expansion}{3}{5}{8}{24}
|
||||
\subsubsecentry{Pattern Matching}{3}{5}{8}{1}{25}
|
||||
\subsecentry{Quote Removal}{3}{5}{9}{26}
|
||||
\secentry{Redirections}{3}{6}{26}
|
||||
\subsecentry{Redirecting Input}{3}{6}{1}{27}
|
||||
\subsecentry{Redirecting Output}{3}{6}{2}{27}
|
||||
\subsecentry{Appending Redirected Output}{3}{6}{3}{27}
|
||||
\subsecentry{Redirecting Standard Output and Standard Error}{3}{6}{4}{28}
|
||||
\subsecentry{Appending Standard Output and Standard Error}{3}{6}{5}{28}
|
||||
\subsecentry{Here Documents}{3}{6}{6}{28}
|
||||
\subsecentry{Here Strings}{3}{6}{7}{29}
|
||||
\subsecentry{Duplicating File Descriptors}{3}{6}{8}{29}
|
||||
\subsecentry{Moving File Descriptors}{3}{6}{9}{29}
|
||||
\subsecentry{Opening File Descriptors for Reading and Writing}{3}{6}{10}{29}
|
||||
\secentry{Executing Commands}{3}{7}{30}
|
||||
\subsecentry{Simple Command Expansion}{3}{7}{1}{30}
|
||||
\subsecentry{Command Search and Execution}{3}{7}{2}{30}
|
||||
\subsecentry{Command Execution Environment}{3}{7}{3}{31}
|
||||
\subsecentry{Environment}{3}{7}{4}{32}
|
||||
\subsecentry{Exit Status}{3}{7}{5}{32}
|
||||
\subsecentry{Signals}{3}{7}{6}{33}
|
||||
\secentry{Shell Scripts}{3}{8}{34}
|
||||
\chapentry{Shell Builtin Commands}{4}{35}
|
||||
\secentry{Bourne Shell Builtins}{4}{1}{35}
|
||||
\secentry{Bash Builtin Commands}{4}{2}{41}
|
||||
\secentry{Modifying Shell Behavior}{4}{3}{50}
|
||||
\subsecentry{The Set Builtin}{4}{3}{1}{50}
|
||||
\subsecentry{The Shopt Builtin}{4}{3}{2}{54}
|
||||
\secentry{Special Builtins}{4}{4}{59}
|
||||
\chapentry{Shell Variables}{5}{61}
|
||||
\secentry{Bourne Shell Variables}{5}{1}{61}
|
||||
\secentry{Bash Variables}{5}{2}{61}
|
||||
\chapentry{Bash Features}{6}{71}
|
||||
\secentry{Invoking Bash}{6}{1}{71}
|
||||
\secentry{Bash Startup Files}{6}{2}{73}
|
||||
\secentry{Interactive Shells}{6}{3}{75}
|
||||
\subsecentry{What is an Interactive Shell?}{6}{3}{1}{75}
|
||||
\subsecentry{Is this Shell Interactive?}{6}{3}{2}{75}
|
||||
\subsecentry{Interactive Shell Behavior}{6}{3}{3}{75}
|
||||
\secentry{Bash Conditional Expressions}{6}{4}{76}
|
||||
\secentry{Shell Arithmetic}{6}{5}{78}
|
||||
\secentry{Aliases}{6}{6}{79}
|
||||
\secentry{Arrays}{6}{7}{80}
|
||||
\secentry{The Directory Stack}{6}{8}{81}
|
||||
\subsecentry{Directory Stack Builtins}{6}{8}{1}{82}
|
||||
\secentry{Controlling the Prompt}{6}{9}{83}
|
||||
\secentry{The Restricted Shell}{6}{10}{84}
|
||||
\secentry{Bash POSIX Mode}{6}{11}{85}
|
||||
\chapentry{Job Control}{7}{89}
|
||||
\secentry{Job Control Basics}{7}{1}{89}
|
||||
\secentry{Job Control Builtins}{7}{2}{90}
|
||||
\secentry{Job Control Variables}{7}{3}{92}
|
||||
\chapentry{Command Line Editing}{8}{93}
|
||||
\secentry{Introduction to Line Editing}{8}{1}{93}
|
||||
\secentry{Readline Interaction}{8}{2}{93}
|
||||
\subsecentry{Readline Bare Essentials}{8}{2}{1}{93}
|
||||
\subsecentry{Readline Movement Commands}{8}{2}{2}{94}
|
||||
\subsecentry{Readline Killing Commands}{8}{2}{3}{94}
|
||||
\subsecentry{Readline Arguments}{8}{2}{4}{95}
|
||||
\subsecentry{Searching for Commands in the History}{8}{2}{5}{95}
|
||||
\secentry{Readline Init File}{8}{3}{96}
|
||||
\subsecentry{Readline Init File Syntax}{8}{3}{1}{96}
|
||||
\subsecentry{Conditional Init Constructs}{8}{3}{2}{102}
|
||||
\subsecentry{Sample Init File}{8}{3}{3}{103}
|
||||
\secentry{Bindable Readline Commands}{8}{4}{106}
|
||||
\subsecentry{Commands For Moving}{8}{4}{1}{106}
|
||||
\subsecentry{Commands For Manipulating The History}{8}{4}{2}{107}
|
||||
\subsecentry{Commands For Changing Text}{8}{4}{3}{108}
|
||||
\subsecentry{Killing And Yanking}{8}{4}{4}{109}
|
||||
\subsecentry{Specifying Numeric Arguments}{8}{4}{5}{110}
|
||||
\subsecentry{Letting Readline Type For You}{8}{4}{6}{110}
|
||||
\subsecentry{Keyboard Macros}{8}{4}{7}{112}
|
||||
\subsecentry{Some Miscellaneous Commands}{8}{4}{8}{112}
|
||||
\secentry{Readline vi Mode}{8}{5}{114}
|
||||
\secentry{Programmable Completion}{8}{6}{115}
|
||||
\secentry{Programmable Completion Builtins}{8}{7}{116}
|
||||
\chapentry{Using History Interactively}{9}{121}
|
||||
\secentry{Bash History Facilities}{9}{1}{121}
|
||||
\secentry{Bash History Builtins}{9}{2}{121}
|
||||
\secentry{History Expansion}{9}{3}{123}
|
||||
\subsecentry{Event Designators}{9}{3}{1}{123}
|
||||
\subsecentry{Word Designators}{9}{3}{2}{124}
|
||||
\subsecentry{Modifiers}{9}{3}{3}{125}
|
||||
\chapentry{Installing Bash}{10}{127}
|
||||
\secentry{Basic Installation}{10}{1}{127}
|
||||
\secentry{Compilers and Options}{10}{2}{127}
|
||||
\secentry{Compiling For Multiple Architectures}{10}{3}{128}
|
||||
\secentry{Installation Names}{10}{4}{128}
|
||||
\secentry{Specifying the System Type}{10}{5}{128}
|
||||
\secentry{Sharing Defaults}{10}{6}{129}
|
||||
\secentry{Operation Controls}{10}{7}{129}
|
||||
\secentry{Optional Features}{10}{8}{129}
|
||||
\appendixentry{Reporting Bugs}{A}{135}
|
||||
\appendixentry{Major Differences From The Bourne Shell}{B}{137}
|
||||
\secentry{Implementation Differences From The SVR4.2 Shell}{B}{1}{141}
|
||||
\appendixentry{GNU Free Documentation License}{C}{143}
|
||||
\appendixentry{Indexes}{D}{151}
|
||||
\secentry{Index of Shell Builtin Commands}{D}{1}{151}
|
||||
\secentry{Index of Shell Reserved Words}{D}{2}{152}
|
||||
\secentry{Parameter and Variable Index}{D}{3}{152}
|
||||
\secentry{Function Index}{D}{4}{154}
|
||||
\secentry{Concept Index}{D}{5}{156}
|
||||
@numchapentry{Introduction}{1}{Introduction}{1}
|
||||
@numsecentry{What is Bash?}{1.1}{What is Bash?}{1}
|
||||
@numsecentry{What is a shell?}{1.2}{What is a shell?}{1}
|
||||
@numchapentry{Definitions}{2}{Definitions}{3}
|
||||
@numchapentry{Basic Shell Features}{3}{Basic Shell Features}{5}
|
||||
@numsecentry{Shell Syntax}{3.1}{Shell Syntax}{5}
|
||||
@numsubsecentry{Shell Operation}{3.1.1}{Shell Operation}{5}
|
||||
@numsubsecentry{Quoting}{3.1.2}{Quoting}{6}
|
||||
@numsubsubsecentry{Escape Character}{3.1.2.1}{Escape Character}{6}
|
||||
@numsubsubsecentry{Single Quotes}{3.1.2.2}{Single Quotes}{6}
|
||||
@numsubsubsecentry{Double Quotes}{3.1.2.3}{Double Quotes}{6}
|
||||
@numsubsubsecentry{ANSI-C Quoting}{3.1.2.4}{ANSI-C Quoting}{6}
|
||||
@numsubsubsecentry{Locale-Specific Translation}{3.1.2.5}{Locale Translation}{7}
|
||||
@numsubsecentry{Comments}{3.1.3}{Comments}{7}
|
||||
@numsecentry{Shell Commands}{3.2}{Shell Commands}{7}
|
||||
@numsubsecentry{Simple Commands}{3.2.1}{Simple Commands}{8}
|
||||
@numsubsecentry{Pipelines}{3.2.2}{Pipelines}{8}
|
||||
@numsubsecentry{Lists of Commands}{3.2.3}{Lists}{8}
|
||||
@numsubsecentry{Compound Commands}{3.2.4}{Compound Commands}{9}
|
||||
@numsubsubsecentry{Looping Constructs}{3.2.4.1}{Looping Constructs}{9}
|
||||
@numsubsubsecentry{Conditional Constructs}{3.2.4.2}{Conditional Constructs}{10}
|
||||
@numsubsubsecentry{Grouping Commands}{3.2.4.3}{Command Grouping}{13}
|
||||
@numsubsecentry{Coprocesses}{3.2.5}{Coprocesses}{13}
|
||||
@numsecentry{Shell Functions}{3.3}{Shell Functions}{14}
|
||||
@numsecentry{Shell Parameters}{3.4}{Shell Parameters}{15}
|
||||
@numsubsecentry{Positional Parameters}{3.4.1}{Positional Parameters}{16}
|
||||
@numsubsecentry{Special Parameters}{3.4.2}{Special Parameters}{16}
|
||||
@numsecentry{Shell Expansions}{3.5}{Shell Expansions}{17}
|
||||
@numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{18}
|
||||
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{18}
|
||||
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{19}
|
||||
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{22}
|
||||
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{23}
|
||||
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{23}
|
||||
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{23}
|
||||
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{24}
|
||||
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{24}
|
||||
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{25}
|
||||
@numsecentry{Redirections}{3.6}{Redirections}{25}
|
||||
@numsubsecentry{Redirecting Input}{3.6.1}{}{26}
|
||||
@numsubsecentry{Redirecting Output}{3.6.2}{}{27}
|
||||
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{27}
|
||||
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{27}
|
||||
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{27}
|
||||
@numsubsecentry{Here Documents}{3.6.6}{}{27}
|
||||
@numsubsecentry{Here Strings}{3.6.7}{}{28}
|
||||
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{28}
|
||||
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{28}
|
||||
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{29}
|
||||
@numsecentry{Executing Commands}{3.7}{Executing Commands}{29}
|
||||
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{29}
|
||||
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{29}
|
||||
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{30}
|
||||
@numsubsecentry{Environment}{3.7.4}{Environment}{31}
|
||||
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{31}
|
||||
@numsubsecentry{Signals}{3.7.6}{Signals}{32}
|
||||
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{33}
|
||||
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{35}
|
||||
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{35}
|
||||
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{41}
|
||||
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{51}
|
||||
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{51}
|
||||
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{55}
|
||||
@numsecentry{Special Builtins}{4.4}{Special Builtins}{59}
|
||||
@numchapentry{Shell Variables}{5}{Shell Variables}{61}
|
||||
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{61}
|
||||
@numsecentry{Bash Variables}{5.2}{Bash Variables}{61}
|
||||
@numchapentry{Bash Features}{6}{Bash Features}{71}
|
||||
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{71}
|
||||
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{73}
|
||||
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{74}
|
||||
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{75}
|
||||
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{75}
|
||||
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{75}
|
||||
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{76}
|
||||
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{78}
|
||||
@numsecentry{Aliases}{6.6}{Aliases}{79}
|
||||
@numsecentry{Arrays}{6.7}{Arrays}{80}
|
||||
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{81}
|
||||
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{81}
|
||||
@numsecentry{Controlling the Prompt}{6.9}{Printing a Prompt}{82}
|
||||
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{84}
|
||||
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{84}
|
||||
@numchapentry{Job Control}{7}{Job Control}{87}
|
||||
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{87}
|
||||
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{88}
|
||||
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{90}
|
||||
@numchapentry{Command Line Editing}{8}{Command Line Editing}{91}
|
||||
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{91}
|
||||
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{91}
|
||||
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{92}
|
||||
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{92}
|
||||
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{93}
|
||||
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{93}
|
||||
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{93}
|
||||
@numsecentry{Readline Init File}{8.3}{Readline Init File}{94}
|
||||
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{94}
|
||||
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{100}
|
||||
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{100}
|
||||
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{103}
|
||||
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{103}
|
||||
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{104}
|
||||
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{105}
|
||||
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{106}
|
||||
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{107}
|
||||
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{107}
|
||||
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{109}
|
||||
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{109}
|
||||
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{111}
|
||||
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{112}
|
||||
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{113}
|
||||
@numchapentry{Using History Interactively}{9}{Using History Interactively}{119}
|
||||
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{119}
|
||||
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{119}
|
||||
@numsecentry{History Expansion}{9.3}{History Interaction}{121}
|
||||
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{121}
|
||||
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{122}
|
||||
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{123}
|
||||
@numchapentry{Installing Bash}{10}{Installing Bash}{125}
|
||||
@numsecentry{Basic Installation}{10.1}{Basic Installation}{125}
|
||||
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{126}
|
||||
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{126}
|
||||
@numsecentry{Installation Names}{10.4}{Installation Names}{126}
|
||||
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{126}
|
||||
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{127}
|
||||
@numsecentry{Operation Controls}{10.7}{Operation Controls}{127}
|
||||
@numsecentry{Optional Features}{10.8}{Optional Features}{127}
|
||||
@appentry{Reporting Bugs}{A}{Reporting Bugs}{133}
|
||||
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{135}
|
||||
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{139}
|
||||
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{141}
|
||||
@appentry{Indexes}{D}{Indexes}{149}
|
||||
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{149}
|
||||
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{150}
|
||||
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{150}
|
||||
@appsecentry{Function Index}{D.4}{Function Index}{152}
|
||||
@appsecentry{Concept Index}{D.5}{Concept Index}{154}
|
||||
|
||||
+31
-31
@@ -1,9 +1,9 @@
|
||||
\entry{LC_MESSAGES}{7}{\code {LC_MESSAGES}}
|
||||
\entry{TEXTDOMAIN}{7}{\code {TEXTDOMAIN}}
|
||||
\entry{TEXTDOMAINDIR}{7}{\code {TEXTDOMAINDIR}}
|
||||
\entry{*}{17}{\code {*}}
|
||||
\entry{@}{17}{\code {@}}
|
||||
\entry{#}{17}{\code {#}}
|
||||
\entry{*}{16}{\code {*}}
|
||||
\entry{@}{16}{\code {@}}
|
||||
\entry{#}{16}{\code {#}}
|
||||
\entry{?}{17}{\code {?}}
|
||||
\entry{-}{17}{\code {-}}
|
||||
\entry{$}{17}{\code {$}}
|
||||
@@ -37,7 +37,7 @@
|
||||
\entry{BASH_VERSION}{63}{\code {BASH_VERSION}}
|
||||
\entry{COLUMNS}{63}{\code {COLUMNS}}
|
||||
\entry{COMP_CWORD}{63}{\code {COMP_CWORD}}
|
||||
\entry{COMP_LINE}{63}{\code {COMP_LINE}}
|
||||
\entry{COMP_LINE}{64}{\code {COMP_LINE}}
|
||||
\entry{COMP_POINT}{64}{\code {COMP_POINT}}
|
||||
\entry{COMP_TYPE}{64}{\code {COMP_TYPE}}
|
||||
\entry{COMP_KEY}{64}{\code {COMP_KEY}}
|
||||
@@ -96,30 +96,30 @@
|
||||
\entry{TMOUT}{69}{\code {TMOUT}}
|
||||
\entry{TMPDIR}{69}{\code {TMPDIR}}
|
||||
\entry{UID}{69}{\code {UID}}
|
||||
\entry{auto_resume}{92}{\code {auto_resume}}
|
||||
\entry{bell-style}{97}{\code {bell-style}}
|
||||
\entry{bind-tty-special-chars}{97}{\code {bind-tty-special-chars}}
|
||||
\entry{comment-begin}{97}{\code {comment-begin}}
|
||||
\entry{completion-prefix-display-length}{97}{\code {completion-prefix-display-length}}
|
||||
\entry{completion-query-items}{97}{\code {completion-query-items}}
|
||||
\entry{convert-meta}{98}{\code {convert-meta}}
|
||||
\entry{disable-completion}{98}{\code {disable-completion}}
|
||||
\entry{editing-mode}{98}{\code {editing-mode}}
|
||||
\entry{enable-keypad}{98}{\code {enable-keypad}}
|
||||
\entry{expand-tilde}{98}{\code {expand-tilde}}
|
||||
\entry{history-preserve-point}{98}{\code {history-preserve-point}}
|
||||
\entry{history-size}{98}{\code {history-size}}
|
||||
\entry{horizontal-scroll-mode}{98}{\code {horizontal-scroll-mode}}
|
||||
\entry{input-meta}{98}{\code {input-meta}}
|
||||
\entry{meta-flag}{98}{\code {meta-flag}}
|
||||
\entry{isearch-terminators}{99}{\code {isearch-terminators}}
|
||||
\entry{keymap}{99}{\code {keymap}}
|
||||
\entry{mark-modified-lines}{99}{\code {mark-modified-lines}}
|
||||
\entry{mark-symlinked-directories}{99}{\code {mark-symlinked-directories}}
|
||||
\entry{match-hidden-files}{99}{\code {match-hidden-files}}
|
||||
\entry{output-meta}{99}{\code {output-meta}}
|
||||
\entry{page-completions}{99}{\code {page-completions}}
|
||||
\entry{revert-all-at-newline}{100}{\code {revert-all-at-newline}}
|
||||
\entry{show-all-if-ambiguous}{100}{\code {show-all-if-ambiguous}}
|
||||
\entry{show-all-if-unmodified}{100}{\code {show-all-if-unmodified}}
|
||||
\entry{visible-stats}{100}{\code {visible-stats}}
|
||||
\entry{auto_resume}{90}{\code {auto_resume}}
|
||||
\entry{bell-style}{95}{\code {bell-style}}
|
||||
\entry{bind-tty-special-chars}{95}{\code {bind-tty-special-chars}}
|
||||
\entry{comment-begin}{95}{\code {comment-begin}}
|
||||
\entry{completion-prefix-display-length}{95}{\code {completion-prefix-display-length}}
|
||||
\entry{completion-query-items}{95}{\code {completion-query-items}}
|
||||
\entry{convert-meta}{96}{\code {convert-meta}}
|
||||
\entry{disable-completion}{96}{\code {disable-completion}}
|
||||
\entry{editing-mode}{96}{\code {editing-mode}}
|
||||
\entry{enable-keypad}{96}{\code {enable-keypad}}
|
||||
\entry{expand-tilde}{96}{\code {expand-tilde}}
|
||||
\entry{history-preserve-point}{96}{\code {history-preserve-point}}
|
||||
\entry{history-size}{96}{\code {history-size}}
|
||||
\entry{horizontal-scroll-mode}{96}{\code {horizontal-scroll-mode}}
|
||||
\entry{input-meta}{96}{\code {input-meta}}
|
||||
\entry{meta-flag}{96}{\code {meta-flag}}
|
||||
\entry{isearch-terminators}{96}{\code {isearch-terminators}}
|
||||
\entry{keymap}{97}{\code {keymap}}
|
||||
\entry{mark-modified-lines}{97}{\code {mark-modified-lines}}
|
||||
\entry{mark-symlinked-directories}{97}{\code {mark-symlinked-directories}}
|
||||
\entry{match-hidden-files}{97}{\code {match-hidden-files}}
|
||||
\entry{output-meta}{97}{\code {output-meta}}
|
||||
\entry{page-completions}{97}{\code {page-completions}}
|
||||
\entry{revert-all-at-newline}{97}{\code {revert-all-at-newline}}
|
||||
\entry{show-all-if-ambiguous}{98}{\code {show-all-if-ambiguous}}
|
||||
\entry{show-all-if-unmodified}{98}{\code {show-all-if-unmodified}}
|
||||
\entry{visible-stats}{98}{\code {visible-stats}}
|
||||
|
||||
+31
-31
@@ -1,23 +1,23 @@
|
||||
\initial {!}
|
||||
\entry {\code {!}}{17}
|
||||
\initial {#}
|
||||
\entry {\code {#}}{17}
|
||||
\entry {\code {#}}{16}
|
||||
\initial {$}
|
||||
\entry {\code {$}}{17}
|
||||
\initial {*}
|
||||
\entry {\code {*}}{17}
|
||||
\entry {\code {*}}{16}
|
||||
\initial {-}
|
||||
\entry {\code {-}}{17}
|
||||
\initial {?}
|
||||
\entry {\code {?}}{17}
|
||||
\initial {@}
|
||||
\entry {\code {@}}{17}
|
||||
\entry {\code {@}}{16}
|
||||
\initial {_}
|
||||
\entry {\code {_}}{17}
|
||||
\initial {0}
|
||||
\entry {\code {0}}{17}
|
||||
\initial {A}
|
||||
\entry {\code {auto_resume}}{92}
|
||||
\entry {\code {auto_resume}}{90}
|
||||
\initial {B}
|
||||
\entry {\code {BASH}}{61}
|
||||
\entry {\code {BASH_ALIASES}}{62}
|
||||
@@ -34,32 +34,32 @@
|
||||
\entry {\code {BASH_VERSINFO}}{63}
|
||||
\entry {\code {BASH_VERSION}}{63}
|
||||
\entry {\code {BASHPID}}{62}
|
||||
\entry {\code {bell-style}}{97}
|
||||
\entry {\code {bind-tty-special-chars}}{97}
|
||||
\entry {\code {bell-style}}{95}
|
||||
\entry {\code {bind-tty-special-chars}}{95}
|
||||
\initial {C}
|
||||
\entry {\code {CDPATH}}{61}
|
||||
\entry {\code {COLUMNS}}{63}
|
||||
\entry {\code {comment-begin}}{97}
|
||||
\entry {\code {comment-begin}}{95}
|
||||
\entry {\code {COMP_CWORD}}{63}
|
||||
\entry {\code {COMP_KEY}}{64}
|
||||
\entry {\code {COMP_LINE}}{63}
|
||||
\entry {\code {COMP_LINE}}{64}
|
||||
\entry {\code {COMP_POINT}}{64}
|
||||
\entry {\code {COMP_TYPE}}{64}
|
||||
\entry {\code {COMP_WORDBREAKS}}{64}
|
||||
\entry {\code {COMP_WORDS}}{64}
|
||||
\entry {\code {completion-prefix-display-length}}{97}
|
||||
\entry {\code {completion-query-items}}{97}
|
||||
\entry {\code {completion-prefix-display-length}}{95}
|
||||
\entry {\code {completion-query-items}}{95}
|
||||
\entry {\code {COMPREPLY}}{64}
|
||||
\entry {\code {convert-meta}}{98}
|
||||
\entry {\code {convert-meta}}{96}
|
||||
\initial {D}
|
||||
\entry {\code {DIRSTACK}}{64}
|
||||
\entry {\code {disable-completion}}{98}
|
||||
\entry {\code {disable-completion}}{96}
|
||||
\initial {E}
|
||||
\entry {\code {editing-mode}}{98}
|
||||
\entry {\code {editing-mode}}{96}
|
||||
\entry {\code {EMACS}}{64}
|
||||
\entry {\code {enable-keypad}}{98}
|
||||
\entry {\code {enable-keypad}}{96}
|
||||
\entry {\code {EUID}}{65}
|
||||
\entry {\code {expand-tilde}}{98}
|
||||
\entry {\code {expand-tilde}}{96}
|
||||
\initial {F}
|
||||
\entry {\code {FCEDIT}}{65}
|
||||
\entry {\code {FIGNORE}}{65}
|
||||
@@ -74,23 +74,23 @@
|
||||
\entry {\code {HISTFILE}}{66}
|
||||
\entry {\code {HISTFILESIZE}}{66}
|
||||
\entry {\code {HISTIGNORE}}{66}
|
||||
\entry {\code {history-preserve-point}}{98}
|
||||
\entry {\code {history-size}}{98}
|
||||
\entry {\code {history-preserve-point}}{96}
|
||||
\entry {\code {history-size}}{96}
|
||||
\entry {\code {HISTSIZE}}{66}
|
||||
\entry {\code {HISTTIMEFORMAT}}{66}
|
||||
\entry {\code {HOME}}{61}
|
||||
\entry {\code {horizontal-scroll-mode}}{98}
|
||||
\entry {\code {horizontal-scroll-mode}}{96}
|
||||
\entry {\code {HOSTFILE}}{66}
|
||||
\entry {\code {HOSTNAME}}{66}
|
||||
\entry {\code {HOSTTYPE}}{66}
|
||||
\initial {I}
|
||||
\entry {\code {IFS}}{61}
|
||||
\entry {\code {IGNOREEOF}}{66}
|
||||
\entry {\code {input-meta}}{98}
|
||||
\entry {\code {input-meta}}{96}
|
||||
\entry {\code {INPUTRC}}{67}
|
||||
\entry {\code {isearch-terminators}}{99}
|
||||
\entry {\code {isearch-terminators}}{96}
|
||||
\initial {K}
|
||||
\entry {\code {keymap}}{99}
|
||||
\entry {\code {keymap}}{97}
|
||||
\initial {L}
|
||||
\entry {\code {LANG}}{67}
|
||||
\entry {\code {LC_ALL}}{67}
|
||||
@@ -105,19 +105,19 @@
|
||||
\entry {\code {MAIL}}{61}
|
||||
\entry {\code {MAILCHECK}}{67}
|
||||
\entry {\code {MAILPATH}}{61}
|
||||
\entry {\code {mark-modified-lines}}{99}
|
||||
\entry {\code {mark-symlinked-directories}}{99}
|
||||
\entry {\code {match-hidden-files}}{99}
|
||||
\entry {\code {meta-flag}}{98}
|
||||
\entry {\code {mark-modified-lines}}{97}
|
||||
\entry {\code {mark-symlinked-directories}}{97}
|
||||
\entry {\code {match-hidden-files}}{97}
|
||||
\entry {\code {meta-flag}}{96}
|
||||
\initial {O}
|
||||
\entry {\code {OLDPWD}}{67}
|
||||
\entry {\code {OPTARG}}{61}
|
||||
\entry {\code {OPTERR}}{67}
|
||||
\entry {\code {OPTIND}}{61}
|
||||
\entry {\code {OSTYPE}}{67}
|
||||
\entry {\code {output-meta}}{99}
|
||||
\entry {\code {output-meta}}{97}
|
||||
\initial {P}
|
||||
\entry {\code {page-completions}}{99}
|
||||
\entry {\code {page-completions}}{97}
|
||||
\entry {\code {PATH}}{61}
|
||||
\entry {\code {PIPESTATUS}}{67}
|
||||
\entry {\code {POSIXLY_CORRECT}}{68}
|
||||
@@ -132,14 +132,14 @@
|
||||
\initial {R}
|
||||
\entry {\code {RANDOM}}{68}
|
||||
\entry {\code {REPLY}}{68}
|
||||
\entry {\code {revert-all-at-newline}}{100}
|
||||
\entry {\code {revert-all-at-newline}}{97}
|
||||
\initial {S}
|
||||
\entry {\code {SECONDS}}{68}
|
||||
\entry {\code {SHELL}}{68}
|
||||
\entry {\code {SHELLOPTS}}{68}
|
||||
\entry {\code {SHLVL}}{69}
|
||||
\entry {\code {show-all-if-ambiguous}}{100}
|
||||
\entry {\code {show-all-if-unmodified}}{100}
|
||||
\entry {\code {show-all-if-ambiguous}}{98}
|
||||
\entry {\code {show-all-if-unmodified}}{98}
|
||||
\initial {T}
|
||||
\entry {\code {TEXTDOMAIN}}{7}
|
||||
\entry {\code {TEXTDOMAINDIR}}{7}
|
||||
@@ -149,4 +149,4 @@
|
||||
\initial {U}
|
||||
\entry {\code {UID}}{69}
|
||||
\initial {V}
|
||||
\entry {\code {visible-stats}}{100}
|
||||
\entry {\code {visible-stats}}{98}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
texinfo.tex.20030205
|
||||
+9250
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
shcat()
|
||||
{
|
||||
while read -r ; do
|
||||
echo "$REPLY"
|
||||
printf "%s\n" "$REPLY"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@@ -568,6 +568,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
|
||||
/* Fork a subshell, turn off the subshell bit, turn off job
|
||||
control and call execute_command () on the command again. */
|
||||
line_number_for_err_trap = line_number;
|
||||
paren_pid = make_child (savestring (make_command_string (command)),
|
||||
asynchronous);
|
||||
if (paren_pid == 0)
|
||||
@@ -610,7 +611,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
save_line_number = line_number;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (user_subshell && ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
|
||||
@@ -766,7 +770,9 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (ignore_return == 0 && invert == 0 &&
|
||||
@@ -2105,6 +2111,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
|
||||
REDIRECT *rp;
|
||||
COMMAND *tc, *second;
|
||||
int ignore_return, exec_result, was_error_trap, invert;
|
||||
volatile int save_line_number;
|
||||
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
|
||||
@@ -2174,12 +2181,16 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
|
||||
invert = (command->flags & CMD_INVERT_RETURN) != 0;
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
|
||||
line_number_for_err_trap = line_number;
|
||||
exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close);
|
||||
|
||||
if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
save_line_number = line_number;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
|
||||
|
||||
+13
-1
@@ -568,6 +568,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
|
||||
/* Fork a subshell, turn off the subshell bit, turn off job
|
||||
control and call execute_command () on the command again. */
|
||||
line_number_for_err_trap = line_number;
|
||||
paren_pid = make_child (savestring (make_command_string (command)),
|
||||
asynchronous);
|
||||
if (paren_pid == 0)
|
||||
@@ -610,7 +611,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
save_line_number = line_number;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (user_subshell && ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
|
||||
@@ -766,7 +770,9 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
||||
if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (ignore_return == 0 && invert == 0 &&
|
||||
@@ -2105,6 +2111,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
|
||||
REDIRECT *rp;
|
||||
COMMAND *tc, *second;
|
||||
int ignore_return, exec_result, was_error_trap, invert;
|
||||
volatile int save_line_number;
|
||||
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
|
||||
@@ -2174,12 +2181,16 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
|
||||
invert = (command->flags & CMD_INVERT_RETURN) != 0;
|
||||
ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
|
||||
|
||||
line_number_for_err_trap = line_number;
|
||||
exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close);
|
||||
|
||||
if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
|
||||
{
|
||||
last_command_exit_value = exec_result;
|
||||
save_line_number = line_number;
|
||||
line_number = line_number_for_err_trap;
|
||||
run_error_trap ();
|
||||
line_number = save_line_number;
|
||||
}
|
||||
|
||||
if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
|
||||
@@ -2930,7 +2941,7 @@ execute_case_command (case_command)
|
||||
retval = execute_command (clauses->action);
|
||||
}
|
||||
while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next));
|
||||
if (clauses && (clauses->flags & CASEPAT_TESTNEXT) == 0)
|
||||
if (clauses == 0 || (clauses->flags & CASEPAT_TESTNEXT) == 0)
|
||||
EXIT_CASE ();
|
||||
else
|
||||
break;
|
||||
@@ -3994,6 +4005,7 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
|
||||
|
||||
array_push (bash_source_a, sfile);
|
||||
t = itos (executing_line_number ());
|
||||
itrace("execute_function (%s): pushing %s %s", this_shell_function->name, sfile, t);
|
||||
array_push (bash_lineno_a, t);
|
||||
free (t);
|
||||
#endif
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
@xrdef{Using History Interactively-title}{Using History Interactively}
|
||||
@xrdef{Using History Interactively-pg}{1}
|
||||
@xrdef{Using History Interactively-snt}{Chapter@tie 1}
|
||||
@xrdef{History Interaction-title}{History Expansion}
|
||||
@xrdef{History Interaction-pg}{1}
|
||||
@xrdef{History Interaction-snt}{Section@tie 1.1}
|
||||
@xrdef{Event Designators-title}{Event Designators}
|
||||
@xrdef{Event Designators-pg}{1}
|
||||
@xrdef{Event Designators-snt}{Section@tie 1.1.1}
|
||||
@xrdef{Word Designators-title}{Word Designators}
|
||||
@xrdef{Word Designators-pg}{2}
|
||||
@xrdef{Word Designators-snt}{Section@tie 1.1.2}
|
||||
@xrdef{Using History Interactively-pg}{1}
|
||||
@xrdef{History Interaction-pg}{1}
|
||||
@xrdef{Event Designators-pg}{1}
|
||||
@xrdef{Modifiers-title}{Modifiers}
|
||||
@xrdef{Modifiers-pg}{2}
|
||||
@xrdef{Modifiers-snt}{Section@tie 1.1.3}
|
||||
@xrdef{Word Designators-pg}{2}
|
||||
@xrdef{Modifiers-pg}{2}
|
||||
@xrdef{Programming with GNU History-title}{Programming with GNU History}
|
||||
@xrdef{Programming with GNU History-pg}{4}
|
||||
@xrdef{Programming with GNU History-snt}{Chapter@tie 2}
|
||||
@xrdef{Introduction to History-title}{Introduction to History}
|
||||
@xrdef{Introduction to History-pg}{4}
|
||||
@xrdef{Introduction to History-snt}{Section@tie 2.1}
|
||||
@xrdef{History Storage-title}{History Storage}
|
||||
@xrdef{History Storage-pg}{4}
|
||||
@xrdef{History Storage-snt}{Section@tie 2.2}
|
||||
@xrdef{Programming with GNU History-pg}{4}
|
||||
@xrdef{Introduction to History-pg}{4}
|
||||
@xrdef{History Storage-pg}{4}
|
||||
@xrdef{History Functions-title}{History Functions}
|
||||
@xrdef{History Functions-pg}{5}
|
||||
@xrdef{History Functions-snt}{Section@tie 2.3}
|
||||
@xrdef{Initializing History and State Management-title}{Initializing History and State Management}
|
||||
@xrdef{Initializing History and State Management-pg}{5}
|
||||
@xrdef{Initializing History and State Management-snt}{Section@tie 2.3.1}
|
||||
@xrdef{History List Management-title}{History List Management}
|
||||
@xrdef{History List Management-pg}{5}
|
||||
@xrdef{History List Management-snt}{Section@tie 2.3.2}
|
||||
@xrdef{History Functions-pg}{5}
|
||||
@xrdef{Initializing History and State Management-pg}{5}
|
||||
@xrdef{History List Management-pg}{5}
|
||||
@xrdef{Information About the History List-title}{Information About the History List}
|
||||
@xrdef{Information About the History List-pg}{6}
|
||||
@xrdef{Information About the History List-snt}{Section@tie 2.3.3}
|
||||
@xrdef{Moving Around the History List-title}{Moving Around the History List}
|
||||
@xrdef{Moving Around the History List-pg}{7}
|
||||
@xrdef{Moving Around the History List-snt}{Section@tie 2.3.4}
|
||||
@xrdef{Information About the History List-pg}{6}
|
||||
@xrdef{Moving Around the History List-pg}{6}
|
||||
@xrdef{Searching the History List-title}{Searching the History List}
|
||||
@xrdef{Searching the History List-pg}{7}
|
||||
@xrdef{Searching the History List-snt}{Section@tie 2.3.5}
|
||||
@xrdef{Managing the History File-title}{Managing the History File}
|
||||
@xrdef{Managing the History File-pg}{7}
|
||||
@xrdef{Managing the History File-snt}{Section@tie 2.3.6}
|
||||
@xrdef{Searching the History List-pg}{7}
|
||||
@xrdef{Managing the History File-pg}{7}
|
||||
@xrdef{History Expansion-title}{History Expansion}
|
||||
@xrdef{History Expansion-pg}{8}
|
||||
@xrdef{History Expansion-snt}{Section@tie 2.3.7}
|
||||
@xrdef{History Variables-title}{History Variables}
|
||||
@xrdef{History Variables-pg}{9}
|
||||
@xrdef{History Variables-snt}{Section@tie 2.4}
|
||||
@xrdef{History Expansion-pg}{8}
|
||||
@xrdef{History Variables-pg}{8}
|
||||
@xrdef{History Programming Example-title}{History Programming Example}
|
||||
@xrdef{History Programming Example-pg}{10}
|
||||
@xrdef{History Programming Example-snt}{Section@tie 2.5}
|
||||
@xrdef{History Programming Example-pg}{9}
|
||||
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
|
||||
@xrdef{GNU Free Documentation License-pg}{12}
|
||||
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{GNU Free Documentation License-pg}{12}
|
||||
@xrdef{Concept Index-title}{Concept Index}
|
||||
@xrdef{Concept Index-pg}{19}
|
||||
@xrdef{Concept Index-snt}{Appendix@tie @char66{}}
|
||||
@xrdef{Concept Index-pg}{20}
|
||||
@xrdef{Function and Variable Index-title}{Function and Variable Index}
|
||||
@xrdef{Function and Variable Index-pg}{20}
|
||||
@xrdef{Function and Variable Index-snt}{Appendix@tie @char67{}}
|
||||
@xrdef{Function and Variable Index-pg}{21}
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
<HTML>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- Created on January, 6 2009 by texi2html 1.64 -->
|
||||
<!-- Created on March, 18 2009 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -1273,12 +1273,12 @@ main (argc, argv)
|
||||
<P>
|
||||
|
||||
<center>
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
</center>
|
||||
</P><P>
|
||||
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<A HREF="http://fsf.org/">http://fsf.org/</A>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -1396,6 +1396,10 @@ the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
</P><P>
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
</P><P>
|
||||
|
||||
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
|
||||
@@ -1709,13 +1713,33 @@ title.
|
||||
TERMINATION
|
||||
<P>
|
||||
|
||||
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.
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
</P><P>
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
</P><P>
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
</P><P>
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
@@ -1736,7 +1760,49 @@ 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.
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
RELICENSING
|
||||
<P>
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
</P><P>
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
</P><P>
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
</P><P>
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
</P><P>
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
</P><P>
|
||||
|
||||
</OL>
|
||||
<P>
|
||||
|
||||
@@ -1752,7 +1818,7 @@ license notices just after the title page:
|
||||
|
||||
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
@@ -2049,7 +2115,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>January, 6 2009</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -2211,7 +2277,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>January, 6 2009</I>
|
||||
by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ preserved on all copies.
|
||||
|
||||
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
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with the Front-Cover texts
|
||||
being "A GNU Manual", and with the Back-Cover Texts as in (a)
|
||||
below. A copy of the license is included in the section entitled
|
||||
@@ -784,10 +784,10 @@ File: history.info, Node: GNU Free Documentation License, Next: Concept Index,
|
||||
Appendix A GNU Free Documentation License
|
||||
*****************************************
|
||||
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
`http://fsf.org/'
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -889,6 +889,9 @@ Appendix A GNU Free Documentation License
|
||||
Page" means the text near the most prominent appearance of the
|
||||
work's title, preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
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
|
||||
@@ -1154,12 +1157,29 @@ Appendix A GNU Free Documentation License
|
||||
9. 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.
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void,
|
||||
and will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly
|
||||
and finally terminates your license, and (b) permanently, if the
|
||||
copyright holder fails to notify you of the violation by some
|
||||
reasonable means prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from
|
||||
that copyright holder, and you cure the violation prior to 30 days
|
||||
after your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate
|
||||
the licenses of parties who have received copies or rights from
|
||||
you under this License. If your rights have been terminated and
|
||||
not permanently reinstated, receipt of a copy of some or all of
|
||||
the same material does not give you any rights to use it.
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
@@ -1177,7 +1197,41 @@ Appendix A GNU Free Documentation License
|
||||
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.
|
||||
Free Software Foundation. If the Document specifies that a proxy
|
||||
can decide which future versions of this License can be used, that
|
||||
proxy's public statement of acceptance of a version permanently
|
||||
authorizes you to choose that version for the Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server.
|
||||
A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this
|
||||
License somewhere other than this MMC, and subsequently
|
||||
incorporated in whole or in part into the MMC, (1) had no cover
|
||||
texts or invariant sections, and (2) were thus incorporated prior
|
||||
to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the
|
||||
site under CC-BY-SA on the same site at any time before August 1,
|
||||
2009, provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
====================================================
|
||||
@@ -1188,7 +1242,7 @@ notices just after the title page:
|
||||
|
||||
Copyright (C) YEAR 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
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
@@ -1334,7 +1388,7 @@ Node: History Expansion21296
|
||||
Node: History Variables23204
|
||||
Node: History Programming Example26010
|
||||
Node: GNU Free Documentation License28687
|
||||
Node: Concept Index51143
|
||||
Node: Function and Variable Index51848
|
||||
Node: Concept Index53878
|
||||
Node: Function and Variable Index54583
|
||||
|
||||
End Tag Table
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 6 JAN 2009 11:52
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
|
||||
**/Users/chet/src/bash/src/lib/readline/doc/history.texi
|
||||
(/Users/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
|
||||
Loading texinfo [version 2009-01-18.17]:
|
||||
\bindingoffset=\dimen16
|
||||
\normaloffset=\dimen17
|
||||
\pagewidth=\dimen18
|
||||
@@ -32,81 +32,94 @@ Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
\toksD=\toks18
|
||||
\boxA=\box19
|
||||
\countA=\count30
|
||||
\nopdfimagehelp=\toks19
|
||||
fonts,
|
||||
\sffam=\fam8
|
||||
\textleading=\dimen26
|
||||
\mainmagstep=\count31
|
||||
\fontdepth=\count32
|
||||
page headings,
|
||||
markup,
|
||||
\fontdepth=\count31
|
||||
glyphs,
|
||||
\errorbox=\box20
|
||||
|
||||
page headings,
|
||||
\titlepagetopglue=\skip20
|
||||
\titlepagebottomglue=\skip21
|
||||
\evenheadline=\toks19
|
||||
\oddheadline=\toks20
|
||||
\evenfootline=\toks21
|
||||
\oddfootline=\toks22
|
||||
|
||||
tables,
|
||||
\evenheadline=\toks20
|
||||
\oddheadline=\toks21
|
||||
\evenfootline=\toks22
|
||||
\oddfootline=\toks23
|
||||
tables,
|
||||
\tableindent=\dimen27
|
||||
\itemindent=\dimen28
|
||||
\itemmargin=\dimen29
|
||||
\itemmax=\dimen30
|
||||
\itemno=\count33
|
||||
\itemno=\count32
|
||||
\multitableparskip=\skip22
|
||||
\multitableparindent=\skip23
|
||||
\multitablecolspace=\dimen31
|
||||
\multitablelinespace=\skip24
|
||||
\colcount=\count34
|
||||
\savedfootnotes=\box20
|
||||
conditionals, indexing,
|
||||
\secondaryindent=\skip25
|
||||
\colcount=\count33
|
||||
\everytab=\toks24
|
||||
conditionals,
|
||||
\doignorecount=\count34
|
||||
indexing,
|
||||
\whatsitskip=\skip25
|
||||
\whatsitpenalty=\count35
|
||||
\secondaryindent=\skip26
|
||||
\partialpage=\box21
|
||||
\doublecolumnhsize=\dimen32
|
||||
sectioning,
|
||||
\chapno=\count35
|
||||
\secno=\count36
|
||||
\subsecno=\count37
|
||||
\subsubsecno=\count38
|
||||
\appendixno=\count39
|
||||
\absseclevel=\count40
|
||||
\secbase=\count41
|
||||
\chapheadingskip=\skip26
|
||||
\secheadingskip=\skip27
|
||||
\subsecheadingskip=\skip28
|
||||
\unnumberedno=\count36
|
||||
\chapno=\count37
|
||||
\secno=\count38
|
||||
\subsecno=\count39
|
||||
\subsubsecno=\count40
|
||||
\appendixno=\count41
|
||||
\absseclevel=\count42
|
||||
\secbase=\count43
|
||||
\chapheadingskip=\skip27
|
||||
\secheadingskip=\skip28
|
||||
\subsecheadingskip=\skip29
|
||||
toc,
|
||||
\tocfile=\write0
|
||||
\contentsrightmargin=\skip29
|
||||
\savepageno=\count42
|
||||
\lastnegativepageno=\count43
|
||||
\shortappendixwidth=\dimen33
|
||||
\tocindent=\dimen34
|
||||
\contentsrightmargin=\skip30
|
||||
\savepageno=\count44
|
||||
\lastnegativepageno=\count45
|
||||
\tocindent=\dimen33
|
||||
environments,
|
||||
\errorbox=\box22
|
||||
\lispnarrowing=\skip30
|
||||
\envskipamount=\skip31
|
||||
\circthick=\dimen35
|
||||
\cartouter=\dimen36
|
||||
\cartinner=\dimen37
|
||||
\normbskip=\skip32
|
||||
\normpskip=\skip33
|
||||
\normlskip=\skip34
|
||||
\lskip=\skip35
|
||||
\rskip=\skip36
|
||||
\lispnarrowing=\skip31
|
||||
\envskipamount=\skip32
|
||||
\circthick=\dimen34
|
||||
\cartouter=\dimen35
|
||||
\cartinner=\dimen36
|
||||
\normbskip=\skip33
|
||||
\normpskip=\skip34
|
||||
\normlskip=\skip35
|
||||
\lskip=\skip36
|
||||
\rskip=\skip37
|
||||
\nonfillparindent=\dimen37
|
||||
\tabw=\dimen38
|
||||
defuns,
|
||||
\defbodyindent=\skip37
|
||||
\defargsindent=\skip38
|
||||
\deflastargmargin=\skip39
|
||||
\parencount=\count44
|
||||
|
||||
defuns,
|
||||
\defbodyindent=\skip38
|
||||
\defargsindent=\skip39
|
||||
\deflastargmargin=\skip40
|
||||
\defunpenalty=\count46
|
||||
\parencount=\count47
|
||||
\brackcount=\count48
|
||||
macros,
|
||||
\macscribble=\write1
|
||||
\paramno=\count45
|
||||
\macname=\toks23
|
||||
|
||||
cross references,
|
||||
\paramno=\count49
|
||||
\macname=\toks25
|
||||
cross references,
|
||||
\auxfile=\write2
|
||||
\savesfregister=\count46
|
||||
\footnoteno=\count47
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\savesfregister=\count50
|
||||
insertions,
|
||||
\footnoteno=\count51
|
||||
\SAVEfootins=\box22
|
||||
\SAVEmargin=\box23
|
||||
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\epsffilein=\read0
|
||||
\epsfframemargin=\dimen39
|
||||
\epsfframethickness=\dimen40
|
||||
@@ -116,24 +129,27 @@ cross references,
|
||||
\epsfxsize=\dimen44
|
||||
\epsfysize=\dimen45
|
||||
\pspoints=\dimen46
|
||||
\epsfnoopenhelp=\toks24
|
||||
\epsfnoopenhelp=\toks26
|
||||
)
|
||||
\noepsfhelp=\toks25
|
||||
|
||||
localization,
|
||||
\nolanghelp=\toks26
|
||||
\noepsfhelp=\toks27
|
||||
localization,
|
||||
\nolanghelp=\toks28
|
||||
\countUTFx=\count52
|
||||
\countUTFy=\count53
|
||||
\countUTFz=\count54
|
||||
formatting,
|
||||
\defaultparindent=\dimen47
|
||||
and turning on texinfo input format.) (./history.aux)
|
||||
|
||||
and turning on texinfo input format.) (./history.aux)
|
||||
\openout2 = `history.aux'.
|
||||
|
||||
@cpindfile=@write3
|
||||
@fnindfile=@write4
|
||||
@vrindfile=@write5
|
||||
@tpindfile=@write6
|
||||
@kyindfile=@write7
|
||||
@pgindfile=@write8
|
||||
|
||||
(./version.texi) [1
|
||||
\openout2 = `history.aux'.
|
||||
|
||||
(./version.texi) [1
|
||||
\openout3 = `history.cp'.
|
||||
|
||||
\openout4 = `history.fn'.
|
||||
@@ -146,24 +162,28 @@ localization,
|
||||
|
||||
\openout8 = `history.pg'.
|
||||
|
||||
] [2] (./history.toc) [-1] (./hsuser.texi Chapter 1
|
||||
]
|
||||
\openout1 = `history.tmp'.
|
||||
|
||||
|
||||
(./history.tmp) [2] (./history.toc) [-1] (./hsuser.texi Chapter 1
|
||||
\openout0 = `history.toc'.
|
||||
|
||||
@btindfile=@write9
|
||||
[1
|
||||
\openout9 = `history.bt'.
|
||||
|
||||
]
|
||||
[2]) (./hstech.texi Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10]) Appendix A
|
||||
[11] (./fdl.texi [12] [13] [14] [15] [16] [17]) Appendix B [18] (./history.cps)
|
||||
Appendix C [19] (./history.vrs) [20] )
|
||||
] [2])
|
||||
(./hstech.texi Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10]) Appendix A [11]
|
||||
(./fdl.texi [12] [13] [14] [15] [16] [17] [18]) Appendix B [19] (./history.cps)
|
||||
Appendix C [20] (./history.vrs) [21] )
|
||||
Here is how much of TeX's memory you used:
|
||||
1406 strings out of 97980
|
||||
16393 string characters out of 1221004
|
||||
45471 words of memory out of 1500000
|
||||
2268 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 1200000 for 2000
|
||||
19 hyphenation exceptions out of 8191
|
||||
14i,6n,17p,283b,649s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
1745 strings out of 97980
|
||||
20831 string characters out of 1221004
|
||||
66068 words of memory out of 1500000
|
||||
2572 multiletter control sequences out of 10000+50000
|
||||
32127 words of font info for 112 fonts, out of 1200000 for 2000
|
||||
51 hyphenation exceptions out of 8191
|
||||
15i,6n,14p,325b,490s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
|
||||
Output written on history.dvi (23 pages, 81092 bytes).
|
||||
Output written on history.dvi (24 pages, 85440 bytes).
|
||||
|
||||
+3311
-3503
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@ are preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
This document describes the GNU History library
|
||||
(version @value{VERSION}, @value{UPDATED}),
|
||||
a programming tool that provides a consistent user interface for
|
||||
recalling lines of previously typed input.
|
||||
|
||||
Copyright @copyright{} 1988--2009 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 preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
included in the section entitled ``GNU Free Documentation License''.
|
||||
|
||||
(a) The FSF's Back-Cover Text is: You are free to copy and modify
|
||||
this GNU manual. Buying copies from GNU Press supports the FSF in
|
||||
developing GNU and promoting software freedom.''
|
||||
|
||||
@end quotation
|
||||
@endinput
|
||||
@@ -1,21 +1,21 @@
|
||||
\chapentry{Using History Interactively}{1}{1}
|
||||
\secentry{History Expansion}{1}{1}{1}
|
||||
\subsecentry{Event Designators}{1}{1}{1}{1}
|
||||
\subsecentry{Word Designators}{1}{1}{2}{1}
|
||||
\subsecentry{Modifiers}{1}{1}{3}{2}
|
||||
\chapentry{Programming with GNU History}{2}{4}
|
||||
\secentry{Introduction to History}{2}{1}{4}
|
||||
\secentry{History Storage}{2}{2}{4}
|
||||
\secentry{History Functions}{2}{3}{5}
|
||||
\subsecentry{Initializing History and State Management}{2}{3}{1}{5}
|
||||
\subsecentry{History List Management}{2}{3}{2}{5}
|
||||
\subsecentry{Information About the History List}{2}{3}{3}{6}
|
||||
\subsecentry{Moving Around the History List}{2}{3}{4}{6}
|
||||
\subsecentry{Searching the History List}{2}{3}{5}{7}
|
||||
\subsecentry{Managing the History File}{2}{3}{6}{7}
|
||||
\subsecentry{History Expansion}{2}{3}{7}{8}
|
||||
\secentry{History Variables}{2}{4}{9}
|
||||
\secentry{History Programming Example}{2}{5}{10}
|
||||
\appendixentry{GNU Free Documentation License}{A}{12}
|
||||
\appendixentry{Concept Index}{B}{19}
|
||||
\appendixentry{Function and Variable Index}{C}{20}
|
||||
@numchapentry{Using History Interactively}{1}{Using History Interactively}{1}
|
||||
@numsecentry{History Expansion}{1.1}{History Interaction}{1}
|
||||
@numsubsecentry{Event Designators}{1.1.1}{Event Designators}{1}
|
||||
@numsubsecentry{Word Designators}{1.1.2}{Word Designators}{2}
|
||||
@numsubsecentry{Modifiers}{1.1.3}{Modifiers}{2}
|
||||
@numchapentry{Programming with GNU History}{2}{Programming with GNU History}{4}
|
||||
@numsecentry{Introduction to History}{2.1}{Introduction to History}{4}
|
||||
@numsecentry{History Storage}{2.2}{History Storage}{4}
|
||||
@numsecentry{History Functions}{2.3}{History Functions}{5}
|
||||
@numsubsecentry{Initializing History and State Management}{2.3.1}{Initializing History and State Management}{5}
|
||||
@numsubsecentry{History List Management}{2.3.2}{History List Management}{5}
|
||||
@numsubsecentry{Information About the History List}{2.3.3}{Information About the History List}{6}
|
||||
@numsubsecentry{Moving Around the History List}{2.3.4}{Moving Around the History List}{6}
|
||||
@numsubsecentry{Searching the History List}{2.3.5}{Searching the History List}{7}
|
||||
@numsubsecentry{Managing the History File}{2.3.6}{Managing the History File}{7}
|
||||
@numsubsecentry{History Expansion}{2.3.7}{History Expansion}{8}
|
||||
@numsecentry{History Variables}{2.4}{History Variables}{8}
|
||||
@numsecentry{History Programming Example}{2.5}{History Programming Example}{9}
|
||||
@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{12}
|
||||
@appentry{Concept Index}{B}{Concept Index}{20}
|
||||
@appentry{Function and Variable Index}{C}{Function and Variable Index}{21}
|
||||
|
||||
+13
-13
@@ -5,7 +5,7 @@
|
||||
\entry{add_history_time}{5}{\code {add_history_time}}
|
||||
\entry{remove_history}{5}{\code {remove_history}}
|
||||
\entry{free_history_entry}{5}{\code {free_history_entry}}
|
||||
\entry{replace_history_entry}{6}{\code {replace_history_entry}}
|
||||
\entry{replace_history_entry}{5}{\code {replace_history_entry}}
|
||||
\entry{clear_history}{6}{\code {clear_history}}
|
||||
\entry{stifle_history}{6}{\code {stifle_history}}
|
||||
\entry{unstifle_history}{6}{\code {unstifle_history}}
|
||||
@@ -16,23 +16,23 @@
|
||||
\entry{history_get}{6}{\code {history_get}}
|
||||
\entry{history_get_time}{6}{\code {history_get_time}}
|
||||
\entry{history_total_bytes}{6}{\code {history_total_bytes}}
|
||||
\entry{history_set_pos}{7}{\code {history_set_pos}}
|
||||
\entry{previous_history}{7}{\code {previous_history}}
|
||||
\entry{history_set_pos}{6}{\code {history_set_pos}}
|
||||
\entry{previous_history}{6}{\code {previous_history}}
|
||||
\entry{next_history}{7}{\code {next_history}}
|
||||
\entry{history_search}{7}{\code {history_search}}
|
||||
\entry{history_search_prefix}{7}{\code {history_search_prefix}}
|
||||
\entry{history_search_pos}{7}{\code {history_search_pos}}
|
||||
\entry{read_history}{8}{\code {read_history}}
|
||||
\entry{read_history_range}{8}{\code {read_history_range}}
|
||||
\entry{write_history}{8}{\code {write_history}}
|
||||
\entry{read_history}{7}{\code {read_history}}
|
||||
\entry{read_history_range}{7}{\code {read_history_range}}
|
||||
\entry{write_history}{7}{\code {write_history}}
|
||||
\entry{append_history}{8}{\code {append_history}}
|
||||
\entry{history_truncate_file}{8}{\code {history_truncate_file}}
|
||||
\entry{history_expand}{8}{\code {history_expand}}
|
||||
\entry{get_history_event}{8}{\code {get_history_event}}
|
||||
\entry{history_tokenize}{9}{\code {history_tokenize}}
|
||||
\entry{history_arg_extract}{9}{\code {history_arg_extract}}
|
||||
\entry{history_base}{9}{\code {history_base}}
|
||||
\entry{history_length}{9}{\code {history_length}}
|
||||
\entry{history_tokenize}{8}{\code {history_tokenize}}
|
||||
\entry{history_arg_extract}{8}{\code {history_arg_extract}}
|
||||
\entry{history_base}{8}{\code {history_base}}
|
||||
\entry{history_length}{8}{\code {history_length}}
|
||||
\entry{history_max_entries}{9}{\code {history_max_entries}}
|
||||
\entry{history_write_timestamps}{9}{\code {history_write_timestamps}}
|
||||
\entry{history_expansion_char}{9}{\code {history_expansion_char}}
|
||||
@@ -40,6 +40,6 @@
|
||||
\entry{history_comment_char}{9}{\code {history_comment_char}}
|
||||
\entry{history_word_delimiters}{9}{\code {history_word_delimiters}}
|
||||
\entry{history_search_delimiter_chars}{9}{\code {history_search_delimiter_chars}}
|
||||
\entry{history_no_expand_chars}{10}{\code {history_no_expand_chars}}
|
||||
\entry{history_quotes_inhibit_expansion}{10}{\code {history_quotes_inhibit_expansion}}
|
||||
\entry{history_inhibit_expansion_function}{10}{\code {history_inhibit_expansion_function}}
|
||||
\entry{history_no_expand_chars}{9}{\code {history_no_expand_chars}}
|
||||
\entry{history_quotes_inhibit_expansion}{9}{\code {history_quotes_inhibit_expansion}}
|
||||
\entry{history_inhibit_expansion_function}{9}{\code {history_inhibit_expansion_function}}
|
||||
|
||||
@@ -10,29 +10,29 @@
|
||||
\initial {G}
|
||||
\entry {\code {get_history_event}}{8}
|
||||
\initial {H}
|
||||
\entry {\code {history_arg_extract}}{9}
|
||||
\entry {\code {history_base}}{9}
|
||||
\entry {\code {history_arg_extract}}{8}
|
||||
\entry {\code {history_base}}{8}
|
||||
\entry {\code {history_comment_char}}{9}
|
||||
\entry {\code {history_expand}}{8}
|
||||
\entry {\code {history_expansion_char}}{9}
|
||||
\entry {\code {history_get}}{6}
|
||||
\entry {\code {history_get_history_state}}{5}
|
||||
\entry {\code {history_get_time}}{6}
|
||||
\entry {\code {history_inhibit_expansion_function}}{10}
|
||||
\entry {\code {history_inhibit_expansion_function}}{9}
|
||||
\entry {\code {history_is_stifled}}{6}
|
||||
\entry {\code {history_length}}{9}
|
||||
\entry {\code {history_length}}{8}
|
||||
\entry {\code {history_list}}{6}
|
||||
\entry {\code {history_max_entries}}{9}
|
||||
\entry {\code {history_no_expand_chars}}{10}
|
||||
\entry {\code {history_quotes_inhibit_expansion}}{10}
|
||||
\entry {\code {history_no_expand_chars}}{9}
|
||||
\entry {\code {history_quotes_inhibit_expansion}}{9}
|
||||
\entry {\code {history_search}}{7}
|
||||
\entry {\code {history_search_delimiter_chars}}{9}
|
||||
\entry {\code {history_search_pos}}{7}
|
||||
\entry {\code {history_search_prefix}}{7}
|
||||
\entry {\code {history_set_history_state}}{5}
|
||||
\entry {\code {history_set_pos}}{7}
|
||||
\entry {\code {history_set_pos}}{6}
|
||||
\entry {\code {history_subst_char}}{9}
|
||||
\entry {\code {history_tokenize}}{9}
|
||||
\entry {\code {history_tokenize}}{8}
|
||||
\entry {\code {history_total_bytes}}{6}
|
||||
\entry {\code {history_truncate_file}}{8}
|
||||
\entry {\code {history_word_delimiters}}{9}
|
||||
@@ -40,12 +40,12 @@
|
||||
\initial {N}
|
||||
\entry {\code {next_history}}{7}
|
||||
\initial {P}
|
||||
\entry {\code {previous_history}}{7}
|
||||
\entry {\code {previous_history}}{6}
|
||||
\initial {R}
|
||||
\entry {\code {read_history}}{8}
|
||||
\entry {\code {read_history_range}}{8}
|
||||
\entry {\code {read_history}}{7}
|
||||
\entry {\code {read_history_range}}{7}
|
||||
\entry {\code {remove_history}}{5}
|
||||
\entry {\code {replace_history_entry}}{6}
|
||||
\entry {\code {replace_history_entry}}{5}
|
||||
\initial {S}
|
||||
\entry {\code {stifle_history}}{6}
|
||||
\initial {U}
|
||||
@@ -53,4 +53,4 @@
|
||||
\entry {\code {using_history}}{5}
|
||||
\initial {W}
|
||||
\entry {\code {where_history}}{6}
|
||||
\entry {\code {write_history}}{8}
|
||||
\entry {\code {write_history}}{7}
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
<HTML>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- Created on January, 6 2009 by texi2html 1.64 -->
|
||||
<!-- Created on March, 18 2009 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -5386,12 +5386,12 @@ valid_argument (caller, arg)
|
||||
<P>
|
||||
|
||||
<center>
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
</center>
|
||||
</P><P>
|
||||
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<A HREF="http://fsf.org/">http://fsf.org/</A>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -5509,6 +5509,10 @@ the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
</P><P>
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
</P><P>
|
||||
|
||||
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
|
||||
@@ -5822,13 +5826,33 @@ title.
|
||||
TERMINATION
|
||||
<P>
|
||||
|
||||
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.
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
</P><P>
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
</P><P>
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
</P><P>
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
@@ -5849,7 +5873,49 @@ 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.
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
RELICENSING
|
||||
<P>
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
</P><P>
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
</P><P>
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
</P><P>
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
</P><P>
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
</P><P>
|
||||
|
||||
</OL>
|
||||
<P>
|
||||
|
||||
@@ -5865,7 +5931,7 @@ license notices just after the title page:
|
||||
|
||||
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
@@ -6646,7 +6712,7 @@ to permit their use in free software.
|
||||
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
|
||||
</TR></TABLE>
|
||||
<H1>About this document</H1>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>January, 6 2009</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -6808,7 +6874,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>January, 6 2009</I>
|
||||
by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ preserved on all copies.
|
||||
|
||||
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
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with the Front-Cover texts
|
||||
being "A GNU Manual", and with the Back-Cover Texts as in (a)
|
||||
below. A copy of the license is included in the section entitled
|
||||
@@ -3574,10 +3574,10 @@ File: readline.info, Node: GNU Free Documentation License, Next: Concept Index
|
||||
Appendix A GNU Free Documentation License
|
||||
*****************************************
|
||||
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
`http://fsf.org/'
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -3679,6 +3679,9 @@ Appendix A GNU Free Documentation License
|
||||
Page" means the text near the most prominent appearance of the
|
||||
work's title, preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
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
|
||||
@@ -3944,12 +3947,29 @@ Appendix A GNU Free Documentation License
|
||||
9. 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.
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void,
|
||||
and will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly
|
||||
and finally terminates your license, and (b) permanently, if the
|
||||
copyright holder fails to notify you of the violation by some
|
||||
reasonable means prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from
|
||||
that copyright holder, and you cure the violation prior to 30 days
|
||||
after your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate
|
||||
the licenses of parties who have received copies or rights from
|
||||
you under this License. If your rights have been terminated and
|
||||
not permanently reinstated, receipt of a copy of some or all of
|
||||
the same material does not give you any rights to use it.
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
@@ -3967,7 +3987,41 @@ Appendix A GNU Free Documentation License
|
||||
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.
|
||||
Free Software Foundation. If the Document specifies that a proxy
|
||||
can decide which future versions of this License can be used, that
|
||||
proxy's public statement of acceptance of a version permanently
|
||||
authorizes you to choose that version for the Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server.
|
||||
A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this
|
||||
License somewhere other than this MMC, and subsequently
|
||||
incorporated in whole or in part into the MMC, (1) had no cover
|
||||
texts or invariant sections, and (2) were thus incorporated prior
|
||||
to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the
|
||||
site under CC-BY-SA on the same site at any time before August 1,
|
||||
2009, provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
====================================================
|
||||
@@ -3978,7 +4032,7 @@ notices just after the title page:
|
||||
|
||||
Copyright (C) YEAR 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
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
@@ -4510,7 +4564,7 @@ Node: Completion Functions112457
|
||||
Node: Completion Variables116029
|
||||
Node: A Short Completion Example129134
|
||||
Node: GNU Free Documentation License141913
|
||||
Node: Concept Index164371
|
||||
Node: Function and Variable Index165892
|
||||
Node: Concept Index167106
|
||||
Node: Function and Variable Index168627
|
||||
|
||||
End Tag Table
|
||||
|
||||
+5752
-6355
File diff suppressed because it is too large
Load Diff
+51
-51
@@ -1,153 +1,153 @@
|
||||
@xrdef{Command Line Editing-title}{Command Line Editing}
|
||||
@xrdef{Command Line Editing-pg}{1}
|
||||
@xrdef{Command Line Editing-snt}{Chapter@tie 1}
|
||||
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
|
||||
@xrdef{Introduction and Notation-pg}{1}
|
||||
@xrdef{Introduction and Notation-snt}{Section@tie 1.1}
|
||||
@xrdef{Readline Interaction-title}{Readline Interaction}
|
||||
@xrdef{Readline Interaction-pg}{1}
|
||||
@xrdef{Readline Interaction-snt}{Section@tie 1.2}
|
||||
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
|
||||
@xrdef{Readline Bare Essentials-pg}{1}
|
||||
@xrdef{Readline Bare Essentials-snt}{Section@tie 1.2.1}
|
||||
@xrdef{Command Line Editing-pg}{1}
|
||||
@xrdef{Introduction and Notation-pg}{1}
|
||||
@xrdef{Readline Interaction-pg}{1}
|
||||
@xrdef{Readline Bare Essentials-pg}{1}
|
||||
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
|
||||
@xrdef{Readline Movement Commands-pg}{2}
|
||||
@xrdef{Readline Movement Commands-snt}{Section@tie 1.2.2}
|
||||
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
|
||||
@xrdef{Readline Killing Commands-pg}{2}
|
||||
@xrdef{Readline Killing Commands-snt}{Section@tie 1.2.3}
|
||||
@xrdef{Readline Movement Commands-pg}{2}
|
||||
@xrdef{Readline Killing Commands-pg}{2}
|
||||
@xrdef{Readline Arguments-title}{Readline Arguments}
|
||||
@xrdef{Readline Arguments-pg}{3}
|
||||
@xrdef{Readline Arguments-snt}{Section@tie 1.2.4}
|
||||
@xrdef{Searching-title}{Searching for Commands in the History}
|
||||
@xrdef{Searching-pg}{3}
|
||||
@xrdef{Searching-snt}{Section@tie 1.2.5}
|
||||
@xrdef{Readline Arguments-pg}{3}
|
||||
@xrdef{Searching-pg}{3}
|
||||
@xrdef{Readline Init File-title}{Readline Init File}
|
||||
@xrdef{Readline Init File-pg}{4}
|
||||
@xrdef{Readline Init File-snt}{Section@tie 1.3}
|
||||
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
|
||||
@xrdef{Readline Init File Syntax-pg}{4}
|
||||
@xrdef{Readline Init File Syntax-snt}{Section@tie 1.3.1}
|
||||
@xrdef{Readline Init File-pg}{4}
|
||||
@xrdef{Readline Init File Syntax-pg}{4}
|
||||
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
|
||||
@xrdef{Conditional Init Constructs-pg}{9}
|
||||
@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2}
|
||||
@xrdef{Conditional Init Constructs-pg}{9}
|
||||
@xrdef{Sample Init File-title}{Sample Init File}
|
||||
@xrdef{Sample Init File-pg}{10}
|
||||
@xrdef{Sample Init File-snt}{Section@tie 1.3.3}
|
||||
@xrdef{Sample Init File-pg}{10}
|
||||
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
|
||||
@xrdef{Bindable Readline Commands-pg}{13}
|
||||
@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4}
|
||||
@xrdef{Commands For Moving-title}{Commands For Moving}
|
||||
@xrdef{Commands For Moving-pg}{13}
|
||||
@xrdef{Commands For Moving-snt}{Section@tie 1.4.1}
|
||||
@xrdef{Commands For History-title}{Commands For Manipulating The History}
|
||||
@xrdef{Commands For History-pg}{13}
|
||||
@xrdef{Commands For History-snt}{Section@tie 1.4.2}
|
||||
@xrdef{Bindable Readline Commands-pg}{13}
|
||||
@xrdef{Commands For Moving-pg}{13}
|
||||
@xrdef{Commands For History-pg}{13}
|
||||
@xrdef{Commands For Text-title}{Commands For Changing Text}
|
||||
@xrdef{Commands For Text-pg}{15}
|
||||
@xrdef{Commands For Text-snt}{Section@tie 1.4.3}
|
||||
@xrdef{Commands For Text-pg}{15}
|
||||
@xrdef{Commands For Killing-title}{Killing And Yanking}
|
||||
@xrdef{Commands For Killing-pg}{16}
|
||||
@xrdef{Commands For Killing-snt}{Section@tie 1.4.4}
|
||||
@xrdef{Commands For Killing-pg}{16}
|
||||
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
|
||||
@xrdef{Numeric Arguments-pg}{17}
|
||||
@xrdef{Numeric Arguments-snt}{Section@tie 1.4.5}
|
||||
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
|
||||
@xrdef{Commands For Completion-pg}{17}
|
||||
@xrdef{Commands For Completion-snt}{Section@tie 1.4.6}
|
||||
@xrdef{Keyboard Macros-title}{Keyboard Macros}
|
||||
@xrdef{Keyboard Macros-pg}{18}
|
||||
@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7}
|
||||
@xrdef{Numeric Arguments-pg}{17}
|
||||
@xrdef{Commands For Completion-pg}{17}
|
||||
@xrdef{Keyboard Macros-pg}{17}
|
||||
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
|
||||
@xrdef{Miscellaneous Commands-pg}{18}
|
||||
@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8}
|
||||
@xrdef{Miscellaneous Commands-pg}{18}
|
||||
@xrdef{Readline vi Mode-title}{Readline vi Mode}
|
||||
@xrdef{Readline vi Mode-pg}{19}
|
||||
@xrdef{Readline vi Mode-snt}{Section@tie 1.5}
|
||||
@xrdef{Readline vi Mode-pg}{19}
|
||||
@xrdef{Programming with GNU Readline-title}{Programming with GNU Readline}
|
||||
@xrdef{Programming with GNU Readline-pg}{20}
|
||||
@xrdef{Programming with GNU Readline-snt}{Chapter@tie 2}
|
||||
@xrdef{Basic Behavior-title}{Basic Behavior}
|
||||
@xrdef{Basic Behavior-pg}{20}
|
||||
@xrdef{Basic Behavior-snt}{Section@tie 2.1}
|
||||
@xrdef{Programming with GNU Readline-pg}{20}
|
||||
@xrdef{Basic Behavior-pg}{20}
|
||||
@xrdef{Custom Functions-title}{Custom Functions}
|
||||
@xrdef{Custom Functions-pg}{21}
|
||||
@xrdef{Custom Functions-snt}{Section@tie 2.2}
|
||||
@xrdef{Readline Typedefs-title}{Readline Typedefs}
|
||||
@xrdef{Readline Typedefs-pg}{22}
|
||||
@xrdef{Readline Typedefs-snt}{Section@tie 2.2.1}
|
||||
@xrdef{Custom Functions-pg}{21}
|
||||
@xrdef{Function Writing-title}{Writing a New Function}
|
||||
@xrdef{Function Writing-pg}{22}
|
||||
@xrdef{Function Writing-snt}{Section@tie 2.2.2}
|
||||
@xrdef{Readline Typedefs-pg}{22}
|
||||
@xrdef{Function Writing-pg}{22}
|
||||
@xrdef{Readline Variables-title}{Readline Variables}
|
||||
@xrdef{Readline Variables-pg}{23}
|
||||
@xrdef{Readline Variables-snt}{Section@tie 2.3}
|
||||
@xrdef{Readline Variables-pg}{23}
|
||||
@xrdef{Readline Convenience Functions-title}{Readline Convenience Functions}
|
||||
@xrdef{Readline Convenience Functions-pg}{27}
|
||||
@xrdef{Readline Convenience Functions-snt}{Section@tie 2.4}
|
||||
@xrdef{Function Naming-title}{Naming a Function}
|
||||
@xrdef{Function Naming-pg}{27}
|
||||
@xrdef{Function Naming-snt}{Section@tie 2.4.1}
|
||||
@xrdef{Readline Convenience Functions-pg}{27}
|
||||
@xrdef{Function Naming-pg}{27}
|
||||
@xrdef{Keymaps-title}{Selecting a Keymap}
|
||||
@xrdef{Keymaps-pg}{28}
|
||||
@xrdef{Keymaps-snt}{Section@tie 2.4.2}
|
||||
@xrdef{Binding Keys-title}{Binding Keys}
|
||||
@xrdef{Binding Keys-pg}{29}
|
||||
@xrdef{Binding Keys-snt}{Section@tie 2.4.3}
|
||||
@xrdef{Keymaps-pg}{28}
|
||||
@xrdef{Binding Keys-pg}{29}
|
||||
@xrdef{Associating Function Names and Bindings-title}{Associating Function Names and Bindings}
|
||||
@xrdef{Associating Function Names and Bindings-pg}{30}
|
||||
@xrdef{Associating Function Names and Bindings-snt}{Section@tie 2.4.4}
|
||||
@xrdef{Associating Function Names and Bindings-pg}{30}
|
||||
@xrdef{Allowing Undoing-title}{Allowing Undoing}
|
||||
@xrdef{Allowing Undoing-pg}{31}
|
||||
@xrdef{Allowing Undoing-snt}{Section@tie 2.4.5}
|
||||
@xrdef{Allowing Undoing-pg}{31}
|
||||
@xrdef{Redisplay-title}{Redisplay}
|
||||
@xrdef{Redisplay-pg}{32}
|
||||
@xrdef{Redisplay-snt}{Section@tie 2.4.6}
|
||||
@xrdef{Redisplay-pg}{32}
|
||||
@xrdef{Modifying Text-title}{Modifying Text}
|
||||
@xrdef{Modifying Text-pg}{33}
|
||||
@xrdef{Modifying Text-snt}{Section@tie 2.4.7}
|
||||
@xrdef{Modifying Text-pg}{33}
|
||||
@xrdef{Character Input-title}{Character Input}
|
||||
@xrdef{Character Input-pg}{34}
|
||||
@xrdef{Character Input-snt}{Section@tie 2.4.8}
|
||||
@xrdef{Terminal Management-title}{Terminal Management}
|
||||
@xrdef{Terminal Management-pg}{35}
|
||||
@xrdef{Terminal Management-snt}{Section@tie 2.4.9}
|
||||
@xrdef{Character Input-pg}{34}
|
||||
@xrdef{Terminal Management-pg}{34}
|
||||
@xrdef{Utility Functions-title}{Utility Functions}
|
||||
@xrdef{Utility Functions-pg}{35}
|
||||
@xrdef{Utility Functions-snt}{Section@tie 2.4.10}
|
||||
@xrdef{Utility Functions-pg}{35}
|
||||
@xrdef{Miscellaneous Functions-title}{Miscellaneous Functions}
|
||||
@xrdef{Miscellaneous Functions-pg}{36}
|
||||
@xrdef{Miscellaneous Functions-snt}{Section@tie 2.4.11}
|
||||
@xrdef{Miscellaneous Functions-pg}{36}
|
||||
@xrdef{Alternate Interface-title}{Alternate Interface}
|
||||
@xrdef{Alternate Interface-pg}{37}
|
||||
@xrdef{Alternate Interface-snt}{Section@tie 2.4.12}
|
||||
@xrdef{A Readline Example-title}{A Readline Example}
|
||||
@xrdef{A Readline Example-pg}{38}
|
||||
@xrdef{A Readline Example-snt}{Section@tie 2.4.13}
|
||||
@xrdef{Alternate Interface-pg}{37}
|
||||
@xrdef{A Readline Example-pg}{37}
|
||||
@xrdef{Readline Signal Handling-title}{Readline Signal Handling}
|
||||
@xrdef{Readline Signal Handling-pg}{39}
|
||||
@xrdef{Readline Signal Handling-snt}{Section@tie 2.5}
|
||||
@xrdef{Readline Signal Handling-pg}{39}
|
||||
@xrdef{Custom Completers-title}{Custom Completers}
|
||||
@xrdef{Custom Completers-pg}{41}
|
||||
@xrdef{Custom Completers-snt}{Section@tie 2.6}
|
||||
@xrdef{How Completing Works-title}{How Completing Works}
|
||||
@xrdef{How Completing Works-pg}{41}
|
||||
@xrdef{How Completing Works-snt}{Section@tie 2.6.1}
|
||||
@xrdef{Custom Completers-pg}{41}
|
||||
@xrdef{How Completing Works-pg}{41}
|
||||
@xrdef{Completion Functions-title}{Completion Functions}
|
||||
@xrdef{Completion Functions-pg}{42}
|
||||
@xrdef{Completion Functions-snt}{Section@tie 2.6.2}
|
||||
@xrdef{Completion Functions-pg}{42}
|
||||
@xrdef{Completion Variables-title}{Completion Variables}
|
||||
@xrdef{Completion Variables-pg}{43}
|
||||
@xrdef{Completion Variables-snt}{Section@tie 2.6.3}
|
||||
@xrdef{Completion Variables-pg}{43}
|
||||
@xrdef{A Short Completion Example-title}{A Short Completion Example}
|
||||
@xrdef{A Short Completion Example-pg}{47}
|
||||
@xrdef{A Short Completion Example-snt}{Section@tie 2.6.4}
|
||||
@xrdef{A Short Completion Example-pg}{47}
|
||||
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
|
||||
@xrdef{GNU Free Documentation License-pg}{56}
|
||||
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{GNU Free Documentation License-pg}{56}
|
||||
@xrdef{Concept Index-title}{Concept Index}
|
||||
@xrdef{Concept Index-pg}{63}
|
||||
@xrdef{Concept Index-snt}{}
|
||||
@xrdef{Concept Index-pg}{64}
|
||||
@xrdef{Function and Variable Index-title}{Function and Variable Index}
|
||||
@xrdef{Function and Variable Index-pg}{64}
|
||||
@xrdef{Function and Variable Index-snt}{}
|
||||
@xrdef{Function and Variable Index-pg}{65}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
\entry{editing command lines}{1}{editing command lines}
|
||||
\entry{killing text}{2}{killing text}
|
||||
\entry{yanking text}{2}{yanking text}
|
||||
\entry{kill ring}{3}{kill ring}
|
||||
\entry{kill ring}{2}{kill ring}
|
||||
\entry{initialization file, readline}{4}{initialization file, readline}
|
||||
\entry{variables, readline}{5}{variables, readline}
|
||||
\entry{variables, readline}{4}{variables, readline}
|
||||
\entry{readline, function}{20}{readline, function}
|
||||
\entry{application-specific completion functions}{41}{application-specific completion functions}
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
\entry {initialization file, readline}{4}
|
||||
\entry {interaction, readline}{1}
|
||||
\initial {K}
|
||||
\entry {kill ring}{3}
|
||||
\entry {kill ring}{2}
|
||||
\entry {killing text}{2}
|
||||
\initial {N}
|
||||
\entry {notation, readline}{1}
|
||||
\initial {R}
|
||||
\entry {readline, function}{20}
|
||||
\initial {V}
|
||||
\entry {variables, readline}{5}
|
||||
\entry {variables, readline}{4}
|
||||
\initial {Y}
|
||||
\entry {yanking text}{2}
|
||||
|
||||
+38
-38
@@ -1,12 +1,12 @@
|
||||
\entry{bell-style}{5}{bell-style}
|
||||
\entry{bell-style}{4}{bell-style}
|
||||
\entry{bind-tty-special-chars}{5}{bind-tty-special-chars}
|
||||
\entry{comment-begin}{5}{comment-begin}
|
||||
\entry{completion-prefix-display-length}{5}{completion-prefix-display-length}
|
||||
\entry{completion-query-items}{5}{completion-query-items}
|
||||
\entry{convert-meta}{5}{convert-meta}
|
||||
\entry{disable-completion}{6}{disable-completion}
|
||||
\entry{editing-mode}{6}{editing-mode}
|
||||
\entry{enable-keypad}{6}{enable-keypad}
|
||||
\entry{disable-completion}{5}{disable-completion}
|
||||
\entry{editing-mode}{5}{editing-mode}
|
||||
\entry{enable-keypad}{5}{enable-keypad}
|
||||
\entry{expand-tilde}{6}{expand-tilde}
|
||||
\entry{history-preserve-point}{6}{history-preserve-point}
|
||||
\entry{history-size}{6}{history-size}
|
||||
@@ -15,15 +15,15 @@
|
||||
\entry{meta-flag}{6}{meta-flag}
|
||||
\entry{isearch-terminators}{6}{isearch-terminators}
|
||||
\entry{keymap}{6}{keymap}
|
||||
\entry{mark-modified-lines}{7}{mark-modified-lines}
|
||||
\entry{mark-modified-lines}{6}{mark-modified-lines}
|
||||
\entry{mark-symlinked-directories}{7}{mark-symlinked-directories}
|
||||
\entry{match-hidden-files}{7}{match-hidden-files}
|
||||
\entry{output-meta}{7}{output-meta}
|
||||
\entry{page-completions}{7}{page-completions}
|
||||
\entry{revert-all-at-newline}{7}{revert-all-at-newline}
|
||||
\entry{show-all-if-ambiguous}{7}{show-all-if-ambiguous}
|
||||
\entry{show-all-if-unmodified}{8}{show-all-if-unmodified}
|
||||
\entry{visible-stats}{8}{visible-stats}
|
||||
\entry{show-all-if-unmodified}{7}{show-all-if-unmodified}
|
||||
\entry{visible-stats}{7}{visible-stats}
|
||||
\entry{beginning-of-line (C-a)}{13}{\code {beginning-of-line (C-a)}}
|
||||
\entry{end-of-line (C-e)}{13}{\code {end-of-line (C-e)}}
|
||||
\entry{forward-char (C-f)}{13}{\code {forward-char (C-f)}}
|
||||
@@ -33,7 +33,7 @@
|
||||
\entry{clear-screen (C-l)}{13}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{13}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{13}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{14}{\code {previous-history (C-p)}}
|
||||
\entry{previous-history (C-p)}{13}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{14}{\code {next-history (C-n)}}
|
||||
\entry{beginning-of-history (M-<)}{14}{\code {beginning-of-history (M-<)}}
|
||||
\entry{end-of-history (M->)}{14}{\code {end-of-history (M->)}}
|
||||
@@ -70,7 +70,7 @@
|
||||
\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)}{17}{\code {yank (C-y)}}
|
||||
\entry{yank (C-y)}{16}{\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 ()}}
|
||||
@@ -79,7 +79,7 @@
|
||||
\entry{insert-completions (M-*)}{17}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{17}{\code {menu-complete ()}}
|
||||
\entry{delete-char-or-list ()}{17}{\code {delete-char-or-list ()}}
|
||||
\entry{start-kbd-macro (C-x ()}{18}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{start-kbd-macro (C-x ()}{17}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{18}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{18}{\code {call-last-kbd-macro (C-x e)}}
|
||||
\entry{re-read-init-file (C-x C-r)}{18}{\code {re-read-init-file (C-x C-r)}}
|
||||
@@ -92,8 +92,8 @@
|
||||
\entry{set-mark (C-@)}{18}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{18}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{18}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{19}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{19}{\code {insert-comment (M-#)}}
|
||||
\entry{character-search-backward (M-C-])}{18}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{18}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{19}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{19}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{19}{\code {dump-macros ()}}
|
||||
@@ -169,7 +169,7 @@
|
||||
\entry{rl_funmap_names}{31}{\code {rl_funmap_names}}
|
||||
\entry{rl_add_funmap_entry}{31}{\code {rl_add_funmap_entry}}
|
||||
\entry{rl_begin_undo_group}{31}{\code {rl_begin_undo_group}}
|
||||
\entry{rl_end_undo_group}{32}{\code {rl_end_undo_group}}
|
||||
\entry{rl_end_undo_group}{31}{\code {rl_end_undo_group}}
|
||||
\entry{rl_add_undo}{32}{\code {rl_add_undo}}
|
||||
\entry{rl_free_undo_list}{32}{\code {rl_free_undo_list}}
|
||||
\entry{rl_do_undo}{32}{\code {rl_do_undo}}
|
||||
@@ -180,7 +180,7 @@
|
||||
\entry{rl_on_new_line_with_prompt}{32}{\code {rl_on_new_line_with_prompt}}
|
||||
\entry{rl_reset_line_state}{32}{\code {rl_reset_line_state}}
|
||||
\entry{rl_crlf}{32}{\code {rl_crlf}}
|
||||
\entry{rl_show_char}{33}{\code {rl_show_char}}
|
||||
\entry{rl_show_char}{32}{\code {rl_show_char}}
|
||||
\entry{rl_message}{33}{\code {rl_message}}
|
||||
\entry{rl_clear_message}{33}{\code {rl_clear_message}}
|
||||
\entry{rl_save_prompt}{33}{\code {rl_save_prompt}}
|
||||
@@ -188,8 +188,8 @@
|
||||
\entry{rl_expand_prompt}{33}{\code {rl_expand_prompt}}
|
||||
\entry{rl_set_prompt}{33}{\code {rl_set_prompt}}
|
||||
\entry{rl_insert_text}{33}{\code {rl_insert_text}}
|
||||
\entry{rl_delete_text}{34}{\code {rl_delete_text}}
|
||||
\entry{rl_copy_text}{34}{\code {rl_copy_text}}
|
||||
\entry{rl_delete_text}{33}{\code {rl_delete_text}}
|
||||
\entry{rl_copy_text}{33}{\code {rl_copy_text}}
|
||||
\entry{rl_kill_text}{34}{\code {rl_kill_text}}
|
||||
\entry{rl_push_macro_input}{34}{\code {rl_push_macro_input}}
|
||||
\entry{rl_read_key}{34}{\code {rl_read_key}}
|
||||
@@ -198,7 +198,7 @@
|
||||
\entry{rl_execute_next}{34}{\code {rl_execute_next}}
|
||||
\entry{rl_clear_pending_input}{34}{\code {rl_clear_pending_input}}
|
||||
\entry{rl_set_keyboard_input_timeout}{34}{\code {rl_set_keyboard_input_timeout}}
|
||||
\entry{rl_prep_terminal}{35}{\code {rl_prep_terminal}}
|
||||
\entry{rl_prep_terminal}{34}{\code {rl_prep_terminal}}
|
||||
\entry{rl_deprep_terminal}{35}{\code {rl_deprep_terminal}}
|
||||
\entry{rl_tty_set_default_bindings}{35}{\code {rl_tty_set_default_bindings}}
|
||||
\entry{rl_tty_unset_default_bindings}{35}{\code {rl_tty_unset_default_bindings}}
|
||||
@@ -208,9 +208,9 @@
|
||||
\entry{rl_free}{35}{\code {rl_free}}
|
||||
\entry{rl_replace_line}{35}{\code {rl_replace_line}}
|
||||
\entry{rl_extend_line_buffer}{35}{\code {rl_extend_line_buffer}}
|
||||
\entry{rl_initialize}{36}{\code {rl_initialize}}
|
||||
\entry{rl_ding}{36}{\code {rl_ding}}
|
||||
\entry{rl_alphabetic}{36}{\code {rl_alphabetic}}
|
||||
\entry{rl_initialize}{35}{\code {rl_initialize}}
|
||||
\entry{rl_ding}{35}{\code {rl_ding}}
|
||||
\entry{rl_alphabetic}{35}{\code {rl_alphabetic}}
|
||||
\entry{rl_display_match_list}{36}{\code {rl_display_match_list}}
|
||||
\entry{_rl_uppercase_p}{36}{\code {_rl_uppercase_p}}
|
||||
\entry{_rl_lowercase_p}{36}{\code {_rl_lowercase_p}}
|
||||
@@ -220,24 +220,24 @@
|
||||
\entry{_rl_digit_value}{36}{\code {_rl_digit_value}}
|
||||
\entry{rl_macro_bind}{36}{\code {rl_macro_bind}}
|
||||
\entry{rl_macro_dumper}{36}{\code {rl_macro_dumper}}
|
||||
\entry{rl_variable_bind}{37}{\code {rl_variable_bind}}
|
||||
\entry{rl_variable_value}{37}{\code {rl_variable_value}}
|
||||
\entry{rl_variable_bind}{36}{\code {rl_variable_bind}}
|
||||
\entry{rl_variable_value}{36}{\code {rl_variable_value}}
|
||||
\entry{rl_variable_dumper}{37}{\code {rl_variable_dumper}}
|
||||
\entry{rl_set_paren_blink_timeout}{37}{\code {rl_set_paren_blink_timeout}}
|
||||
\entry{rl_get_termcap}{37}{\code {rl_get_termcap}}
|
||||
\entry{rl_callback_handler_install}{37}{\code {rl_callback_handler_install}}
|
||||
\entry{rl_callback_read_char}{37}{\code {rl_callback_read_char}}
|
||||
\entry{rl_callback_handler_remove}{38}{\code {rl_callback_handler_remove}}
|
||||
\entry{rl_catch_signals}{40}{\code {rl_catch_signals}}
|
||||
\entry{rl_callback_handler_remove}{37}{\code {rl_callback_handler_remove}}
|
||||
\entry{rl_catch_signals}{39}{\code {rl_catch_signals}}
|
||||
\entry{rl_catch_sigwinch}{40}{\code {rl_catch_sigwinch}}
|
||||
\entry{rl_cleanup_after_signal}{40}{\code {rl_cleanup_after_signal}}
|
||||
\entry{rl_free_line_state}{40}{\code {rl_free_line_state}}
|
||||
\entry{rl_reset_after_signal}{40}{\code {rl_reset_after_signal}}
|
||||
\entry{rl_echo_signal_char}{40}{\code {rl_echo_signal_char}}
|
||||
\entry{rl_resize_terminal}{40}{\code {rl_resize_terminal}}
|
||||
\entry{rl_set_screen_size}{41}{\code {rl_set_screen_size}}
|
||||
\entry{rl_get_screen_size}{41}{\code {rl_get_screen_size}}
|
||||
\entry{rl_reset_screen_size}{41}{\code {rl_reset_screen_size}}
|
||||
\entry{rl_set_screen_size}{40}{\code {rl_set_screen_size}}
|
||||
\entry{rl_get_screen_size}{40}{\code {rl_get_screen_size}}
|
||||
\entry{rl_reset_screen_size}{40}{\code {rl_reset_screen_size}}
|
||||
\entry{rl_set_signals}{41}{\code {rl_set_signals}}
|
||||
\entry{rl_clear_signals}{41}{\code {rl_clear_signals}}
|
||||
\entry{rl_complete}{42}{\code {rl_complete}}
|
||||
@@ -245,21 +245,21 @@
|
||||
\entry{rl_complete_internal}{42}{\code {rl_complete_internal}}
|
||||
\entry{rl_complete}{42}{\code {rl_complete}}
|
||||
\entry{rl_possible_completions}{42}{\code {rl_possible_completions}}
|
||||
\entry{rl_insert_completions}{43}{\code {rl_insert_completions}}
|
||||
\entry{rl_completion_mode}{43}{\code {rl_completion_mode}}
|
||||
\entry{rl_completion_matches}{43}{\code {rl_completion_matches}}
|
||||
\entry{rl_insert_completions}{42}{\code {rl_insert_completions}}
|
||||
\entry{rl_completion_mode}{42}{\code {rl_completion_mode}}
|
||||
\entry{rl_completion_matches}{42}{\code {rl_completion_matches}}
|
||||
\entry{rl_filename_completion_function}{43}{\code {rl_filename_completion_function}}
|
||||
\entry{rl_username_completion_function}{43}{\code {rl_username_completion_function}}
|
||||
\entry{rl_completion_entry_function}{43}{\code {rl_completion_entry_function}}
|
||||
\entry{rl_attempted_completion_function}{43}{\code {rl_attempted_completion_function}}
|
||||
\entry{rl_filename_quoting_function}{44}{\code {rl_filename_quoting_function}}
|
||||
\entry{rl_filename_dequoting_function}{44}{\code {rl_filename_dequoting_function}}
|
||||
\entry{rl_filename_quoting_function}{43}{\code {rl_filename_quoting_function}}
|
||||
\entry{rl_filename_dequoting_function}{43}{\code {rl_filename_dequoting_function}}
|
||||
\entry{rl_char_is_quoted_p}{44}{\code {rl_char_is_quoted_p}}
|
||||
\entry{rl_ignore_some_completions_function}{44}{\code {rl_ignore_some_completions_function}}
|
||||
\entry{rl_directory_completion_hook}{44}{\code {rl_directory_completion_hook}}
|
||||
\entry{rl_completion_display_matches_hook}{44}{\code {rl_completion_display_matches_hook}}
|
||||
\entry{rl_basic_word_break_characters}{45}{\code {rl_basic_word_break_characters}}
|
||||
\entry{rl_basic_quote_characters}{45}{\code {rl_basic_quote_characters}}
|
||||
\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}}
|
||||
@@ -267,16 +267,16 @@
|
||||
\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}{46}{\code {rl_completion_suppress_append}}
|
||||
\entry{rl_completion_quote_character}{46}{\code {rl_completion_quote_character}}
|
||||
\entry{rl_completion_suppress_append}{45}{\code {rl_completion_suppress_append}}
|
||||
\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}{47}{\code {rl_attempted_completion_over}}
|
||||
\entry{rl_sort_completion_matches}{47}{\code {rl_sort_completion_matches}}
|
||||
\entry{rl_attempted_completion_over}{46}{\code {rl_attempted_completion_over}}
|
||||
\entry{rl_sort_completion_matches}{46}{\code {rl_sort_completion_matches}}
|
||||
\entry{rl_completion_type}{47}{\code {rl_completion_type}}
|
||||
\entry{rl_completion_invoking_key}{47}{\code {rl_completion_invoking_key}}
|
||||
\entry{rl_inhibit_completion}{47}{\code {rl_inhibit_completion}}
|
||||
|
||||
+38
-38
@@ -16,13 +16,13 @@
|
||||
\entry {\code {backward-word (M-b)}}{13}
|
||||
\entry {\code {beginning-of-history (M-<)}}{14}
|
||||
\entry {\code {beginning-of-line (C-a)}}{13}
|
||||
\entry {bell-style}{5}
|
||||
\entry {bell-style}{4}
|
||||
\entry {bind-tty-special-chars}{5}
|
||||
\initial {C}
|
||||
\entry {\code {call-last-kbd-macro (C-x e)}}{18}
|
||||
\entry {\code {capitalize-word (M-c)}}{15}
|
||||
\entry {\code {character-search (C-])}}{18}
|
||||
\entry {\code {character-search-backward (M-C-])}}{19}
|
||||
\entry {\code {character-search-backward (M-C-])}}{18}
|
||||
\entry {\code {clear-screen (C-l)}}{13}
|
||||
\entry {comment-begin}{5}
|
||||
\entry {\code {complete (\key {TAB})}}{17}
|
||||
@@ -37,16 +37,16 @@
|
||||
\entry {\code {delete-char-or-list ()}}{17}
|
||||
\entry {\code {delete-horizontal-space ()}}{16}
|
||||
\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{17}
|
||||
\entry {disable-completion}{6}
|
||||
\entry {disable-completion}{5}
|
||||
\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{18}
|
||||
\entry {\code {downcase-word (M-l)}}{15}
|
||||
\entry {\code {dump-functions ()}}{19}
|
||||
\entry {\code {dump-macros ()}}{19}
|
||||
\entry {\code {dump-variables ()}}{19}
|
||||
\initial {E}
|
||||
\entry {editing-mode}{6}
|
||||
\entry {editing-mode}{5}
|
||||
\entry {\code {emacs-editing-mode (C-e)}}{19}
|
||||
\entry {enable-keypad}{6}
|
||||
\entry {enable-keypad}{5}
|
||||
\entry {\code {end-kbd-macro (C-x ))}}{18}
|
||||
\entry {\code {end-of-history (M->)}}{14}
|
||||
\entry {\code {end-of-line (C-e)}}{13}
|
||||
@@ -65,7 +65,7 @@
|
||||
\entry {horizontal-scroll-mode}{6}
|
||||
\initial {I}
|
||||
\entry {input-meta}{6}
|
||||
\entry {\code {insert-comment (M-#)}}{19}
|
||||
\entry {\code {insert-comment (M-#)}}{18}
|
||||
\entry {\code {insert-completions (M-*)}}{17}
|
||||
\entry {isearch-terminators}{6}
|
||||
\initial {K}
|
||||
@@ -75,7 +75,7 @@
|
||||
\entry {\code {kill-whole-line ()}}{16}
|
||||
\entry {\code {kill-word (M-d)}}{16}
|
||||
\initial {M}
|
||||
\entry {mark-modified-lines}{7}
|
||||
\entry {mark-modified-lines}{6}
|
||||
\entry {mark-symlinked-directories}{7}
|
||||
\entry {match-hidden-files}{7}
|
||||
\entry {\code {menu-complete ()}}{17}
|
||||
@@ -91,7 +91,7 @@
|
||||
\entry {page-completions}{7}
|
||||
\entry {\code {possible-completions (M-?)}}{17}
|
||||
\entry {\code {prefix-meta (\key {ESC})}}{18}
|
||||
\entry {\code {previous-history (C-p)}}{14}
|
||||
\entry {\code {previous-history (C-p)}}{13}
|
||||
\initial {Q}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{15}
|
||||
\initial {R}
|
||||
@@ -104,12 +104,12 @@
|
||||
\entry {\code {rl_add_defun}}{28}
|
||||
\entry {\code {rl_add_funmap_entry}}{31}
|
||||
\entry {\code {rl_add_undo}}{32}
|
||||
\entry {\code {rl_alphabetic}}{36}
|
||||
\entry {\code {rl_alphabetic}}{35}
|
||||
\entry {\code {rl_already_prompted}}{24}
|
||||
\entry {\code {rl_attempted_completion_function}}{43}
|
||||
\entry {\code {rl_attempted_completion_over}}{47}
|
||||
\entry {\code {rl_basic_quote_characters}}{45}
|
||||
\entry {\code {rl_basic_word_break_characters}}{45}
|
||||
\entry {\code {rl_attempted_completion_over}}{46}
|
||||
\entry {\code {rl_basic_quote_characters}}{44}
|
||||
\entry {\code {rl_basic_word_break_characters}}{44}
|
||||
\entry {\code {rl_begin_undo_group}}{31}
|
||||
\entry {\code {rl_bind_key}}{29}
|
||||
\entry {\code {rl_bind_key_if_unbound}}{29}
|
||||
@@ -121,9 +121,9 @@
|
||||
\entry {\code {rl_bind_keyseq_in_map}}{30}
|
||||
\entry {\code {rl_binding_keymap}}{25}
|
||||
\entry {\code {rl_callback_handler_install}}{37}
|
||||
\entry {\code {rl_callback_handler_remove}}{38}
|
||||
\entry {\code {rl_callback_handler_remove}}{37}
|
||||
\entry {\code {rl_callback_read_char}}{37}
|
||||
\entry {\code {rl_catch_signals}}{40}
|
||||
\entry {\code {rl_catch_signals}}{39}
|
||||
\entry {\code {rl_catch_sigwinch}}{40}
|
||||
\entry {\code {rl_char_is_quoted_p}}{44}
|
||||
\entry {\code {rl_cleanup_after_signal}}{40}
|
||||
@@ -140,21 +140,21 @@
|
||||
\entry {\code {rl_completion_found_quote}}{46}
|
||||
\entry {\code {rl_completion_invoking_key}}{47}
|
||||
\entry {\code {rl_completion_mark_symlink_dirs}}{46}
|
||||
\entry {\code {rl_completion_matches}}{43}
|
||||
\entry {\code {rl_completion_mode}}{43}
|
||||
\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}}{46}
|
||||
\entry {\code {rl_completion_suppress_append}}{46}
|
||||
\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}}{47}
|
||||
\entry {\code {rl_completion_word_break_hook}}{45}
|
||||
\entry {\code {rl_copy_keymap}}{28}
|
||||
\entry {\code {rl_copy_text}}{34}
|
||||
\entry {\code {rl_copy_text}}{33}
|
||||
\entry {\code {rl_crlf}}{32}
|
||||
\entry {\code {rl_delete_text}}{34}
|
||||
\entry {\code {rl_delete_text}}{33}
|
||||
\entry {\code {rl_deprep_term_function}}{25}
|
||||
\entry {\code {rl_deprep_terminal}}{35}
|
||||
\entry {\code {rl_ding}}{36}
|
||||
\entry {\code {rl_ding}}{35}
|
||||
\entry {\code {rl_directory_completion_hook}}{44}
|
||||
\entry {\code {rl_discard_keymap}}{28}
|
||||
\entry {\code {rl_dispatching}}{23}
|
||||
@@ -165,7 +165,7 @@
|
||||
\entry {\code {rl_echo_signal_char}}{40}
|
||||
\entry {\code {rl_editing_mode}}{27}
|
||||
\entry {\code {rl_end}}{23}
|
||||
\entry {\code {rl_end_undo_group}}{32}
|
||||
\entry {\code {rl_end_undo_group}}{31}
|
||||
\entry {\code {rl_erase_empty_line}}{23}
|
||||
\entry {\code {rl_event_hook}}{25}
|
||||
\entry {\code {rl_execute_next}}{34}
|
||||
@@ -176,10 +176,10 @@
|
||||
\entry {\code {rl_extend_line_buffer}}{35}
|
||||
\entry {\code {rl_filename_completion_desired}}{46}
|
||||
\entry {\code {rl_filename_completion_function}}{43}
|
||||
\entry {\code {rl_filename_dequoting_function}}{44}
|
||||
\entry {\code {rl_filename_dequoting_function}}{43}
|
||||
\entry {\code {rl_filename_quote_characters}}{45}
|
||||
\entry {\code {rl_filename_quoting_desired}}{46}
|
||||
\entry {\code {rl_filename_quoting_function}}{44}
|
||||
\entry {\code {rl_filename_quoting_function}}{43}
|
||||
\entry {\code {rl_forced_update_display}}{32}
|
||||
\entry {\code {rl_free}}{35}
|
||||
\entry {\code {rl_free_line_state}}{40}
|
||||
@@ -191,7 +191,7 @@
|
||||
\entry {\code {rl_get_keymap}}{28}
|
||||
\entry {\code {rl_get_keymap_by_name}}{28}
|
||||
\entry {\code {rl_get_keymap_name}}{28}
|
||||
\entry {\code {rl_get_screen_size}}{41}
|
||||
\entry {\code {rl_get_screen_size}}{40}
|
||||
\entry {\code {rl_get_termcap}}{37}
|
||||
\entry {\code {rl_getc}}{34}
|
||||
\entry {\code {rl_getc_function}}{25}
|
||||
@@ -199,8 +199,8 @@
|
||||
\entry {\code {rl_ignore_completion_duplicates}}{46}
|
||||
\entry {\code {rl_ignore_some_completions_function}}{44}
|
||||
\entry {\code {rl_inhibit_completion}}{47}
|
||||
\entry {\code {rl_initialize}}{36}
|
||||
\entry {\code {rl_insert_completions}}{43}
|
||||
\entry {\code {rl_initialize}}{35}
|
||||
\entry {\code {rl_insert_completions}}{42}
|
||||
\entry {\code {rl_insert_text}}{33}
|
||||
\entry {\code {rl_instream}}{24}
|
||||
\entry {\code {rl_invoking_keyseqs}}{31}
|
||||
@@ -230,7 +230,7 @@
|
||||
\entry {\code {rl_pre_input_hook}}{25}
|
||||
\entry {\code {rl_prefer_env_winsize}}{24}
|
||||
\entry {\code {rl_prep_term_function}}{25}
|
||||
\entry {\code {rl_prep_terminal}}{35}
|
||||
\entry {\code {rl_prep_terminal}}{34}
|
||||
\entry {\code {rl_prompt}}{24}
|
||||
\entry {\code {rl_push_macro_input}}{34}
|
||||
\entry {\code {rl_read_init_file}}{30}
|
||||
@@ -243,7 +243,7 @@
|
||||
\entry {\code {rl_replace_line}}{35}
|
||||
\entry {\code {rl_reset_after_signal}}{40}
|
||||
\entry {\code {rl_reset_line_state}}{32}
|
||||
\entry {\code {rl_reset_screen_size}}{41}
|
||||
\entry {\code {rl_reset_screen_size}}{40}
|
||||
\entry {\code {rl_reset_terminal}}{35}
|
||||
\entry {\code {rl_resize_terminal}}{40}
|
||||
\entry {\code {rl_restore_prompt}}{33}
|
||||
@@ -255,10 +255,10 @@
|
||||
\entry {\code {rl_set_keymap}}{28}
|
||||
\entry {\code {rl_set_paren_blink_timeout}}{37}
|
||||
\entry {\code {rl_set_prompt}}{33}
|
||||
\entry {\code {rl_set_screen_size}}{41}
|
||||
\entry {\code {rl_set_screen_size}}{40}
|
||||
\entry {\code {rl_set_signals}}{41}
|
||||
\entry {\code {rl_show_char}}{33}
|
||||
\entry {\code {rl_sort_completion_matches}}{47}
|
||||
\entry {\code {rl_show_char}}{32}
|
||||
\entry {\code {rl_sort_completion_matches}}{46}
|
||||
\entry {\code {rl_special_prefixes}}{45}
|
||||
\entry {\code {rl_startup_hook}}{25}
|
||||
\entry {\code {rl_stuff_char}}{34}
|
||||
@@ -270,15 +270,15 @@
|
||||
\entry {\code {rl_unbind_key}}{29}
|
||||
\entry {\code {rl_unbind_key_in_map}}{29}
|
||||
\entry {\code {rl_username_completion_function}}{43}
|
||||
\entry {\code {rl_variable_bind}}{37}
|
||||
\entry {\code {rl_variable_bind}}{36}
|
||||
\entry {\code {rl_variable_dumper}}{37}
|
||||
\entry {\code {rl_variable_value}}{37}
|
||||
\entry {\code {rl_variable_value}}{36}
|
||||
\initial {S}
|
||||
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{15}
|
||||
\entry {\code {set-mark (C-@)}}{18}
|
||||
\entry {show-all-if-ambiguous}{7}
|
||||
\entry {show-all-if-unmodified}{8}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{18}
|
||||
\entry {show-all-if-unmodified}{7}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{17}
|
||||
\initial {T}
|
||||
\entry {\code {tab-insert (M-\key {TAB})}}{15}
|
||||
\entry {\code {tilde-expand (M-~)}}{18}
|
||||
@@ -293,9 +293,9 @@
|
||||
\entry {\code {upcase-word (M-u)}}{15}
|
||||
\initial {V}
|
||||
\entry {\code {vi-editing-mode (M-C-j)}}{19}
|
||||
\entry {visible-stats}{8}
|
||||
\entry {visible-stats}{7}
|
||||
\initial {Y}
|
||||
\entry {\code {yank (C-y)}}{17}
|
||||
\entry {\code {yank (C-y)}}{16}
|
||||
\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}
|
||||
|
||||
+102
-82
@@ -1,7 +1,7 @@
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 6 JAN 2009 11:52
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
|
||||
**/Users/chet/src/bash/src/lib/readline/doc/rlman.texi
|
||||
(/Users/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2009-01-18.17]:
|
||||
\bindingoffset=\dimen16
|
||||
\normaloffset=\dimen17
|
||||
\pagewidth=\dimen18
|
||||
@@ -32,81 +32,94 @@ Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
\toksD=\toks18
|
||||
\boxA=\box19
|
||||
\countA=\count30
|
||||
\nopdfimagehelp=\toks19
|
||||
fonts,
|
||||
\sffam=\fam8
|
||||
\textleading=\dimen26
|
||||
\mainmagstep=\count31
|
||||
\fontdepth=\count32
|
||||
page headings,
|
||||
markup,
|
||||
\fontdepth=\count31
|
||||
glyphs,
|
||||
\errorbox=\box20
|
||||
|
||||
page headings,
|
||||
\titlepagetopglue=\skip20
|
||||
\titlepagebottomglue=\skip21
|
||||
\evenheadline=\toks19
|
||||
\oddheadline=\toks20
|
||||
\evenfootline=\toks21
|
||||
\oddfootline=\toks22
|
||||
|
||||
tables,
|
||||
\evenheadline=\toks20
|
||||
\oddheadline=\toks21
|
||||
\evenfootline=\toks22
|
||||
\oddfootline=\toks23
|
||||
tables,
|
||||
\tableindent=\dimen27
|
||||
\itemindent=\dimen28
|
||||
\itemmargin=\dimen29
|
||||
\itemmax=\dimen30
|
||||
\itemno=\count33
|
||||
\itemno=\count32
|
||||
\multitableparskip=\skip22
|
||||
\multitableparindent=\skip23
|
||||
\multitablecolspace=\dimen31
|
||||
\multitablelinespace=\skip24
|
||||
\colcount=\count34
|
||||
\savedfootnotes=\box20
|
||||
conditionals, indexing,
|
||||
\secondaryindent=\skip25
|
||||
\colcount=\count33
|
||||
\everytab=\toks24
|
||||
conditionals,
|
||||
\doignorecount=\count34
|
||||
indexing,
|
||||
\whatsitskip=\skip25
|
||||
\whatsitpenalty=\count35
|
||||
\secondaryindent=\skip26
|
||||
\partialpage=\box21
|
||||
\doublecolumnhsize=\dimen32
|
||||
sectioning,
|
||||
\chapno=\count35
|
||||
\secno=\count36
|
||||
\subsecno=\count37
|
||||
\subsubsecno=\count38
|
||||
\appendixno=\count39
|
||||
\absseclevel=\count40
|
||||
\secbase=\count41
|
||||
\chapheadingskip=\skip26
|
||||
\secheadingskip=\skip27
|
||||
\subsecheadingskip=\skip28
|
||||
\unnumberedno=\count36
|
||||
\chapno=\count37
|
||||
\secno=\count38
|
||||
\subsecno=\count39
|
||||
\subsubsecno=\count40
|
||||
\appendixno=\count41
|
||||
\absseclevel=\count42
|
||||
\secbase=\count43
|
||||
\chapheadingskip=\skip27
|
||||
\secheadingskip=\skip28
|
||||
\subsecheadingskip=\skip29
|
||||
toc,
|
||||
\tocfile=\write0
|
||||
\contentsrightmargin=\skip29
|
||||
\savepageno=\count42
|
||||
\lastnegativepageno=\count43
|
||||
\shortappendixwidth=\dimen33
|
||||
\tocindent=\dimen34
|
||||
\contentsrightmargin=\skip30
|
||||
\savepageno=\count44
|
||||
\lastnegativepageno=\count45
|
||||
\tocindent=\dimen33
|
||||
environments,
|
||||
\errorbox=\box22
|
||||
\lispnarrowing=\skip30
|
||||
\envskipamount=\skip31
|
||||
\circthick=\dimen35
|
||||
\cartouter=\dimen36
|
||||
\cartinner=\dimen37
|
||||
\normbskip=\skip32
|
||||
\normpskip=\skip33
|
||||
\normlskip=\skip34
|
||||
\lskip=\skip35
|
||||
\rskip=\skip36
|
||||
\lispnarrowing=\skip31
|
||||
\envskipamount=\skip32
|
||||
\circthick=\dimen34
|
||||
\cartouter=\dimen35
|
||||
\cartinner=\dimen36
|
||||
\normbskip=\skip33
|
||||
\normpskip=\skip34
|
||||
\normlskip=\skip35
|
||||
\lskip=\skip36
|
||||
\rskip=\skip37
|
||||
\nonfillparindent=\dimen37
|
||||
\tabw=\dimen38
|
||||
defuns,
|
||||
\defbodyindent=\skip37
|
||||
\defargsindent=\skip38
|
||||
\deflastargmargin=\skip39
|
||||
\parencount=\count44
|
||||
|
||||
defuns,
|
||||
\defbodyindent=\skip38
|
||||
\defargsindent=\skip39
|
||||
\deflastargmargin=\skip40
|
||||
\defunpenalty=\count46
|
||||
\parencount=\count47
|
||||
\brackcount=\count48
|
||||
macros,
|
||||
\macscribble=\write1
|
||||
\paramno=\count45
|
||||
\macname=\toks23
|
||||
|
||||
cross references,
|
||||
\paramno=\count49
|
||||
\macname=\toks25
|
||||
cross references,
|
||||
\auxfile=\write2
|
||||
\savesfregister=\count46
|
||||
\footnoteno=\count47
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\savesfregister=\count50
|
||||
insertions,
|
||||
\footnoteno=\count51
|
||||
\SAVEfootins=\box22
|
||||
\SAVEmargin=\box23
|
||||
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\epsffilein=\read0
|
||||
\epsfframemargin=\dimen39
|
||||
\epsfframethickness=\dimen40
|
||||
@@ -116,24 +129,27 @@ cross references,
|
||||
\epsfxsize=\dimen44
|
||||
\epsfysize=\dimen45
|
||||
\pspoints=\dimen46
|
||||
\epsfnoopenhelp=\toks24
|
||||
\epsfnoopenhelp=\toks26
|
||||
)
|
||||
\noepsfhelp=\toks25
|
||||
|
||||
localization,
|
||||
\nolanghelp=\toks26
|
||||
\noepsfhelp=\toks27
|
||||
localization,
|
||||
\nolanghelp=\toks28
|
||||
\countUTFx=\count52
|
||||
\countUTFy=\count53
|
||||
\countUTFz=\count54
|
||||
formatting,
|
||||
\defaultparindent=\dimen47
|
||||
and turning on texinfo input format.) (./rlman.aux)
|
||||
|
||||
and turning on texinfo input format.) (./rlman.aux)
|
||||
\openout2 = `rlman.aux'.
|
||||
|
||||
@cpindfile=@write3
|
||||
@fnindfile=@write4
|
||||
@vrindfile=@write5
|
||||
@tpindfile=@write6
|
||||
@kyindfile=@write7
|
||||
@pgindfile=@write8
|
||||
|
||||
(./version.texi) [1
|
||||
\openout2 = `rlman.aux'.
|
||||
|
||||
(./version.texi) [1
|
||||
\openout3 = `rlman.cp'.
|
||||
|
||||
\openout4 = `rlman.fn'.
|
||||
@@ -146,16 +162,20 @@ localization,
|
||||
|
||||
\openout8 = `rlman.pg'.
|
||||
|
||||
] [2] (./rlman.toc [-1]) [-2] (./rluser.texi
|
||||
]
|
||||
\openout1 = `rlman.tmp'.
|
||||
|
||||
|
||||
(./rlman.tmp) [2] (./rlman.toc [-1]) [-2] (./rluser.texi
|
||||
@btindfile=@write9
|
||||
Chapter 1
|
||||
\openout0 = `rlman.toc'.
|
||||
|
||||
|
||||
[1
|
||||
[1
|
||||
\openout9 = `rlman.bt'.
|
||||
|
||||
] [2] [3] [4] [5]
|
||||
] [2]
|
||||
[3] [4] [5]
|
||||
Underfull \hbox (badness 5231) in paragraph at lines 524--540
|
||||
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
|
||||
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
|
||||
@@ -183,7 +203,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] [46]
|
||||
[36] [37] [38] [39] [40] [41] [42] [43] [44] [45]
|
||||
Underfull \hbox (badness 7379) in paragraph at lines 1870--1875
|
||||
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
|
||||
tt rl_attempted_
|
||||
@@ -196,16 +216,16 @@ tt rl_attempted_
|
||||
.@glue 3.65 plus 1.825 minus 1.21666
|
||||
.etc.
|
||||
|
||||
[47] [48] [49] [50] [51] [52] [53] [54]) Appendix A [55] (./fdl.texi [56]
|
||||
[57] [58] [59] [60] [61]) (Concept Index) [62] (./rlman.cps)
|
||||
(Function and Variable Index) [63] (./rlman.fns [64] [65] [66]) [67] )
|
||||
[46] [47] [48] [49] [50] [51] [52] [53] [54]) Appendix A [55] (./fdl.texi
|
||||
[56] [57] [58] [59] [60] [61] [62]) (Concept Index) [63] (./rlman.cps)
|
||||
(Function and Variable Index) [64] (./rlman.fns [65] [66] [67]) [68] )
|
||||
Here is how much of TeX's memory you used:
|
||||
1496 strings out of 97980
|
||||
18428 string characters out of 1221004
|
||||
47342 words of memory out of 1500000
|
||||
2358 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 1200000 for 2000
|
||||
19 hyphenation exceptions out of 8191
|
||||
14i,8n,17p,281b,697s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
1839 strings out of 97980
|
||||
23013 string characters out of 1221004
|
||||
83614 words of memory out of 1500000
|
||||
2666 multiletter control sequences out of 10000+50000
|
||||
32127 words of font info for 112 fonts, out of 1200000 for 2000
|
||||
51 hyphenation exceptions out of 8191
|
||||
16i,6n,14p,323b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
|
||||
Output written on rlman.dvi (71 pages, 291468 bytes).
|
||||
Output written on rlman.dvi (72 pages, 292044 bytes).
|
||||
|
||||
@@ -21,7 +21,7 @@ are preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
This manual describes the GNU Readline Library
|
||||
(version @value{VERSION}, @value{UPDATED}), a library which aids in the
|
||||
consistency of user interface across discrete programs which provide
|
||||
a command line interface.
|
||||
|
||||
Copyright @copyright{} 1988--2009 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 preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
included in the section entitled ``GNU Free Documentation License''.
|
||||
|
||||
(a) The FSF's Back-Cover Text is: You are free to copy and modify
|
||||
this GNU manual. Buying copies from GNU Press supports the FSF in
|
||||
developing GNU and promoting software freedom.''
|
||||
|
||||
@end quotation
|
||||
@endinput
|
||||
+51
-51
@@ -1,51 +1,51 @@
|
||||
\chapentry{Command Line Editing}{1}{1}
|
||||
\secentry{Introduction to Line Editing}{1}{1}{1}
|
||||
\secentry{Readline Interaction}{1}{2}{1}
|
||||
\subsecentry{Readline Bare Essentials}{1}{2}{1}{1}
|
||||
\subsecentry{Readline Movement Commands}{1}{2}{2}{2}
|
||||
\subsecentry{Readline Killing Commands}{1}{2}{3}{2}
|
||||
\subsecentry{Readline Arguments}{1}{2}{4}{3}
|
||||
\subsecentry{Searching for Commands in the History}{1}{2}{5}{3}
|
||||
\secentry{Readline Init File}{1}{3}{4}
|
||||
\subsecentry{Readline Init File Syntax}{1}{3}{1}{4}
|
||||
\subsecentry{Conditional Init Constructs}{1}{3}{2}{9}
|
||||
\subsecentry{Sample Init File}{1}{3}{3}{10}
|
||||
\secentry{Bindable Readline Commands}{1}{4}{13}
|
||||
\subsecentry{Commands For Moving}{1}{4}{1}{13}
|
||||
\subsecentry{Commands For Manipulating The History}{1}{4}{2}{13}
|
||||
\subsecentry{Commands For Changing Text}{1}{4}{3}{14}
|
||||
\subsecentry{Killing And Yanking}{1}{4}{4}{16}
|
||||
\subsecentry{Specifying Numeric Arguments}{1}{4}{5}{17}
|
||||
\subsecentry{Letting Readline Type For You}{1}{4}{6}{17}
|
||||
\subsecentry{Keyboard Macros}{1}{4}{7}{17}
|
||||
\subsecentry{Some Miscellaneous Commands}{1}{4}{8}{18}
|
||||
\secentry{Readline vi Mode}{1}{5}{19}
|
||||
\chapentry{Programming with GNU Readline}{2}{20}
|
||||
\secentry{Basic Behavior}{2}{1}{20}
|
||||
\secentry{Custom Functions}{2}{2}{21}
|
||||
\subsecentry{Readline Typedefs}{2}{2}{1}{21}
|
||||
\subsecentry{Writing a New Function}{2}{2}{2}{22}
|
||||
\secentry{Readline Variables}{2}{3}{23}
|
||||
\secentry{Readline Convenience Functions}{2}{4}{27}
|
||||
\subsecentry{Naming a Function}{2}{4}{1}{27}
|
||||
\subsecentry{Selecting a Keymap}{2}{4}{2}{28}
|
||||
\subsecentry{Binding Keys}{2}{4}{3}{28}
|
||||
\subsecentry{Associating Function Names and Bindings}{2}{4}{4}{30}
|
||||
\subsecentry{Allowing Undoing}{2}{4}{5}{31}
|
||||
\subsecentry{Redisplay}{2}{4}{6}{32}
|
||||
\subsecentry{Modifying Text}{2}{4}{7}{33}
|
||||
\subsecentry{Character Input}{2}{4}{8}{34}
|
||||
\subsecentry{Terminal Management}{2}{4}{9}{34}
|
||||
\subsecentry{Utility Functions}{2}{4}{10}{35}
|
||||
\subsecentry{Miscellaneous Functions}{2}{4}{11}{36}
|
||||
\subsecentry{Alternate Interface}{2}{4}{12}{37}
|
||||
\subsecentry{A Readline Example}{2}{4}{13}{38}
|
||||
\secentry{Readline Signal Handling}{2}{5}{39}
|
||||
\secentry{Custom Completers}{2}{6}{41}
|
||||
\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}{47}
|
||||
\appendixentry{GNU Free Documentation License}{A}{56}
|
||||
\unnumbchapentry{Concept Index}{2}{63}
|
||||
\unnumbchapentry{Function and Variable Index}{2}{64}
|
||||
@numchapentry{Command Line Editing}{1}{Command Line Editing}{1}
|
||||
@numsecentry{Introduction to Line Editing}{1.1}{Introduction and Notation}{1}
|
||||
@numsecentry{Readline Interaction}{1.2}{Readline Interaction}{1}
|
||||
@numsubsecentry{Readline Bare Essentials}{1.2.1}{Readline Bare Essentials}{1}
|
||||
@numsubsecentry{Readline Movement Commands}{1.2.2}{Readline Movement Commands}{2}
|
||||
@numsubsecentry{Readline Killing Commands}{1.2.3}{Readline Killing Commands}{2}
|
||||
@numsubsecentry{Readline Arguments}{1.2.4}{Readline Arguments}{3}
|
||||
@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3}
|
||||
@numsecentry{Readline Init File}{1.3}{Readline Init File}{4}
|
||||
@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4}
|
||||
@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{9}
|
||||
@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{10}
|
||||
@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{13}
|
||||
@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{13}
|
||||
@numsubsecentry{Commands For Manipulating The History}{1.4.2}{Commands For History}{13}
|
||||
@numsubsecentry{Commands For Changing Text}{1.4.3}{Commands For Text}{15}
|
||||
@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{16}
|
||||
@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{17}
|
||||
@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{17}
|
||||
@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{17}
|
||||
@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{18}
|
||||
@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{19}
|
||||
@numchapentry{Programming with GNU Readline}{2}{Programming with GNU Readline}{20}
|
||||
@numsecentry{Basic Behavior}{2.1}{Basic Behavior}{20}
|
||||
@numsecentry{Custom Functions}{2.2}{Custom Functions}{21}
|
||||
@numsubsecentry{Readline Typedefs}{2.2.1}{Readline Typedefs}{22}
|
||||
@numsubsecentry{Writing a New Function}{2.2.2}{Function Writing}{22}
|
||||
@numsecentry{Readline Variables}{2.3}{Readline Variables}{23}
|
||||
@numsecentry{Readline Convenience Functions}{2.4}{Readline Convenience Functions}{27}
|
||||
@numsubsecentry{Naming a Function}{2.4.1}{Function Naming}{27}
|
||||
@numsubsecentry{Selecting a Keymap}{2.4.2}{Keymaps}{28}
|
||||
@numsubsecentry{Binding Keys}{2.4.3}{Binding Keys}{29}
|
||||
@numsubsecentry{Associating Function Names and Bindings}{2.4.4}{Associating Function Names and Bindings}{30}
|
||||
@numsubsecentry{Allowing Undoing}{2.4.5}{Allowing Undoing}{31}
|
||||
@numsubsecentry{Redisplay}{2.4.6}{Redisplay}{32}
|
||||
@numsubsecentry{Modifying Text}{2.4.7}{Modifying Text}{33}
|
||||
@numsubsecentry{Character Input}{2.4.8}{Character Input}{34}
|
||||
@numsubsecentry{Terminal Management}{2.4.9}{Terminal Management}{34}
|
||||
@numsubsecentry{Utility Functions}{2.4.10}{Utility Functions}{35}
|
||||
@numsubsecentry{Miscellaneous Functions}{2.4.11}{Miscellaneous Functions}{36}
|
||||
@numsubsecentry{Alternate Interface}{2.4.12}{Alternate Interface}{37}
|
||||
@numsubsecentry{A Readline Example}{2.4.13}{A Readline Example}{37}
|
||||
@numsecentry{Readline Signal Handling}{2.5}{Readline Signal Handling}{39}
|
||||
@numsecentry{Custom Completers}{2.6}{Custom Completers}{41}
|
||||
@numsubsecentry{How Completing Works}{2.6.1}{How Completing Works}{41}
|
||||
@numsubsecentry{Completion Functions}{2.6.2}{Completion Functions}{42}
|
||||
@numsubsecentry{Completion Variables}{2.6.3}{Completion Variables}{43}
|
||||
@numsubsecentry{A Short Completion Example}{2.6.4}{A Short Completion Example}{47}
|
||||
@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{56}
|
||||
@unnchapentry{Concept Index}{10001}{Concept Index}{64}
|
||||
@unnchapentry{Function and Variable Index}{10002}{Function and Variable Index}{65}
|
||||
|
||||
@@ -1,69 +1,69 @@
|
||||
@xrdef{Command Line Editing-title}{Command Line Editing}
|
||||
@xrdef{Command Line Editing-pg}{1}
|
||||
@xrdef{Command Line Editing-snt}{Chapter@tie 1}
|
||||
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
|
||||
@xrdef{Introduction and Notation-pg}{1}
|
||||
@xrdef{Introduction and Notation-snt}{Section@tie 1.1}
|
||||
@xrdef{Readline Interaction-title}{Readline Interaction}
|
||||
@xrdef{Readline Interaction-pg}{1}
|
||||
@xrdef{Readline Interaction-snt}{Section@tie 1.2}
|
||||
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
|
||||
@xrdef{Readline Bare Essentials-pg}{1}
|
||||
@xrdef{Readline Bare Essentials-snt}{Section@tie 1.2.1}
|
||||
@xrdef{Command Line Editing-pg}{1}
|
||||
@xrdef{Introduction and Notation-pg}{1}
|
||||
@xrdef{Readline Interaction-pg}{1}
|
||||
@xrdef{Readline Bare Essentials-pg}{1}
|
||||
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
|
||||
@xrdef{Readline Movement Commands-pg}{2}
|
||||
@xrdef{Readline Movement Commands-snt}{Section@tie 1.2.2}
|
||||
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
|
||||
@xrdef{Readline Killing Commands-pg}{2}
|
||||
@xrdef{Readline Killing Commands-snt}{Section@tie 1.2.3}
|
||||
@xrdef{Readline Movement Commands-pg}{2}
|
||||
@xrdef{Readline Killing Commands-pg}{2}
|
||||
@xrdef{Readline Arguments-title}{Readline Arguments}
|
||||
@xrdef{Readline Arguments-pg}{3}
|
||||
@xrdef{Readline Arguments-snt}{Section@tie 1.2.4}
|
||||
@xrdef{Searching-title}{Searching for Commands in the History}
|
||||
@xrdef{Searching-pg}{3}
|
||||
@xrdef{Searching-snt}{Section@tie 1.2.5}
|
||||
@xrdef{Readline Arguments-pg}{3}
|
||||
@xrdef{Searching-pg}{3}
|
||||
@xrdef{Readline Init File-title}{Readline Init File}
|
||||
@xrdef{Readline Init File-pg}{4}
|
||||
@xrdef{Readline Init File-snt}{Section@tie 1.3}
|
||||
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
|
||||
@xrdef{Readline Init File Syntax-pg}{4}
|
||||
@xrdef{Readline Init File Syntax-snt}{Section@tie 1.3.1}
|
||||
@xrdef{Readline Init File-pg}{4}
|
||||
@xrdef{Readline Init File Syntax-pg}{4}
|
||||
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
|
||||
@xrdef{Conditional Init Constructs-pg}{9}
|
||||
@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2}
|
||||
@xrdef{Conditional Init Constructs-pg}{9}
|
||||
@xrdef{Sample Init File-title}{Sample Init File}
|
||||
@xrdef{Sample Init File-pg}{10}
|
||||
@xrdef{Sample Init File-snt}{Section@tie 1.3.3}
|
||||
@xrdef{Sample Init File-pg}{10}
|
||||
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
|
||||
@xrdef{Bindable Readline Commands-pg}{13}
|
||||
@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4}
|
||||
@xrdef{Commands For Moving-title}{Commands For Moving}
|
||||
@xrdef{Commands For Moving-pg}{13}
|
||||
@xrdef{Commands For Moving-snt}{Section@tie 1.4.1}
|
||||
@xrdef{Commands For History-title}{Commands For Manipulating The History}
|
||||
@xrdef{Commands For History-pg}{13}
|
||||
@xrdef{Commands For History-snt}{Section@tie 1.4.2}
|
||||
@xrdef{Bindable Readline Commands-pg}{13}
|
||||
@xrdef{Commands For Moving-pg}{13}
|
||||
@xrdef{Commands For History-pg}{13}
|
||||
@xrdef{Commands For Text-title}{Commands For Changing Text}
|
||||
@xrdef{Commands For Text-pg}{15}
|
||||
@xrdef{Commands For Text-snt}{Section@tie 1.4.3}
|
||||
@xrdef{Commands For Text-pg}{15}
|
||||
@xrdef{Commands For Killing-title}{Killing And Yanking}
|
||||
@xrdef{Commands For Killing-pg}{16}
|
||||
@xrdef{Commands For Killing-snt}{Section@tie 1.4.4}
|
||||
@xrdef{Commands For Killing-pg}{16}
|
||||
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
|
||||
@xrdef{Numeric Arguments-pg}{17}
|
||||
@xrdef{Numeric Arguments-snt}{Section@tie 1.4.5}
|
||||
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
|
||||
@xrdef{Commands For Completion-pg}{17}
|
||||
@xrdef{Commands For Completion-snt}{Section@tie 1.4.6}
|
||||
@xrdef{Keyboard Macros-title}{Keyboard Macros}
|
||||
@xrdef{Keyboard Macros-pg}{18}
|
||||
@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7}
|
||||
@xrdef{Numeric Arguments-pg}{17}
|
||||
@xrdef{Commands For Completion-pg}{17}
|
||||
@xrdef{Keyboard Macros-pg}{17}
|
||||
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
|
||||
@xrdef{Miscellaneous Commands-pg}{18}
|
||||
@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8}
|
||||
@xrdef{Miscellaneous Commands-pg}{18}
|
||||
@xrdef{Readline vi Mode-title}{Readline vi Mode}
|
||||
@xrdef{Readline vi Mode-pg}{19}
|
||||
@xrdef{Readline vi Mode-snt}{Section@tie 1.5}
|
||||
@xrdef{Readline vi Mode-pg}{19}
|
||||
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
|
||||
@xrdef{GNU Free Documentation License-pg}{20}
|
||||
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{GNU Free Documentation License-pg}{20}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
\entry{editing command lines}{1}{editing command lines}
|
||||
\entry{killing text}{2}{killing text}
|
||||
\entry{yanking text}{2}{yanking text}
|
||||
\entry{kill ring}{3}{kill ring}
|
||||
\entry{kill ring}{2}{kill ring}
|
||||
\entry{initialization file, readline}{4}{initialization file, readline}
|
||||
\entry{variables, readline}{5}{variables, readline}
|
||||
\entry{variables, readline}{4}{variables, readline}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
\entry {initialization file, readline}{4}
|
||||
\entry {interaction, readline}{1}
|
||||
\initial {K}
|
||||
\entry {kill ring}{3}
|
||||
\entry {kill ring}{2}
|
||||
\entry {killing text}{2}
|
||||
\initial {N}
|
||||
\entry {notation, readline}{1}
|
||||
\initial {V}
|
||||
\entry {variables, readline}{5}
|
||||
\entry {variables, readline}{4}
|
||||
\initial {Y}
|
||||
\entry {yanking text}{2}
|
||||
|
||||
Binary file not shown.
@@ -7,7 +7,7 @@
|
||||
\entry{clear-screen (C-l)}{13}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{13}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{13}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{14}{\code {previous-history (C-p)}}
|
||||
\entry{previous-history (C-p)}{13}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{14}{\code {next-history (C-n)}}
|
||||
\entry{beginning-of-history (M-<)}{14}{\code {beginning-of-history (M-<)}}
|
||||
\entry{end-of-history (M->)}{14}{\code {end-of-history (M->)}}
|
||||
@@ -44,7 +44,7 @@
|
||||
\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)}{17}{\code {yank (C-y)}}
|
||||
\entry{yank (C-y)}{16}{\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 ()}}
|
||||
@@ -53,7 +53,7 @@
|
||||
\entry{insert-completions (M-*)}{17}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{17}{\code {menu-complete ()}}
|
||||
\entry{delete-char-or-list ()}{17}{\code {delete-char-or-list ()}}
|
||||
\entry{start-kbd-macro (C-x ()}{18}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{start-kbd-macro (C-x ()}{17}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{18}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{18}{\code {call-last-kbd-macro (C-x e)}}
|
||||
\entry{re-read-init-file (C-x C-r)}{18}{\code {re-read-init-file (C-x C-r)}}
|
||||
@@ -66,8 +66,8 @@
|
||||
\entry{set-mark (C-@)}{18}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{18}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{18}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{19}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{19}{\code {insert-comment (M-#)}}
|
||||
\entry{character-search-backward (M-C-])}{18}{\code {character-search-backward (M-C-])}}
|
||||
\entry{insert-comment (M-#)}{18}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{19}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{19}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{19}{\code {dump-macros ()}}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
\entry {\code {call-last-kbd-macro (C-x e)}}{18}
|
||||
\entry {\code {capitalize-word (M-c)}}{15}
|
||||
\entry {\code {character-search (C-])}}{18}
|
||||
\entry {\code {character-search-backward (M-C-])}}{19}
|
||||
\entry {\code {character-search-backward (M-C-])}}{18}
|
||||
\entry {\code {clear-screen (C-l)}}{13}
|
||||
\entry {\code {complete (\key {TAB})}}{17}
|
||||
\entry {\code {copy-backward-word ()}}{16}
|
||||
@@ -44,7 +44,7 @@
|
||||
\entry {\code {history-search-backward ()}}{14}
|
||||
\entry {\code {history-search-forward ()}}{14}
|
||||
\initial {I}
|
||||
\entry {\code {insert-comment (M-#)}}{19}
|
||||
\entry {\code {insert-comment (M-#)}}{18}
|
||||
\entry {\code {insert-completions (M-*)}}{17}
|
||||
\initial {K}
|
||||
\entry {\code {kill-line (C-k)}}{16}
|
||||
@@ -62,7 +62,7 @@
|
||||
\initial {P}
|
||||
\entry {\code {possible-completions (M-?)}}{17}
|
||||
\entry {\code {prefix-meta (\key {ESC})}}{18}
|
||||
\entry {\code {previous-history (C-p)}}{14}
|
||||
\entry {\code {previous-history (C-p)}}{13}
|
||||
\initial {Q}
|
||||
\entry {\code {quoted-insert (C-q or C-v)}}{15}
|
||||
\initial {R}
|
||||
@@ -73,7 +73,7 @@
|
||||
\initial {S}
|
||||
\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{15}
|
||||
\entry {\code {set-mark (C-@)}}{18}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{18}
|
||||
\entry {\code {start-kbd-macro (C-x ()}}{17}
|
||||
\initial {T}
|
||||
\entry {\code {tab-insert (M-\key {TAB})}}{15}
|
||||
\entry {\code {tilde-expand (M-~)}}{18}
|
||||
@@ -89,7 +89,7 @@
|
||||
\initial {V}
|
||||
\entry {\code {vi-editing-mode (M-C-j)}}{19}
|
||||
\initial {Y}
|
||||
\entry {\code {yank (C-y)}}{17}
|
||||
\entry {\code {yank (C-y)}}{16}
|
||||
\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 January, 6 2009 by texi2html 1.64 -->
|
||||
<!-- Created on March, 18 2009 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -2013,12 +2013,12 @@ so forth.
|
||||
<P>
|
||||
|
||||
<center>
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
</center>
|
||||
</P><P>
|
||||
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
<TABLE><tr><td> </td><td class=display><pre style="font-family: serif">Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<A HREF="http://fsf.org/">http://fsf.org/</A>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -2136,6 +2136,10 @@ the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
</P><P>
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
</P><P>
|
||||
|
||||
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
|
||||
@@ -2449,13 +2453,33 @@ title.
|
||||
TERMINATION
|
||||
<P>
|
||||
|
||||
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.
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
</P><P>
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
</P><P>
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
</P><P>
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
@@ -2476,7 +2500,49 @@ 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.
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
</P><P>
|
||||
|
||||
<LI>
|
||||
RELICENSING
|
||||
<P>
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
</P><P>
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
</P><P>
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
</P><P>
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
</P><P>
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
</P><P>
|
||||
|
||||
</OL>
|
||||
<P>
|
||||
|
||||
@@ -2492,7 +2558,7 @@ license notices just after the title page:
|
||||
|
||||
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
@@ -2609,7 +2675,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>January, 6 2009</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -2771,7 +2837,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>January, 6 2009</I>
|
||||
by <I>Chet Ramey</I> on <I>March, 18 2009</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ preserved on all copies.
|
||||
|
||||
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
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with the Front-Cover texts
|
||||
being "A GNU Manual", and with the Back-Cover Texts as in (a)
|
||||
below. A copy of the license is included in the section entitled
|
||||
@@ -1300,10 +1300,10 @@ File: rluserman.info, Node: GNU Free Documentation License, Prev: Command Line
|
||||
Appendix A GNU Free Documentation License
|
||||
*****************************************
|
||||
|
||||
Version 1.2, November 2002
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
`http://fsf.org/'
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@@ -1405,6 +1405,9 @@ Appendix A GNU Free Documentation License
|
||||
Page" means the text near the most prominent appearance of the
|
||||
work's title, preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
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
|
||||
@@ -1670,12 +1673,29 @@ Appendix A GNU Free Documentation License
|
||||
9. 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.
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void,
|
||||
and will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly
|
||||
and finally terminates your license, and (b) permanently, if the
|
||||
copyright holder fails to notify you of the violation by some
|
||||
reasonable means prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from
|
||||
that copyright holder, and you cure the violation prior to 30 days
|
||||
after your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate
|
||||
the licenses of parties who have received copies or rights from
|
||||
you under this License. If your rights have been terminated and
|
||||
not permanently reinstated, receipt of a copy of some or all of
|
||||
the same material does not give you any rights to use it.
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
@@ -1693,7 +1713,41 @@ Appendix A GNU Free Documentation License
|
||||
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.
|
||||
Free Software Foundation. If the Document specifies that a proxy
|
||||
can decide which future versions of this License can be used, that
|
||||
proxy's public statement of acceptance of a version permanently
|
||||
authorizes you to choose that version for the Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server.
|
||||
A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this
|
||||
License somewhere other than this MMC, and subsequently
|
||||
incorporated in whole or in part into the MMC, (1) had no cover
|
||||
texts or invariant sections, and (2) were thus incorporated prior
|
||||
to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the
|
||||
site under CC-BY-SA on the same site at any time before August 1,
|
||||
2009, provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
====================================================
|
||||
@@ -1704,7 +1758,7 @@ notices just after the title page:
|
||||
|
||||
Copyright (C) YEAR 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
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 6 JAN 2009 11:52
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 MAR 2009 08:22
|
||||
**/Users/chet/src/bash/src/lib/readline/doc/rluserman.texi
|
||||
(/Users/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2009-01-18.17]:
|
||||
\bindingoffset=\dimen16
|
||||
\normaloffset=\dimen17
|
||||
\pagewidth=\dimen18
|
||||
@@ -32,81 +32,94 @@ Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
\toksD=\toks18
|
||||
\boxA=\box19
|
||||
\countA=\count30
|
||||
\nopdfimagehelp=\toks19
|
||||
fonts,
|
||||
\sffam=\fam8
|
||||
\textleading=\dimen26
|
||||
\mainmagstep=\count31
|
||||
\fontdepth=\count32
|
||||
page headings,
|
||||
markup,
|
||||
\fontdepth=\count31
|
||||
glyphs,
|
||||
\errorbox=\box20
|
||||
|
||||
page headings,
|
||||
\titlepagetopglue=\skip20
|
||||
\titlepagebottomglue=\skip21
|
||||
\evenheadline=\toks19
|
||||
\oddheadline=\toks20
|
||||
\evenfootline=\toks21
|
||||
\oddfootline=\toks22
|
||||
|
||||
tables,
|
||||
\evenheadline=\toks20
|
||||
\oddheadline=\toks21
|
||||
\evenfootline=\toks22
|
||||
\oddfootline=\toks23
|
||||
tables,
|
||||
\tableindent=\dimen27
|
||||
\itemindent=\dimen28
|
||||
\itemmargin=\dimen29
|
||||
\itemmax=\dimen30
|
||||
\itemno=\count33
|
||||
\itemno=\count32
|
||||
\multitableparskip=\skip22
|
||||
\multitableparindent=\skip23
|
||||
\multitablecolspace=\dimen31
|
||||
\multitablelinespace=\skip24
|
||||
\colcount=\count34
|
||||
\savedfootnotes=\box20
|
||||
conditionals, indexing,
|
||||
\secondaryindent=\skip25
|
||||
\colcount=\count33
|
||||
\everytab=\toks24
|
||||
conditionals,
|
||||
\doignorecount=\count34
|
||||
indexing,
|
||||
\whatsitskip=\skip25
|
||||
\whatsitpenalty=\count35
|
||||
\secondaryindent=\skip26
|
||||
\partialpage=\box21
|
||||
\doublecolumnhsize=\dimen32
|
||||
sectioning,
|
||||
\chapno=\count35
|
||||
\secno=\count36
|
||||
\subsecno=\count37
|
||||
\subsubsecno=\count38
|
||||
\appendixno=\count39
|
||||
\absseclevel=\count40
|
||||
\secbase=\count41
|
||||
\chapheadingskip=\skip26
|
||||
\secheadingskip=\skip27
|
||||
\subsecheadingskip=\skip28
|
||||
\unnumberedno=\count36
|
||||
\chapno=\count37
|
||||
\secno=\count38
|
||||
\subsecno=\count39
|
||||
\subsubsecno=\count40
|
||||
\appendixno=\count41
|
||||
\absseclevel=\count42
|
||||
\secbase=\count43
|
||||
\chapheadingskip=\skip27
|
||||
\secheadingskip=\skip28
|
||||
\subsecheadingskip=\skip29
|
||||
toc,
|
||||
\tocfile=\write0
|
||||
\contentsrightmargin=\skip29
|
||||
\savepageno=\count42
|
||||
\lastnegativepageno=\count43
|
||||
\shortappendixwidth=\dimen33
|
||||
\tocindent=\dimen34
|
||||
\contentsrightmargin=\skip30
|
||||
\savepageno=\count44
|
||||
\lastnegativepageno=\count45
|
||||
\tocindent=\dimen33
|
||||
environments,
|
||||
\errorbox=\box22
|
||||
\lispnarrowing=\skip30
|
||||
\envskipamount=\skip31
|
||||
\circthick=\dimen35
|
||||
\cartouter=\dimen36
|
||||
\cartinner=\dimen37
|
||||
\normbskip=\skip32
|
||||
\normpskip=\skip33
|
||||
\normlskip=\skip34
|
||||
\lskip=\skip35
|
||||
\rskip=\skip36
|
||||
\lispnarrowing=\skip31
|
||||
\envskipamount=\skip32
|
||||
\circthick=\dimen34
|
||||
\cartouter=\dimen35
|
||||
\cartinner=\dimen36
|
||||
\normbskip=\skip33
|
||||
\normpskip=\skip34
|
||||
\normlskip=\skip35
|
||||
\lskip=\skip36
|
||||
\rskip=\skip37
|
||||
\nonfillparindent=\dimen37
|
||||
\tabw=\dimen38
|
||||
defuns,
|
||||
\defbodyindent=\skip37
|
||||
\defargsindent=\skip38
|
||||
\deflastargmargin=\skip39
|
||||
\parencount=\count44
|
||||
|
||||
defuns,
|
||||
\defbodyindent=\skip38
|
||||
\defargsindent=\skip39
|
||||
\deflastargmargin=\skip40
|
||||
\defunpenalty=\count46
|
||||
\parencount=\count47
|
||||
\brackcount=\count48
|
||||
macros,
|
||||
\macscribble=\write1
|
||||
\paramno=\count45
|
||||
\macname=\toks23
|
||||
|
||||
cross references,
|
||||
\paramno=\count49
|
||||
\macname=\toks25
|
||||
cross references,
|
||||
\auxfile=\write2
|
||||
\savesfregister=\count46
|
||||
\footnoteno=\count47
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\savesfregister=\count50
|
||||
insertions,
|
||||
\footnoteno=\count51
|
||||
\SAVEfootins=\box22
|
||||
\SAVEmargin=\box23
|
||||
|
||||
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
|
||||
\epsffilein=\read0
|
||||
\epsfframemargin=\dimen39
|
||||
\epsfframethickness=\dimen40
|
||||
@@ -116,24 +129,28 @@ cross references,
|
||||
\epsfxsize=\dimen44
|
||||
\epsfysize=\dimen45
|
||||
\pspoints=\dimen46
|
||||
\epsfnoopenhelp=\toks24
|
||||
\epsfnoopenhelp=\toks26
|
||||
)
|
||||
\noepsfhelp=\toks25
|
||||
|
||||
localization,
|
||||
\nolanghelp=\toks26
|
||||
\noepsfhelp=\toks27
|
||||
localization,
|
||||
\nolanghelp=\toks28
|
||||
\countUTFx=\count52
|
||||
\countUTFy=\count53
|
||||
\countUTFz=\count54
|
||||
formatting,
|
||||
\defaultparindent=\dimen47
|
||||
and turning on texinfo input format.) (./rluserman.aux)
|
||||
|
||||
and turning on texinfo input format.) (./rluserman.aux)
|
||||
\openout2 = `rluserman.aux'.
|
||||
|
||||
@cpindfile=@write3
|
||||
@fnindfile=@write4
|
||||
@vrindfile=@write5
|
||||
@tpindfile=@write6
|
||||
@kyindfile=@write7
|
||||
@pgindfile=@write8
|
||||
|
||||
(./version.texi) [1
|
||||
\openout2 = `rluserman.aux'.
|
||||
|
||||
(./version.texi)
|
||||
[1
|
||||
\openout3 = `rluserman.cp'.
|
||||
|
||||
\openout4 = `rluserman.fn'.
|
||||
@@ -146,7 +163,10 @@ localization,
|
||||
|
||||
\openout8 = `rluserman.pg'.
|
||||
|
||||
] [2] (./rluserman.toc) [-1] (./rluser.texi
|
||||
]
|
||||
\openout1 = `rluserman.tmp'.
|
||||
|
||||
(./rluserman.tmp) [2] (./rluserman.toc) [-1] (./rluser.texi
|
||||
@btindfile=@write9
|
||||
Chapter 1
|
||||
\openout0 = `rluserman.toc'.
|
||||
@@ -182,14 +202,14 @@ gnored[] |
|
||||
.etc.
|
||||
|
||||
[11] [12] [13] [14] [15] [16] [17] [18]) Appendix A [19] (./fdl.texi [20]
|
||||
[21] [22] [23] [24] [25]) [26] )
|
||||
[21] [22] [23] [24] [25] [26]) [27] )
|
||||
Here is how much of TeX's memory you used:
|
||||
1402 strings out of 97980
|
||||
16334 string characters out of 1221004
|
||||
45865 words of memory out of 1500000
|
||||
2273 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 1200000 for 2000
|
||||
19 hyphenation exceptions out of 8191
|
||||
13i,8n,10p,285b,697s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
1743 strings out of 97980
|
||||
20809 string characters out of 1221004
|
||||
75544 words of memory out of 1500000
|
||||
2579 multiletter control sequences out of 10000+50000
|
||||
32127 words of font info for 112 fonts, out of 1200000 for 2000
|
||||
51 hyphenation exceptions out of 8191
|
||||
16i,6n,14p,327b,534s stack positions out of 5000i,500n,6000p,200000b,5000s
|
||||
|
||||
Output written on rluserman.dvi (29 pages, 96724 bytes).
|
||||
Output written on rluserman.dvi (30 pages, 98540 bytes).
|
||||
|
||||
+2403
-2630
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@ are preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
This manual describes the end user interface of the GNU Readline Library
|
||||
(version @value{VERSION}, @value{UPDATED}), a library which aids in the
|
||||
consistency of user interface across discrete programs which provide
|
||||
a command line interface.
|
||||
|
||||
Copyright @copyright{} 1988--2009 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 preserved on all copies.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
||||
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
||||
included in the section entitled ``GNU Free Documentation License''.
|
||||
|
||||
(a) The FSF's Back-Cover Text is: You are free to copy and modify
|
||||
this GNU manual. Buying copies from GNU Press supports the FSF in
|
||||
developing GNU and promoting software freedom.''
|
||||
|
||||
@end quotation
|
||||
@endinput
|
||||
@@ -1,23 +1,23 @@
|
||||
\chapentry{Command Line Editing}{1}{1}
|
||||
\secentry{Introduction to Line Editing}{1}{1}{1}
|
||||
\secentry{Readline Interaction}{1}{2}{1}
|
||||
\subsecentry{Readline Bare Essentials}{1}{2}{1}{1}
|
||||
\subsecentry{Readline Movement Commands}{1}{2}{2}{2}
|
||||
\subsecentry{Readline Killing Commands}{1}{2}{3}{2}
|
||||
\subsecentry{Readline Arguments}{1}{2}{4}{3}
|
||||
\subsecentry{Searching for Commands in the History}{1}{2}{5}{3}
|
||||
\secentry{Readline Init File}{1}{3}{4}
|
||||
\subsecentry{Readline Init File Syntax}{1}{3}{1}{4}
|
||||
\subsecentry{Conditional Init Constructs}{1}{3}{2}{9}
|
||||
\subsecentry{Sample Init File}{1}{3}{3}{10}
|
||||
\secentry{Bindable Readline Commands}{1}{4}{13}
|
||||
\subsecentry{Commands For Moving}{1}{4}{1}{13}
|
||||
\subsecentry{Commands For Manipulating The History}{1}{4}{2}{13}
|
||||
\subsecentry{Commands For Changing Text}{1}{4}{3}{14}
|
||||
\subsecentry{Killing And Yanking}{1}{4}{4}{16}
|
||||
\subsecentry{Specifying Numeric Arguments}{1}{4}{5}{17}
|
||||
\subsecentry{Letting Readline Type For You}{1}{4}{6}{17}
|
||||
\subsecentry{Keyboard Macros}{1}{4}{7}{17}
|
||||
\subsecentry{Some Miscellaneous Commands}{1}{4}{8}{18}
|
||||
\secentry{Readline vi Mode}{1}{5}{19}
|
||||
\appendixentry{GNU Free Documentation License}{A}{20}
|
||||
@numchapentry{Command Line Editing}{1}{Command Line Editing}{1}
|
||||
@numsecentry{Introduction to Line Editing}{1.1}{Introduction and Notation}{1}
|
||||
@numsecentry{Readline Interaction}{1.2}{Readline Interaction}{1}
|
||||
@numsubsecentry{Readline Bare Essentials}{1.2.1}{Readline Bare Essentials}{1}
|
||||
@numsubsecentry{Readline Movement Commands}{1.2.2}{Readline Movement Commands}{2}
|
||||
@numsubsecentry{Readline Killing Commands}{1.2.3}{Readline Killing Commands}{2}
|
||||
@numsubsecentry{Readline Arguments}{1.2.4}{Readline Arguments}{3}
|
||||
@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3}
|
||||
@numsecentry{Readline Init File}{1.3}{Readline Init File}{4}
|
||||
@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4}
|
||||
@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{9}
|
||||
@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{10}
|
||||
@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{13}
|
||||
@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{13}
|
||||
@numsubsecentry{Commands For Manipulating The History}{1.4.2}{Commands For History}{13}
|
||||
@numsubsecentry{Commands For Changing Text}{1.4.3}{Commands For Text}{15}
|
||||
@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{16}
|
||||
@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{17}
|
||||
@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{17}
|
||||
@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{17}
|
||||
@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{18}
|
||||
@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{19}
|
||||
@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{20}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
\entry{bell-style}{5}{\code {bell-style}}
|
||||
\entry{bell-style}{4}{\code {bell-style}}
|
||||
\entry{bind-tty-special-chars}{5}{\code {bind-tty-special-chars}}
|
||||
\entry{comment-begin}{5}{\code {comment-begin}}
|
||||
\entry{completion-prefix-display-length}{5}{\code {completion-prefix-display-length}}
|
||||
\entry{completion-query-items}{5}{\code {completion-query-items}}
|
||||
\entry{convert-meta}{5}{\code {convert-meta}}
|
||||
\entry{disable-completion}{6}{\code {disable-completion}}
|
||||
\entry{editing-mode}{6}{\code {editing-mode}}
|
||||
\entry{enable-keypad}{6}{\code {enable-keypad}}
|
||||
\entry{disable-completion}{5}{\code {disable-completion}}
|
||||
\entry{editing-mode}{5}{\code {editing-mode}}
|
||||
\entry{enable-keypad}{5}{\code {enable-keypad}}
|
||||
\entry{expand-tilde}{6}{\code {expand-tilde}}
|
||||
\entry{history-preserve-point}{6}{\code {history-preserve-point}}
|
||||
\entry{history-size}{6}{\code {history-size}}
|
||||
@@ -15,12 +15,12 @@
|
||||
\entry{meta-flag}{6}{\code {meta-flag}}
|
||||
\entry{isearch-terminators}{6}{\code {isearch-terminators}}
|
||||
\entry{keymap}{6}{\code {keymap}}
|
||||
\entry{mark-modified-lines}{7}{\code {mark-modified-lines}}
|
||||
\entry{mark-modified-lines}{6}{\code {mark-modified-lines}}
|
||||
\entry{mark-symlinked-directories}{7}{\code {mark-symlinked-directories}}
|
||||
\entry{match-hidden-files}{7}{\code {match-hidden-files}}
|
||||
\entry{output-meta}{7}{\code {output-meta}}
|
||||
\entry{page-completions}{7}{\code {page-completions}}
|
||||
\entry{revert-all-at-newline}{7}{\code {revert-all-at-newline}}
|
||||
\entry{show-all-if-ambiguous}{7}{\code {show-all-if-ambiguous}}
|
||||
\entry{show-all-if-unmodified}{8}{\code {show-all-if-unmodified}}
|
||||
\entry{visible-stats}{8}{\code {visible-stats}}
|
||||
\entry{show-all-if-unmodified}{7}{\code {show-all-if-unmodified}}
|
||||
\entry{visible-stats}{7}{\code {visible-stats}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\initial {B}
|
||||
\entry {\code {bell-style}}{5}
|
||||
\entry {\code {bell-style}}{4}
|
||||
\entry {\code {bind-tty-special-chars}}{5}
|
||||
\initial {C}
|
||||
\entry {\code {comment-begin}}{5}
|
||||
@@ -7,10 +7,10 @@
|
||||
\entry {\code {completion-query-items}}{5}
|
||||
\entry {\code {convert-meta}}{5}
|
||||
\initial {D}
|
||||
\entry {\code {disable-completion}}{6}
|
||||
\entry {\code {disable-completion}}{5}
|
||||
\initial {E}
|
||||
\entry {\code {editing-mode}}{6}
|
||||
\entry {\code {enable-keypad}}{6}
|
||||
\entry {\code {editing-mode}}{5}
|
||||
\entry {\code {enable-keypad}}{5}
|
||||
\entry {\code {expand-tilde}}{6}
|
||||
\initial {H}
|
||||
\entry {\code {history-preserve-point}}{6}
|
||||
@@ -22,7 +22,7 @@
|
||||
\initial {K}
|
||||
\entry {\code {keymap}}{6}
|
||||
\initial {M}
|
||||
\entry {\code {mark-modified-lines}}{7}
|
||||
\entry {\code {mark-modified-lines}}{6}
|
||||
\entry {\code {mark-symlinked-directories}}{7}
|
||||
\entry {\code {match-hidden-files}}{7}
|
||||
\entry {\code {meta-flag}}{6}
|
||||
@@ -34,6 +34,6 @@
|
||||
\entry {\code {revert-all-at-newline}}{7}
|
||||
\initial {S}
|
||||
\entry {\code {show-all-if-ambiguous}}{7}
|
||||
\entry {\code {show-all-if-unmodified}}{8}
|
||||
\entry {\code {show-all-if-unmodified}}{7}
|
||||
\initial {V}
|
||||
\entry {\code {visible-stats}}{8}
|
||||
\entry {\code {visible-stats}}{7}
|
||||
|
||||
@@ -1879,7 +1879,7 @@ read_secondary_line (remove_quoted_newline)
|
||||
prompt_again ();
|
||||
ret = read_a_line (remove_quoted_newline);
|
||||
#if defined (HISTORY)
|
||||
if (remember_on_history && (parser_state & PST_HEREDOC))
|
||||
if (ret && remember_on_history && (parser_state & PST_HEREDOC))
|
||||
{
|
||||
/* To make adding the the here-document body right, we need to rely
|
||||
on history_delimiting_chars() returning \n for the first line of
|
||||
|
||||
+5726
File diff suppressed because it is too large
Load Diff
@@ -3258,6 +3258,10 @@ eof_error:
|
||||
}
|
||||
}
|
||||
|
||||
/* Possible reprompting. */
|
||||
if (ch == '\n' && SHOULD_PROMPT ())
|
||||
prompt_again ();
|
||||
|
||||
/* XXX -- possibly allow here doc to be delimited by ending right
|
||||
paren. */
|
||||
if ((tflags & LEX_INHEREDOC) && ch == close && count == 1)
|
||||
@@ -3275,10 +3279,6 @@ eof_error:
|
||||
}
|
||||
}
|
||||
|
||||
/* Possible reprompting. */
|
||||
if (ch == '\n' && SHOULD_PROMPT ())
|
||||
prompt_again ();
|
||||
|
||||
/* Don't bother counting parens or doing anything else if in a comment */
|
||||
if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC))
|
||||
{
|
||||
|
||||
@@ -448,6 +448,48 @@ sighandler
|
||||
termsig_sighandler (sig)
|
||||
int sig;
|
||||
{
|
||||
/* If we get called twice with the same signal before handling it,
|
||||
terminate right away. */
|
||||
if (
|
||||
#ifdef SIGHUP
|
||||
sig != SIGHUP &&
|
||||
#endif
|
||||
#ifdef SIGINT
|
||||
sig != SIGINT &&
|
||||
#endif
|
||||
#ifdef SIGDANGER
|
||||
sig != SIGDANGER &&
|
||||
#endif
|
||||
#ifdef SIGPIPE
|
||||
sig != SIGPIPE &&
|
||||
#endif
|
||||
#ifdef SIGALRM
|
||||
sig != SIGALRM &&
|
||||
#endif
|
||||
#ifdef SIGTERM
|
||||
sig != SIGTERM &&
|
||||
#endif
|
||||
#ifdef SIGXCPU
|
||||
sig != SIGXCPU &&
|
||||
#endif
|
||||
#ifdef SIGXFSZ
|
||||
sig != SIGXFSZ &&
|
||||
#endif
|
||||
#ifdef SIGVTALRM
|
||||
sig != SIGVTALRM &&
|
||||
#endif
|
||||
#ifdef SIGLOST
|
||||
sig != SIGLOST &&
|
||||
#endif
|
||||
#ifdef SIGUSR1
|
||||
sig != SIGUSR1 &&
|
||||
#endif
|
||||
#ifdef SIGUSR2
|
||||
sig != SIGUSR2 &&
|
||||
#endif
|
||||
sig == terminating_signal)
|
||||
terminate_immediately = 1;
|
||||
|
||||
terminating_signal = sig;
|
||||
|
||||
/* XXX - should this also trigger when interrupt_immediately is set? */
|
||||
|
||||
@@ -448,6 +448,11 @@ sighandler
|
||||
termsig_sighandler (sig)
|
||||
int sig;
|
||||
{
|
||||
/* If we get called twice with the same signal before handling it,
|
||||
terminate right away. */
|
||||
if (sig == terminating_signal)
|
||||
terminate_immediately = 1;
|
||||
|
||||
terminating_signal = sig;
|
||||
|
||||
/* XXX - should this also trigger when interrupt_immediately is set? */
|
||||
@@ -519,6 +524,7 @@ sigint_sighandler (sig)
|
||||
if (interrupt_immediately)
|
||||
{
|
||||
interrupt_immediately = 0;
|
||||
last_command_exit_value = 128 + sig;
|
||||
throw_to_top_level ();
|
||||
}
|
||||
|
||||
|
||||
+12
-4
@@ -3,7 +3,9 @@
|
||||
DATE=$(date +%Y%m%d)
|
||||
|
||||
PARENT=/fs2/chet/bash
|
||||
DIR=$PARENT/bash-$DATE
|
||||
FROOT=bash-$DATE
|
||||
DIR=$PARENT/$FROOT
|
||||
TARF=${FROOT}.tar
|
||||
SRC=/usr/homes/chet/src/bash/src
|
||||
|
||||
mkdir $DIR || exit 1
|
||||
@@ -22,10 +24,16 @@ find . -type d -name 'savedir' -print | xargs rm -rf
|
||||
|
||||
rm parser-built y.tab.c y.tab.h
|
||||
|
||||
rm -f d d? ddd # convention for temp diff files
|
||||
rm -f d d? ddd ddd? # convention for temp diff files
|
||||
|
||||
cd $PARENT || exit 1
|
||||
|
||||
tar cvf bash-$DATE.tar bash-$DATE
|
||||
tar cvf ${TARF} $FROOT
|
||||
|
||||
gzip -v bash-$DATE.tar
|
||||
gzip -v ${TARF}
|
||||
|
||||
REMHOST=z4
|
||||
|
||||
if [ "$1" = "-s" ]; then
|
||||
scp ${TARF}.gz ${REMHOST}:
|
||||
fi
|
||||
|
||||
@@ -140,3 +140,7 @@ three
|
||||
one
|
||||
two
|
||||
three
|
||||
4.0
|
||||
echo ${BASH_VERSION%\.*}
|
||||
4.0
|
||||
echo ${BASH_VERSION%\.*}
|
||||
|
||||
@@ -109,3 +109,5 @@ shopt -q -o history
|
||||
echo $?
|
||||
|
||||
${THIS_SH} ./history1.sub
|
||||
|
||||
${THIS_SH} ./history2.sub
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
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
|
||||
|
||||
unset HISTFILESIZE
|
||||
|
||||
# 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 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
|
||||
|
||||
# these two blocks had better both result in the same output
|
||||
echo aa
|
||||
echo bb
|
||||
echo cc
|
||||
fc -e cat
|
||||
|
||||
echo aa
|
||||
echo bb
|
||||
echo cc
|
||||
fc -e cat -1
|
||||
|
||||
set +o history
|
||||
|
||||
shopt -q -o history
|
||||
echo $?
|
||||
|
||||
${THIS_SH} ./history1.sub
|
||||
@@ -0,0 +1,10 @@
|
||||
set -o history
|
||||
HISTSIZE=256
|
||||
HISTFILE=/dev/null
|
||||
|
||||
# these two lines should be the same
|
||||
echo ${BASH_VERSION%\.*}
|
||||
echo $(fc -nl -1)
|
||||
|
||||
echo ${BASH_VERSION%\.*}
|
||||
fc -nl -1
|
||||
@@ -63,6 +63,17 @@ after while
|
||||
before false in trap2a.sub
|
||||
after false in trap2a.sub
|
||||
command substitution
|
||||
+[6] echo 1
|
||||
1
|
||||
+[7] echo 2
|
||||
2
|
||||
+[8] echo 3
|
||||
+[8] cat
|
||||
+[8] false
|
||||
++[8] echo trap: 8
|
||||
trap: 8
|
||||
+[9] echo 4
|
||||
4
|
||||
caught a child death
|
||||
trap -- 'echo caught a child death' SIGCHLD
|
||||
trap -- 'echo exiting' EXIT
|
||||
|
||||
@@ -66,6 +66,8 @@ trap '' USR2
|
||||
# test ERR trap
|
||||
./trap2.sub
|
||||
|
||||
${THIS_SH} ./trap3.sub
|
||||
|
||||
#
|
||||
# show that setting a trap on SIGCHLD is not disastrous.
|
||||
#
|
||||
@@ -88,3 +90,4 @@ trap
|
||||
|
||||
trap - SIGCHLD
|
||||
wait
|
||||
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# test the trap code
|
||||
|
||||
trap 'echo exiting' 0
|
||||
trap 'echo aborting' 1 2 3 6 15
|
||||
|
||||
# make sure a user-specified subshell runs the exit trap, but does not
|
||||
# inherit the exit trap from a parent shell
|
||||
( trap 'echo subshell exit' 0; exit 0 )
|
||||
( exit 0 )
|
||||
|
||||
trap
|
||||
|
||||
func()
|
||||
{
|
||||
trap 'echo ${FUNCNAME:-$0}[$LINENO] funcdebug' DEBUG
|
||||
echo funcdebug line
|
||||
}
|
||||
|
||||
trap 'echo [$LINENO] debug' DEBUG
|
||||
echo debug line
|
||||
|
||||
trap
|
||||
|
||||
func
|
||||
|
||||
trap
|
||||
|
||||
trap 'echo ${FUNCNAME:-$0}[$LINENO] debug' DEBUG
|
||||
func2()
|
||||
{
|
||||
echo func2debug line
|
||||
}
|
||||
declare -ft func2
|
||||
func2
|
||||
|
||||
unset -f func2
|
||||
|
||||
trap '' DEBUG
|
||||
|
||||
trap
|
||||
|
||||
trap - debug
|
||||
|
||||
trap
|
||||
|
||||
trap - HUP
|
||||
trap hup
|
||||
trap '' INT
|
||||
trap '' int
|
||||
|
||||
trap
|
||||
|
||||
# exit 0 in exit trap should set exit status
|
||||
(
|
||||
set -e
|
||||
trap 'exit 0' EXIT
|
||||
false
|
||||
echo bad
|
||||
)
|
||||
echo $?
|
||||
|
||||
# hmmm...should this set the handling to SIG_IGN for children, too?
|
||||
trap '' USR2
|
||||
./trap1.sub
|
||||
|
||||
# test ERR trap
|
||||
./trap2.sub
|
||||
|
||||
#
|
||||
# show that setting a trap on SIGCHLD is not disastrous.
|
||||
#
|
||||
set -o monitor
|
||||
|
||||
trap 'echo caught a child death' SIGCHLD
|
||||
|
||||
sleep 7 & sleep 6 & sleep 5 &
|
||||
|
||||
# this will only catch the first, since there's a trap on SIGCHLD
|
||||
wait
|
||||
|
||||
trap -p SIGCHLD
|
||||
|
||||
# Now reset some of the signals the shell handles specially back to
|
||||
# their default values (with or without the SIG prefix)
|
||||
trap - SIGINT QUIT TERM
|
||||
|
||||
trap
|
||||
|
||||
trap - SIGCHLD
|
||||
wait
|
||||
@@ -0,0 +1,9 @@
|
||||
PS4='+[$LINENO] '
|
||||
trap 'echo trap: $LINENO' ERR
|
||||
|
||||
set -x
|
||||
|
||||
echo 1
|
||||
echo 2
|
||||
echo 3 | cat | false
|
||||
echo 4
|
||||
@@ -0,0 +1,7 @@
|
||||
PS4='+[$LINENO] '
|
||||
trap 'echo trap: $LINENO' ERR
|
||||
|
||||
echo 1
|
||||
echo 2
|
||||
echo 3 | cat | false
|
||||
echo 4
|
||||
@@ -755,7 +755,7 @@ _run_trap_internal (sig, tag)
|
||||
}
|
||||
|
||||
flags = SEVAL_NONINT|SEVAL_NOHIST;
|
||||
if (sig != DEBUG_TRAP && sig != RETURN_TRAP)
|
||||
if (sig != DEBUG_TRAP && sig != RETURN_TRAP && sig != ERROR_TRAP)
|
||||
flags |= SEVAL_RESETLINE;
|
||||
if (function_code == 0)
|
||||
parse_and_execute (trap_command, tag, flags);
|
||||
|
||||
Reference in New Issue
Block a user