# and edit it to reflect your system. Some packages may include samples
# of config.h for certain machines, so you might look for one of those.)
#
-# $RCSfile: Configure,v $$Revision: 4.0.1.8 $$Date: 92/06/11 21:04:45 $
+# $RCSfile: Configure,v $$Revision: 4.0.1.9 $$Date: 92/06/23 12:28:33 $
#
# Yes, you may rip this off to use in other distribution packages.
# (Note: this Configure script was generated automatically. Rather than
$package has manual pages available in source form.
EOM
case "$nroff" in
-'')
+'nroff')
echo "However, you don't have nroff, so they're probably useless to you."
case "$mansrc" in
'')
hints/hpux.sh
hints/i386.sh
hints/isc_3_2_2.sh
+hints/isc_3_2_3.sh
hints/mc6000.sh
hints/mips.sh
hints/mpc.sh
perlsh A poor man's perl shell
perly.fixer A program to remove yacc stack limitations
perly.y Yacc grammar for perl
-pstruct
regcomp.c Regular expression compiler
regcomp.h Private declarations for above
regexec.c Regular expression evaluator
local($mode,$name) = @_;
printf STDERR " chmod %o %s\n", $mode, $name;
- chmod($mode,$name) || warn "Couldn't chmod $mode $name: $!\n"
+ chmod($mode,$name) || warn sprintf("Couldn't chmod %o %s: $!\n",$mode,$name)
unless $nonono;
}
-/* $RCSfile: toke.c,v $$Revision: 4.0.1.7 $$Date: 92/06/11 21:16:30 $
+/* $RCSfile: toke.c,v $$Revision: 4.0.1.8 $$Date: 92/06/23 12:33:45 $
*
* Copyright (c) 1991, Larry Wall
*
* License or the Artistic License, as specified in the README file.
*
* $Log: toke.c,v $
+ * Revision 4.0.1.8 92/06/23 12:33:45 lwall
+ * patch35: bad interaction between backslash and hyphen in tr///
+ *
* Revision 4.0.1.7 92/06/11 21:16:30 lwall
* patch34: expectterm incorrectly set to indicate start of program or block
*
STR *tmpstr;
STR *tmpstr2 = Nullstr;
char *tmps;
+ bool dorange = FALSE;
CLINE;
multi_start = curcmd->c_line;
s++;
}
s = d = tmpstr->str_ptr; /* assuming shrinkage only */
- while (s < send) {
+ while (s < send || dorange) {
if (in_what & SCAN_TR) {
- if (*s != '\\' && s[1] == '-' && s+2 < send) {
+ if (dorange) {
int i;
+ int max;
if (!tmpstr2) { /* oops, have to grow */
tmpstr2 = str_smake(tmpstr);
s = tmpstr2->str_ptr + (s - tmpstr->str_ptr);
i = d - tmpstr->str_ptr;
STR_GROW(tmpstr, tmpstr->str_len + 256);
d = tmpstr->str_ptr + i;
- for (i = (s[0] & 0377); i <= (s[2] & 0377); i++)
+ d -= 2;
+ max = d[1] & 0377;
+ for (i = (*d & 0377); i <= max; i++)
*d++ = i;
- s += 3;
+ dorange = FALSE;
continue;
}
+ else if (*s == '-' && s+1 < send && d != tmpstr->str_ptr) {
+ dorange = TRUE;
+ s++;
+ }
}
else {
if ((*s == '$' && s+1 < send &&
if (*s == '\\' && s+1 < send) {
s++;
switch (*s) {
+ case '-':
+ if (in_what & SCAN_TR) {
+ *d++ = *s++;
+ continue;
+ }
+ /* FALL THROUGH */
default:
if (!makesingle && (!leave || (*s && index(leave,*s))))
*d++ = '\\';