]> git.pld-linux.org Git - packages/bash.git/commitdiff
- patches from rawhode.
authorkloczek <kloczek@pld-linux.org>
Mon, 30 Aug 1999 08:18:16 +0000 (08:18 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    bash-profile.patch -> 1.1
    bash-requires.patch -> 1.1

bash-profile.patch [new file with mode: 0644]
bash-requires.patch [new file with mode: 0644]

diff --git a/bash-profile.patch b/bash-profile.patch
new file mode 100644 (file)
index 0000000..6bcae68
--- /dev/null
@@ -0,0 +1,11 @@
+--- bash-2.03/config-top.h.profile     Mon Feb 22 14:37:17 1999
++++ bash-2.03/config-top.h     Mon Feb 22 14:37:29 1999
+@@ -3,6 +3,8 @@
+ /* This contains various user-settable options not under the control of
+    autoconf. */
++#define NON_INTERACTIVE_LOGIN_SHELLS
++
+ /* Define CONTINUE_AFTER_KILL_ERROR if you want the kill command to
+    continue processing arguments after one of them fails.  This is
+    what POSIX.2 specifies. */
diff --git a/bash-requires.patch b/bash-requires.patch
new file mode 100644 (file)
index 0000000..1e31e75
--- /dev/null
@@ -0,0 +1,229 @@
+
+Here it is.  If you like it let me know and I will send the patches to 
+the bash maintainer.  Let me know what you think.
+
+Ken
+
+
+
+diff -r -u bash-2.03.orig/builtins/mkbuiltins.c bash-2.03.new/builtins/mkbuiltins.c
+--- bash-2.03.orig/builtins/mkbuiltins.c       Tue Sep 15 12:57:16 1998
++++ bash-2.03.new/builtins/mkbuiltins.c        Fri Jul 16 10:45:54 1999
+@@ -51,8 +51,13 @@
+ #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
+ /* Flag values that builtins can have. */
++/*  These flags are for the C code generator, 
++    the C which is produced (./builtin.c)
++    includes the flags definitions found 
++    in ../builtins.h */
+ #define BUILTIN_FLAG_SPECIAL  0x01
+ #define BUILTIN_FLAG_ASSIGNMENT 0x02
++#define BUILTIN_FLAG_REQUIRES 0x04
+ /* If this stream descriptor is non-zero, then write
+    texinfo documentation to it. */
+@@ -126,9 +131,17 @@
+   (char *)NULL
+ };
++/* The builtin commands that cause requirements on other files. */
++char *requires_builtins[] =
++{
++  ".", "command", "exec", "source", "inlib",
++  (char *)NULL
++};
++
+ /* Forward declarations. */
+ static int is_special_builtin ();
+ static int is_assignment_builtin ();
++static int is_requires_builtin ();
+ #if !defined (HAVE_RENAME)
+ static int rename ();
+@@ -759,6 +772,8 @@
+     new->flags |= BUILTIN_FLAG_SPECIAL;
+   if (is_assignment_builtin (name))
+     new->flags |= BUILTIN_FLAG_ASSIGNMENT;
++  if (is_requires_builtin (name))
++    new->flags |= BUILTIN_FLAG_REQUIRES;
+   array_add ((char *)new, defs->builtins);
+   building_builtin = 1;
+@@ -1164,10 +1179,11 @@
+                 else
+                   fprintf (structfile, "(Function *)0x0, ");
+-                fprintf (structfile, "%s%s%s, %s_doc,\n",
++                fprintf (structfile, "%s%s%s%s, %s_doc,\n",
+                   "BUILTIN_ENABLED | STATIC_BUILTIN",
+                   (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "",
+                   (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "",
++                  (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "",
+                   builtin->docname ? builtin->docname : builtin->name);
+                 fprintf
+@@ -1401,6 +1417,13 @@
+      char *name;
+ {
+   return (_find_in_table (name, assignment_builtins));
++}
++
++static int
++is_requires_builtin (name)
++     char *name;
++{
++  return (_find_in_table (name, requires_builtins));
+ }
+ #if !defined (HAVE_RENAME)
+diff -r -u bash-2.03.orig/builtins.h bash-2.03.new/builtins.h
+--- bash-2.03.orig/builtins.h  Fri Jul 18 16:46:36 1997
++++ bash-2.03.new/builtins.h   Thu Jul 15 16:59:03 1999
+@@ -40,6 +40,7 @@
+ #define STATIC_BUILTIN  0x4   /* This builtin is not dynamically loaded. */
+ #define SPECIAL_BUILTIN 0x8   /* This is a Posix `special' builtin. */
+ #define ASSIGNMENT_BUILTIN 0x10       /* This builtin takes assignment statements. */
++#define REQUIRES_BUILTIN 0x20 /* This builtin requires other files. */
+ /* The thing that we build the array of builtins out of. */
+ struct builtin {
+diff -r -u bash-2.03.orig/doc/bash.1 bash-2.03.new/doc/bash.1
+--- bash-2.03.orig/doc/bash.1  Wed Jan 20 16:48:04 1999
++++ bash-2.03.new/doc/bash.1   Fri Jul 16 11:20:00 1999
+@@ -195,6 +195,12 @@
+ .B "RESTRICTED SHELL"
+ below).
+ .TP
++.B \-\-rpm-requires
++Produce the list of files that are required for the 
++shell script to run.  This implies '-n' and is subject
++to the same limitations as compile time error checking checking;
++Backticks, [] tests,  and evals are not parsed so some 
++dependencies may be missed.
+ .B \-\-verbose
+ Equivalent to  \fB\-v\fP.
+ .TP
+diff -r -u bash-2.03.orig/doc/bashref.texi bash-2.03.new/doc/bashref.texi
+--- bash-2.03.orig/doc/bashref.texi    Wed Jan 20 16:47:01 1999
++++ bash-2.03.new/doc/bashref.texi     Fri Jul 16 11:21:30 1999
+@@ -3178,6 +3178,13 @@
+ @item --restricted
+ Make the shell a restricted shell (@pxref{The Restricted Shell}).
++@item --rpm-requires
++Produce the list of files that are required for the 
++shell script to run.  This implies '-n' and is subject
++to the same limitations as compile time error checking checking;
++Backticks, [] tests,  and evals are not parsed so some 
++dependencies may be missed.
++
+ @item --verbose
+ Equivalent to @samp{-v}.
+diff -r -u bash-2.03.orig/make_cmd.c bash-2.03.new/make_cmd.c
+--- bash-2.03.orig/make_cmd.c  Tue Jan 12 12:45:36 1999
++++ bash-2.03.new/make_cmd.c   Fri Jul 16 11:48:18 1999
+@@ -41,6 +41,7 @@
+ #include "subst.h"
+ #include "input.h"
+ #include "externs.h"
++#include "builtins.h"
+ #if defined (JOB_CONTROL)
+ #include "jobs.h"
+@@ -48,6 +49,7 @@
+ extern int line_number, current_command_line_count;
+ extern int disallow_filename_globbing;
++extern int rpm_requires;
+ WORD_DESC *
+ make_bare_word (string)
+@@ -588,6 +590,24 @@
+   return (make_command (cm_function_def, (SIMPLE_COM *)temp));
+ }
++void
++output_requirement (file)
++char *file;
++{
++  if (file[0] != '/') {
++    /* if we are not given a full path name we require the basename
++       otherwise we require the full path.  This does not work in the
++       Win/Dos world but I don't know what to do there.*/
++    char *basename;
++    basename = strrchr(file, '/');
++    if (basename) {    
++      basename++;
++      file=basename;
++    }
++  }  
++  printf ("bash(%s)\n", file);
++}
++
+ /* Reverse the word list and redirection list in the simple command
+    has just been parsed.  It seems simpler to do this here the one
+    time then by any other method that I can think of. */
+@@ -604,6 +624,25 @@
+       command->value.Simple->redirects =
+       REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
+     }
++
++  if (rpm_requires)
++    {
++      char *cmd0;
++      char *cmd1;
++      struct builtin *b;
++
++      cmd0 = command->value.Simple->words->word->word;
++      b = builtin_address_internal (cmd0, 0);
++      if (b) {
++      if (b->flags & REQUIRES_BUILTIN){
++        cmd1 = command->value.Simple->words->next->word->word;
++        output_requirement(cmd1);
++      }
++      } else {
++      if (!assignment(cmd0))
++        output_requirement(cmd0);
++      }
++    } /*rpm_requires*/
+   return (command);
+ }
+diff -r -u bash-2.03.orig/shell.c bash-2.03.new/shell.c
+--- bash-2.03.orig/shell.c     Thu Feb 18 11:42:27 1999
++++ bash-2.03.new/shell.c      Fri Jul 16 11:30:57 1999
+@@ -170,6 +170,9 @@
+ /* The name of the .(shell)rc file. */
+ static char *bashrc_file = "~/.bashrc";
++/* Non-zero if we are finding the scripts requirements. */
++int rpm_requires;
++
+ /* Non-zero means to act more like the Bourne shell on startup. */
+ static int act_like_sh;
+@@ -215,6 +218,7 @@
+   { "norc", Int, &no_rc, (char **)0x0 },
+   { "posix", Int, &posixly_correct, (char **)0x0 },
+   { "rcfile", Charp, (int *)0x0, &bashrc_file },
++  { "rpm-requires", Int, &rpm_requires, (char **)0x0 },
+ #if defined (RESTRICTED_SHELL)
+   { "restricted", Int, &restricted, (char **)0x0 },
+ #endif
+@@ -398,6 +402,12 @@
+   if (dump_translatable_strings)
+     read_but_dont_execute = 1;
++
++  if (rpm_requires)
++    {
++      read_but_dont_execute = 1;
++      initialize_shell_builtins ();
++    }
+   if (running_setuid && privileged_mode == 0)
+     disable_priv_mode ();
+
+
This page took 0.087415 seconds and 4 git commands to generate.