File: login-shell.dpatch

package info (click to toggle)
bash 3.1dfsg-8
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,536 kB
  • ctags: 62
  • sloc: sh: 7,186; makefile: 503; ansic: 467
file content (34 lines) | stat: -rw-r--r-- 891 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#! /bin/sh -e

if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
    -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
    *)
	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
	exit 1
esac
exit 0

# DP: * Recognize 'exec -l /bin/bash' as login shell.

--- shell.c.orig	2006-03-03 23:15:17.178734888 +0100
+++ shell.c	2006-03-03 23:44:01.556589608 +0100
@@ -1533,9 +1533,10 @@
      any startup files; just try to be more like /bin/sh. */
   shell_name = argv0 ? base_pathname (argv0) : PROGRAM;
 
-  if (*shell_name == '-')
+  if (argv0 && *argv0 == '-')
     {
-      shell_name++;
+      if (*shell_name == '-')
+        shell_name++;
       login_shell++;
     }