diff options
author | Andy Fiddaman <omnios@citrus-it.co.uk> | 2020-12-27 17:47:37 +0000 |
---|---|---|
committer | Andy Fiddaman <omnios@citrus-it.co.uk> | 2021-01-30 17:13:33 +0000 |
commit | b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f (patch) | |
tree | 6a37e590faffb9bb9af66887de645c546445036c /usr/src/lib/libast/common/string/strtape.c | |
parent | df36e06d12cbf655ddf22339ef8c39fa2b83ebf8 (diff) | |
download | illumos-gate-b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f.tar.gz |
13405 ksh93 update to 2012-08-01
13434 sh: mishandles backslash as last character of a block of input
11750 ksh mkdir builtin doesn't honor special file permissions
9199 ksh93 builtin *grep -v mishandles blank lines, blows up libgcrypt-config
6756 sh (and ksh) have issues with ${1+"$@"}
6520 ksh: sleep could wait forever
4860 ksh93: core in printf
3791 /bin/sh's builtin 'rm' busted: 'rm -f' without arguments returns error
1047 ksh overwrites child core files
880 ksh93 coredumps on 'unset'
499 "interrupted system call" when using "tee" builtin in ksh
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by: Dominik Hassler <hadfl@omnios.org>
Approved by: Rich Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/lib/libast/common/string/strtape.c')
-rw-r--r-- | usr/src/lib/libast/common/string/strtape.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/usr/src/lib/libast/common/string/strtape.c b/usr/src/lib/libast/common/string/strtape.c deleted file mode 100644 index 00d40b701a..0000000000 --- a/usr/src/lib/libast/common/string/strtape.c +++ /dev/null @@ -1,148 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1985-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* Glenn Fowler <gsf@research.att.com> * -* David Korn <dgk@research.att.com> * -* Phong Vo <kpv@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped -/* - * local device pathname for portable tape unit specification is returned - * if e is non-null then it is set to the next unused char in s - * - * <unit><density>[<no-rewind>] - * {0-7}[l,m,h,u,c][n] - */ - -#include <ast.h> - -char* -strtape(register const char* s, register char** e) -{ - int mtunit = '0'; - int mtdensity = 0; - char mtrewind[2]; - char mtbehavior[2]; - - static char tapefile[sizeof("/dev/Xrmt/123456789")]; - - mtrewind[0] = mtrewind[1] = mtbehavior[0] = mtbehavior[1] = 0; - for (;;) - { - switch (*s) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - mtunit = *s++; - continue; - case 'b': - case 'v': - mtbehavior[0] = *s++; - continue; - case 'l': - case 'm': - case 'h': - case 'u': - case 'c': - mtdensity = *s++; - continue; - case 'n': - mtrewind[0] = *s++; - continue; - } - break; - } - if (e) *e = (char*)s; - if (!access("/dev/rmt/.", F_OK)) - { - /* - * system V - */ - - if (!mtdensity) mtdensity = 'm'; - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt/ctape%c%s", mtunit, mtrewind); - if (!access(tapefile, F_OK)) return(tapefile); - for (;;) - { - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt/%c%c%s%s", mtunit, mtdensity, mtbehavior, mtrewind); - if (!access(tapefile, F_OK)) return(tapefile); - if (!mtbehavior[0]) break; - mtbehavior[0] = 0; - } - } - else if (!access("/dev/nst0", F_OK)) - { - /* - * linux - */ - - sfsprintf(tapefile, sizeof(tapefile), "/dev/%sst%c", mtrewind, mtunit); - } - else if (!access("/dev/nrmt0", F_OK)) - { - /* - * 9th edition - */ - - switch (mtdensity) - { - case 'l': - mtunit = '0'; - break; - case 'm': - mtunit = '1'; - break; - case 'h': - mtunit = '2'; - break; - } - sfsprintf(tapefile, sizeof(tapefile), "/dev/%srmt%c", mtrewind, mtunit); - } - else - { - /* - * BSD - */ - - mtunit -= '0'; - switch (mtdensity) - { - case 'l': - break; - case 'h': - mtunit |= 020; - break; - default: - mtunit |= 010; - break; - } - switch (mtrewind[0]) - { - case 'n': - mtunit |= 040; - break; - } - sfsprintf(tapefile, sizeof(tapefile), "/dev/rmt%d", mtunit); - } - return(tapefile); -} |