diff options
author | Daniel LEVAI <leva@ecentrum.hu> | 2011-10-08 20:29:28 -0500 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2011-10-08 20:29:28 -0500 |
commit | 7fc7de8808cabfc22347ad9ca0c51600a2d49550 (patch) | |
tree | 7eff81c82e0eb078a175dfd464e7470a6d3d2d75 /system/ksh | |
parent | 0b9d751630eb7df09cffbee79794e17d0020af67 (diff) | |
download | slackbuilds-7fc7de8808cabfc22347ad9ca0c51600a2d49550.tar.gz |
system/ksh-openbsd: Renamed from "ksh" and updated to 20110909
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'system/ksh')
31 files changed, 0 insertions, 1310 deletions
diff --git a/system/ksh/README b/system/ksh/README deleted file mode 100644 index 56d8252f8e..0000000000 --- a/system/ksh/README +++ /dev/null @@ -1,14 +0,0 @@ -This package is a patched version of the OpenBSD ksh, which is based on -the original PD-ksh, but heavily modified and maintained by OpenBSD -developers. "Patched" means ported to Linux. -You can download the source package from a mirror listed in the -slackbuild's info file, or you can always checkout the latest source -from OpenBSD's repository. - -PD-ksh is a clone of the AT&T Korn shell. - -PD-ksh has most of the ksh88 features, not much of the ksh93 features, -and a number of its own features. It is free and quite portable - you -should be able to compile it easily on pretty much any unix box. -The vi editing mode is better (IMHO) than that of ksh88 or ksh93 -(command/file completion using tab (optional), less buggy). diff --git a/system/ksh/doinst.sh b/system/ksh/doinst.sh deleted file mode 100644 index 63941d1bac..0000000000 --- a/system/ksh/doinst.sh +++ /dev/null @@ -1,4 +0,0 @@ -if ! grep -q '/bin/pdksh' etc/shells ; then - printf "/bin/pdksh\n" >> etc/shells ; -fi - diff --git a/system/ksh/ksh.SlackBuild b/system/ksh/ksh.SlackBuild deleted file mode 100644 index 041e44db1e..0000000000 --- a/system/ksh/ksh.SlackBuild +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2010 Daniel LEVAI -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the <organization> nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Build script for the Linux port of OpenBSD's ksh - -PRGNAM=ksh -VERSION=openbsd49 -BUILD=${BUILD:-3} -TAG=${TAG:-_SBo} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i486 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -fi - -CWD=$(pwd) -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} - -if [ "${ARCH}" == "i486" ];then - SLKCFLAGS='-march=i486 -mtune=i686' - LIBDIRSUFFIX="" -elif [ "$ARCH" == "i686" ]; then - SLKCFLAGS="-march=i686 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "${ARCH}" == "x86_64" ];then - SLKCFLAGS='-fPIC' - LIBDIRSUFFIX="64" -else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" -fi - -set -e - -rm -Rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -Rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz -cd $PRGNAM-$VERSION -chown -R root:root . -find . \ - \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -for patch in "${CWD}"/patches/linux/*.diff;do - patch -p1 < "${patch}" -done -for patch in "${CWD}"/patches/*.diff;do - patch -p1 < "${patch}" -done - -CFLAGS="$SLKCFLAGS $(getconf LFS_CFLAGS)" make -make install DESTDIR=$PKG - -strip --strip-unneeded $PKG/bin/pdksh -gzip -9 $PKG/usr/man/man1/pdksh.1 - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - INSTALL LEGAL NOTES PROJECTS README \ - $PKG/usr/doc/$PRGNAM-$VERSION - -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh - -cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/system/ksh/ksh.info b/system/ksh/ksh.info deleted file mode 100644 index d0f4688dc0..0000000000 --- a/system/ksh/ksh.info +++ /dev/null @@ -1,10 +0,0 @@ -PRGNAM="ksh" -VERSION="openbsd49" -HOMEPAGE="http://leva.ecentrum.hu/slackbuilds/ksh-openbsd49.tar.gz" -DOWNLOAD="http://leva.ecentrum.hu/slackbuilds/ksh-openbsd49.tar.gz" -MD5SUM="a625102e5961f76bc9918484b2f05940" -DOWNLOAD_x86_64="" -MD5SUM_x86_64="" -MAINTAINER="Daniel LEVAI" -EMAIL="leva@ecentrum.hu" -APPROVED="dsomero" diff --git a/system/ksh/patches/0001-ksh-vi-mode-complete-as-command-on-Ctrl-f.diff b/system/ksh/patches/0001-ksh-vi-mode-complete-as-command-on-Ctrl-f.diff deleted file mode 100644 index 4888d25860..0000000000 --- a/system/ksh/patches/0001-ksh-vi-mode-complete-as-command-on-Ctrl-f.diff +++ /dev/null @@ -1,152 +0,0 @@ -From 6af44d2fa0cdcba11368cf4eee141e42bf0dd422 Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 14:55:46 +0400 -Subject: [PATCH 1/8] ksh/vi mode: complete as command on Ctrl-f. - - * adds a flag for x_cf_glob() to force completion like it was a command - * new argument for complete_word() to pass the flag - * reuse print_expansions() unused argument to pass the flag - - Why: useful for sudo or one-liner completion - XXX: use different key combination? ---- - edit.c | 2 ++ - edit.h | 7 ++++--- - vi.c | 22 +++++++++++----------- - 3 files changed, 17 insertions(+), 14 deletions(-) - -diff --git a/edit.c b/edit.c -index 6c357a7..0b1ff7d 100644 ---- a/edit.c -+++ b/edit.c -@@ -599,6 +599,8 @@ x_cf_glob(int flags, const char *buf, int buflen, int pos, int *startp, - len = x_locate_word(buf, buflen, pos, startp, &is_command); - if (!(flags & XCF_COMMAND)) - is_command = 0; -+ if (flags & XCF_FORCE_COMMAND) -+ is_command = 1; - /* Don't do command globing on zero length strings - it takes too - * long and isn't very useful. File globs are more likely to be - * useful, so allow these. -diff --git a/edit.h b/edit.h -index f966fe4..9c75ffc 100644 ---- a/edit.h -+++ b/edit.h -@@ -38,9 +38,10 @@ typedef struct { - EXTERN X_chars edchars; - - /* x_cf_glob() flags */ --#define XCF_COMMAND BIT(0) /* Do command completion */ --#define XCF_FILE BIT(1) /* Do file completion */ --#define XCF_FULLPATH BIT(2) /* command completion: store full path */ -+#define XCF_COMMAND BIT(0) /* Do command completion */ -+#define XCF_FILE BIT(1) /* Do file completion */ -+#define XCF_FULLPATH BIT(2) /* command completion: store full path */ -+#define XCF_FORCE_COMMAND BIT(3) /* Force completion as a command */ - #define XCF_COMMAND_FILE (XCF_COMMAND|XCF_FILE) - - /* edit.c */ -diff --git a/vi.c b/vi.c -index 889b35a..e4173c7 100644 ---- a/vi.c -+++ b/vi.c -@@ -58,7 +58,7 @@ static int newcol(int, int); - static void display(char *, char *, int); - static void ed_mov_opt(int, char *); - static int expand_word(int); --static int complete_word(int, int); -+static int complete_word(int, int, int); - static int print_expansions(struct edstate *, int); - static int char_len(int); - static void x_vi_zotc(int); -@@ -651,7 +651,7 @@ vi_insert(int ch) - break; - - case Ctrl('f'): -- complete_word(0, 0); -+ complete_word(0, 0, XCF_FORCE_COMMAND); - break; - - case Ctrl('e'): -@@ -660,7 +660,7 @@ vi_insert(int ch) - - case Ctrl('i'): - if (Flag(FVITABCOMPLETE)) { -- complete_word(0, 0); -+ complete_word(0, 0, 0); - break; - } - /* FALLTHROUGH */ -@@ -1111,14 +1111,14 @@ vi_cmd(int argcnt, const char *cmd) - - case '=': /* at&t ksh */ - case Ctrl('e'): /* Nonstandard vi/ksh */ -- print_expansions(es, 1); -+ print_expansions(es, 0); - break; - - - case Ctrl('i'): /* Nonstandard vi/ksh */ - if (!Flag(FVITABCOMPLETE)) - return -1; -- complete_word(1, argcnt); -+ complete_word(1, argcnt, 0); - break; - - case Ctrl('['): /* some annoying at&t ksh's */ -@@ -1126,7 +1126,7 @@ vi_cmd(int argcnt, const char *cmd) - return -1; - case '\\': /* at&t ksh */ - case Ctrl('f'): /* Nonstandard vi/ksh */ -- complete_word(1, argcnt); -+ complete_word(1, argcnt, 0); - break; - - -@@ -1939,7 +1939,7 @@ expand_word(int command) - } - - static int --complete_word(int command, int count) -+complete_word(int command, int count, int flags) - { - static struct edstate *buf; - int rval = 0; -@@ -1953,7 +1953,7 @@ complete_word(int command, int count) - - /* Undo previous completion */ - if (command == 0 && expanded == COMPLETE && buf) { -- print_expansions(buf, 0); -+ print_expansions(buf, flags); - expanded = PRINT; - return 0; - } -@@ -1971,7 +1971,7 @@ complete_word(int command, int count) - /* XCF_FULLPATH for count 'cause the menu printed by print_expansions() - * was done this way. - */ -- nwords = x_cf_glob(XCF_COMMAND_FILE | (count ? XCF_FULLPATH : 0), -+ nwords = x_cf_glob(XCF_COMMAND_FILE | (count ? XCF_FULLPATH : 0) | flags, - es->cbuf, es->linelen, es->cursor, - &start, &end, &words, &is_command); - if (nwords == 0) { -@@ -2044,14 +2044,14 @@ complete_word(int command, int count) - } - - static int --print_expansions(struct edstate *e, int command) -+print_expansions(struct edstate *e, int flags) - { - int nwords; - int start, end; - char **words; - int is_command; - -- nwords = x_cf_glob(XCF_COMMAND_FILE|XCF_FULLPATH, -+ nwords = x_cf_glob(XCF_COMMAND_FILE|XCF_FULLPATH|flags, - e->cbuf, e->linelen, e->cursor, - &start, &end, &words, &is_command); - if (nwords == 0) { --- -1.7.5 - diff --git a/system/ksh/patches/0003-ksh-vi-Ctrl-l-in-insert-mode-to-clear-the-screen.diff b/system/ksh/patches/0003-ksh-vi-Ctrl-l-in-insert-mode-to-clear-the-screen.diff deleted file mode 100644 index 7f94b8bc6c..0000000000 --- a/system/ksh/patches/0003-ksh-vi-Ctrl-l-in-insert-mode-to-clear-the-screen.diff +++ /dev/null @@ -1,45 +0,0 @@ -From 13ef2cd4206ed541fe1dae46c91a339fba5cf5cf Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 15:12:31 +0400 -Subject: [PATCH 3/8] ksh/vi: Ctrl-l in insert mode to clear the screen. - - Why: typing "clear" is too slow. ---- - ksh.1 | 3 +++ - vi.c | 6 ++++++ - 2 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/ksh.1 b/ksh.1 -index f4b5815..01130ea 100644 ---- a/ksh.1 -+++ b/ksh.1 -@@ -5215,6 +5215,9 @@ List all the commands or files that match the current big-word. - Macro expansion. - Execute the commands found in the alias - .Ar c . -+.It ^L -+Clear the screen leaving the current line at the top of the -+screen. - .El - .Pp - Intra-line movement commands: -diff --git a/vi.c b/vi.c -index e4173c7..d0de478 100644 ---- a/vi.c -+++ b/vi.c -@@ -646,6 +646,12 @@ vi_insert(int ch) - return redo_insert(lastac - 1); - - /* { Begin nonstandard vi commands */ -+ case Ctrl('l'): -+ /* Use ANSI escape codes to clear the screen */ -+ x_puts("\033[2J\033[0;0H"); -+ redraw_line(0); -+ break; -+ - case Ctrl('x'): - expand_word(0); - break; --- -1.7.5 - diff --git a/system/ksh/patches/0004-ksh-vi-make-Ctrl-f-in-command-mode-behave-the-same-a.diff b/system/ksh/patches/0004-ksh-vi-make-Ctrl-f-in-command-mode-behave-the-same-a.diff deleted file mode 100644 index ec86efd52a..0000000000 --- a/system/ksh/patches/0004-ksh-vi-make-Ctrl-f-in-command-mode-behave-the-same-a.diff +++ /dev/null @@ -1,26 +0,0 @@ -From 90f648bf6182d558ff6489caefb52240fb2eab4e Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 15:34:55 +0400 -Subject: [PATCH 4/8] ksh/vi: make Ctrl-f in command mode behave the same as - in insert. - ---- - vi.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/vi.c b/vi.c -index d0de478..6eb5d8c 100644 ---- a/vi.c -+++ b/vi.c -@@ -1132,7 +1132,7 @@ vi_cmd(int argcnt, const char *cmd) - return -1; - case '\\': /* at&t ksh */ - case Ctrl('f'): /* Nonstandard vi/ksh */ -- complete_word(1, argcnt, 0); -+ complete_word(1, argcnt, XCF_FORCE_COMMAND); - break; - - --- -1.7.5 - diff --git a/system/ksh/patches/0005-ksh-print-expansions-like-a-menu-with-numbers-in-vi-.diff b/system/ksh/patches/0005-ksh-print-expansions-like-a-menu-with-numbers-in-vi-.diff deleted file mode 100644 index aeb5413863..0000000000 --- a/system/ksh/patches/0005-ksh-print-expansions-like-a-menu-with-numbers-in-vi-.diff +++ /dev/null @@ -1,105 +0,0 @@ -From 91ebd29a64451742b65115fc27034c6a3d154f90 Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 15:41:53 +0400 -Subject: [PATCH 5/8] ksh: print expansions like a "menu" (with numbers) in vi - mode - - * adds an extra argument to x_print_expansions() - - preserves the emacs mode behaviour - - Why: in vi mode one can use the expansion number to - complete the word, but w/o numbers printed you - have to *count* expansions with your eyes to - find out the number. Stupid, huh? ---- - edit.c | 7 +++++-- - edit.h | 2 +- - emacs.c | 4 ++-- - vi.c | 4 ++-- - 4 files changed, 10 insertions(+), 7 deletions(-) - -diff --git a/edit.c b/edit.c -index 0b1ff7d..9cdcc6d 100644 ---- a/edit.c -+++ b/edit.c -@@ -292,7 +292,7 @@ static void glob_path(int flags, const char *pat, XPtrV *wp, - const char *path); - - void --x_print_expansions(int nwords, char *const *words, int is_command) -+x_print_expansions(int nwords, char *const *words, int is_command, int menu) - { - int use_copy = 0; - int prefix_len; -@@ -330,7 +330,10 @@ x_print_expansions(int nwords, char *const *words, int is_command) - */ - x_putc('\r'); - x_putc('\n'); -- pr_list(use_copy ? (char **) XPptrv(l) : words); -+ if (menu) -+ pr_menu(use_copy ? (char **) XPptrv(l) : words); -+ else -+ pr_list(use_copy ? (char **) XPptrv(l) : words); - - if (use_copy) - XPfree(l); /* not x_free_words() */ -diff --git a/edit.h b/edit.h -index 37ccf28..258affe 100644 ---- a/edit.h -+++ b/edit.h -@@ -52,7 +52,7 @@ void x_puts(const char *); - bool x_mode(bool); - int promptlen(const char *, const char **); - int x_do_comment(char *, int, int *); --void x_print_expansions(int, char *const *, int); -+void x_print_expansions(int, char *const *, int, int); - int x_cf_glob(int, const char *, int, int, int *, int *, char ***, int *); - int x_longest_prefix(int , char *const *); - int x_basename(const char *, const char *); -diff --git a/emacs.c b/emacs.c -index 0bfda96..3b2d083 100644 ---- a/emacs.c -+++ b/emacs.c -@@ -1684,7 +1684,7 @@ do_complete(int flags, /* XCF_{COMMAND,FILE,COMMAND_FILE} */ - } - - if (type == CT_LIST) { -- x_print_expansions(nwords, words, is_command); -+ x_print_expansions(nwords, words, is_command, 0); - x_redraw(0); - x_free_words(nwords, words); - return; -@@ -1707,7 +1707,7 @@ do_complete(int flags, /* XCF_{COMMAND,FILE,COMMAND_FILE} */ - } - - if (type == CT_COMPLIST && !completed) { -- x_print_expansions(nwords, words, is_command); -+ x_print_expansions(nwords, words, is_command, 0); - completed = 1; - } - -diff --git a/vi.c b/vi.c -index 6eb5d8c..95d192c 100644 ---- a/vi.c -+++ b/vi.c -@@ -1990,7 +1990,7 @@ complete_word(int command, int count, int flags) - count--; - if (count >= nwords) { - vi_error(); -- x_print_expansions(nwords, words, is_command); -+ x_print_expansions(nwords, words, is_command, 1); - x_free_words(nwords, words); - redraw_line(0); - return -1; -@@ -2064,7 +2064,7 @@ print_expansions(struct edstate *e, int flags) - vi_error(); - return -1; - } -- x_print_expansions(nwords, words, is_command); -+ x_print_expansions(nwords, words, is_command, 1); - x_free_words(nwords, words); - redraw_line(0); - return 0; --- -1.7.5 - diff --git a/system/ksh/patches/0006-ksh-remove-backslashes-in-filenames-using-lex.diff b/system/ksh/patches/0006-ksh-remove-backslashes-in-filenames-using-lex.diff deleted file mode 100644 index 4ce48a8104..0000000000 --- a/system/ksh/patches/0006-ksh-remove-backslashes-in-filenames-using-lex.diff +++ /dev/null @@ -1,115 +0,0 @@ -From 458d69d8f10d582fd7a546eabc1b555bb7337627 Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 16:05:58 +0400 -Subject: [PATCH 6/8] ksh: remove backslashes in filenames using lex. - - * this also removes the check for matching pattern and - returned filename. if it returns 1 name, then it must - be the filename of an existing file, right? i think - so. - - Why: - - * less ugly code - * working completion for special characters like [], () and so - * suggested by martynas ---- - edit.c | 31 +++++++------------------------ - lex.c | 4 ++++ - lex.h | 1 + - 3 files changed, 12 insertions(+), 24 deletions(-) - -diff --git a/edit.c b/edit.c -index 9cdcc6d..01c2fe6 100644 ---- a/edit.c -+++ b/edit.c -@@ -351,7 +351,7 @@ x_file_glob(int flags, const char *str, int slen, char ***wordsp) - { - char *toglob; - char **words; -- int nwords, i, idx, escaping; -+ int nwords; - XPtrV w; - struct source *s, *sold; - -@@ -360,20 +360,6 @@ x_file_glob(int flags, const char *str, int slen, char ***wordsp) - - toglob = add_glob(str, slen); - -- /* remove all escaping backward slashes */ -- escaping = 0; -- for (i = 0, idx = 0; toglob[i]; i++) { -- if (toglob[i] == '\\' && !escaping) { -- escaping = 1; -- continue; -- } -- -- toglob[idx] = toglob[i]; -- idx++; -- if (escaping) escaping = 0; -- } -- toglob[idx] = '\0'; -- - /* - * Convert "foo*" (toglob) to an array of strings (words) - */ -@@ -381,7 +367,7 @@ x_file_glob(int flags, const char *str, int slen, char ***wordsp) - s = pushs(SWSTR, ATEMP); - s->start = s->str = toglob; - source = s; -- if (yylex(ONEWORD) != LWORD) { -+ if (yylex(ONEWORD|RMBKSLSH) != LWORD) { - source = sold; - internal_errorf(0, "fileglob: substitute error"); - return 0; -@@ -397,15 +383,12 @@ x_file_glob(int flags, const char *str, int slen, char ***wordsp) - if (nwords == 1) { - struct stat statb; - -- /* Check if globbing failed (returned glob pattern), -- * but be careful (E.g. toglob == "ab*" when the file -- * "ab*" exists is not an error). -- * Also, check for empty result - happens if we tried -- * to glob something which evaluated to an empty -- * string (e.g., "$FOO" when there is no FOO, etc). -+ /* Check if file exists, also, check for empty -+ * result - happens if we tried to glob something -+ * which evaluated to an empty string (e.g., -+ * "$FOO" when there is no FOO, etc). - */ -- if ((strcmp(words[0], toglob) == 0 && -- stat(words[0], &statb) < 0) || -+ if((stat(words[0], &statb) < 0) || - words[0][0] == '\0') { - x_free_words(nwords, words); - words = NULL; -diff --git a/lex.c b/lex.c -index ef741c6..fe3d91d 100644 ---- a/lex.c -+++ b/lex.c -@@ -299,6 +299,10 @@ yylex(int cf) - } - /* FALLTHROUGH */ - default: -+ if (cf & RMBKSLSH) { -+ *wp++ = QCHAR, *wp++ = c; -+ break; -+ } - Xcheck(ws, wp); - if (c) { /* trailing \ is lost */ - *wp++ = CHAR, *wp++ = '\\'; -diff --git a/lex.h b/lex.h -index 0904fbd..6a0dbf9 100644 ---- a/lex.h -+++ b/lex.h -@@ -113,6 +113,7 @@ typedef union { - #define CMDWORD BIT(8) /* parsing simple command (alias related) */ - #define HEREDELIM BIT(9) /* parsing <<,<<- delimiter */ - #define HEREDOC BIT(10) /* parsing heredoc */ -+#define RMBKSLSH BIT(11) /* remove backslashes */ - - #define HERES 10 /* max << in line */ - --- -1.7.5 - diff --git a/system/ksh/patches/0007-ksh-vi-compensate-for-cursor-move-on-command-mode.diff b/system/ksh/patches/0007-ksh-vi-compensate-for-cursor-move-on-command-mode.diff deleted file mode 100644 index 8db9a55c55..0000000000 --- a/system/ksh/patches/0007-ksh-vi-compensate-for-cursor-move-on-command-mode.diff +++ /dev/null @@ -1,55 +0,0 @@ -From fc2058b4b6a64d66fe1ee318bccea42b4569d31f Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Sun, 29 May 2011 19:23:17 +0400 -Subject: [PATCH 7/8] ksh/vi: compensate for cursor move on command mode - - * move completion cursor one position right if the - character is space - * when we enter command mode, cursor is moved one - position left, and the space on the end is "lost". - So we are trying to complete "ls" instead of file - while having "ls " and "file.c" when having "file.c ". ---- - vi.c | 15 ++++++++++++++- - 1 files changed, 14 insertions(+), 1 deletions(-) - -diff --git a/vi.c b/vi.c -index 95d192c..0bac6be 100644 ---- a/vi.c -+++ b/vi.c -@@ -1956,6 +1956,7 @@ complete_word(int command, int count, int flags) - int match_len; - int is_unique; - int is_command; -+ int pos; - - /* Undo previous completion */ - if (command == 0 && expanded == COMPLETE && buf) { -@@ -1974,11 +1975,23 @@ complete_word(int command, int count, int flags) - buf = 0; - } - -+ /* XXX: hack. When we enter command mode, the cursor is moved -+ * one position left. This means that the space at the end is -+ * eaten and file completion becomes command completion. -+ * (see x_locate_word() for more on this) -+ */ -+ pos = es->cursor; -+ if (command) { -+ pos += (isspace(es->cbuf[es->cursor]) ? 1 : 0); -+ if (pos > es->linelen) -+ pos = es->linelen; -+ } -+ - /* XCF_FULLPATH for count 'cause the menu printed by print_expansions() - * was done this way. - */ - nwords = x_cf_glob(XCF_COMMAND_FILE | (count ? XCF_FULLPATH : 0) | flags, -- es->cbuf, es->linelen, es->cursor, -+ es->cbuf, es->linelen, pos, - &start, &end, &words, &is_command); - if (nwords == 0) { - vi_error(); --- -1.7.5 - diff --git a/system/ksh/patches/0008-Remove-from-the-list-of-characters-blocking-addition.diff b/system/ksh/patches/0008-Remove-from-the-list-of-characters-blocking-addition.diff deleted file mode 100644 index 1a767a4f8c..0000000000 --- a/system/ksh/patches/0008-Remove-from-the-list-of-characters-blocking-addition.diff +++ /dev/null @@ -1,37 +0,0 @@ -From 5fc8a0ae3c807bd57c8e8d55531770914ea6670a Mon Sep 17 00:00:00 2001 -From: Alexander Polakov <polachok@gmail.com> -Date: Mon, 20 Jun 2011 00:35:46 +0400 -Subject: [PATCH 8/8] Remove $ from the list of characters blocking * - addition. - -This allows things like $HOME/bi<tab> complete to /home/username/bin. ---- - edit.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/edit.c b/edit.c -index 01c2fe6..2702dab 100644 ---- a/edit.c -+++ b/edit.c -@@ -627,14 +627,14 @@ add_glob(const char *str, int slen) - - /* - * If the pathname contains a wildcard (an unquoted '*', -- * '?', or '[') or parameter expansion ('$'), or a ~username -- * with no trailing slash, then it is globbed based on that -- * value (i.e., without the appended '*'). -+ * '?', or '[') or a ~username with no trailing slash, -+ * then it is globbed based on that value (i.e., without -+ * the appended '*'). - */ - for (s = toglob; *s; s++) { - if (*s == '\\' && s[1]) - s++; -- else if (*s == '*' || *s == '[' || *s == '?' || *s == '$' || -+ else if ((*s == '*' || *s == '[' || *s == '?') || - (s[1] == '(' /*)*/ && strchr("+@!", *s))) - break; - else if (*s == '/') --- -1.7.5 - diff --git a/system/ksh/patches/linux/Makefile.diff b/system/ksh/patches/linux/Makefile.diff deleted file mode 100644 index 7c9ca8f8ca..0000000000 --- a/system/ksh/patches/linux/Makefile.diff +++ /dev/null @@ -1,58 +0,0 @@ ---- ksh-openbsd_cvs/Makefile 2010-02-23 12:49:12.000000000 +0100 -+++ ksh-openbsd_cvs.new/Makefile 2010-04-01 21:21:23.498239164 +0200 -@@ -1,28 +1,43 @@ --# $OpenBSD: Makefile,v 1.27 2009/03/03 20:01:01 millert Exp $ -+ifdef ${PREFIX} -+PREFIX=${PREFIX} -+else -+PREFIX=/usr -+endif -+BINDIR=${DESTDIR}/bin -+MANDIR=${DESTDIR}${PREFIX}/man - - PROG= ksh - SRCS= alloc.c c_ksh.c c_sh.c c_test.c c_ulimit.c edit.c emacs.c eval.c \ - exec.c expr.c history.c io.c jobs.c lex.c mail.c main.c mknod.c \ - misc.c path.c shf.c syn.c table.c trap.c tree.c tty.c var.c \ -- version.c vi.c -- --DEFS= -Wall --CFLAGS+=${DEFS} -I. -I${.CURDIR} -I${.CURDIR}/../../lib/libc/gen --MAN= ksh.1 sh.1 -+ version.c vi.c strlcpy.c strlcat.c -+OBJS= alloc.o c_ksh.o c_sh.o c_test.o c_ulimit.o edit.o emacs.o eval.o \ -+ exec.o expr.o history.o io.o jobs.o lex.o mail.o main.o mknod.o \ -+ misc.o path.o shf.o syn.o table.o trap.o tree.o tty.o var.o \ -+ version.o vi.o strlcpy.o strlcat.o - - CLEANFILES+= emacs.out - --LINKS= ${BINDIR}/ksh ${BINDIR}/rksh --LINKS+= ${BINDIR}/ksh ${BINDIR}/sh --MLINKS= ksh.1 rksh.1 -+all: $(PROG) -+ -+CFLAGS+=-Wall -+$(PROG): $(OBJS) -+ gcc $(OBJS) -o ksh -+ -+install: -+ install -m755 -d $(BINDIR) -+ install -m755 --strip --no-target-directory ksh $(BINDIR)/pdksh -+ install -m755 -d $(MANDIR)/man1 -+ install -m644 --no-target-directory ksh.1 $(MANDIR)/man1/pdksh.1 -+ -+clean: -+ rm -f $(OBJS) $(PROG) emacs.out - - .depend emacs.o: emacs.out - - emacs.out: emacs.c -- /bin/sh ${.CURDIR}/emacs-gen.sh ${.CURDIR}/emacs.c > emacs.out -+ /bin/sh emacs-gen.sh emacs.c > emacs.out - - check test: - /usr/bin/perl ${.CURDIR}/tests/th -s ${.CURDIR}/tests -p ./ksh -C \ - pdksh,sh,ksh,posix,posix-upu -- --.include <bsd.prog.mk> diff --git a/system/ksh/patches/linux/c_sh_c.diff b/system/ksh/patches/linux/c_sh_c.diff deleted file mode 100644 index 09b74c7a0b..0000000000 --- a/system/ksh/patches/linux/c_sh_c.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- ksh-openbsd_cvs/c_sh.c 2010-03-27 17:25:30.000000000 +0100 -+++ ksh-openbsd_cvs.new/c_sh.c 2010-04-01 21:01:24.132137763 +0200 -@@ -837,19 +837,13 @@ c_mknod(char **wp) - { - int argc, optc, ismkfifo = 0, ret; - char **argv; -- void *set = NULL; -- mode_t mode = 0, oldmode = 0; -+ mode_t mode = 0, old_umask = -1; - - while ((optc = ksh_getopt(wp, &builtin_opt, "m:")) != -1) { - switch (optc) { - case 'm': -- set = setmode(builtin_opt.optarg); -- if (set == NULL) { -- bi_errorf("invalid file mode"); -- return 1; -- } -- mode = getmode(set, DEFFILEMODE); -- free(set); -+ old_umask = umask(0); -+ mode |= strtoul(builtin_opt.optarg, NULL, 8); - break; - default: - goto usage; -@@ -866,18 +860,17 @@ c_mknod(char **wp) - } else if (argc != 4) - goto usage; - -- if (set) -- oldmode = umask(0); -- else -- mode = DEFFILEMODE; -+ if (old_umask == -1) -+ mode |= DEFFILEMODE; - - if (ismkfifo) - ret = domkfifo(argc, argv, mode); - else - ret = domknod(argc, argv, mode); - -- if (set) -- umask(oldmode); -+ if (old_umask != -1) -+ umask(old_umask); -+ - return ret; - usage: - builtin_argv0 = NULL; diff --git a/system/ksh/patches/linux/charclass_h.diff b/system/ksh/patches/linux/charclass_h.diff deleted file mode 100644 index 05e7957075..0000000000 --- a/system/ksh/patches/linux/charclass_h.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- ksh-openbsd_cvs/charclass.h 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/charclass.h 2010-04-01 21:01:24.132137763 +0200 -@@ -0,0 +1,33 @@ -+/* -+ * Public domain, 2008, Todd C. Miller <Todd.Miller@courtesan.com> -+ * -+ * $OpenBSD: charclass.h,v 1.1 2008/10/01 23:04:13 millert Exp $ -+ */ -+ -+#include <ctype.h> -+ -+#define isblank(c) __isctype((c), _ISblank) -+ -+/* -+ * POSIX character class support for fnmatch() and glob(). -+ */ -+static struct cclass { -+ const char *name; -+ int (*isctype)(int); -+} cclasses[] = { -+ { "alnum", isalnum }, -+ { "alpha", isalpha }, -+// { "blank", isblank }, -+ { "cntrl", iscntrl }, -+ { "digit", isdigit }, -+ { "graph", isgraph }, -+ { "lower", islower }, -+ { "print", isprint }, -+ { "punct", ispunct }, -+ { "space", isspace }, -+ { "upper", isupper }, -+ { "xdigit", isxdigit }, -+ { NULL, NULL } -+}; -+ -+#define NCCLASSES (sizeof(cclasses) / sizeof(cclasses[0]) - 1) diff --git a/system/ksh/patches/linux/emacs_c.diff b/system/ksh/patches/linux/emacs_c.diff deleted file mode 100644 index 4bf6c2a6bc..0000000000 --- a/system/ksh/patches/linux/emacs_c.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ksh-openbsd_cvs/emacs.c 2010-02-23 12:49:15.000000000 +0100 -+++ ksh-openbsd_cvs.new/emacs.c 2010-04-01 21:01:24.133232595 +0200 -@@ -16,6 +16,7 @@ - #include <ctype.h> - #include <locale.h> - #include "edit.h" -+#include "strlcpy.h" - - static Area aedit; - #define AEDIT &aedit /* area for kill ring and macro defns */ diff --git a/system/ksh/patches/linux/eval_c.diff b/system/ksh/patches/linux/eval_c.diff deleted file mode 100644 index 9d580d8a63..0000000000 --- a/system/ksh/patches/linux/eval_c.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- ksh.orig/eval.c.orig 2011-03-27 14:33:38.000000000 +0200 -+++ ksh/eval.c 2011-03-27 15:08:25.986119913 +0200 -@@ -8,6 +8,7 @@ - #include <pwd.h> - #include <dirent.h> - #include <sys/stat.h> -+#include "strlcpy.h" - - /* - * string expansion -@@ -692,7 +693,7 @@ - int c; - int state; /* next state: XBASE, XARG, XSUB, XNULLSUB */ - int stype; /* substitution type */ -- int slen; -+ int slen = 0; - char *p; - struct tbl *vp; - diff --git a/system/ksh/patches/linux/history_c.diff b/system/ksh/patches/linux/history_c.diff deleted file mode 100644 index 674e33781e..0000000000 --- a/system/ksh/patches/linux/history_c.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ksh-openbsd_cvs/history.c 2010-02-23 12:49:16.000000000 +0100 -+++ ksh-openbsd_cvs.new/history.c 2010-04-01 21:01:24.133232595 +0200 -@@ -17,6 +17,7 @@ - - #include "sh.h" - #include <sys/stat.h> -+#include "strlcat.h" - - #ifdef HISTORY - # include <sys/file.h> diff --git a/system/ksh/patches/linux/jobs_c.diff b/system/ksh/patches/linux/jobs_c.diff deleted file mode 100644 index e50ffd3a94..0000000000 --- a/system/ksh/patches/linux/jobs_c.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- ksh-openbsd_cvs/jobs.c 2010-02-23 12:49:17.000000000 +0100 -+++ ksh-openbsd_cvs.new/jobs.c 2010-04-01 21:01:24.133232595 +0200 -@@ -21,6 +21,19 @@ - #include <sys/time.h> - #include <sys/resource.h> - #include "tty.h" -+#include "strlcpy.h" -+ -+#ifndef CHILD_MAX -+# if defined(HAVE_SYSCONF) && defined(_SC_CHILD_MAX) -+# define CHILD_MAX sysconf(_SC_CHILD_MAX) -+# else /* _SC_CHILD_MAX */ -+# ifdef _POSIX_CHILD_MAX -+# define CHILD_MAX ((_POSIX_CHILD_MAX) * 2) -+# else /* _POSIX_CHILD_MAX */ -+# define CHILD_MAX 20 -+# endif /* _POSIX_CHILD_MAX */ -+# endif /* _SC_CHILD_MAX */ -+#endif /* !CHILD_MAX */ - - /* Order important! */ - #define PRUNNING 0 diff --git a/system/ksh/patches/linux/lex_c.diff b/system/ksh/patches/linux/lex_c.diff deleted file mode 100644 index 40fd4234f1..0000000000 --- a/system/ksh/patches/linux/lex_c.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- ksh-openbsd_cvs/lex.c 2010-02-23 12:49:19.000000000 +0100 -+++ ksh-openbsd_cvs.new/lex.c 2010-04-01 21:01:24.134232647 +0200 -@@ -7,6 +7,8 @@ - #include "sh.h" - #include <libgen.h> - #include <ctype.h> -+#include <time.h> -+#include "strlcpy.h" - - - /* Structure to keep track of the lexing state and the various pieces of info diff --git a/system/ksh/patches/linux/main_c.diff b/system/ksh/patches/linux/main_c.diff deleted file mode 100644 index a5d90620c1..0000000000 --- a/system/ksh/patches/linux/main_c.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- ksh-openbsd_cvs/main.c 2010-02-23 12:49:19.000000000 +0100 -+++ ksh-openbsd_cvs.new/main.c 2010-04-01 21:01:24.134232647 +0200 -@@ -9,7 +9,12 @@ - #include "sh.h" - #include <sys/stat.h> - #include <pwd.h> -+#include "strlcpy.h" - -+/* on Linux we do not have _PW_NAME_LEN, but libc6 allows us 32 character usernames */ -+#ifndef _PW_NAME_LEN -+# define _PW_NAME_LEN 31 -+#endif - extern char **environ; - - /* diff --git a/system/ksh/patches/linux/misc_c.diff b/system/ksh/patches/linux/misc_c.diff deleted file mode 100644 index 9b09fba62c..0000000000 --- a/system/ksh/patches/linux/misc_c.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- ksh-openbsd_cvs/misc.c 2010-02-23 12:49:20.000000000 +0100 -+++ ksh-openbsd_cvs.new/misc.c 2010-04-01 21:01:24.134232647 +0200 -@@ -7,7 +7,9 @@ - #include "sh.h" - #include <ctype.h> - #include <sys/param.h> /* for MAXPATHLEN */ -+#include <grp.h> - #include "charclass.h" -+#include "strlcpy.h" - - short ctypes [UCHAR_MAX+1]; /* type bits for unsigned char */ - diff --git a/system/ksh/patches/linux/posix_signals_h.diff b/system/ksh/patches/linux/posix_signals_h.diff deleted file mode 100644 index 2d6b8cec4d..0000000000 --- a/system/ksh/patches/linux/posix_signals_h.diff +++ /dev/null @@ -1,128 +0,0 @@ ---- ksh-openbsd_cvs/posix_signals.h 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/posix_signals.h 2010-04-01 21:01:24.134232647 +0200 -@@ -0,0 +1,125 @@ -+/* -+ * Copyright (c) 1988, 1993, 1994 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. All advertising materials mentioning features or use of this software -+ * must display the following acknowledgement: -+ * This product includes software developed by the University of -+ * California, Berkeley and its contributors. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+/* -+ Taken from misc-utils/kill.c in the util-linux-ng package. -+ ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/ -+ */ -+ -+#ifndef POSIX_SIGNALS_H -+#define POSIX_SIGNALS_H -+ -+struct signv { -+ char *name; -+ int val; -+} sys_signame[NSIG] = { -+ /* POSIX signals */ -+ { "HUP", SIGHUP }, /* 1 */ -+ { "INT", SIGINT }, /* 2 */ -+ { "QUIT", SIGQUIT }, /* 3 */ -+ { "ILL", SIGILL }, /* 4 */ -+ { "ABRT", SIGABRT }, /* 6 */ -+ { "FPE", SIGFPE }, /* 8 */ -+ { "KILL", SIGKILL }, /* 9 */ -+ { "SEGV", SIGSEGV }, /* 11 */ -+ { "PIPE", SIGPIPE }, /* 13 */ -+ { "ALRM", SIGALRM }, /* 14 */ -+ { "TERM", SIGTERM }, /* 15 */ -+ { "USR1", SIGUSR1 }, /* 10 (arm,i386,m68k,ppc), 30 (alpha,sparc*), 16 (mips) */ -+ { "USR2", SIGUSR2 }, /* 12 (arm,i386,m68k,ppc), 31 (alpha,sparc*), 17 (mips) */ -+ { "CHLD", SIGCHLD }, /* 17 (arm,i386,m68k,ppc), 20 (alpha,sparc*), 18 (mips) */ -+ { "CONT", SIGCONT }, /* 18 (arm,i386,m68k,ppc), 19 (alpha,sparc*), 25 (mips) */ -+ { "STOP", SIGSTOP }, /* 19 (arm,i386,m68k,ppc), 17 (alpha,sparc*), 23 (mips) */ -+ { "TSTP", SIGTSTP }, /* 20 (arm,i386,m68k,ppc), 18 (alpha,sparc*), 24 (mips) */ -+ { "TTIN", SIGTTIN }, /* 21 (arm,i386,m68k,ppc,alpha,sparc*), 26 (mips) */ -+ { "TTOU", SIGTTOU }, /* 22 (arm,i386,m68k,ppc,alpha,sparc*), 27 (mips) */ -+ /* Miscellaneous other signals */ -+#ifdef SIGTRAP -+ { "TRAP", SIGTRAP }, /* 5 */ -+#endif -+#ifdef SIGIOT -+ { "IOT", SIGIOT }, /* 6, same as SIGABRT */ -+#endif -+#ifdef SIGEMT -+ { "EMT", SIGEMT }, /* 7 (mips,alpha,sparc*) */ -+#endif -+#ifdef SIGBUS -+ { "BUS", SIGBUS }, /* 7 (arm,i386,m68k,ppc), 10 (mips,alpha,sparc*) */ -+#endif -+#ifdef SIGSYS -+ { "SYS", SIGSYS }, /* 12 (mips,alpha,sparc*) */ -+#endif -+#ifdef SIGSTKFLT -+ { "STKFLT", SIGSTKFLT }, /* 16 (arm,i386,m68k,ppc) */ -+#endif -+#ifdef SIGURG -+ { "URG", SIGURG }, /* 23 (arm,i386,m68k,ppc), 16 (alpha,sparc*), 21 (mips) */ -+#endif -+#ifdef SIGIO -+ { "IO", SIGIO }, /* 29 (arm,i386,m68k,ppc), 23 (alpha,sparc*), 22 (mips) */ -+#endif -+#ifdef SIGPOLL -+ { "POLL", SIGPOLL }, /* same as SIGIO */ -+#endif -+#ifdef SIGCLD -+ { "CLD", SIGCLD }, /* same as SIGCHLD (mips) */ -+#endif -+#ifdef SIGXCPU -+ { "XCPU", SIGXCPU }, /* 24 (arm,i386,m68k,ppc,alpha,sparc*), 30 (mips) */ -+#endif -+#ifdef SIGXFSZ -+ { "XFSZ", SIGXFSZ }, /* 25 (arm,i386,m68k,ppc,alpha,sparc*), 31 (mips) */ -+#endif -+#ifdef SIGVTALRM -+ { "VTALRM", SIGVTALRM }, /* 26 (arm,i386,m68k,ppc,alpha,sparc*), 28 (mips) */ -+#endif -+#ifdef SIGPROF -+ { "PROF", SIGPROF }, /* 27 (arm,i386,m68k,ppc,alpha,sparc*), 29 (mips) */ -+#endif -+#ifdef SIGPWR -+ { "PWR", SIGPWR }, /* 30 (arm,i386,m68k,ppc), 29 (alpha,sparc*), 19 (mips) */ -+#endif -+#ifdef SIGINFO -+ { "INFO", SIGINFO }, /* 29 (alpha) */ -+#endif -+#ifdef SIGLOST -+ { "LOST", SIGLOST }, /* 29 (arm,i386,m68k,ppc,sparc*) */ -+#endif -+#ifdef SIGWINCH -+ { "WINCH", SIGWINCH }, /* 28 (arm,i386,m68k,ppc,alpha,sparc*), 20 (mips) */ -+#endif -+#ifdef SIGUNUSED -+ { "UNUSED", SIGUNUSED }, /* 31 (arm,i386,m68k,ppc) */ -+#endif -+}; /* sys_signame[] */ -+ -+#endif /* POSIX_SIGNALS_H */ diff --git a/system/ksh/patches/linux/sh_h.diff b/system/ksh/patches/linux/sh_h.diff deleted file mode 100644 index df6de9c4c9..0000000000 --- a/system/ksh/patches/linux/sh_h.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ksh-openbsd_cvs/sh.h 2010-02-23 12:49:21.000000000 +0100 -+++ ksh-openbsd_cvs.new/sh.h 2010-04-01 21:01:24.135232661 +0200 -@@ -16,6 +16,7 @@ - #include <stdbool.h> - #include <stddef.h> - #include <stdlib.h> -+#define __USE_GNU /* needed for setresuid() and setresgid() */ - #include <unistd.h> - #include <string.h> - #include <stdarg.h> diff --git a/system/ksh/patches/linux/strlcat_c.diff b/system/ksh/patches/linux/strlcat_c.diff deleted file mode 100644 index 1137522fcb..0000000000 --- a/system/ksh/patches/linux/strlcat_c.diff +++ /dev/null @@ -1,65 +0,0 @@ ---- ksh-openbsd_cvs/strlcat.c 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/strlcat.c 2010-04-01 21:01:24.135232661 +0200 -@@ -0,0 +1,62 @@ -+/* $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */ -+ -+/* -+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+/* OPENBSD ORIGINAL: lib/libc/string/strlcat.c */ -+ -+// #include "includes.h" -+#ifndef HAVE_STRLCAT -+ -+#include <sys/types.h> -+#include <string.h> -+ -+/* -+ * Appends src to string dst of size siz (unlike strncat, siz is the -+ * full size of dst, not space left). At most siz-1 characters -+ * will be copied. Always NUL terminates (unless siz <= strlen(dst)). -+ * Returns strlen(src) + MIN(siz, strlen(initial dst)). -+ * If retval >= siz, truncation occurred. -+ */ -+size_t -+strlcat(char *dst, const char *src, size_t siz) -+{ -+ char *d = dst; -+ const char *s = src; -+ size_t n = siz; -+ size_t dlen; -+ -+ /* Find the end of dst and adjust bytes left but don't go past end */ -+ while (n-- != 0 && *d != '\0') -+ d++; -+ dlen = d - dst; -+ n = siz - dlen; -+ -+ if (n == 0) -+ return(dlen + strlen(s)); -+ while (*s != '\0') { -+ if (n != 1) { -+ *d++ = *s; -+ n--; -+ } -+ s++; -+ } -+ *d = '\0'; -+ -+ return(dlen + (s - src)); /* count does not include NUL */ -+} -+ -+#endif /* !HAVE_STRLCAT */ diff --git a/system/ksh/patches/linux/strlcat_h.diff b/system/ksh/patches/linux/strlcat_h.diff deleted file mode 100644 index 60eb6361f7..0000000000 --- a/system/ksh/patches/linux/strlcat_h.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- ksh-openbsd_cvs/strlcat.h 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/strlcat.h 2010-04-01 21:01:24.135232661 +0200 -@@ -0,0 +1,4 @@ -+#ifndef STRLCAT_H -+#define STRLCAT_H -+size_t strlcat(char *, const char *, size_t); -+#endif /* STRLCAT_H */ diff --git a/system/ksh/patches/linux/strlcpy_c.diff b/system/ksh/patches/linux/strlcpy_c.diff deleted file mode 100644 index a08f2614bf..0000000000 --- a/system/ksh/patches/linux/strlcpy_c.diff +++ /dev/null @@ -1,61 +0,0 @@ ---- ksh-openbsd_cvs/strlcpy.c 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/strlcpy.c 2010-04-01 21:01:24.145380963 +0200 -@@ -0,0 +1,58 @@ -+/* $OpenBSD: strlcpy.c,v 1.10 2005/08/08 08:05:37 espie Exp $ */ -+ -+/* -+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+/* OPENBSD ORIGINAL: lib/libc/string/strlcpy.c */ -+ -+// #include "includes.h" -+#ifndef HAVE_STRLCPY -+ -+#include <sys/types.h> -+#include <string.h> -+ -+/* -+ * Copy src to string dst of size siz. At most siz-1 characters -+ * will be copied. Always NUL terminates (unless siz == 0). -+ * Returns strlen(src); if retval >= siz, truncation occurred. -+ */ -+size_t -+strlcpy(char *dst, const char *src, size_t siz) -+{ -+ char *d = dst; -+ const char *s = src; -+ size_t n = siz; -+ -+ /* Copy as many bytes as will fit */ -+ if (n != 0 && --n != 0) { -+ do { -+ if ((*d++ = *s++) == 0) -+ break; -+ } while (--n != 0); -+ } -+ -+ /* Not enough room in dst, add NUL and traverse rest of src */ -+ if (n == 0) { -+ if (siz != 0) -+ *d = '\0'; /* NUL-terminate dst */ -+ while (*s++) -+ ; -+ } -+ -+ return(s - src - 1); /* count does not include NUL */ -+} -+ -+#endif /* !HAVE_STRLCPY */ diff --git a/system/ksh/patches/linux/strlcpy_h.diff b/system/ksh/patches/linux/strlcpy_h.diff deleted file mode 100644 index d9f75cd41e..0000000000 --- a/system/ksh/patches/linux/strlcpy_h.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- ksh-openbsd_cvs/strlcpy.h 1970-01-01 01:00:00.000000000 +0100 -+++ ksh-openbsd_cvs.new/strlcpy.h 2010-04-01 21:01:24.145380963 +0200 -@@ -0,0 +1,4 @@ -+#ifndef STRLCPY_H -+#define STRLCPY_H -+size_t strlcpy(char *, const char *, size_t); -+#endif /* STRLCPY_H */ diff --git a/system/ksh/patches/linux/trap_c.diff b/system/ksh/patches/linux/trap_c.diff deleted file mode 100644 index 10f067ff06..0000000000 --- a/system/ksh/patches/linux/trap_c.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- ksh-openbsd_cvs/trap.c 2010-02-23 12:49:23.000000000 +0100 -+++ ksh-openbsd_cvs.new/trap.c 2010-04-01 21:30:25.819238979 +0200 -@@ -5,6 +5,7 @@ - */ - - #include "sh.h" -+#include "posix_signals.h" /* sys_signame[] */ - - Trap sigtraps[NSIG + 1]; - -@@ -13,20 +14,29 @@ static struct sigaction Sigact_ign, Siga - void - inittraps(void) - { -- int i; -+ int i, j; - -- /* Populate sigtraps based on sys_signame and sys_siglist. */ -- for (i = 0; i <= NSIG; i++) { -+ /* Populate sigtraps based on posix_signals.h */ -+ for (i = 1; i < NSIG; i++) { - sigtraps[i].signal = i; - if (i == SIGERR_) { - sigtraps[i].name = "ERR"; - sigtraps[i].mess = "Error handler"; - } else { -- sigtraps[i].name = sys_signame[i]; -- sigtraps[i].mess = sys_siglist[i]; -+ for(j = 0; j < NSIG; j++) /* find the corresponding SIGNAL number's name in the sys_signame[] array */ -+ { -+ if( sys_signame[j].val == sigtraps[i].signal ) /* we got a match */ -+ { -+ sigtraps[i].name = sys_signame[j].name; -+ break; -+ } -+ } -+ sigtraps[i].mess = strsignal(sigtraps[i].signal); - } - } -+ sigtraps[SIGEXIT_].signal = SIGEXIT_; - sigtraps[SIGEXIT_].name = "EXIT"; /* our name for signal 0 */ -+ sigtraps[SIGEXIT_].mess = "Exited"; - - sigemptyset(&Sigact_ign.sa_mask); - Sigact_ign.sa_flags = 0; /* interruptible */ diff --git a/system/ksh/patches/linux/var_c.diff b/system/ksh/patches/linux/var_c.diff deleted file mode 100644 index 9483a3b4ce..0000000000 --- a/system/ksh/patches/linux/var_c.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- ksh-openbsd_cvs/var.c 2010-02-23 12:49:23.000000000 +0100 -+++ ksh-openbsd_cvs.new/var.c 2010-04-01 21:01:24.145380963 +0200 -@@ -5,6 +5,7 @@ - #include "ksh_limval.h" - #include <sys/stat.h> - #include <ctype.h> -+#include "strlcpy.h" - - /* - * Variables -@@ -865,12 +866,6 @@ makenv(void) - } - - /* -- * Someone has set the srand() value, therefore from now on -- * we return values from rand() instead of arc4random() -- */ --int use_rand = 0; -- --/* - * Called after a fork in parent to bump the random number generator. - * Done to ensure children will not get the same random number sequence - * if the parent doesn't use $RANDOM. -@@ -878,8 +873,7 @@ int use_rand = 0; - void - change_random(void) - { -- if (use_rand) -- rand(); -+ rand(); - } - - /* -@@ -926,10 +920,7 @@ getspec(struct tbl *vp) - break; - case V_RANDOM: - vp->flag &= ~SPECIAL; -- if (use_rand) -- setint(vp, (long) (rand() & 0x7fff)); -- else -- setint(vp, (long) (arc4random() & 0x7fff)); -+ setint(vp, (long) (rand() & 0x7fff)); - vp->flag |= SPECIAL; - break; - #ifdef HISTORY -@@ -1030,7 +1021,6 @@ setspec(struct tbl *vp) - case V_RANDOM: - vp->flag &= ~SPECIAL; - srand((unsigned int)intval(vp)); -- use_rand = 1; - vp->flag |= SPECIAL; - break; - case V_SECONDS: diff --git a/system/ksh/patches/linux/vi_c.diff b/system/ksh/patches/linux/vi_c.diff deleted file mode 100644 index 9372933d8e..0000000000 --- a/system/ksh/patches/linux/vi_c.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- ksh-openbsd_cvs/vi.c 2010-02-23 12:49:24.000000000 +0100 -+++ ksh-openbsd_cvs.new/vi.c 2010-04-01 21:01:24.146107949 +0200 -@@ -13,6 +13,7 @@ - #include <ctype.h> - #include <sys/stat.h> /* completion */ - #include "edit.h" -+#include "strlcpy.h" - - #define CMDLEN 2048 - #define Ctrl(c) (c&0x1f) diff --git a/system/ksh/slack-desc b/system/ksh/slack-desc deleted file mode 100644 index 9977de06f3..0000000000 --- a/system/ksh/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. Line -# up the first '|' above the ':' following the base package name, and the '|' -# on the right side marks the last column you can put a character in. You must -# make exactly 11 lines for the formatting to be correct. It's also -# customary to leave one space after the ':'. - - |-----handy-ruler------------------------------------------------------| -ksh: ksh (OpenBSD ksh ported to Linux) -ksh: -ksh: This package is a patched version of the OpenBSD ksh, which is based -ksh: on the original PD-ksh, but heavily modified and maintained by -ksh: OpenBSD developers. "Patched" means ported to Linux. -ksh: -ksh: -ksh: -ksh: -ksh: -ksh: |