diff --git a/samples/amarok/actions.py b/samples/amarok/actions.py deleted file mode 100644 index aa0b88a1..00000000 --- a/samples/amarok/actions.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import gnuconfig -from pisi.actionsapi import kde - -def setup(): - gnuconfig.gnuconfig_update() - - # amarok does not respect kde coding standards, and makes a lot of - # assuptions regarding its installation directory. For this reason, - # it must be installed in the KDE install directory. - kde.configure('--with-arts --with-xine --with-gstreamer --with-opengl --with-libvisual --disable-amazon --disable-debug --without-debug') - -def build(): - kde.make() - -def install(): - kde.install() diff --git a/samples/amarok/pspec.xml b/samples/amarok/pspec.xml deleted file mode 100644 index f2897e5f..00000000 --- a/samples/amarok/pspec.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - amarok - http://amarok.kde.org/ - - Barış Metin - baris@uludag.org.tr - - GPL - applications:audio - desktop:kde - Amarok audio player - Feature-rich audio player for KDE system. - - http://umn.dl.sourceforge.net/sourceforge/amarok/amarok-1.3-beta1.tar.bz2 - - - kdelibs - - - - 06/25/2005 - 1.3-beta1 - 1 - - - - - - amarok - Amarok audio player - Feature-rich audio player for KDE system. - - kdebase - - - /usr/kde/3.4/lib - /usr/kde/3.4/share - /usr/kde/3.4/share/locale - /usr/kde/3.4/bin - - - - - amarok-docs - Documentation files for Amarok audio player - Feature-rich audio player for KDE system. -This package provides documentation files for Amarok. - - - /usr/kde/3.4/share/doc - - - - diff --git a/samples/bash/actions.py b/samples/bash/actions.py deleted file mode 100644 index e45d9c0d..00000000 --- a/samples/bash/actions.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import gnuconfig -from pisi.actionsapi import autotools -from pisi.actionsapi import pisitools - - -def setup(): - gnuconfig.gnuconfig_update() - - pisitools.dosed("configure", "s:-lcurses:-lncurses:") - - autotools.configure("--with-nls --disable-profiling --without-gnu-malloc") - - pisitools.dosed("Makefile", "/^TERMCAP_LIB/s:-lncurses:-Wl,-Bstatic -lncurses -Wl,-Bdynamic:") - -def build(): - autotools.make() - -def install(): - autotools.install() diff --git a/samples/bash/files/bash-2.05-2.4.4.patch b/samples/bash/files/bash-2.05-2.4.4.patch deleted file mode 100644 index aee1211c..00000000 --- a/samples/bash/files/bash-2.05-2.4.4.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- jobs.c -+++ jobs.c Wed May 2 18:20:31 2001 -@@ -1166,6 +1166,15 @@ - pid_t mypid; - - mypid = getpid (); -+ -+ if (interrupt_state) -+ { -+ struct timeval tv; -+ struct rusage rx; -+ (void) gettimeofday(&tv, NULL); -+ (void) getrusage(RUSAGE_SELF, &rx); -+ } -+ - #if defined (BUFFERED_INPUT) - /* Close default_buffered_input if it's > 0. We don't close it if it's - 0 because that's the file descriptor used when redirecting input, ---- quit.h -+++ quit.h Wed May 2 17:38:34 2001 -@@ -21,8 +21,12 @@ - #if !defined (_QUIT_H_) - #define _QUIT_H_ - -+#define __need_sig_atomic_t -+#include -+#undef __need_sig_atomic_t -+ - /* Non-zero means SIGINT has already ocurred. */ --extern int interrupt_state; -+extern volatile sig_atomic_t interrupt_state; - - extern void throw_to_top_level (); - ---- sig.c -+++ sig.c Wed May 2 17:36:17 2001 -@@ -57,7 +57,7 @@ - extern int interactive, interactive_shell, login_shell, startup_state; - - /* Non-zero after SIGINT. */ --int interrupt_state; -+volatile sig_atomic_t interrupt_state = 0; - - /* The environment at the top-level R-E loop. We use this in - the case of error return. */ -@@ -69,7 +69,7 @@ - #endif /* JOB_CONTROL */ - - /* When non-zero, we throw_to_top_level (). */ --int interrupt_immediately = 0; -+volatile sig_atomic_t interrupt_immediately = 0; - - static void initialize_shell_signals (); - diff --git a/samples/bash/files/bash-2.05a-security.patch b/samples/bash/files/bash-2.05a-security.patch deleted file mode 100644 index a10f701f..00000000 --- a/samples/bash/files/bash-2.05a-security.patch +++ /dev/null @@ -1,91 +0,0 @@ ---- builtins/fc.def -+++ builtins/fc.def 2001/08/28 11:20:53 -@@ -371,6 +371,9 @@ - { - unlink (fn); - free (fn); -+#ifdef DEBFIX -+ free (command); -+#endif - return (EXECUTION_FAILURE); - } - -@@ -383,6 +386,9 @@ - /* 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"); -+#ifdef DEBFIX -+ add_unwind_protect ((Function *)xfree, command); -+#endif - add_unwind_protect ((Function *)xfree, fn); - add_unwind_protect (unlink, fn); - unwind_protect_int (echo_input_at_read); ---- variables.c.orig Wed Aug 21 12:10:57 2002 -+++ variables.c Wed Aug 21 12:14:18 2002 -@@ -1035,6 +1035,7 @@ - return v; - } - -+#if !defined(linux) - /* The random number seed. You can change this by setting RANDOM. */ - static unsigned long rseed = 1; - static int last_random_value; -@@ -1060,6 +1061,21 @@ - last_random_value = 0; - } - -+#else -+ -+static int last_sbrand_pid; -+ -+static int brand () -+{ -+ return random() & 32767; -+} -+ -+static void sbrand (unsigned long seed) -+{ -+ srandom(seed); -+} -+#endif -+ - static SHELL_VAR * - assign_random (self, value, unused) - SHELL_VAR *self; -@@ -1075,6 +1091,7 @@ - { - int rv; - -+#if !defined(linux) - /* Reset for command and process substitution. */ - if (subshell_environment) - sbrand (rseed + getpid() + NOW); -@@ -1082,6 +1099,18 @@ - do - rv = brand (); - while (rv == last_random_value); -+#else -+ if (subshell_environment) -+ { -+ int mypid = getpid(); -+ if (mypid != last_sbrand_pid) -+ { -+ last_sbrand_pid = mypid; -+ sbrand (mypid + NOW); -+ } -+ } -+ rv = brand(); -+#endif - return rv; - } - -@@ -1093,7 +1122,9 @@ - char *p; - - rv = get_random_number (); -+#if !defined(linux) - last_random_value = rv; -+#endif - p = itos (rv); - - FREE (value_cell (var)); diff --git a/samples/bash/files/bash-3.0-afs.patch b/samples/bash/files/bash-3.0-afs.patch deleted file mode 100644 index c7429cfe..00000000 --- a/samples/bash/files/bash-3.0-afs.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- bash-3.0/redir.c.afs 2005-04-20 09:16:15.000000000 +0100 -+++ bash-3.0/redir.c 2005-04-20 09:16:58.000000000 +0100 -@@ -596,7 +596,9 @@ - fd = open (filename, flags, mode); - #if defined (AFS) - if ((fd < 0) && (errno == EACCES)) -- fd = open (filename, flags & ~O_CREAT, mode); -+ if ((fd = open (filename, flags & ~O_CREAT, mode)) < 0) -+ /* Restore previous errno. */ -+ errno = EACCES; - #endif /* AFS */ - } - diff --git a/samples/bash/files/bash-3.0-crash.patch b/samples/bash/files/bash-3.0-crash.patch deleted file mode 100644 index 984e85d8..00000000 --- a/samples/bash/files/bash-3.0-crash.patch +++ /dev/null @@ -1,46 +0,0 @@ -> Machine Type: i686-pc-linux-gnu -> -> Bash Version: 3.0 -> Patch Level: 0 -> Release Status: release -> -> Description: -> GNU bash, version 3.00.0(1)-release (i686-pc-linux-gnu) -> (and -> GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu) -> -> dumps a core because of a null pointer "in make_bare_word -> at make_cmd.c:90" (see gdb output below) - -Thanks for the report. Here's a quick fix: - -*** arrayfunc.c~ Sat Nov 6 15:08:29 2004 ---- arrayfunc.c Mon Jan 31 11:56:21 2005 -*************** -*** 709,713 **** - return ((char *)NULL); - } -! else if (var == 0) - return ((char *)NULL); - else if (array_p (var) == 0) ---- 709,713 ---- - return ((char *)NULL); - } -! else if (var == 0 || value_cell (var) == 0) - return ((char *)NULL); - else if (array_p (var) == 0) - - -Chet - --- -``The lyf so short, the craft so long to lerne.'' - Chaucer -( ``Discere est Dolere'' -- chet ) - Live...Laugh...Love -Chet Ramey, ITS, CWRU chet@po.cwru.edu http://tiswww.tis.cwru.edu/~chet/ - - -_______________________________________________ -Bug-bash mailing list -Bug-bash@gnu.org -http://lists.gnu.org/mailman/listinfo/bug-bash diff --git a/samples/bash/files/bash-3.0-darwin-conn.patch b/samples/bash/files/bash-3.0-darwin-conn.patch deleted file mode 100644 index ef21eebf..00000000 --- a/samples/bash/files/bash-3.0-darwin-conn.patch +++ /dev/null @@ -1,19 +0,0 @@ -Sune Foldager writes: -On Darwin (Mac OS X), bash incorrectly assumed that it has been called over a network connection -(such as ssh, rsh etc.), when stdin stems from the pipe() system call. This is because bash's heuristic -code for determining if it's been started over a net connection is incorrect on Darwin kernels. - -http://bugs.gentoo.org/show_bug.cgi?id=79124 - ---- /lib/sh/netconn.c -+++ /lib/sh/netconn.c -@@ -53,7 +53,8 @@ - l = sizeof(sa); - rv = getpeername(fd, &sa, &l); - /* Solaris 2.5 getpeername() returns EINVAL if the fd is not a socket. */ -- return ((rv < 0 && (errno == ENOTSOCK || errno == EINVAL)) ? 0 : 1); -+ /* Darwin 7.7.0 getpeername() returns ENOTCONN if the fd was created with pipe(). */ -+ return ((rv < 0 && (errno == ENOTSOCK || errno == ENOTCONN || errno == EINVAL)) ? 0 : 1); - #else /* !HAVE_GETPEERNAME || SVR4_2 || __BEOS__ */ - # if defined (SVR4) || defined (SVR4_2) - /* Sockets on SVR4 and SVR4.2 are character special (streams) devices. */ diff --git a/samples/bash/files/bash-3.0-etc-inputrc.patch b/samples/bash/files/bash-3.0-etc-inputrc.patch deleted file mode 100644 index 4331bd1d..00000000 --- a/samples/bash/files/bash-3.0-etc-inputrc.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- bash-3.0/lib/readline/bind.c.agriffis 2004-03-03 22:39:32.000000000 -0500 -+++ bash-3.0/lib/readline/bind.c 2004-08-02 13:53:02.365731918 -0400 -@@ -781,6 +781,7 @@ - 1. the filename used for the previous call - 2. the value of the shell variable `INPUTRC' - 3. ~/.inputrc -+ 4. /etc/inputrc - If the file existed and could be opened and read, 0 is returned, - otherwise errno is returned. */ - int -@@ -789,17 +790,20 @@ - { - /* Default the filename. */ - if (filename == 0) -+ filename = last_readline_init_file; -+ if (filename == 0) -+ filename = sh_get_env_value ("INPUTRC"); -+ if (filename == 0 || *filename == 0) - { -- filename = last_readline_init_file; -- if (filename == 0) -- filename = sh_get_env_value ("INPUTRC"); -- if (filename == 0) -- filename = DEFAULT_INPUTRC; -+ /* If there's trouble reading DEFAULT_INPUTRC then fall back to -+ * the system inputrc -+ */ -+ filename = DEFAULT_INPUTRC; -+ if (_rl_read_init_file (filename, 0) == 0) -+ return 0; -+ filename = "/etc/inputrc"; - } - -- if (*filename == 0) -- filename = DEFAULT_INPUTRC; -- - #if defined (__MSDOS__) - if (_rl_read_init_file (filename, 0) == 0) - return 0; diff --git a/samples/bash/files/bash-3.0-evalexp.patch b/samples/bash/files/bash-3.0-evalexp.patch deleted file mode 100644 index 11b28cdb..00000000 --- a/samples/bash/files/bash-3.0-evalexp.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- expr.c -+++ expr.c 2004-07-30 16:39:48.000000000 +0200 -@@ -406,8 +406,8 @@ - value = expcond (); - if (curtok == EQ || curtok == OP_ASSIGN) - { -- int special, op; -- intmax_t lvalue; -+ int special, op = -1; -+ intmax_t lvalue = 0; - - special = curtok == OP_ASSIGN; - diff --git a/samples/bash/files/bash-3.0-gentoo.diff.bz2 b/samples/bash/files/bash-3.0-gentoo.diff.bz2 deleted file mode 100644 index e1e259bd..00000000 Binary files a/samples/bash/files/bash-3.0-gentoo.diff.bz2 and /dev/null differ diff --git a/samples/bash/files/bash-3.0-jobs.patch b/samples/bash/files/bash-3.0-jobs.patch deleted file mode 100644 index b5d1ed4c..00000000 --- a/samples/bash/files/bash-3.0-jobs.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- bash-3.0/tests/jobs4.sub.jobs 2004-05-06 14:02:41.000000000 +0100 -+++ bash-3.0/tests/jobs4.sub 2004-09-08 16:07:25.305385245 +0100 -@@ -18,5 +18,5 @@ - - wait - --cat & -+sleep 100 & - kill -1 %% && echo i killed it || echo could not kill it ---- bash-3.0/jobs.c.jobs 2004-09-08 16:07:25.081427747 +0100 -+++ bash-3.0/jobs.c 2004-09-08 16:18:06.698604033 +0100 -@@ -2475,6 +2475,7 @@ - PROCESS *child; - pid_t pid; - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; -+ static int wcontinued_not_supported = 0; - - call_set_current = children_exited = 0; - last_stopped_job = NO_JOB; -@@ -2488,7 +2489,15 @@ - : 0; - if (sigchld || block == 0) - waitpid_flags |= WNOHANG; -+ retry: -+ if (wcontinued_not_supported) -+ waitpid_flags &= ~WCONTINUED; - pid = WAITPID (-1, &status, waitpid_flags); -+ if (pid == -1 && errno == EINVAL) -+ { -+ wcontinued_not_supported = 1; -+ goto retry; -+ } - - /* The check for WNOHANG is to make sure we decrement sigchld only - if it was non-zero before we called waitpid. */ diff --git a/samples/bash/files/bash-3.0-locale.patch b/samples/bash/files/bash-3.0-locale.patch deleted file mode 100644 index 96bad86b..00000000 --- a/samples/bash/files/bash-3.0-locale.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- bash-3.0/locale.c.~1~ 2004-03-17 14:33:36.000000000 +0100 -+++ bash-3.0/locale.c 2004-08-01 11:05:15.484280755 +0200 -@@ -71,9 +71,10 @@ set_default_locale () - textdomain (PACKAGE); - } - --/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES and LC_NUMERIC -- if they are not specified in the environment, but LC_ALL is. This -- should be called from main() after parsing the environment. */ -+/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES, LC_NUMERIC -+ and LC_TIME if they are not specified in the environment, but LC_ALL -+ is. This should be called from main() after parsing the -+ environment. */ - void - set_default_locale_vars () - { -@@ -109,6 +110,12 @@ set_default_locale_vars () - setlocale (LC_NUMERIC, lc_all); - # endif /* LC_NUMERIC */ - -+# if defined (LC_TIME) -+ val = get_string_value ("LC_TIME"); -+ if (val == 0 && lc_all && *lc_all) -+ setlocale (LC_TIME, lc_all); -+# endif /* LC_TIME */ -+ - #endif /* HAVE_SETLOCALE */ - - val = get_string_value ("TEXTDOMAIN"); -@@ -213,6 +220,13 @@ set_locale_var (var, value) - return (setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")) != 0); - # endif /* LC_NUMERIC */ - } -+ else if (var[3] == 'T' && var[4] == 'I') /* LC_TIME */ -+ { -+# if defined (LC_TIME) -+ if (lc_all == 0 || *lc_all == '\0') -+ return (setlocale (LC_TIME, get_locale_var ("LC_TIME")) != 0); -+# endif /* LC_TIME */ -+ } - #endif /* HAVE_SETLOCALE */ - - return (0); -@@ -285,6 +299,9 @@ reset_locale_vars () - # if defined (LC_NUMERIC) - setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")); - # endif -+# if defined (LC_TIME) -+ setlocale (LC_TIME, get_locale_var ("LC_TIME")); -+# endif - - locale_setblanks (); - ---- bash-3.0/variables.c.~1~ 2004-07-04 19:57:26.000000000 +0200 -+++ bash-3.0/variables.c 2004-08-01 11:07:47.331188616 +0200 -@@ -3646,6 +3646,7 @@ static struct name_and_function special_ - { "LC_CTYPE", sv_locale }, - { "LC_MESSAGES", sv_locale }, - { "LC_NUMERIC", sv_locale }, -+ { "LC_TIME", sv_locale }, - - { "MAIL", sv_mail }, - { "MAILCHECK", sv_mail }, diff --git a/samples/bash/files/bash-3.0-manpage.patch b/samples/bash/files/bash-3.0-manpage.patch deleted file mode 100644 index 07016032..00000000 --- a/samples/bash/files/bash-3.0-manpage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-3.0/doc/bash.1.manpage 2004-11-30 09:33:54.727381784 +0000 -+++ bash-3.0/doc/bash.1 2004-11-30 09:34:06.799075585 +0000 -@@ -3929,7 +3929,7 @@ - .B SIGHUP - to all jobs when an interactive login shell exits. - .PP --If \Bbash\fP is waiting for a command to complete and receives a signal -+If \fBbash\fP is waiting for a command to complete and receives a signal - for which a trap has been set, the trap will not be executed until - the command completes. - When \fBbash\fP is waiting for an asynchronous command via the \fBwait\fP diff --git a/samples/bash/files/bash-3.0-nfs_redir.patch b/samples/bash/files/bash-3.0-nfs_redir.patch deleted file mode 100644 index ac245c9b..00000000 --- a/samples/bash/files/bash-3.0-nfs_redir.patch +++ /dev/null @@ -1,148 +0,0 @@ ---- redir.c -+++ redir.c 2005-01-28 15:22:21.950230271 +0100 -@@ -169,12 +169,13 @@ - how to undo the redirections later, if non-zero. If flags & RX_CLEXEC - is non-zero, file descriptors opened in do_redirection () have their - close-on-exec flag set. */ -+static int close_before_dup2_err; - int - do_redirections (list, flags) - REDIRECT *list; - int flags; - { -- int error; -+ int error, ret = 0; - REDIRECT *temp; - - if (flags & RX_UNDOABLE) -@@ -190,14 +191,21 @@ - - for (temp = list; temp; temp = temp->next) - { -+ close_before_dup2_err = 0; - error = do_redirection_internal (temp, flags); - if (error) - { - redirection_error (temp, error); - return (error); - } -+ if (close_before_dup2_err) -+ { -+ redirection_error (temp, close_before_dup2_err); -+ ret = close_before_dup2_err; -+ } - } -- return (0); -+ -+ return (ret); - } - - /* Return non-zero if the redirection pointed to by REDIRECT has a -@@ -759,6 +767,8 @@ - #if defined (BUFFERED_INPUT) - check_bash_input (redirector); - #endif -+ if ((fd != redirector) && (close(redirector) < 0) && (errno != EBADF)) -+ close_before_dup2_err = errno; - - if ((fd != redirector) && (dup2 (fd, redirector) < 0)) - return (errno); -@@ -838,6 +848,9 @@ - #if defined (BUFFERED_INPUT) - check_bash_input (redirector); - #endif -+ if ((fd != redirector) && (close(redirector) < 0) && (errno != EBADF)) -+ close_before_dup2_err = errno; -+ - if (fd != redirector && dup2 (fd, redirector) < 0) - { - r = errno; -@@ -880,6 +893,9 @@ - #if defined (BUFFERED_INPUT) - check_bash_input (redirector); - #endif -+ if ((close(redirector) < 0) && (errno != EBADF)) -+ close_before_dup2_err = errno; -+ - /* This is correct. 2>&1 means dup2 (1, 2); */ - if (dup2 (redir_fd, redirector) < 0) - return (errno); ---- execute_cmd.c -+++ execute_cmd.c 2005-01-28 16:09:10.383937390 +0100 -@@ -119,7 +119,7 @@ - static void do_piping __P((int, int)); - static void bind_lastarg __P((char *)); - static int shell_control_structure __P((enum command_type)); --static void cleanup_redirects __P((REDIRECT *)); -+static int cleanup_redirects __P((REDIRECT *)); - - #if defined (JOB_CONTROL) - static int restore_signal_mask __P((sigset_t *)); -@@ -393,12 +393,13 @@ - - /* A function to use to unwind_protect the redirection undo list - for loops. */ --static void -+static int - cleanup_redirects (list) - REDIRECT *list; - { -- do_redirections (list, RX_ACTIVE); -+ int ret = do_redirections (list, RX_ACTIVE); - dispose_redirects (list); -+ return (ret ? 1 : 0); - } - - #if 0 -@@ -603,7 +604,7 @@ - redirection.) */ - if (do_redirections (command->redirects, RX_ACTIVE|RX_UNDOABLE) != 0) - { -- cleanup_redirects (redirection_undo_list); -+ (void)cleanup_redirects (redirection_undo_list); - redirection_undo_list = (REDIRECT *)NULL; - dispose_exec_redirects (); - return (EXECUTION_FAILURE); -@@ -2593,7 +2594,7 @@ - int pipe_in, pipe_out, async; - pid_t old_last_command_subst_pid; - { -- int r; -+ int r, s; - - if (pipe_in != NO_PIPE || pipe_out != NO_PIPE || async) - { -@@ -2632,10 +2633,10 @@ - substitution. Otherwise, return EXECUTION_SUCCESS. */ - - r = do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE); -- cleanup_redirects (redirection_undo_list); -+ s = cleanup_redirects (redirection_undo_list); - redirection_undo_list = (REDIRECT *)NULL; - -- if (r != 0) -+ if (r != 0 || s != 0) - return (EXECUTION_FAILURE); - else if (old_last_command_subst_pid != last_command_subst_pid) - return (last_command_exit_value); -@@ -3404,7 +3405,7 @@ - - if (do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE) != 0) - { -- cleanup_redirects (redirection_undo_list); -+ (void)cleanup_redirects (redirection_undo_list); - redirection_undo_list = (REDIRECT *)NULL; - dispose_exec_redirects (); - return (EX_REDIRFAIL); /* was EXECUTION_FAILURE */ -@@ -3463,8 +3464,10 @@ - - if (redirection_undo_list) - { -- cleanup_redirects (redirection_undo_list); -+ int ret = cleanup_redirects (redirection_undo_list); - redirection_undo_list = (REDIRECT *)NULL; -+ if (result == 0) -+ result = ret; - } - - return (result); diff --git a/samples/bash/files/bash-3.0-privmode.patch b/samples/bash/files/bash-3.0-privmode.patch deleted file mode 100644 index 27aa4004..00000000 --- a/samples/bash/files/bash-3.0-privmode.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urb bash.orig/shell.c bash/shell.c ---- bash.orig/shell.c 2003-06-03 19:50:35.000000000 +0200 -+++ bash/shell.c 2003-09-28 00:26:28.000000000 +0200 -@@ -447,7 +447,7 @@ - if (dump_translatable_strings) - read_but_dont_execute = 1; - -- if (running_setuid && privileged_mode == 0) -+ if (running_setuid && privileged_mode == 0 && act_like_sh == 0) - disable_priv_mode (); - - /* Need to get the argument to a -c option processed in the diff --git a/samples/bash/files/bash-3.0-prompt.patch b/samples/bash/files/bash-3.0-prompt.patch deleted file mode 100644 index 9f7c1d20..00000000 --- a/samples/bash/files/bash-3.0-prompt.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- lib/readline/display.c.orig 2004-11-08 13:08:07.591703936 +0200 -+++ lib/readline/display.c 2004-11-08 13:08:25.111040592 +0200 -@@ -941,6 +941,7 @@ - /* nleft == number of characters in the line buffer between the - start of the line and the cursor position. */ - nleft = c_pos - pos; -+#if 0 - - /* Since _rl_backspace() doesn't know about invisible characters in the - prompt, and there's no good way to tell it, we compensate for -@@ -954,6 +955,8 @@ - _rl_last_c_pos = nleft; - } - -+#endif -+ - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_move_cursor_relative (nleft, &invisible_line[pos]); - else if (nleft != _rl_last_c_pos) diff --git a/samples/bash/files/bash-3.0-pwd.patch b/samples/bash/files/bash-3.0-pwd.patch deleted file mode 100644 index 09c62e64..00000000 --- a/samples/bash/files/bash-3.0-pwd.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-3.0/parse.y.pwd 2005-03-15 14:22:36.000000000 +0000 -+++ bash-3.0/parse.y 2005-03-15 14:22:37.000000000 +0000 -@@ -4103,7 +4103,7 @@ - #define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0) - #define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0) - /* Abbreviate \W as ~ if $PWD == $HOME */ -- if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, temp) == 0)) -+ if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, t_string) == 0)) - { - if (ROOT_PATH (t_string) == 0 && DOUBLE_SLASH_ROOT (t_string) == 0) - { diff --git a/samples/bash/files/bash-3.0-random.patch b/samples/bash/files/bash-3.0-random.patch deleted file mode 100644 index 31c830fa..00000000 --- a/samples/bash/files/bash-3.0-random.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -urb bash.orig/config.h.in bash/config.h.in ---- bash.orig/config.h.in 2003-09-22 14:42:35.000000000 +0200 -+++ bash/config.h.in 2003-09-28 00:27:15.000000000 +0200 -@@ -606,6 +606,9 @@ - /* Define if you have the putenv function. */ - #undef HAVE_PUTENV - -+/* Define if you have the random function. */ -+#undef HAVE_RANDOM -+ - /* Define if you have the readlink function. */ - #undef HAVE_READLINK - -@@ -696,6 +699,9 @@ - /* Define if you have the strsignal function or macro. */ - #undef HAVE_STRSIGNAL - -+/* Define if you have the srandom function. */ -+#undef HAVE_SRANDOM -+ - /* Define if you have the sysconf function. */ - #undef HAVE_SYSCONF - -diff -urb bash.orig/variables.c bash/variables.c ---- bash.orig/variables.c 2003-07-31 16:28:57.000000000 +0200 -+++ bash/variables.c 2003-09-28 00:27:15.000000000 +0200 -@@ -1098,16 +1098,22 @@ - static unsigned long rseed = 1; - static int last_random_value; - --/* A linear congruential random number generator based on the example -- one in the ANSI C standard. This one isn't very good, but a more -- complicated one is overkill. */ -+/* Use the random number genrator provided by the standard C library, -+ else use a linear congruential random number generator based on the -+ ANSI C standard. This one isn't very good (the values are alternately -+ odd and even, for example), but a more complicated one is overkill. */ - - /* Returns a pseudo-random number between 0 and 32767. */ - static int - brand () - { -+#if defined(HAVE_RANDOM) -+ rseed = (unsigned int) (labs(random()) & 32767); -+ return rseed; -+#else - rseed = rseed * 1103515245 + 12345; - return ((unsigned int)((rseed >> 16) & 32767)); /* was % 32768 */ -+#endif - } - - /* Set the random number generator seed to SEED. */ -@@ -1115,8 +1121,12 @@ - sbrand (seed) - unsigned long seed; - { -+#if defined(HAVE_SRANDOM) -+ srandom(seed); -+#else - rseed = seed; - last_random_value = 0; -+#endif - } - - static SHELL_VAR * ---- bash/configure.in~ 2004-03-02 00:04:29.000000000 +0100 -+++ bash/configure.in 2004-03-02 00:05:48.000000000 +0100 -@@ -667,6 +667,9 @@ - - AC_FUNC_MKTIME - -+dnl checks for random functions -+AC_CHECK_FUNCS(random srandom) -+ - dnl - dnl Checks for lib/intl and related code (uses some of the output from - dnl AM_GNU_GETTEXT) diff --git a/samples/bash/files/bash-3.0-read-builtin-pipe.patch b/samples/bash/files/bash-3.0-read-builtin-pipe.patch deleted file mode 100644 index 466e45ae..00000000 --- a/samples/bash/files/bash-3.0-read-builtin-pipe.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: -When using 'read -u 3' or the like, and the pipe-buf already contains -more than one line, the first line is returned, and bytes up to the next -multiple of 128 are skipped. - -http://lists.gnu.org/archive/html/bug-bash/2005-03/msg00168.html -http://lists.gnu.org/archive/html/bug-bash/2005-03/msg00173.html -http://bugs.gentoo.org/show_bug.cgi?id=87093 - ---- builtins/read.def -+++ builtins/read.def -@@ -276,7 +276,7 @@ - input_is_tty = isatty (fd); - if (input_is_tty == 0) - #ifndef __CYGWIN__ -- input_is_pipe = (lseek (0, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); -+ input_is_pipe = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); - #else - input_is_pipe = 1; - #endif diff --git a/samples/bash/files/bash-3.0-read-e-segfault.patch b/samples/bash/files/bash-3.0-read-e-segfault.patch deleted file mode 100644 index e578631c..00000000 --- a/samples/bash/files/bash-3.0-read-e-segfault.patch +++ /dev/null @@ -1,26 +0,0 @@ -> Hmm, a better patch for this seems to be: - -I installed this patch a while back: - -*** ../bash-3.0-patched/lib/readline/display.c Wed Sep 8 11:07:51 2004 ---- lib/readline/display.c Fri Nov 12 13:31:42 2004 -*************** -*** 336,340 **** - - local_prompt = local_prompt_prefix = (char *)0; -! prompt_last_invisible = prompt_visible_length = 0; - - if (prompt == 0 || *prompt == 0) ---- 341,346 ---- - - local_prompt = local_prompt_prefix = (char *)0; -! prompt_last_invisible = prompt_invis_chars_first_line = 0; -! prompt_visible_length = prompt_physical_chars = 0; - - if (prompt == 0 || *prompt == 0) - --- -``The lyf so short, the craft so long to lerne.'' - Chaucer -( ``Discere est Dolere'' -- chet ) - Live...Laugh...Love -Chet Ramey, ITS, CWRU chet@po.cwru.edu http://tiswww.tis.cwru.edu/~chet/ diff --git a/samples/bash/files/bash-3.0-rl-del-backspace-policy.patch b/samples/bash/files/bash-3.0-rl-del-backspace-policy.patch deleted file mode 100644 index a70f400c..00000000 --- a/samples/bash/files/bash-3.0-rl-del-backspace-policy.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- lib/readline/terminal.c.orig 2004-11-05 23:02:43.644054384 +0200 -+++ lib/readline/terminal.c 2004-11-05 23:04:09.357024032 +0200 -@@ -148,6 +148,10 @@ - /* Insert key */ - static char *_rl_term_kI; - -+/* The key sequence sent by the Delete key, if any. */ -+static char *_rl_term_kD; -+ -+ - /* Cursor control */ - static char *_rl_term_vs; /* very visible */ - static char *_rl_term_ve; /* normal */ -@@ -314,6 +318,7 @@ - { "ic", &_rl_term_ic }, - { "im", &_rl_term_im }, - { "@", &_rl_term_kH }, /* home down ?? */ -+ { "kD", &_rl_term_kD }, - { "kI", &_rl_term_kI }, /* insert */ - { "kd", &_rl_term_kd }, - { "ke", &_rl_term_ke }, /* end keypad mode */ -@@ -492,6 +497,7 @@ - - rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */ - rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */ -+ rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete); /* Delete */ - - _rl_keymap = xkeymap; - } diff --git a/samples/bash/files/bash-3.0-rl-header.patch b/samples/bash/files/bash-3.0-rl-header.patch deleted file mode 100644 index 2df956cd..00000000 --- a/samples/bash/files/bash-3.0-rl-header.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- lib/readline/readline.h.orig 2004-11-05 23:05:22.918840936 +0200 -+++ lib/readline/readline.h 2004-11-05 23:05:47.657080152 +0200 -@@ -33,6 +33,7 @@ - # include "keymaps.h" - # include "tilde.h" - #else -+# include - # include - # include - # include diff --git a/samples/bash/files/bash-3.0-rl-setenv.patch b/samples/bash/files/bash-3.0-rl-setenv.patch deleted file mode 100644 index 874b698a..00000000 --- a/samples/bash/files/bash-3.0-rl-setenv.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- lib/readline/shell.c~ 2004-10-17 13:07:37.000000000 +0200 -+++ lib/readline/shell.c 2004-10-17 13:06:48.000000000 +0200 -@@ -122,7 +122,7 @@ - { - char *b; - --#if defined (HAVE_PUTENV) -+#if 0 - b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1); - sprintf (b, "LINES=%d", lines); - putenv (b); diff --git a/samples/bash/files/bash-3.0-trap-fg-signals.patch b/samples/bash/files/bash-3.0-trap-fg-signals.patch deleted file mode 100644 index cde18326..00000000 --- a/samples/bash/files/bash-3.0-trap-fg-signals.patch +++ /dev/null @@ -1,23 +0,0 @@ -Don't barf on handled signals inside of scripts. Makes for nicer output. - -patch by Martin Schlemmer - ---- jobs.c -+++ jobs.c -@@ -2893,11 +2893,11 @@ - } - else if (IS_FOREGROUND (job)) - { --#if !defined (DONT_REPORT_SIGPIPE) -- if (termsig && WIFSIGNALED (s) && termsig != SIGINT) --#else -- if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE) --#endif -+ if (termsig && WIFSIGNALED (s) && termsig != SIGINT && -+#if defined (DONT_REPORT_SIGPIPE) -+ termsig != SIGPIPE && -+#endif -+ signal_is_trapped (termsig) == 0) - { - fprintf (stderr, "%s", j_strsignal (termsig)); - diff --git a/samples/bash/files/bash-3.0-ulimit.patch b/samples/bash/files/bash-3.0-ulimit.patch deleted file mode 100644 index 8fcffc8c..00000000 --- a/samples/bash/files/bash-3.0-ulimit.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- bash-3.0/builtins/ulimit.def 2004-08-27 17:29:19.662577512 +0100 -+++ bash-3.0/builtins/ulimit.def 2004-08-31 12:56:27.693244884 +0100 -@@ -35,14 +35,17 @@ - -c the maximum size of core files created - -d the maximum size of a process's data segment - -f the maximum size of files created by the shell -+ -i the maximum number of pending signals - -l the maximum size a process may lock into memory - -m the maximum resident set size - -n the maximum number of open file descriptors - -p the pipe buffer size -+ -q the maximum number of bytes in POSIX message queues - -s the maximum stack size - -t the maximum amount of cpu time in seconds - -u the maximum number of user processes - -v the size of virtual memory -+ -x the maximum number of file locks - - If LIMIT is given, it is the new value of the specified resource; - the special LIMIT values `soft', `hard', and `unlimited' stand for -@@ -200,6 +203,9 @@ - { 'd', RLIMIT_DATA, 1024, "data seg size", "kbytes" }, - #endif - { 'f', RLIMIT_FILESIZE, 1024, "file size", "blocks" }, -+#ifdef RLIMIT_SIGPENDING -+ { 'i', RLIMIT_SIGPENDING, 1, "pending signals", (char *)NULL}, -+#endif - #ifdef RLIMIT_MEMLOCK - { 'l', RLIMIT_MEMLOCK, 1024, "max locked memory", "kbytes" }, - #endif -@@ -208,6 +214,9 @@ - #endif /* RLIMIT_RSS */ - { 'n', RLIMIT_OPENFILES, 1, "open files", (char *)NULL}, - { 'p', RLIMIT_PIPESIZE, 512, "pipe size", "512 bytes" }, -+#ifdef RLIMIT_MSGQUEUE -+ { 'q', RLIMIT_MSGQUEUE, 1, "POSIX message queues", "bytes" }, -+#endif - #ifdef RLIMIT_STACK - { 's', RLIMIT_STACK, 1024, "stack size", "kbytes" }, - #endif -@@ -221,6 +230,9 @@ - #ifdef RLIMIT_SWAP - { 'w', RLIMIT_SWAP, 1024, "swap size", "kbytes" }, - #endif -+#ifdef RLIMIT_LOCKS -+ { 'x', RLIMIT_LOCKS, 1, "file locks", (char *)NULL}, -+#endif - { -1, -1, -1, (char *)NULL, (char *)NULL } - }; - #define NCMDS (sizeof(limits) / sizeof(limits[0])) -@@ -647,11 +659,11 @@ - - for (i = 0; limits[i].option > 0; i++) - { -- if (get_limit (i, &softlim, &hardlim) < 0) -+ if (get_limit (i, &softlim, &hardlim) == 0) -+ printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1); -+ else if (errno != EINVAL) - builtin_error ("%s: cannot get limit: %s", limits[i].description, - strerror (errno)); -- else -- printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1); - } - } - -@@ -670,7 +682,7 @@ - else - sprintf (unitstr, "(-%c) ", limits[limind].option); - -- printf ("%-18s %16s", limits[limind].description, unitstr); -+ printf ("%-20s %16s", limits[limind].description, unitstr); - } - if (curlim == RLIM_INFINITY) - puts ("unlimited"); diff --git a/samples/bash/files/bash-3.0-update-multibyte-ifs.patch b/samples/bash/files/bash-3.0-update-multibyte-ifs.patch deleted file mode 100644 index 6f35aa02..00000000 --- a/samples/bash/files/bash-3.0-update-multibyte-ifs.patch +++ /dev/null @@ -1,261 +0,0 @@ ---- bash-3.0/subst.c.multibyteifs 2004-08-20 15:22:48.366497771 +0100 -+++ bash-3.0/subst.c 2004-08-20 18:13:30.833624616 +0100 -@@ -124,7 +124,12 @@ - SHELL_VAR *ifs_var; - char *ifs_value; - unsigned char ifs_cmap[UCHAR_MAX + 1]; -+#if defined (HANDLE_MULTIBYTE) -+unsigned char ifs_firstc[MB_LEN_MAX]; -+size_t ifs_firstc_len; -+#else - unsigned char ifs_firstc; -+#endif - - /* Extern functions and variables from different files. */ - extern int last_command_exit_value, last_command_exit_signal; -@@ -862,8 +867,14 @@ - char *charlist; - { - register int i = *sindex; -+ size_t slen; -+#if defined (HANDLE_MULTIBYTE) -+ size_t clen; -+ wchar_t *wcharlist = NULL; -+#endif - int c; - char *temp; -+ DECLARE_MBSTATE; - - if (charlist[0] == '\'' && charlist[1] == '\0') - { -@@ -872,18 +883,65 @@ - return temp; - } - -- for (i = *sindex; c = string[i]; i++) -+ slen = strlen (string + *sindex) + *sindex; -+ i = *sindex; -+#if defined (HANDLE_MULTIBYTE) -+ clen = strlen (charlist); -+#endif -+ while ((c = string[i])) - { -+#if defined (HANDLE_MULTIBYTE) -+ size_t mblength; -+#endif -+ - if (c == CTLESC) - { -- i++; -+ i += 2; - continue; - } - -+#if defined (HANDLE_MULTIBYTE) -+ mblength = mblen (string + i, slen - i); -+ if (mblength > 1) -+ { -+ wchar_t wc; -+ size_t mblength = mbtowc (&wc, string + i, slen - i); -+ if (MB_INVALIDCH (mblength)) -+ { -+ if (MEMBER (c, charlist)) -+ break; -+ } -+ else -+ { -+ if (!wcharlist) -+ { -+ size_t len = mbstowcs (wcharlist, charlist, 0); -+ if (len == -1) -+ len = 0; -+ wcharlist = xmalloc (1 + sizeof (wchar_t) * len); -+ mbstowcs (wcharlist, charlist, len); -+ } -+ -+ if (wcschr (wcharlist, wc)) -+ { -+ break; -+ } -+ } -+ } -+ else -+#endif -+ - if (MEMBER (c, charlist)) - break; -+ -+ ADVANCE_CHAR (string, slen, i); - } - -+#if defined (HANDLE_MULTIBYTE) -+ if (wcharlist) -+ free (wcharlist); -+#endif -+ - temp = substring (string, *sindex, i); - *sindex = i; - -@@ -1456,11 +1514,36 @@ - d2 = 0; - if (delims) - { -- d2 = (char *)xmalloc (strlen (delims) + 1); -- for (i = ts = 0; delims[i]; i++) -+ size_t slength = strlen (delims); -+#if defined (HANDLE_MULTIBYTE) -+ size_t mblength = 1; -+ DECLARE_MBSTATE; -+#endif -+ -+ d2 = (char *)xmalloc (slength + 1); -+ i = ts = 0; -+ while (delims[i]) - { -+#if defined (HANDLE_MULTIBYTE) -+ mbstate_t state_bak = state; -+ mblength = mbrlen (delims + i, slength, &state); -+ -+ if (MB_INVALIDCH (mblength)) -+ state = state_bak; -+ else if (mblength != 1) -+ { -+ memcpy (d2 + ts, delims + i, mblength); -+ ts += mblength; -+ i += mblength; -+ slength -= mblength; -+ continue; -+ } -+#endif -+ - if (whitespace(delims[i]) == 0) - d2[ts++] = delims[i]; -+ i++; -+ slength--; - } - d2[ts] = '\0'; - } -@@ -1654,10 +1737,19 @@ - string_list_dollar_star (list) - WORD_LIST *list; - { -+#if defined (HANDLE_MULTIBYTE) -+ char sep[MB_CUR_MAX + 1]; -+#else - char sep[2]; -+#endif - -+#if defined (HANDLE_MULTIBYTE) -+ memcpy (sep, ifs_firstc, ifs_firstc_len); -+ sep[ifs_firstc_len] = '\0'; -+#else - sep[0] = ifs_firstc; - sep[1] = '\0'; -+#endif - - return (string_list_internal (list, sep)); - } -@@ -1676,14 +1768,41 @@ - WORD_LIST *list; - int quoted; - { -- char *ifs, sep[2]; -+ char *ifs; -+#if defined (HANDLE_MULTIBYTE) -+ char sep[MB_CUR_MAX + 1]; -+#else -+ char sep[2]; -+#endif - WORD_LIST *tlist; - - /* XXX this could just be ifs = ifs_value; */ - ifs = ifs_var ? value_cell (ifs_var) : (char *)0; - -+#if defined (HANDLE_MULTIBYTE) -+ if (ifs && *ifs) -+ { -+ size_t mblength = mblen (ifs, strnlen (ifs, MB_CUR_MAX)); -+ if (MB_INVALIDCH (mblength)) -+ { -+ sep[0] = *ifs; -+ sep[1] = '\0'; -+ } -+ else -+ { -+ memcpy (sep, ifs, mblength); -+ sep[mblength] = '\0'; -+ } -+ } -+ else -+ { -+ sep[0] = ' '; -+ sep[1] = '\0'; -+ } -+#else - sep[0] = (ifs == 0 || *ifs == 0) ? ' ' : *ifs; - sep[1] = '\0'; -+#endif - - tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) - ? quote_list (list) -@@ -1732,6 +1851,7 @@ - WORD_DESC *t; - char *current_word, *s; - int sindex, sh_style_split, whitesep; -+ size_t slen = 0; - - if (!string || !*string) - return ((WORD_LIST *)NULL); -@@ -1805,7 +1925,12 @@ - - /* Move past the current separator character. */ - if (string[sindex]) -- sindex++; -+ { -+ DECLARE_MBSTATE; -+ if (!slen) -+ slen = strlen (string); -+ ADVANCE_CHAR (string, slen, sindex); -+ } - - /* Now skip sequences of space, tab, or newline characters if they are - in the list of separators. */ -@@ -6796,7 +6921,21 @@ - ifs_cmap[uc] = 1; - } - -+#if defined (HANDLE_MULTIBYTE) -+ if (!ifs_value) -+ { -+ ifs_firstc[0] = '\0'; -+ ifs_firstc_len = 1; -+ } -+ else -+ { -+ size_t ifs_len = strnlen (ifs_value, MB_CUR_MAX); -+ ifs_firstc_len = mblen (ifs_value, ifs_len); -+ memcpy (ifs_firstc, ifs_value, ifs_firstc_len); -+ } -+#else - ifs_firstc = ifs_value ? *ifs_value : 0; -+#endif - } - - char * ---- bash-3.0/subst.h.multibyteifs 2004-08-20 15:51:08.301074583 +0100 -+++ bash-3.0/subst.h 2004-08-20 15:51:39.070206473 +0100 -@@ -231,7 +231,12 @@ - extern SHELL_VAR *ifs_var; - extern char *ifs_value; - extern unsigned char ifs_cmap[]; -+#if defined (HANDLE_MULTIBYTE) -+extern unsigned char ifs_firstc[]; -+extern size_t ifs_firstc_len; -+#else - extern unsigned char ifs_firstc; -+#endif - - /* Evaluates to 1 if C is a character in $IFS. */ - #define isifs(c) (ifs_cmap[(unsigned char)(c)] != 0) - - diff --git a/samples/bash/files/bash-3.0-utf8.patch b/samples/bash/files/bash-3.0-utf8.patch deleted file mode 100644 index b1946261..00000000 --- a/samples/bash/files/bash-3.0-utf8.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- lib/readline/display.c -+++ lib/readline/display.c 2004-07-30 17:02:51.000000000 +0200 -@@ -1387,7 +1387,7 @@ - insert_some_chars (nfd, lendiff, col_lendiff); - _rl_last_c_pos += col_lendiff; - } -- else if (*ols == 0 && lendiff > 0) -+ else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && (*ols == 0 && lendiff > 0)) - { - /* At the end of a line the characters do not have to - be "inserted". They can just be placed on the screen. */ ---- lib/readline/histexpand.c -+++ lib/readline/histexpand.c 2004-07-30 17:02:10.000000000 +0200 -@@ -206,6 +206,7 @@ - - /* Only a closing `?' or a newline delimit a substring search string. */ - for (local_index = i; c = string[i]; i++) -+ { - #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { -@@ -221,8 +222,8 @@ - i += v - 1; - continue; - } -- } -- else -+ } -+ - #endif /* HANDLE_MULTIBYTE */ - if ((!substring_okay && (whitespace (c) || c == ':' || - (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) || -@@ -230,6 +231,7 @@ - string[i] == '\n' || - (substring_okay && string[i] == '?')) - break; -+ } - - which = i - local_index; - temp = (char *)xmalloc (1 + which); diff --git a/samples/bash/files/bash30-001 b/samples/bash/files/bash30-001 deleted file mode 100644 index 9e5ae682..00000000 --- a/samples/bash/files/bash30-001 +++ /dev/null @@ -1,164 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-001 - -Bug-Reported-by: Karlheinz Nolte -Bug-Reference-ID: <20040801200058.GA3311@mars.home.k-nolte.de> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00009.html - -Bug-Description: - - The following script triggers the segfault. - This was found by Costa Tsaousis the author of FireHOL. - He wrotes: - - "I think I have found the bug. The script bellow crashes at the - third echo (UNSET). It seems to be a problem of the "unset" BASH - function when erasing arrays. It leaves something behind so that if - the array just unset is referenced, it produces a segmentation fault. - According to the documentation the first and the third expansions - should be exactly the same." - -Patch: - -*** ../bash-3.0/arrayfunc.c Fri Dec 19 00:03:09 2003 ---- arrayfunc.c Sun Aug 1 20:43:00 2004 -*************** -*** 612,616 **** - - free (t); -! return var; - } - ---- 612,616 ---- - - free (t); -! return (var == 0 || invisible_p (var)) ? (SHELL_VAR *)0 : var; - } - - -*** ../bash-3.0/subst.c Sun Jul 4 13:56:13 2004 ---- subst.c Thu Aug 12 13:36:17 2004 -*************** -*** 4983,4987 **** - return -1; - } -! else if ((v = find_variable (varname)) && array_p (v)) - { - vtype = VT_ARRAYMEMBER; ---- 5003,5007 ---- - return -1; - } -! else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && array_p (v)) - { - vtype = VT_ARRAYMEMBER; - -*** ../bash-3.0/variables.c Sun Jul 4 13:57:26 2004 ---- variables.c Wed Aug 4 15:28:04 2004 -*************** -*** 1420,1428 **** - - # if defined (DEBUGGER) -! v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, (att_invisible|att_noassign)); -! v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, (att_invisible|att_noassign)); - # endif /* DEBUGGER */ -! v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, (att_invisible|att_noassign)); -! v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, (att_invisible|att_noassign)); - #endif - ---- 1420,1428 ---- - - # if defined (DEBUGGER) -! v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign); -! v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign); - # endif /* DEBUGGER */ -! v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign); -! v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign); - #endif - -*************** -*** 1600,1604 **** - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! return (old_var); - - was_tmpvar = old_var && tempvar_p (old_var); ---- 1600,1607 ---- - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! { -! VUNSETATTR (old_var, att_invisible); -! return (old_var); -! } - - was_tmpvar = old_var && tempvar_p (old_var); -*** ../bash-3.0/pcomplete.c Thu Jan 8 10:36:17 2004 ---- pcomplete.c Tue Aug 3 23:15:41 2004 -*************** -*** 864,867 **** ---- 864,869 ---- - v = convert_var_to_array (v); - v = assign_array_var_from_word_list (v, lwords); -+ -+ VUNSETATTR (v, att_invisible); - return v; - } -*************** -*** 1022,1025 **** ---- 1024,1029 ---- - if (array_p (v) == 0) - v = convert_var_to_array (v); -+ -+ VUNSETATTR (v, att_invisible); - - a = array_cell (v); -*** ../bash-3.0/array.c Thu May 6 08:24:13 2004 ---- array.c Wed Aug 25 15:50:42 2004 -*************** -*** 452,456 **** - array_dispose_element(new); - free(element_value(ae)); -! ae->value = savestring(v); - return(0); - } else if (element_index(ae) > i) { ---- 454,458 ---- - array_dispose_element(new); - free(element_value(ae)); -! ae->value = v ? savestring(v) : (char *)NULL; - return(0); - } else if (element_index(ae) > i) { - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 0 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ -*** ../bash-3.0/tests/dbg-support.tests Tue Mar 25 15:33:03 2003 ---- tests/dbg-support.tests Tue Aug 3 23:09:29 2004 -*************** -*** 63,68 **** - trap 'print_return_trap $LINENO' RETURN - -! # Funcname is now an array. Vanilla Bash 2.05 doesn't have FUNCNAME array. -! echo "FUNCNAME" ${FUNCNAME[0]} - - # We should trace into the below. ---- 63,68 ---- - trap 'print_return_trap $LINENO' RETURN - -! # Funcname is now an array, but you still can't see it outside a function -! echo "FUNCNAME" ${FUNCNAME[0]:-main} - - # We should trace into the below. diff --git a/samples/bash/files/bash30-002 b/samples/bash/files/bash30-002 deleted file mode 100644 index 57ba938c..00000000 --- a/samples/bash/files/bash30-002 +++ /dev/null @@ -1,66 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-002 - -Bug-Reported-by: "Ralf S. Engelschall" -Bug-Reference-ID: <20040728082038.GA31398@engelschall.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00262.html - -Bug-Description: - -After upgrading the OpenPKG "bash" package to 3.0, we had to discover -that the prompt handling on Bash 3.0 / Readline 5.0 is broken if a -multiline prompt (a string containing newlines) is used. The effect is -that on the first input line (where the last line of the prompt is the -prefix) the input line is wrapped N characters before the last column -where N seems to be exactly the length (including newlines) of the -prompt ($PS1) minus the characters on the last line of the prompt. - -Patch: - -*** ../bash-3.0/lib/readline/display.c Thu May 27 22:57:51 2004 ---- lib/readline/display.c Wed Jul 28 13:48:04 2004 -*************** -*** 352,356 **** - &prompt_last_invisible, - (int *)NULL, -! (int *)NULL); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the ---- 352,356 ---- - &prompt_last_invisible, - (int *)NULL, -! &prompt_physical_chars); - c = *t; *t = '\0'; - /* The portion of the prompt string up to and including the -*************** -*** 359,363 **** - (int *)NULL, - &prompt_invis_chars_first_line, -! &prompt_physical_chars); - *t = c; - return (prompt_prefix_length); ---- 359,363 ---- - (int *)NULL, - &prompt_invis_chars_first_line, -! (int *)NULL); - *t = c; - return (prompt_prefix_length); - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-003 b/samples/bash/files/bash30-003 deleted file mode 100644 index 4a90df9c..00000000 --- a/samples/bash/files/bash30-003 +++ /dev/null @@ -1,124 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-003 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00279.html - -Bug-Description: - -Bash no longer accepts the `trap signum' syntax when in POSIX mode. This -patch restores a measure of backwards compatibility. - -Patch: - -*** ../bash-3.0/builtins/trap.def Thu May 27 22:26:19 2004 ---- builtins/trap.def Thu Aug 5 08:55:43 2004 -*************** -*** 24,28 **** - $BUILTIN trap - $FUNCTION trap_builtin -! $SHORT_DOC trap [-lp] [[arg] signal_spec ...] - The command ARG is to be read and executed when the shell receives - signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC ---- 24,28 ---- - $BUILTIN trap - $FUNCTION trap_builtin -! $SHORT_DOC trap [-lp] [arg signal_spec ...] - The command ARG is to be read and executed when the shell receives - signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC -*************** -*** 88,92 **** - WORD_LIST *list; - { -! int list_signal_names, display, result, opt; - - list_signal_names = display = 0; ---- 88,92 ---- - WORD_LIST *list; - { -! int list_signal_names, display, result, opt, first_signal; - - list_signal_names = display = 0; -*************** -*** 119,130 **** - { - char *first_arg; -! int operation, sig; - - operation = SET; - first_arg = list->word->word; - /* When in posix mode, the historical behavior of looking for a - missing first argument is disabled. To revert to the original - signal handling disposition, use `-' as the first argument. */ -! if (posixly_correct == 0 && first_arg && *first_arg && - (*first_arg != '-' || first_arg[1]) && - signal_object_p (first_arg, opt) && list->next == 0) ---- 119,135 ---- - { - char *first_arg; -! int operation, sig, first_signal; - - operation = SET; - first_arg = list->word->word; -+ first_signal = first_arg && *first_arg && all_digits (first_arg) && signal_object_p (first_arg, opt); -+ -+ /* Backwards compatibility */ -+ if (first_signal) -+ operation = REVERT; - /* When in posix mode, the historical behavior of looking for a - missing first argument is disabled. To revert to the original - signal handling disposition, use `-' as the first argument. */ -! else if (posixly_correct == 0 && first_arg && *first_arg && - (*first_arg != '-' || first_arg[1]) && - signal_object_p (first_arg, opt) && list->next == 0) -*** ../bash-3.0/doc/bashref.texi Sat Jun 26 14:26:07 2004 ---- doc/bashref.texi Fri Aug 27 12:33:46 2004 -*************** -*** 5954,5958 **** - The @code{trap} builtin doesn't check the first argument for a possible - signal specification and revert the signal handling to the original -! disposition if it is. If users want to reset the handler for a given - signal to the original disposition, they should use @samp{-} as the - first argument. ---- 5967,5972 ---- - The @code{trap} builtin doesn't check the first argument for a possible - signal specification and revert the signal handling to the original -! disposition if it is, unless that argument consists solely of digits and -! is a valid signal number. If users want to reset the handler for a given - signal to the original disposition, they should use @samp{-} as the - first argument. - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ -*** ../bash-3.0/tests/errors.right Thu May 27 22:26:03 2004 ---- tests/errors.right Sat Aug 7 22:35:10 2004 -*************** -*** 86,90 **** - ./errors.tests: line 216: trap: NOSIG: invalid signal specification - ./errors.tests: line 219: trap: -s: invalid option -! trap: usage: trap [-lp] [[arg] signal_spec ...] - ./errors.tests: line 225: return: can only `return' from a function or sourced script - ./errors.tests: line 229: break: 0: loop count out of range ---- 86,90 ---- - ./errors.tests: line 216: trap: NOSIG: invalid signal specification - ./errors.tests: line 219: trap: -s: invalid option -! trap: usage: trap [-lp] [arg signal_spec ...] - ./errors.tests: line 225: return: can only `return' from a function or sourced script - ./errors.tests: line 229: break: 0: loop count out of range diff --git a/samples/bash/files/bash30-004 b/samples/bash/files/bash30-004 deleted file mode 100644 index b18e54c5..00000000 --- a/samples/bash/files/bash30-004 +++ /dev/null @@ -1,145 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-004 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: <20040902131957.GC1860@frhdtmp102861.morse.corp.wan> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00291.html - -Bug-Description: - -Calculation of lengths and offsets for parameter string length and substring -expansion does not correctly account for multibyte characters. - -Patch: - - *** ../bash-3.0/subst.c Sun Jul 4 13:56:13 2004 ---- subst.c Thu Aug 12 13:36:17 2004 -*************** -*** 4692,4695 **** ---- 4692,4715 ---- - } - -+ #if defined (HANDLE_MULTIBYTE) -+ size_t -+ mbstrlen (s) -+ const char *s; -+ { -+ size_t clen, nc; -+ mbstate_t mbs; -+ -+ nc = 0; -+ memset (&mbs, 0, sizeof (mbs)); -+ while ((clen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 && (MB_INVALIDCH(clen) == 0)) -+ { -+ s += clen; -+ nc++; -+ } -+ return nc; -+ } -+ #endif -+ -+ - /* Handle the parameter brace expansion that requires us to return the - length of a parameter. */ -*************** -*** 4747,4758 **** - { - t = get_dollar_var_value (arg_index); -! number = STRLEN (t); - FREE (t); - } - #if defined (ARRAY_VARS) -! else if ((var = find_variable (name + 1)) && array_p (var)) - { - t = array_reference (array_cell (var), 0); -! number = STRLEN (t); - } - #endif ---- 4767,4778 ---- - { - t = get_dollar_var_value (arg_index); -! number = MB_STRLEN (t); - FREE (t); - } - #if defined (ARRAY_VARS) -! else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && array_p (var)) - { - t = array_reference (array_cell (var), 0); -! number = MB_STRLEN (t); - } - #endif -*************** -*** 4767,4771 **** - dispose_words (list); - -! number = STRLEN (t); - FREE (t); - } ---- 4787,4791 ---- - dispose_words (list); - -! number = MB_STRLEN (t); - FREE (t); - } -*************** -*** 4872,4876 **** - case VT_VARIABLE: - case VT_ARRAYMEMBER: -! len = strlen (value); - break; - case VT_POSPARMS: ---- 4892,4896 ---- - case VT_VARIABLE: - case VT_ARRAYMEMBER: -! len = MB_STRLEN (value); - break; - case VT_POSPARMS: -*** ../bash-3.0/include/shmbutil.h Mon Apr 19 09:59:42 2004 ---- include/shmbutil.h Thu Sep 2 15:20:47 2004 -*************** -*** 32,35 **** ---- 32,37 ---- - extern size_t xdupmbstowcs __P((wchar_t **, char ***, const char *)); - -+ extern size_t mbstrlen __P((const char *)); -+ - extern char *xstrchr __P((const char *, int)); - -*************** -*** 39,42 **** ---- 41,47 ---- - #endif - -+ #define MBSLEN(s) (((s) && (s)[0]) ? ((s)[1] ? mbstrlen (s) : 1) : 0) -+ #define MB_STRLEN(s) ((MB_CUR_MAX > 1) ? MBSLEN (s) : STRLEN (s)) -+ - #else /* !HANDLE_MULTIBYTE */ - -*************** -*** 54,57 **** ---- 59,64 ---- - #define MB_NULLWCH(x) (0) - #endif -+ -+ #define MB_STRLEN(s) (STRLEN(s)) - - #endif /* !HANDLE_MULTIBYTE */ - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-005 b/samples/bash/files/bash30-005 deleted file mode 100644 index 3d355a7b..00000000 --- a/samples/bash/files/bash30-005 +++ /dev/null @@ -1,63 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-005 - -Bug-Reported-by: schwab@suse.de -Bug-Reference-ID: <20040801085535.E83D41DB3FFE9@sykes.suse.de> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00004.html - -Bug-Description: - -Moving upwards in the history (with previous-history) and back again -clobbers the last history line. - -Patch: - -*** ../bash-3.0/lib/readline/misc.c Wed Jul 7 08:56:32 2004 ---- lib/readline/misc.c Sat Aug 7 22:38:53 2004 -*************** -*** 277,286 **** - _rl_saved_line_for_history->data = (char *)rl_undo_list; - } -- else if (STREQ (rl_line_buffer, _rl_saved_line_for_history->line) == 0) -- { -- free (_rl_saved_line_for_history->line); -- _rl_saved_line_for_history->line = savestring (rl_line_buffer); -- _rl_saved_line_for_history->data = (char *)rl_undo_list; /* XXX possible memleak */ -- } - - return 0; ---- 277,280 ---- -*** ../bash-3.0/lib/readline/vi_mode.c Tue Jul 13 14:08:27 2004 ---- lib/readline/vi_mode.c Tue Aug 17 00:12:09 2004 -*************** -*** 273,280 **** ---- 273,282 ---- - { - case '?': -+ _rl_free_saved_history_line (); - rl_noninc_forward_search (count, key); - break; - - case '/': -+ _rl_free_saved_history_line (); - rl_noninc_reverse_search (count, key); - break; - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-006 b/samples/bash/files/bash30-006 deleted file mode 100644 index fccc33b2..00000000 --- a/samples/bash/files/bash30-006 +++ /dev/null @@ -1,165 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-006 - -Bug-Reported-by: alexander@skwar.name - Tomohiro KUBOTA -Bug-Reference-ID: <20040801124721.C69B8A2547A@server.bei.digitalprojects.com> - <16688.41450.433668.480445@gargle.gargle.HOWL> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00006.html - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=257540 - -Bug-Description: - -Prompts with multibyte characters or invisible characters following a line -wrap are displayed incorrectly. - -Patch: - -*** ../bash-3.0/lib/readline/display.c Thu May 27 22:57:51 2004 ---- lib/readline/display.c Mon Aug 30 11:55:02 2004 -*************** -*** 202,206 **** - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars; - - /* Short-circuit if we can. */ ---- 202,206 ---- - { - char *r, *ret, *p; -! int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars; - - /* Short-circuit if we can. */ -*************** -*** 223,226 **** ---- 223,227 ---- - - invfl = 0; /* invisible chars in first line of prompt */ -+ invflset = 0; /* we only want to set invfl once */ - - for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) -*************** -*** 250,254 **** - *r++ = *p++; - if (!ignoring) -! rl += ind - pind; - else - ninvis += ind - pind; ---- 251,258 ---- - *r++ = *p++; - if (!ignoring) -! { -! rl += ind - pind; -! physchars += _rl_col_width (pmt, pind, ind); -! } - else - ninvis += ind - pind; -*************** -*** 260,273 **** - *r++ = *p; - if (!ignoring) -! rl++; /* visible length byte counter */ - else - ninvis++; /* invisible chars byte counter */ - } - -! if (rl >= _rl_screenwidth) -! invfl = ninvis; -! -! if (ignoring == 0) -! physchars++; - } - } ---- 264,280 ---- - *r++ = *p; - if (!ignoring) -! { -! rl++; /* visible length byte counter */ -! physchars++; -! } - else - ninvis++; /* invisible chars byte counter */ - } - -! if (invflset == 0 && rl >= _rl_screenwidth) -! { -! invfl = ninvis; -! invflset = 1; -! } - } - } -*************** -*** 418,422 **** - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) ---- 425,429 ---- - register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; -! int newlines, lpos, temp, modmark, n0, num; - char *prompt_this_line; - #if defined (HANDLE_MULTIBYTE) -*************** -*** 574,577 **** ---- 581,585 ---- - #if defined (HANDLE_MULTIBYTE) - memset (_rl_wrapped_line, 0, vis_lbsize); -+ num = 0; - #endif - -*************** -*** 592,596 **** ---- 600,619 ---- - prompts that exceed two physical lines? - Additional logic fix from Edward Catmur */ -+ #if defined (HANDLE_MULTIBYTE) -+ n0 = num; -+ temp = local_prompt ? strlen (local_prompt) : 0; -+ while (num < temp) -+ { -+ if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth) -+ { -+ num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); -+ break; -+ } -+ num++; -+ } -+ temp = num + -+ #else - temp = ((newlines + 1) * _rl_screenwidth) + -+ #endif /* !HANDLE_MULTIBYTE */ - ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) -*************** -*** 598,602 **** ---- 621,629 ---- - - inv_lbreaks[++newlines] = temp; -+ #if defined (HANDLE_MULTIBYTE) -+ lpos -= _rl_col_width (local_prompt, n0, num); -+ #else - lpos -= _rl_screenwidth; -+ #endif - } - - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-007 b/samples/bash/files/bash30-007 deleted file mode 100644 index b4abb9be..00000000 --- a/samples/bash/files/bash30-007 +++ /dev/null @@ -1,78 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-007 - -Bug-Reported-by: Oliver Kiddle - Tim Waugh -Bug-Reference-ID: <10454.1091313247@athlon> - <20040804100140.GX8175@redhat.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00313.html - http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00056.html - -Bug-Description: - -Two bugs: - -How does it decide what characters are allowed. The following really -looks like a bug to me: -$ echo {..D} -That's accepted and produces output that seems to wrap round to ^A and -then goes up to D. Note that I'm using an ISO-8859-1 locale. If that -works at all, it should surely descend. - -This short script: - -var=baz -echo foo{bar,${var}.} -echo foo{bar,${var}} - -gives the following output with bash-3.0: - -./test: line 2: foo${var.}: bad substitution -foobar} foobaz - -Patch: - -*** ../bash-3.0/braces.c Thu Dec 4 11:09:52 2003 ---- braces.c Wed Aug 4 14:34:33 2004 -*************** -*** 341,346 **** - if (lhs_t == ST_CHAR) - { -! lhs_v = lhs[0]; -! rhs_v = rhs[0]; - } - else ---- 341,346 ---- - if (lhs_t == ST_CHAR) - { -! lhs_v = (unsigned char)lhs[0]; -! rhs_v = (unsigned char)rhs[0]; - } - else -*************** -*** 403,406 **** ---- 403,407 ---- - pass_next = 1; - i++; -+ level++; - continue; - } - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-008 b/samples/bash/files/bash30-008 deleted file mode 100644 index 57c2c6a4..00000000 --- a/samples/bash/files/bash30-008 +++ /dev/null @@ -1,55 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-008 - -Bug-Reported-by: uberlord@rsm.demon.co.uk -Bug-Reference-ID: <1092327965.4233.1.camel@uberlaptop.ubernet> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00144.html - -Bug-Description: - -> Description: -> Bash 3 breaks array expansion -> -> Repeat-By: -> #!/bin/bash -> x=(one two) -> echo ${x[@]:1} -> # prints nothing in bash 3 -> # prints two in bash 2 - -Patch: - -*** ../bash-3.0/subst.c Sun Jul 4 13:56:13 2004 ---- subst.c Thu Aug 12 13:36:17 2004 -*************** -*** 4892,4896 **** - *e1p += len; - -! if (*e1p >= len || *e1p < 0) - return (-1); - ---- 4912,4916 ---- - *e1p += len; - -! if (*e1p > len || *e1p < 0) - return (-1); - - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-009 b/samples/bash/files/bash30-009 deleted file mode 100644 index 5c1bfd11..00000000 --- a/samples/bash/files/bash30-009 +++ /dev/null @@ -1,111 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-009 - -Bug-Reported-by: Tim Waugh -Bug-Reference-ID: <20040810083805.GT2177@redhat.com> -Bug-Reference-URL: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=129526b - http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00116.html - -Bug-Description: - ---> -Steps to Reproduce: -1. Launch a bash shell -2. Set editing mode to 'vi' with 'set -o vi' -3. Type any command, but don't hit return -4. Enter vi-command mode by hitting the escape key -5. Go to the end of line with the '$' command -6. Type 'r' to change the last character -7. Type any character (other than what the character already is) - -The last two characters are inexplicably swapped -after the last character is changed. -<-- - -Patch: - -*** ../bash-3.0/lib/readline/vi_mode.c Tue Jul 13 14:08:27 2004 ---- lib/readline/vi_mode.c Tue Aug 17 00:12:09 2004 -*************** -*** 691,695 **** - wchar_t wc; - char mb[MB_LEN_MAX+1]; -! int mblen; - mbstate_t ps; - ---- 693,697 ---- - wchar_t wc; - char mb[MB_LEN_MAX+1]; -! int mblen, p; - mbstate_t ps; - -*************** -*** 714,722 **** - if (wc) - { - mblen = wcrtomb (mb, wc, &ps); - if (mblen >= 0) - mb[mblen] = '\0'; - rl_begin_undo_group (); -! rl_delete (1, 0); - rl_insert_text (mb); - rl_end_undo_group (); ---- 716,727 ---- - if (wc) - { -+ p = rl_point; - mblen = wcrtomb (mb, wc, &ps); - if (mblen >= 0) - mb[mblen] = '\0'; - rl_begin_undo_group (); -! rl_vi_delete (1, 0); -! if (rl_point < p) /* Did we retreat at EOL? */ -! rl_point++; /* XXX - should we advance more than 1 for mbchar? */ - rl_insert_text (mb); - rl_end_undo_group (); -*************** -*** 1311,1320 **** - #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! while (_rl_insert_char (1, c)) -! { -! RL_SETSTATE (RL_STATE_MOREINPUT); -! c = rl_read_key (); -! RL_UNSETSTATE (RL_STATE_MOREINPUT); -! } - else - #endif ---- 1316,1329 ---- - #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) -! { -! if (rl_point < p) /* Did we retreat at EOL? */ -! rl_point++; -! while (_rl_insert_char (1, c)) -! { -! RL_SETSTATE (RL_STATE_MOREINPUT); -! c = rl_read_key (); -! RL_UNSETSTATE (RL_STATE_MOREINPUT); -! } -! } - else - #endif - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-010 b/samples/bash/files/bash30-010 deleted file mode 100644 index 0885fe15..00000000 --- a/samples/bash/files/bash30-010 +++ /dev/null @@ -1,116 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-010 - -Bug-Reported-by: Samuel Thibault -Bug-Reference-ID: -Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=261142 - -Bug-Description: - -When trying to auto-complete ~/../``/, I just get: -malloc: bashline.c:1340: assertion botched -free: start and end chunk sizes differ -last command: kill -9 %2 -Stopping myself... - - -Patch: - -*** ../bash-3.0/bashline.c Mon Jul 5 23:22:12 2004 ---- bashline.c Thu Sep 2 16:00:12 2004 -*************** -*** 101,104 **** ---- 101,105 ---- - - /* Helper functions for Readline. */ -+ static int bash_directory_expansion __P((char **)); - static int bash_directory_completion_hook __P((char **)); - static int filename_completion_ignore __P((char **)); -*************** -*** 293,297 **** - at = strchr (rl_completer_word_break_characters, '@'); - if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0)) -! return; - - /* We have something to do. Do it. */ ---- 294,298 ---- - at = strchr (rl_completer_word_break_characters, '@'); - if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0)) -! return old_value; - - /* We have something to do. Do it. */ -*************** -*** 1407,1414 **** - if (*hint_text == '~') - { -! int l, tl, vl; - vl = strlen (val); - tl = strlen (hint_text); - l = vl - hint_len; /* # of chars added */ - temp = (char *)xmalloc (l + 2 + tl); - strcpy (temp, hint_text); ---- 1408,1424 ---- - if (*hint_text == '~') - { -! int l, tl, vl, dl; -! char *rd; - vl = strlen (val); - tl = strlen (hint_text); -+ #if 0 - l = vl - hint_len; /* # of chars added */ -+ #else -+ rd = savestring (filename_hint); -+ bash_directory_expansion (&rd); -+ dl = strlen (rd); -+ l = vl - dl; /* # of chars added */ -+ free (rd); -+ #endif - temp = (char *)xmalloc (l + 2 + tl); - strcpy (temp, hint_text); -*************** -*** 2188,2191 **** ---- 2198,2222 ---- - } - -+ /* Simulate the expansions that will be performed by -+ rl_filename_completion_function. This must be called with the address of -+ a pointer to malloc'd memory. */ -+ static int -+ bash_directory_expansion (dirname) -+ char **dirname; -+ { -+ char *d; -+ -+ d = savestring (*dirname); -+ -+ if (rl_directory_rewrite_hook) -+ (*rl_directory_rewrite_hook) (&d); -+ -+ if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&d)) -+ { -+ free (*dirname); -+ *dirname = d; -+ } -+ } -+ - /* Handle symbolic link references and other directory name - expansions while hacking completion. */ - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-011 b/samples/bash/files/bash30-011 deleted file mode 100644 index 94937b7b..00000000 --- a/samples/bash/files/bash30-011 +++ /dev/null @@ -1,71 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-011 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00277.html - -Bug-Description: - -I've just upgraded to readline 5.0 and bash 3.0 and tried them with UTF-8 -encoding. I found line editing to be quite buggy: - -I type an accented letter, let's say . Then appears. I press the left -arrow, the cursor goes back, it is now over . I press . Now is -visible, which is correct, but the cursor is past the two letters, though -it should be over . Here only the first Left arrow takes affect, moves -the cursor over , but the 2nd time I press Left, it just beeps, doesn't -move to the first char (). Now a Right arrow doesn't move the cursor, but -causes further Left and Right arrows to work as expected. To go on, -similar bug occurs nearly every time that I insert an accented letter -before or amongs other ones (but not at the end of the line). When the -command line has about ten or twenty accented letters (and no or hardly -any non-accented ones), line editing becomes a total chaos, where -sometimes inserting another accented letter causes the cursor to jump many -characters to the right, and pressing the Left arrow sometimes causes the -cursor to jump back lots of characters at once. - -Patch: - -*** ../bash-3.0/lib/readline/mbutil.c Wed Jan 14 09:44:52 2004 ---- lib/readline/mbutil.c Wed Aug 18 22:25:57 2004 -*************** -*** 127,135 **** - { - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! while (wcwidth (wc) == 0) - { - point += tmp; - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2)) - break; - } ---- 127,135 ---- - { - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! while (tmp > 0 && wcwidth (wc) == 0) - { - point += tmp; - tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); -! if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) - break; - } - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-012 b/samples/bash/files/bash30-012 deleted file mode 100644 index 60500d2e..00000000 --- a/samples/bash/files/bash30-012 +++ /dev/null @@ -1,56 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-012 - -Bug-Reported-by: ben@ncipher.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00215.html - -Bug-Description: - -When using the pipefail option, the following command: - echo foo | false -produces an exit status of 0, ignoring the exit status of false. - -Patch: - -*** ../bash-3.0/jobs.c Fri Apr 23 16:28:25 2004 ---- jobs.c Wed Aug 18 11:15:07 2004 -*************** -*** 1779,1784 **** - { - fail = 0; -! for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) -! if (p->status != EXECUTION_SUCCESS) fail = p->status; - return fail; - } ---- 1779,1789 ---- - { - fail = 0; -! p = jobs[job]->pipe; -! do -! { -! if (p->status != EXECUTION_SUCCESS) fail = p->status; -! p = p->next; -! } -! while (p != jobs[job]->pipe); - return fail; - } - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-013 b/samples/bash/files/bash30-013 deleted file mode 100644 index a29b404d..00000000 --- a/samples/bash/files/bash30-013 +++ /dev/null @@ -1,86 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-013 - -Bug-Reported-by: Len Lattanzi -Bug-Reference-ID: <556CE1CE-E1AC-11D8-A2D9-00039383EC60@apple.com> -Bug-Reference-URL: - -Bug-Description: - -vi-mode filename completion/glob expansion should understand and perform -tilde expansion. - -Patch: - -*** ../bash-3.0/bashline.c Mon Jul 5 23:22:12 2004 ---- bashline.c Thu Sep 2 16:00:12 2004 -*************** -*** 2514,2518 **** - static int ind; - int glen; -! char *ret; - - if (state == 0) ---- 2545,2549 ---- - static int ind; - int glen; -! char *ret, *ttext; - - if (state == 0) -*************** -*** 2524,2538 **** - FREE (globtext); - - if (rl_explicit_arg) - { -! globorig = savestring (text); -! glen = strlen (text); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, text); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (text); - - matches = shell_glob_filename (globtext); ---- 2555,2574 ---- - FREE (globtext); - -+ ttext = bash_tilde_expand (text, 0); -+ - if (rl_explicit_arg) - { -! globorig = savestring (ttext); -! glen = strlen (ttext); - globtext = (char *)xmalloc (glen + 2); -! strcpy (globtext, ttext); - globtext[glen] = '*'; - globtext[glen+1] = '\0'; - } - else -! globtext = globorig = savestring (ttext); -! -! if (ttext != text) -! free (ttext); - - matches = shell_glob_filename (globtext); - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-014 b/samples/bash/files/bash30-014 deleted file mode 100644 index 838eee50..00000000 --- a/samples/bash/files/bash30-014 +++ /dev/null @@ -1,52 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-014 - -Bug-Reported-by: agriffis@gentoo.org -Bug-Reference-ID: <20040929024759.A437FEB1E0@piment.flatmonk.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-09/msg00250.html - -Bug-Description: - - # - # BROKEN case: variable with braces inside quotes - # - - $ D=W - $ echo "${D}"{illy,onka} => W{illy,onka} - -Patch: - -*** ../bash-3.0-patched/braces.c Wed Sep 8 11:07:53 2004 ---- braces.c Fri Sep 17 18:42:36 2004 -*************** -*** 403,407 **** - pass_next = 1; - i++; -! level++; - continue; - } ---- 403,408 ---- - pass_next = 1; - i++; -! if (quoted == 0) -! level++; - continue; - } -*** ../bash-3.0-patched/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-015 b/samples/bash/files/bash30-015 deleted file mode 100644 index ee5bb5a2..00000000 --- a/samples/bash/files/bash30-015 +++ /dev/null @@ -1,56 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-015 - -Bug-Reported-by: opengeometry@yahoo.ca -Bug-Reference-ID: <200410202012.i9KKCTEB001860@node1.opengeometry.net> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-10/msg00297.html - -Bug-Description: - - Shell variable can start with number and can even be printed with - 'declare', as in - 1=aaa - 1a=bbb - declare -p 1 1a - - But, they can't be removed, as in - unset 1 1a --> ...: not a valid identifier - - Bash-2.05b correctly gives me error, however. - -Patch: - -*** ../bash-3.0-patched/general.c Wed Apr 14 23:20:13 2004 ---- general.c Wed Oct 20 16:59:59 2004 -*************** -*** 268,272 **** - - #if defined (ARRAY_VARS) -! if ((legal_variable_starter (c) == 0) && (flags && c != '[')) /* ] */ - #else - if (legal_variable_starter (c) == 0) ---- 268,272 ---- - - #if defined (ARRAY_VARS) -! if ((legal_variable_starter (c) == 0) && (flags == 0 || c != '[')) /* ] */ - #else - if (legal_variable_starter (c) == 0) - -*** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001 ---- patchlevel.h Thu Sep 2 15:04:32 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/samples/bash/files/bash30-016 b/samples/bash/files/bash30-016 deleted file mode 100644 index 05de8e99..00000000 --- a/samples/bash/files/bash30-016 +++ /dev/null @@ -1,84 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.0 -Patch-ID: bash30-016 - -Bug-Reported-by: William Park -Bug-Reference-ID: <200411012217.iA1MHxL7031818@node1.opengeometry.net> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-11/msg00017.html - -Bug-Description: - - Offset from the end of array in ${var: -n} is still off by 1. Eg. - x=( {0..9} ) - echo ${x[*]: -1} --> 8 9 - -Patch: - -*** ../bash-3.0-patched/subst.c Wed Sep 8 11:07:55 2004 ---- subst.c Tue Nov 9 16:26:59 2004 -*************** -*** 4900,4905 **** - case VT_ARRAYVAR: - a = (ARRAY *)value; -! /* For arrays, the first value deals with array indices. */ -! len = array_max_index (a); /* arrays index from 0 to n - 1 */ - break; - #endif ---- 4900,4906 ---- - case VT_ARRAYVAR: - a = (ARRAY *)value; -! /* For arrays, the first value deals with array indices. Negative -! offsets count from one past the array's maximum index. */ -! len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */ - break; - #endif -*** ../bash-3.0-patched/tests/array.tests Sat Oct 4 23:25:00 2003 ---- tests/array.tests Tue Nov 9 16:36:29 2004 -*************** -*** 323,327 **** - echo positive offset - expect five seven - echo ${av[@]:5:2} -! echo negative offset - expect five seven - echo ${av[@]: -2:2} - ---- 323,327 ---- - echo positive offset - expect five seven - echo ${av[@]:5:2} -! echo negative offset to unset element - expect seven - echo ${av[@]: -2:2} - -*** ../bash-3.0-patched/tests/array.right Sat Oct 4 23:25:10 2003 ---- tests/array.right Tue Nov 9 16:37:25 2004 -*************** -*** 171,176 **** - positive offset - expect five seven - five seven -! negative offset - expect five seven -! five seven - positive offset 2 - expect seven - seven ---- 171,176 ---- - positive offset - expect five seven - five seven -! negative offset to unset element - expect seven -! seven - positive offset 2 - expect seven - seven -*** ../bash-3.0-patched/patchlevel.h Tue Oct 26 17:13:29 2004 ---- patchlevel.h Tue Nov 9 16:31:24 2004 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ - diff --git a/samples/bash/pspec.xml b/samples/bash/pspec.xml deleted file mode 100644 index 08c0658c..00000000 --- a/samples/bash/pspec.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - bash - http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html - - Barış Metin - baris@uludag.org.tr - - GPL-2 - category - component - The standard GNU Bourne again shell - The standard GNU Bourne again shell - ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz - - bash-3.0-gentoo.diff.bz2 - bash30-001 - bash30-002 - bash30-003 - bash30-004 - bash30-005 - bash30-006 - bash30-007 - bash30-008 - bash30-009 - bash30-010 - bash30-011 - bash30-012 - bash30-013 - bash30-014 - bash30-015 - bash30-016 - bash-3.0-etc-inputrc.patch - bash-3.0-darwin-conn.patch - bash-3.0-afs.patch - bash-3.0-crash.patch - bash-3.0-jobs.patch - bash-3.0-manpage.patch - bash-3.0-pwd.patch - bash-3.0-read-e-segfault.patch - bash-3.0-ulimit.patch - bash-3.0-read-builtin-pipe.patch - bash-3.0-trap-fg-signals.patch - bash-2.05-2.4.4.patch - bash-2.05a-security.patch - bash-3.0-evalexp.patch - bash-3.0-locale.patch - bash-3.0-nfs_redir.patch - bash-3.0-utf8.patch - bash-3.0-prompt.patch - bash-3.0-update-multibyte-ifs.patch - bash-3.0-random.patch - bash-3.0-privmode.patch - bash-3.0-rl-setenv.patch - bash-3.0-rl-del-backspace-policy.patch - bash-3.0-rl-header.patch - - - ncurses - patch - - - - 2005-07-04 - 3.0 - 11 - - - - - - bash - - /etc - /bin - /usr/bin - /usr/share/doc - /usr/share/info - /usr/share/man - /usr/share/locale - - - - - diff --git a/samples/fam/actions.py b/samples/fam/actions.py deleted file mode 100644 index e2dbdc70..00000000 --- a/samples/fam/actions.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import gnuconfig -from pisi.actionsapi import autotools -from pisi.actionsapi import libtoolize -from pisi.actionsapi import pisitools -from pisi.actionsapi import utils - -def setup(): - utils.chmod('configure') - gnuconfig.gnuconfig_update() - libtoolize.libtoolize() - autotools.configure() - -def build(): - autotools.make() - -def install(): - autotools.install() - pisitools.dodoc('AUTHORS', 'ChangeLog', 'INSTALL' ,'NEWS', 'TODO', 'README') diff --git a/samples/fam/files/fam-2.7.0-dnotify.patch b/samples/fam/files/fam-2.7.0-dnotify.patch deleted file mode 100644 index 4f87fe19..00000000 --- a/samples/fam/files/fam-2.7.0-dnotify.patch +++ /dev/null @@ -1,975 +0,0 @@ ---- fam-2.7.0/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100 -+++ fam-2.7.0.dnotify/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100 -@@ -0,0 +1,582 @@ -+// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved. -+// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved. -+// -+// This program is free software; you can redistribute it and/or modify it -+// under the terms of version 2 of the GNU General Public License as -+// published by the Free Software Foundation. -+// -+// This program is distributed in the hope that it would be useful, but -+// WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any -+// license provided herein, whether implied or otherwise, is limited to -+// this program in accordance with the express provisions of the GNU -+// General Public License. Patent licenses, if any, provided herein do not -+// apply to combinations of this program with other product or programs, or -+// any other product whatsoever. This program is distributed without any -+// warranty that the program is delivered free of the rightful claim of any -+// third person by way of infringement or the like. See the GNU General -+// Public License for more details. -+// -+// You should have received a copy of the GNU General Public License along -+// with this program; if not, write the Free Software Foundation, Inc., 59 -+// Temple Place - Suite 330, Boston MA 02111-1307, USA. -+ -+#define _GNU_SOURCE -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "DNotify.h" -+ -+#include "Interest.h" -+#include "Log.h" -+#include "Scheduler.h" -+#include -+ -+ -+int DNotify::pipe_write_fd = -2; -+int DNotify::pipe_read_fd = -2; -+volatile sig_atomic_t DNotify::queue_overflowed = 0; -+volatile sig_atomic_t DNotify::queue_changed = 0; -+int DNotify::change_queue[QUEUESIZE]; -+volatile int DNotify::queue_head = 0; // Only modified by read handler -+volatile int DNotify::queue_tail = 0; // Only modified by signal handler -+DNotify::EventHandler DNotify::ehandler; -+ -+DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE]; -+DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE]; -+ -+struct DNotify::FileWatch -+{ -+ DirWatch *dir_watch; -+ dev_t file_dev; -+ ino_t file_ino; -+ FileWatch *next; // The DirWatch.watches list -+ FileWatch *hash_link; -+}; -+ -+struct DNotify::DirWatch -+{ -+ int fd; -+ dev_t dir_dev; -+ ino_t dir_ino; -+ -+ DirWatch *hash_link; -+ FileWatch *watches; -+}; -+ -+struct DNotify::ChangeEventData -+{ -+ dev_t file_dev; -+ ino_t file_ino; -+}; -+ -+DNotify::DNotify(EventHandler h) -+{ -+ assert(ehandler == NULL); -+ ehandler = h; -+} -+ -+DNotify::~DNotify() -+{ -+ if (pipe_read_fd >= 0) -+ { -+ // Tell the scheduler. -+ -+ (void) Scheduler::remove_read_handler(pipe_read_fd); -+ -+ // Close the pipe. -+ -+ if (close(pipe_read_fd) < 0) -+ Log::perror("can't pipe read end"); -+ else -+ Log::debug("closed pipe read end"); -+ -+ if (close(pipe_write_fd) < 0) -+ Log::perror("can't pipe write end"); -+ else -+ Log::debug("closed pipe write end"); -+ pipe_read_fd = -1; -+ } -+ ehandler = NULL; -+} -+ -+void -+DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data) -+{ -+ char c = 'x'; -+ -+ { -+ char *str = "*************** overflow sigqueue ***********************\n"; -+ write (STDERR_FILENO, str, strlen(str)); -+ } -+ -+ if (!queue_overflowed) -+ { -+ queue_overflowed = 1; -+ // Trigger the read handler -+ write(pipe_write_fd, &c, 1); -+ } -+} -+ -+void -+DNotify::signal_handler(int sig, siginfo_t *si, void *data) -+{ -+ int left; -+ char c = 'x'; -+ -+ if (queue_head <= queue_tail) -+ left = (QUEUESIZE + queue_head) - queue_tail; -+ else -+ left = queue_head - queue_tail; -+ -+ // Must leave at least one item unused to see difference -+ // Betweeen empty and full -+ if (left <= 1) -+ { -+ queue_overflowed = 1; -+ { -+ char *str = "*************** overflow famqueue ****************\n"; -+ write (STDERR_FILENO, str, strlen(str)); -+ } -+ } -+ else -+ { -+ change_queue[queue_tail] = si->si_fd; -+ queue_tail = (queue_tail + 1) % QUEUESIZE; -+ } -+ -+ if (!queue_changed) -+ { -+ queue_changed = 1; -+ // Trigger the read handler -+ write(pipe_write_fd, &c, 1); -+ } -+} -+ -+bool -+DNotify::is_active() -+{ -+ if (pipe_read_fd == -2) -+ { -+ int filedes[2]; -+ int res; -+ -+ res = pipe (filedes); -+ if (res >= 0) -+ { Log::debug("opened pipe"); -+ pipe_read_fd = filedes[0]; -+ pipe_write_fd = filedes[1]; -+ -+ // Setup signal handler: -+ struct sigaction act; -+ -+ act.sa_sigaction = signal_handler; -+ sigemptyset(&act.sa_mask); -+ act.sa_flags = SA_SIGINFO; -+ sigaction(SIGRTMIN, &act, NULL); -+ -+ // When the RT queue overflows we get a SIGIO -+ act.sa_sigaction = overflow_signal_handler; -+ sigemptyset(&act.sa_mask); -+ sigaction(SIGIO, &act, NULL); -+ -+ (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL); -+ } -+ } -+ return pipe_read_fd >= 0; -+} -+ -+DNotify::DirWatch * -+DNotify::lookup_dirwatch (int fd) -+{ -+ DirWatch **p; -+ DirWatch *w; -+ -+ p = dir_hashchain (fd); -+ -+ while (*p) -+ { -+ w = *p; -+ -+ if (w->fd == fd) -+ return w; -+ -+ p = &w->hash_link; -+ } -+ -+ return *p; -+} -+ -+// This colud be made faster by using another hash table. -+// But it's not that bad, since it is only used by express/revoke -+DNotify::DirWatch * -+DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino) -+{ -+ DirWatch *p; -+ int i; -+ -+ for (i=0;idir_dev == dir_dev && p->dir_ino == dir_ino) -+ return p; -+ -+ p = p->hash_link; -+ } -+ } -+ -+ return NULL; -+} -+ -+DNotify::FileWatch * -+DNotify::lookup_filewatch (dev_t dev, ino_t ino) -+{ -+ FileWatch **p; -+ FileWatch *w; -+ -+ p = file_hashchain (dev, ino); -+ -+ while (*p) -+ { -+ w = *p; -+ -+ if (w->file_dev == dev && w->file_ino == ino) -+ return w; -+ -+ p = &w->hash_link; -+ } -+ -+ return *p; -+} -+ -+// Make sure w is not already in the hash table before calling -+// this function. -+void -+DNotify::hash_dirwatch(DirWatch *w) -+{ -+ DirWatch **p; -+ p = dir_hashchain (w->fd); -+ w->hash_link = *p; -+ *p = w; -+} -+ -+// Make sure w is not already in the hash table before calling -+// this function. -+void -+DNotify::hash_filewatch(FileWatch *w) -+{ -+ FileWatch **p; -+ p = file_hashchain (w->file_dev, w->file_ino); -+ w->hash_link = *p; -+ *p = w; -+} -+ -+void -+DNotify::unhash_dirwatch(DirWatch *w) -+{ -+ DirWatch **p; -+ -+ p = dir_hashchain (w->fd); -+ -+ while (*p) -+ { -+ if (*p == w) -+ { -+ *p = w->hash_link; -+ break; -+ } -+ p = &(*p)->hash_link; -+ } -+ w->hash_link = NULL; -+} -+ -+void -+DNotify::unhash_filewatch(FileWatch *w) -+{ -+ FileWatch **p; -+ -+ p = file_hashchain (w->file_dev, w->file_ino); -+ -+ while (*p) -+ { -+ if (*p == w) -+ { -+ *p = w->hash_link; -+ break; -+ } -+ p = &(*p)->hash_link; -+ } -+ w->hash_link = NULL; -+} -+ -+DNotify::Status -+DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino) -+{ -+ struct stat stat; -+ dev_t dir_dev; -+ ino_t dir_ino; -+ DirWatch *dwatch; -+ FileWatch *fw; -+ -+ if (lstat (notify_dir, &stat) == -1) -+ return BAD; -+ -+ dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino); -+ if (!dwatch) -+ { -+ Log::debug ("New DirWatch for %s (%x %x)\n", -+ notify_dir, (int)stat.st_dev, (int)stat.st_ino); -+ dwatch = new DirWatch; -+ dwatch->watches = NULL; -+ dwatch->hash_link = NULL; -+ dwatch->dir_dev = stat.st_dev; -+ dwatch->dir_ino = stat.st_ino; -+ -+ dwatch->fd = open(notify_dir, O_RDONLY); -+ fcntl (dwatch->fd, F_SETSIG, SIGRTMIN); -+ if (fcntl (dwatch->fd, F_NOTIFY, -+ (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB) -+ | DN_MULTISHOT) == -1) { -+ return BAD; -+ } -+ hash_dirwatch (dwatch); -+ } -+ -+ fw = lookup_filewatch (file_dev, file_ino); -+ if (fw && fw->dir_watch == dwatch) -+ return OK; -+ -+ // No old FileWatch, need to add one: -+ Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino); -+ fw = new FileWatch; -+ fw->next = dwatch->watches; -+ dwatch->watches = fw; -+ fw->file_dev = file_dev; -+ fw->file_ino = file_ino; -+ fw->dir_watch = dwatch; -+ hash_filewatch(fw); -+ return OK; -+} -+ -+char * -+dirname_dup (const char *name) -+{ -+ char *copy = strdup(name); -+ char *res = dirname(copy); -+ res = strdup(res); -+ free (copy); -+ return res; -+} -+ -+DNotify::Status -+DNotify::express(const char *name, struct stat *status) -+{ -+ struct stat stat; -+ char *notify_dir; -+ int res; -+ Status s; -+ dev_t dev; -+ ino_t ino; -+ -+ Log::debug("express() name: %s\n", name); -+ -+ if (!is_active()) -+ return BAD; -+ -+ if (::lstat (name, &stat) == -1) -+ return BAD; -+ -+ dev = stat.st_dev; -+ ino = stat.st_ino; -+ -+ if ((stat.st_mode & S_IFMT) != S_IFDIR) -+ notify_dir = dirname_dup (name); -+ else -+ notify_dir = (char *)name; -+ -+ s = watch_dir (notify_dir, dev, ino); -+ if (notify_dir != name) -+ free (notify_dir); -+ if (s) -+ return s; -+ -+ // Check for a race condition; if someone removed or changed the -+ // file at the same time that we are expressing interest in it, -+ // revoke the interest so we don't get notifications about changes -+ // to a recycled inode that we don't otherwise care about. -+ // -+ struct stat st; -+ if (status == NULL) { -+ status = &st; -+ } -+ if (::lstat(name, status) == -1) { -+ Log::perror("stat on \"%s\" failed", name); -+ revoke(name, stat.st_dev, stat.st_ino); -+ return BAD; -+ } -+ if (status->st_dev != stat.st_dev -+ || status->st_ino != stat.st_ino) { -+ Log::error("File \"%s\" changed between express and stat", -+ name); -+ revoke(name, stat.st_dev, stat.st_ino); -+ return BAD; -+ } -+ -+ Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name, -+ major(status->st_dev), minor(status->st_dev), -+ status->st_ino); -+ return OK; -+} -+ -+DNotify::Status -+DNotify::revoke(const char *name, dev_t dev, ino_t ino) -+{ -+ FileWatch *fwatch; -+ DirWatch *dwatch; -+ -+ Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino); -+ -+ if (!is_active()) -+ return BAD; -+ -+ // Lookup FileWatch by dev:ino, and its DirWatch. -+ fwatch = lookup_filewatch (dev, ino); -+ if (fwatch == NULL) -+ return BAD; -+ -+ dwatch = fwatch->dir_watch; -+ -+ // delete FileWatch, if last FileWatch: close fd, delete DirWatch -+ Log::debug ("Destroying FileWatch for (%x %x)\n", -+ (int)fwatch->file_dev, (int)fwatch->file_ino); -+ FileWatch **p; -+ for (p=&dwatch->watches; *p; p=&(*p)->next) -+ { -+ if (*p == fwatch) -+ { -+ *p = (*p)->next; -+ break; -+ } -+ } -+ unhash_filewatch(fwatch); -+ delete fwatch; -+ if (dwatch->watches == NULL) -+ { -+ Log::debug ("Destroying DirWatch for (%x %x)\n", -+ (int)dwatch->dir_dev, (int)dwatch->dir_ino); -+ close(dwatch->fd); -+ unhash_dirwatch(dwatch); -+ delete dwatch; -+ } -+ -+ return OK; -+} -+ -+ -+void -+DNotify::all_watches_changed(void) -+{ -+ int i; -+ FileWatch *fw; -+ -+ for (i=0; ifile_dev, fw->file_ino, CHANGE); -+ -+ fw = fw->hash_link; -+ } -+ } -+} -+ -+ -+void -+DNotify::read_handler(int fd, void *) -+{ -+ static char readbuf[5000]; -+ DirWatch *dw; -+ FileWatch *fw; -+ int snap_queue_tail; -+ int last_fd; -+ -+ int rc = read(fd, readbuf, sizeof readbuf); -+ queue_changed = 0; -+ if (rc < 0) -+ Log::perror("pipe read"); -+ else if (queue_overflowed) -+ { -+ // There is a *slight* race condition here. Between reading -+ // the queue_overflow flag and resetting it. But it doesn't -+ // matter, since I'm gonna handle the overflow after reseting -+ // anyway. -+ queue_overflowed = false; -+ -+ // We're soon gonna check all watches anyway, so -+ // get rid of the current queue -+ queue_head = queue_tail; -+ -+ all_watches_changed (); -+ } -+ else -+ { -+ // Don't read events that happen later than -+ // the initial read. (Otherwise skipping fd's -+ // might miss some changes). -+ snap_queue_tail = queue_tail; -+ last_fd = -1; -+ while (queue_head != snap_queue_tail) -+ { -+ fd = change_queue[queue_head]; -+ queue_head = (queue_head + 1) % QUEUESIZE; -+ -+ // Skip multiple changes to the same fd -+ if (fd != last_fd) -+ { -+ dw = lookup_dirwatch (fd); -+ if (dw) -+ { -+ int n_watches, i; -+ ChangeEventData *data; -+ -+ Log::debug("dnotify said dev %d/%d, ino %ld changed", -+ major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino); -+ -+ n_watches = 0; -+ for (fw=dw->watches; fw; fw=fw->next) -+ n_watches++; -+ -+ data = new ChangeEventData[n_watches]; -+ -+ i = 0; -+ for (fw=dw->watches; fw; fw=fw->next) -+ { -+ data[i].file_dev = fw->file_dev; -+ data[i].file_ino = fw->file_ino; -+ i++; -+ } -+ -+ for (i = 0; i < n_watches; i++) -+ { -+ (*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE); -+ } -+ -+ delete[] data; -+ } -+ } -+ last_fd = fd; -+ } -+ } -+} -+ ---- fam-2.7.0/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100 -+++ fam-2.7.0.dnotify/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100 -@@ -0,0 +1,98 @@ -+// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved. -+// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved. -+// -+// This program is free software; you can redistribute it and/or modify it -+// under the terms of version 2 of the GNU General Public License as -+// published by the Free Software Foundation. -+// -+// This program is distributed in the hope that it would be useful, but -+// WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any -+// license provided herein, whether implied or otherwise, is limited to -+// this program in accordance with the express provisions of the GNU -+// General Public License. Patent licenses, if any, provided herein do not -+// apply to combinations of this program with other product or programs, or -+// any other product whatsoever. This program is distributed without any -+// warranty that the program is delivered free of the rightful claim of any -+// third person by way of infringement or the like. See the GNU General -+// Public License for more details. -+// -+// You should have received a copy of the GNU General Public License along -+// with this program; if not, write the Free Software Foundation, Inc., 59 -+// Temple Place - Suite 330, Boston MA 02111-1307, USA. -+ -+#ifndef DNotify_included -+#define DNotify_included -+ -+#include "config.h" -+#include "Monitor.h" -+#include -+ -+// DNotify is an object encapsulating the dnotify linux fcntl. -+// It "emulates" the IMon interface. -+// There can only be one instantiation of the DNotify object. -+// -+// The user of this object uses express() and revoke() to -+// express/revoke interest in a file. There is also -+// a callback, the EventHandler. When an dnotify event comes in, -+// the EventHandler is called. -+// -+// The user of the DNotify object is the Interest class. -+ -+class DNotify : public Monitor { -+public: -+ DNotify(EventHandler h); -+ ~DNotify(); -+ -+ static bool is_active(); -+ -+ virtual Status express(const char *name, struct stat *stat_return); -+ virtual Status revoke(const char *name, dev_t dev, ino_t ino); -+ -+private: -+ struct FileWatch; -+ struct DirWatch; -+ struct ChangeEventData; -+ -+ // Class Variables -+ enum { QUEUESIZE = 1024 }; -+ static int pipe_write_fd; -+ static int pipe_read_fd; -+ static int change_queue[QUEUESIZE]; -+ static volatile sig_atomic_t DNotify::queue_overflowed; -+ static volatile sig_atomic_t DNotify::queue_changed; -+ static volatile int queue_head; // Only modified by read handler -+ static volatile int queue_tail; // Only modified by signal handler -+ static EventHandler ehandler; -+ static void overflow_signal_handler(int sig, siginfo_t *si, void *data); -+ static void signal_handler(int sig, siginfo_t *si, void *data); -+ static void read_handler(int fd, void *closure); -+ -+ enum { DIR_HASHSIZE = 367 }; -+ static DirWatch *dir_hash[DIR_HASHSIZE]; -+ enum { FILE_HASHSIZE = 823 }; -+ static FileWatch *file_hash[FILE_HASHSIZE]; -+ -+ static DirWatch **dir_hashchain(int fd) -+ { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; } -+ static FileWatch **file_hashchain(dev_t d, ino_t i) -+ { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; } -+ -+ static DirWatch *lookup_dirwatch (int fd); -+ static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino); -+ static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino); -+ static void hash_dirwatch(DirWatch *w); -+ static void hash_filewatch(FileWatch *w); -+ static void unhash_dirwatch(DirWatch *w); -+ static void unhash_filewatch(FileWatch *w); -+ static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino); -+ -+ static void all_watches_changed(void); -+ -+ DNotify(const DNotify&); // Do not copy -+ DNotify & operator = (const DNotify&); // or assign. -+}; -+ -+#endif /* !IMon_included */ -+ -+ ---- fam-2.7.0/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100 -+++ fam-2.7.0.dnotify/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100 -@@ -42,12 +42,21 @@ - #include "Event.h" - #include "FileSystem.h" - #include "IMon.h" -+#include "DNotify.h" - #include "Log.h" - #include "Pollster.h" - #include "timeval.h" - - Interest *Interest::hashtable[]; --IMon Interest::imon(imon_handler); -+ -+#ifdef USE_DNOTIFY -+static DNotify dnotify(Interest::monitor_handler); -+Monitor * Interest::monitor = &dnotify; -+#else -+static IMon imon(Interest::monitor_handler); -+Monitor * Interest::monitor = &imon; -+#endif -+ - bool Interest::xtab_verification = true; - - Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev) -@@ -60,10 +69,10 @@ - mypath_exported_to_host(ev == NO_VERIFY_EXPORTED) - { - memset(&old_stat, 0, sizeof(old_stat)); -- IMon::Status s = IMon::BAD; - -- s = imon.express(name, &old_stat); -- if (s != IMon::OK) -+ Monitor::Status s = Monitor::BAD; -+ s = monitor->express(name, &old_stat); -+ if (s != Monitor::OK) - { int rc = lstat(name, &old_stat); - if (rc < 0) - { Log::info("can't lstat %s", name); -@@ -100,7 +109,7 @@ - } - #endif - -- if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK); -+ if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK); - } - - Interest::~Interest() -@@ -128,7 +137,7 @@ - pp = &p->hashlink; // move to next element - } - if (!found_same) -- (void) imon.revoke(name(), dev, ino); -+ (void) monitor->revoke(name(), dev, ino); - } - } - -@@ -147,7 +156,7 @@ - - // Express interest. - IMon::Status s = IMon::BAD; -- s = imon.express(name(), NULL); -+ s = monitor->express(name(), NULL); - if (s != IMon::OK) { - return true; - } -@@ -248,23 +257,23 @@ - } - - void --Interest::imon_handler(dev_t device, ino_t inumber, int event) -+Interest::monitor_handler(dev_t device, ino_t inumber, int event) - { - assert(device || inumber); - - for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next) - { next = p->hashlink; - if (p->ino == inumber && p->dev == device) -- { if (event == IMon::EXEC) -+ { if (event == Monitor::EXEC) - { p->cur_exec_state = EXECUTING; - (void) p->report_exec_state(); - } -- else if (event == IMon::EXIT) -+ else if (event == Monitor::EXIT) - { p->cur_exec_state = NOT_EXECUTING; - (void) p->report_exec_state(); - } - else -- { assert(event == IMon::CHANGE); -+ { assert(event == Monitor::CHANGE); - p->scan(); - } - } ---- fam-2.7.0/config.h.in 2003-01-20 01:40:15.000000000 +0100 -+++ fam-2.7.0.dnotify/config.h.in 2004-01-30 13:50:33.000000000 +0100 -@@ -180,3 +180,6 @@ - - /* Define to `int' if doesn't define. */ - #undef uid_t -+ -+/* Define to 1 if you have F_NOTIFY fcntl */ -+#undef USE_DNOTIFY ---- fam-2.7.0/configure.ac 2003-11-26 20:47:59.000000000 +0100 -+++ fam-2.7.0.dnotify/configure.ac 2004-01-30 13:50:33.000000000 +0100 -@@ -34,7 +34,26 @@ - AC_HEADER_DIRENT - AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h]) - --if test "$have_sys_imon_h"; then -+# Test for the linux dnotify fcntl -+AC_MSG_CHECKING([for dnotify fcntl support]) -+AC_TRY_COMPILE([ -+#define _GNU_SOURCE -+#include -+#include -+], -+[ int fd = 1; -+ fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB) -+ |DN_MULTISHOT); -+], have_dnotify=yes, have_dnotify=no) -+ -+use_dnotify=false -+AC_MSG_RESULT($have_dnotify) -+ -+if test "$have_dnotify"; then -+ MONITOR_FUNCS=IMonNone -+ AC_DEFINE([USE_DNOTIFY], [], [Use dnotify]) -+ use_dnotify=true -+elif test "$have_sys_imon_h"; then - MONITOR_FUNCS=IMonIRIX - elif test "$have_linux_imon_h"; then - MONITOR_FUNCS=IMonLinux -@@ -42,6 +62,7 @@ - MONITOR_FUNCS=IMonNone - fi - AC_SUBST(MONITOR_FUNCS) -+AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify) - - # Checks for typedefs, structures, and compiler characteristics. - AC_HEADER_STDBOOL ---- fam-2.7.0/src/IMon.h 2004-01-30 00:00:00.000000000 +0200 -+++ fam-2.7.0.dnotify/src/IMon.h 2004-01-30 00:00:00.000000000 +0200 -@@ -24,10 +24,7 @@ - #define IMon_included - - #include "config.h" --#include --#include -- --#include "Boolean.h" -+#include "Monitor.h" - - struct stat; - -@@ -41,25 +38,18 @@ - // - // The user of the IMon object is the Interest class. - --class IMon { -+class IMon : public Monitor { - - public: -- -- enum Status { OK = 0, BAD = -1 }; -- enum Event { EXEC, EXIT, CHANGE }; -- -- typedef void (*EventHandler)(dev_t, ino_t, int event); -- - IMon(EventHandler h); - ~IMon(); - - static bool is_active(); - -- Status express(const char *name, struct stat *stat_return); -- Status revoke(const char *name, dev_t dev, ino_t ino); -+ virtual Status express(const char *name, struct stat *stat_return); -+ virtual Status revoke(const char *name, dev_t dev, ino_t ino); - - private: -- - // Class Variables - - static int imonfd; ---- fam-2.7.0/src/Interest.h 2004-01-30 00:00:00.000000000 +0200 -+++ fam-2.7.0.dnotify/src/Interest.h 2004-01-30 00:00:00.000000000 +0200 -@@ -32,7 +32,7 @@ - - class Event; - class FileSystem; --class IMon; -+class Monitor; - struct stat; - - // Interest -- abstract base class for filesystem entities of interest. -@@ -74,7 +74,7 @@ - - // Public Class Method - -- static void imon_handler(dev_t, ino_t, int event); -+ static void monitor_handler(dev_t, ino_t, int event); - - static void enable_xtab_verification(bool enable); - -@@ -121,7 +121,7 @@ - - // Class Variables - -- static IMon imon; -+ static Monitor *monitor; - static Interest *hashtable[HASHSIZE]; - static bool xtab_verification; - ---- fam-2.7.0/src/Makefile.am 2003-01-19 13:00:17.000000000 +0100 -+++ fam-2.7.0.dnotify/src/Makefile.am 2004-01-30 13:50:38.000000000 +0100 -@@ -71,7 +71,11 @@ - main.c++ \ - timeval.c++ \ - timeval.h \ -- @MONITOR_FUNCS@.c++ -+ Monitor.h \ -+ DNotify.h \ -+ DNotify.c++ \ -+ @MONITOR_FUNCS@.c++ - --EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ -+EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \ -+ DNotify.h Monitor.h - ---- fam-2.7.0/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200 -+++ fam-2.7.0.dnotify/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200 -@@ -0,0 +1,57 @@ -+// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved. -+// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved. -+// -+// This program is free software; you can redistribute it and/or modify it -+// under the terms of version 2 of the GNU General Public License as -+// published by the Free Software Foundation. -+// -+// This program is distributed in the hope that it would be useful, but -+// WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any -+// license provided herein, whether implied or otherwise, is limited to -+// this program in accordance with the express provisions of the GNU -+// General Public License. Patent licenses, if any, provided herein do not -+// apply to combinations of this program with other product or programs, or -+// any other product whatsoever. This program is distributed without any -+// warranty that the program is delivered free of the rightful claim of any -+// third person by way of infringement or the like. See the GNU General -+// Public License for more details. -+// -+// You should have received a copy of the GNU General Public License along -+// with this program; if not, write the Free Software Foundation, Inc., 59 -+// Temple Place - Suite 330, Boston MA 02111-1307, USA. -+ -+#ifndef Monitor_included -+#define Monitor_included -+ -+#include "config.h" -+#include -+#include -+ -+struct stat; -+ -+// Monitor is an abstract baseclass for differend file monitoring -+// systems. The original system used was IMon, and the Montor API -+// is heavily influenced by that. -+// There can only be one instantiation of the Monitor object. -+// -+// The user of this object uses express() and revoke() to -+// express/revoke interest in a file to imon. There is also -+// a callback, the EventHandler. When an event comes in, -+// the EventHandler is called. -+// -+// The main implementers of the Monitor class is IMon and DNotify -+ -+class Monitor { -+public: -+ -+ enum Status { OK = 0, BAD = -1 }; -+ enum Event { EXEC, EXIT, CHANGE }; -+ -+ typedef void (*EventHandler)(dev_t, ino_t, int event); -+ -+ virtual Status express(const char *name, struct stat *stat_return) = 0; -+ virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0; -+}; -+ -+#endif /* !Monitor_included */ diff --git a/samples/fam/pspec.xml b/samples/fam/pspec.xml deleted file mode 100644 index 1dbfe98c..00000000 --- a/samples/fam/pspec.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - fam - http://oss.sgi.com/projects/fam/ - - Kırmızı kafalar - hotmail@redhat.com - - As-Is - library:util - rpm:archive - FAM, the File Alteration Monitor - ftp://oss.sgi.com/projects/fam/download/stable/fam-2.7.0.tar.gz - - fam-2.7.0-dnotify.patch - - - make - - - - 06/10/2005 - 2.7.0 - 2 - - - 05/05/2005 - 2.7.0 - 1 - - - - - - fam - FAM, the File Alteration Monito - - portmap - - FAM, the File Alteration Monito - - /usr/bin - /etc/ - /usr/lib - /usr/share/man - /usr/share/doc/libfame-0.9.0 - /usr/include - /usr/share/aclocal - - - - 06/14/2005 - 2.7.0 - 2 - - - - diff --git a/samples/logrotate/actions.py b/samples/logrotate/actions.py deleted file mode 100644 index 019d75cc..00000000 --- a/samples/logrotate/actions.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import autotools -from pisi.actionsapi import pisitools - -def setup(): - pisitools.dosed('Makefile', 's:CFLAGS += -g:CFLAGS += -g -mcpu=i686 -O2 -pipe -fomit-frame-pointer:', '/CVSROOT =/d') - -def build(): - autotools.make() - -def install(): - pisitools.dosbin('logrotate') - pisitools.doman('logrotate.8') diff --git a/samples/logrotate/files/logrotate.conf b/samples/logrotate/files/logrotate.conf deleted file mode 100644 index f8fb039f..00000000 --- a/samples/logrotate/files/logrotate.conf +++ /dev/null @@ -1,34 +0,0 @@ -# $Header: /var/cvsroot/gentoo-x86/app-admin/logrotate/files/logrotate.conf,v 1.2 2004/07/18 01:58:24 dragonheart Exp $ -# -# Logrotate default configuration file for Gentoo Linux -# -# See "man logrotate" for details - -# rotate log files weekly -weekly -#daily - -# keep 4 weeks worth of backlogs -rotate 4 - -# create new (empty) log files after rotating old ones -create - -# uncomment this if you want your log files compressed -compress - -# packages can drop log rotation information into this directory -include /etc/logrotate.d - -notifempty -nomail -noolddir - -# no packages own lastlog or wtmp -- we'll rotate them here -/var/log/wtmp { - monthly - create 0664 root utmp - rotate 1 -} - -# system-specific logs may be also be configured here. diff --git a/samples/logrotate/files/logrotate.cron b/samples/logrotate/files/logrotate.cron deleted file mode 100755 index 63cbe968..00000000 --- a/samples/logrotate/files/logrotate.cron +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/sh - -/usr/sbin/logrotate /etc/logrotate.conf diff --git a/samples/logrotate/pspec.xml b/samples/logrotate/pspec.xml deleted file mode 100644 index 7ee2e7f9..00000000 --- a/samples/logrotate/pspec.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - logrotate - http://packages.debian.org/unstable/admin/logrotate.html - - PACKAGER - PACKAGER_EMAIL - - GPL-2 - system:util:logging - app:console - PARTOF - Rotates, compresses, and mails system logs - - ftp://ftp.linux.org.tr/pub/mirrors/gentoo/distfiles/logrotate_3.6.5.orig.tar.gz - - - - >=sys-apps/portage-2.0.47-r10 - >=dev-libs/popt-1.5 - >=sys-apps/sed-4 - selinux? - sys-libs/libselinux - !bootstrap? - sys-devel/patch - userland_GNU? - sys-apps/shadow - - - - - 2005-06-28 - 3.6.5 - 1 - - - - - - logrotate - Rotates, compresses, and mails system logs - - - >=sys-apps/portage-2.0.47-r10 - >=dev-libs/popt-1.5 - >=sys-apps/sed-4 - selinux? - sys-libs/libselinux - selinux? - sec-policy/selinux-logrotate - - - Rotates, compresses, and mails system logs - - /usr/sbin - /usr/share/doc - /usr/share/man - - - - 2005-06-28 - 3.6.5 - 1 - - - - - diff --git a/samples/popt/actions.py b/samples/popt/actions.py deleted file mode 100644 index 952c4886..00000000 --- a/samples/popt/actions.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import gnuconfig -from pisi.actionsapi import autotools - -WorkDir='popt-1.7' - -def setup(): - gnuconfig.gnuconfig_update() -# libtoolize.libtoolize() - autotools.configure( '--with-nls' ) - -def build(): - autotools.make() - -def install(): - autotools.install() diff --git a/samples/popt/files/popt-1.7-uclibc.patch.gz b/samples/popt/files/popt-1.7-uclibc.patch.gz deleted file mode 100644 index 83bbae58..00000000 Binary files a/samples/popt/files/popt-1.7-uclibc.patch.gz and /dev/null differ diff --git a/samples/popt/pspec.xml b/samples/popt/pspec.xml deleted file mode 100644 index 698947a0..00000000 --- a/samples/popt/pspec.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - popt - http://www.rpm.org/ - - Kırmızı kafalar - hotmail@redhat.com - - As-Is - library:util:optparser - rpm:archive - Popt command line option parser - Command line option parsing library. - While it is similiar to getopt(3), it contains a number of enhancements, including: - - 1) popt is fully reentrant - 2) popt can parse arbitrary argv[] style arrays while - getopt(2) makes this quite difficult - 3) popt allows users to alias command line arguments - 4) popt provides convience functions for parsing strings - into argv[] style arrays - - - ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz - - - popt-1.7-uclibc.patch.gz - - - make - - - - 06/14/2005 - 1.7 - 3 - - - 06/10/2005 - 1.7 - 2 - - - 05/05/2005 - 1.7 - 1 - - - - - - popt-libs - Command line option parsing library - Komut satırı seçenekleri işleme kütüphanesi - - gettext - - library files for popt - - /usr/lib - /usr/share/doc - /usr/share/man - /usr/share/locale - /usr/include/popt.h - - - - 06/14/2005 - 1.7 - 2 - - - - diff --git a/samples/startup-notification/actions.py b/samples/startup-notification/actions.py deleted file mode 100644 index 96e8a863..00000000 --- a/samples/startup-notification/actions.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -from pisi.actionsapi import autotools -from pisi.actionsapi import pisitools - -def setup(): - autotools.configure() - -def build(): - autotools.make() - -def install(): - autotools.install() - pisitools.dodoc('AUTHORS','ChangeLog','INSTALL', 'NEWS', 'README', 'doc/startup-notification.txt') diff --git a/samples/startup-notification/pspec.xml b/samples/startup-notification/pspec.xml deleted file mode 100644 index 1df115b5..00000000 --- a/samples/startup-notification/pspec.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - startup-notification - http://www.freedesktop.org/software/startup-notification/ - - Kırmızı kafalar - hotmail@redhat.com - - LGPL-2 - BSD - library:x11 - rpm:archive - Application startup notification and feedback library - - - ftp://ftp.linux.org.tr/pub/mirrors/gentoo/distfiles/startup-notification-0.8.tar.bz2 - - - make - - - - 06/24/2005 - 0.8 - 2 - - - 06/10/2005 - 0.7 - 2 - - - - - - startup-notification - Application startup notification and feedback library - library files for startup-notification - - /usr/lib - /usr/share/doc - - - - 06/24/2005 - 0.8 - 2 - - - - - - startup-notification-devel - Development files for startup notification and feedback library - sn development - - /usr/include - - - -