-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
1600 lines (1090 loc) · 58 KB
/
ChangeLog
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Tue Jul 13 14:32:57 NDT 1999 Michael Rendell ([email protected])
* made pdksh-5.2.14 distribution
Wed Jun 30 17:42:54 NDT 1999 Michael Rendell ([email protected])
* c_test.c(test_eval): changed -nt/-ot tests so they succeed
if file2 (file2) `does not exist' (ie, the stat fails).
(based on fix from Dave Hillman).
Tue May 25 17:23:39 NDT 1999 Michael Rendell ([email protected])
* jobs.c(fill_command): do not eval() TCOM arguments - can cause
problems.
Tue May 25 15:26:31 NDT 1999 Michael Rendell ([email protected])
* new-version.sh,ksh.Man: added version number to man page; update
version as well as date when updating tests/version.t and ksh.Man.
Mon May 24 20:57:21 NDT 1999 Michael Rendell ([email protected])
* c_sh.c(c_eval): only set exstat to substs_exstat if in non-posix mode.
Mon May 24 15:44:10 NDT 1999 Michael Rendell ([email protected])
* tree.h(FTIME): new define.
* c_sh.c(timex): stuff to get info to/from timex_hook.
* c_sh.c(timex_hook): new function (handles option processing).
* exec.c(execute): call timex_hook() after TCOM eval().
Tue May 18 12:23:27 NDT 1999 Michael Rendell ([email protected])
* vi.c(vi_hook): case VREDO: removed != 0 from switch expression.
Tue May 18 11:24:12 NDT 1999 Michael Rendell ([email protected])
* emacs.c(CHARMASK,X_TABSZ): changed from 128 to 256.
* emacs.c(x_size,x_zotc,x_mapout): use iscntl() vs range test.
(Based on changes from Martin Dalecki)
Thu May 13 17:23:17 NDT 1999 Michael Rendell ([email protected])
* emacs.c(x_bound,bind_if_not_bound): new variable/function.
* emacs.c(x_bind): set bit in x_bound[].
* emacs.c(x_emacs_keys): call bind_if_not_bound.
Thu May 13 14:23:12 NDT 1999 Michael Rendell ([email protected])
* sh.h: ifdefs for __CYGWIN__ for path defines.
* path.c(simplify_path): ifdefs for __CYGWIN__; preserve leading
double-slash on pathnames.
* c_ksh.c(c_cd): use cygwin_conv_to_full_posix_path().
* edit.c(x_mode): default eof char to ^D.
[fixes from Corinna Vinschen and Steven Hein, obtained from
ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/
porters/Vinschen_Corinna/B20/]
Wed May 12 12:30:09 NDT 1999 Michael Rendell ([email protected])
* exit.c(x_mode): set fields of edchars to -1 if corrisponding char
is unset.
* exit.c(x_init): initialize edchars to -2, not -1.
* emacs.c(x_emacs_keys): check if char is >= 0 before setting.
Wed May 12 11:31:24 NDT 1999 Michael Rendell ([email protected])
* shf.c(shf_write): don't buffer if buffer is empty and we're
writting a large amount.
* shf.c(shf_open): changed to use shf_reopen instead of shf_fdopen
so alloca failing won't lose the fd.
Wed May 12 10:19:43 NDT 1999 Michael Rendell ([email protected])
* sh.h: deleted TT_HEREDOC_RAW define.
* tree.h(struct ioword): added heredoc field.
* tree.c(iocopy,iofree): copy/free heredoc field; remove special case
for IOHERE and name field.
* tree.c(ptree): changed to use heredoc content string (not open temp).
* lex.c(yylex): initialize heredoc field.
* lex.c(readhere): save to string instead of a temp file.
* exec.c(herein): changed first are from file name to heredoc content
string; changed all calls. Changed to always create a new temp file
and write content to it.
Tue May 11 11:38:22 NDT 1999 Michael Rendell ([email protected])
* tree.c(iofree): free delim field; don't free name of IOHERE iowords.
Tue May 11 10:57:53 NDT 1999 Michael Rendell ([email protected])
* sh.h(func_heredocs): deleted.
* sh.h(EF_FAKE_SIGDIE): added.
* lex.c(readhere): put function heredocs at bottom of env stack.
* main.c(quitenv,cleanup_proc_env): deleted remove_temps(func_heredocs)
calls.
* main.c(quitenv): moved exit of no oenv to en after reclaim.
* main.c(cleanup_parents_env): free ep->savefd and set to 0.
* main.c(unwind,quitenv): moved code for E_NONE from unwind()
to quitenv().
Mon May 10 17:04:03 NDT 1999 Michael Rendell ([email protected])
* exec.c(herein): restore source to osource after yylex().
Mon May 10 12:14:40 NDT 1999 Michael Rendell ([email protected])
* tree.c(iocopy): don't copy IOHERE name (it belongs to a struct temp).
* tree.c(wdscan): added default case to print internal error.
Mon May 10 10:39:34 NDT 1999 Michael Rendell ([email protected])
* sh.h(Temp_type): new enum (TT_HEREDOC_RAW, TT_HEREDOC_EXP,
TT_HIST_FILE).
* sh.h(struct temp): added type field.
* io.c(maketemp): added type and tlist arguments; changed
all calls.
Tue Apr 27 11:31:48 NDT 1999 Michael Rendell ([email protected])
* exec.c(execute): clear XEXEC in the call to timex() so time
can be used at the end of a pipeline.
Fri Apr 23 16:29:01 NDT 1999 Michael Rendell ([email protected])
* mail.c(mcheck): don't check if MAILCHECK is set, just check if
mplist is null.
* mail.c(mcset): new function.
* var.c(setspec): case MAILCHECK: call mcset.
* var.c(unspecial): new function.
* var.c(unsetspec): call unspecial for LINENO, MAILCHECK, RANDOM,
SECONDS, TMOUT.
Fri Apr 23 15:34:39 NDT 1999 Michael Rendell ([email protected])
* main.c(initcoms): put MAILCHECK, SECONDS, TMOUT in an eval to
preserve previous values.
* var.c(getspec): case V_SECONDS: don't do anything special if
variable not set.
Thu Apr 22 15:03:27 NDT 1999 Michael Rendell ([email protected])
* var.c(setstr): error if var is RDONLY.
* var.c(global): non-letter params: set RDONLY flag after setstr call.
* c_ksh.c(c_getopts), eval.c(expand), exec.c(execute):
removed readonly check.
* sh.h(KSH_UNWIND_ERROR, KSH_RETURN_ERROR): new defines.
* var.c(setstr): added error_ok argument; changed all calls.
* c_ksh.c(c_getopts): clear READONLY and INTEGER flags for OPTARG;
return non-zero if variable can't be set.
* var.c(typeset): if fake_assign fails, unset the variable's value
and carry on for rest of array, then unwind.
* expr.c(expand,v_expand): changed all calls to use KSH_UNWIND_ERROR
or KSH_RETURN_ERROR.
Tue Apr 20 16:52:24 NDT 1999 Michael Rendell ([email protected])
* configure.in: added check dup2.
* sh.h: added dup2 prototype.
* aclocal.m4: replace AC_HEADER_DIRENT so it checks -lndir.
* missing.c(dup2): new function.
Based on code from Marc Olzheim.
Fri Apr 16 16:32:27 NDT 1999 Michael Rendell ([email protected])
* syn.c(lineno_offset): removed variable and all references.
* tree.c(tcopy): copy lineno field.
* var.c(user_lineno): new variable.
* var.c(setspec): added case for V_LINENO (sets user_lineno).
* var.c(getspec): V_LINENO: add in user_lineno.
Fri Apr 16 15:26:26 NDT 1999 Michael Rendell ([email protected])
* tree.h(struct op): added lineno field.
* table.h(V_LINENO, current_lineno): new define/variable.
* exec.c(execute): set current_lineno for TCOM.
* syn.c(lineno_offset): new variable.
* syn.c(get_command): set t->lineno.
* syn.c(function_body): save/restore lineno_offset;
* syn.c(compile): initialize lineno_offset
* var.c(initvar,getspec): added V_LINENO entry.
Changes from Mark Funkenhauser.
Fri Apr 16 12:18:08 NDT 1999 Michael Rendell ([email protected])
* expr.c,misc.c(getoptions): added int casts to avoid errors from
old K&R compilers.
Fixes from Marc Olzheim.
Fri Jan 15 12:51:53 NST 1999 Michael Rendell ([email protected])
* expr.c: pass es as first param to all functions; deleted
es global variable.
Tue Jan 12 12:28:41 NST 1999 Michael Rendell ([email protected])
* emacs.c(x_defbindings[]): removed #else part of ifdef OS2.
* shf.c(shf_getse): added code to strip \r for OS2.
* lex.c(getsc_line): removed OS2 ifdefs
* os2/misc.c(ksh_execve),sh.h: added flags argument; changed all calls.
* exec.c(scriptexec): OS2: make copy of a0 before calling
search_access(X_OK).
* sh.h: OS2: changed EXECSHELL, EXECSHELL_STR.
* jobs.c(exchild): set XINTACT.
* os2/config.h: added HAVE_TERMIOS_H.
* os2/configure.cmd: changed test for existence of sed & gcc.
Fixes from Ilya Zakharevich.
* tests/th: added -C option, added "category" field.
* tests/th(category_check): new function.
* tests/*.t: added "category: !os:os2" to a few tests.
Tue Jan 12 11:17:52 NST 1999 Michael Rendell ([email protected])
* exec.c(execute): changed exit(rv) to unwind(LEXIT) to
allow exit traps to be done.
Tue Jan 5 16:45:00 NST 1999 Michael Rendell ([email protected])
* aclocal.m4(KSH_CHECK_H_TYPE): remove extra [] from egrep pattern.
* c_sh.c(c_exitreturn): fixed logic of exit status parsing
(fixes from Martin Lucina).
Tue Jan 5 16:31:37 NST 1999 Michael Rendell ([email protected])
* edit.c(x_locate_word): changed IS_WORDC macro from !isspace
to !lex1/'/"
(based on fix from Kevin Schoedel).
Wed Dec 16 15:02:48 NST 1998 Michael Rendell ([email protected])
* io.c(kshdebug_init_,kshdebug_printf_,kshdebug_dump_),
sh.h(kshdebug_init,kshdebug_printf,kshdebug_dump):
new macros/functions.
Wed Dec 16 12:12:23 NST 1998 Michael Rendell ([email protected])
* c_sh.c(c_eval): set exstat to substs_exstat to propogate
substition exit status if resulting command is empty
(based on fix from Mark Funkenhauser).
Tue Dec 15 15:50:34 NST 1998 Michael Rendell ([email protected])
* main.c(initcom[]): PPID no longer read only.
Mon Dec 14 17:09:52 NST 1998 Michael Rendell ([email protected])
* trap.c(gettrap): added igncase argument; changed all calls.
* c_sh.c(c_trap): use case sensitive compare for first gettrap().
(fix "trap exit 1").
Thu Dec 10 12:24:53 NST 1998 Michael Rendell ([email protected])
* configure.in: added test for getcwd.
* aclocal.m4(KSH_OS_TYPE): added case for hpux; added test for
bug in hpux getcwd (dumps core if . is not readable).
* config.h.in: added HAVE_HPUX_GETWD_BUG define.
* aclocal.m4,configure.in: remove AC_C_CROSS or change to AC_PROG_CC.
* misc.c(ksh_get_wd): added code to handle bug in hpux getwd;
changed precedence of getcwd vs getwd (use getcwd if available:
getwd causes warnings under linux).
Tue Dec 8 17:17:47 NST 1998 Michael Rendell ([email protected])
* main.c(main): seed RANDOM using time, pid, ppid (was just time).
Tue Nov 24 17:17:12 NST 1998 Michael Rendell ([email protected])
* c_ulimit.c(c_ulimit): improve setrlimit error message for EPERM
(fix from Todd C. Miller).
Thu Nov 19 18:09:59 NST 1998 Michael Rendell ([email protected])
* jobs.c(waitfor): if j_lookup fails, always return
(fix from Todd C. Miller).
Fri Oct 23 19:59:25 NDT 1998 Michael Rendell ([email protected])
* jobs.c(JF_SAVEDTTYPGRP,j_resume,j_waitj): added save_ttypgrp
stuff to deal with new gnu su which doesn't exec, but forks
then execs.
Thu Sep 24 16:23:48 NDT 1998 Michael Rendell ([email protected])
* trap.c(inittrap): Don't assume sys_siglist[] has NSIG non-null
entries (fix from [email protected]).
Thu Aug 6 14:46:45 NDT 1998 Michael Rendell ([email protected])
* eval.c(varsub): ${#array[*]} now prints N elements, not
max index.
Sun Jul 19 11:50:21 NDT 1998 Michael Rendell ([email protected])
* syn.c(function_body): fixed bug in handling of empty function
body; if empty, pretend there is a : command.
Mon Jun 29 10:13:02 NDT 1998 Michael Rendell ([email protected])
* exec.c(search_access): allow non-regular files to be .'ed
(fix from Theo de Raadt).
Thu Jun 25 17:01:36 NDT 1998 Michael Rendell ([email protected])
* c_ulimit.c(c_ulimit): added KSH_RLIM_INFINITY and defined
if system doesn't define RLIM_INFINITY; use when setting limits.
When setting, if expression evaluates to 0 and string was not
a number, generate an error (based on fix from Todd C. Miller).
Wed Mar 11 16:35:37 NST 1998 Michael Rendell ([email protected])
* exec.c(flushcom): clear ISSET bit, don't set all the other bits
(fix from Eric Youngdale).
Tue Dec 16 11:07:21 NST 1997 Michael Rendell ([email protected])
* shf.c(shf_vfprintf): %e/%f/%g conversion now prints negative
numbers correctly (fix from Larry Bouzane).
Thu Nov 20 15:16:15 NST 1997 Michael Rendell ([email protected])
* emacs.c(x_prev_histword): check if histptr is 0.
Sat Nov 8 11:46:32 NST 1997 Michael Rendell ([email protected])
* misc.c(options[]): changed null entries to (char *) 0
(based on fix from David E. Wexelblat).
Fri Nov 7 14:45:24 NST 1997 Michael Rendell ([email protected])
* alloc.c(aresize): avoid memory overrun when copying old memory
to new memory.
(fix from David E. Wexelblat).
Tue Oct 28 11:26:22 NST 1997 Michael Rendell ([email protected])
* tests/th: file-setup code: convert chmod argument to octal.
Tue Oct 28 11:00:45 NST 1997 Michael Rendell ([email protected])
* tree.c(tputS): incr wp after COMSUB and EXPRSUB while loop
to get past null.
Mon Oct 27 12:38:05 NST 1997 Michael Rendell ([email protected])
* made pdksh-5.2.13 distribution
Mon Oct 27 12:21:51 NST 1997 Michael Rendell ([email protected])
* c_sh.c(c_dot): use search() error argument to report problem
correctly.
* exec.c(search_access): don't set *errnop if it is already set.
* exec.c(search_access): extended non-regular file check from
just X_OK to both X_OK and R_OK.
Wed Oct 22 11:49:02 NDT 1997 Michael Rendell ([email protected])
* edit.c(x_locate_word): don't skip trailing space if at end
of buffer (based on fix from Marc Olzheim).
Fri Aug 15 22:06:53 NDT 1997 Michael Rendell ([email protected])
* eval.c(varsub,expand), lex.c(yylex): allow :%, :#, :%% and :##
to be compatible with ksh88.
Sat Aug 2 12:13:30 NDT 1997 Michael Rendell ([email protected])
* syn.c(get_command): case MDPAREN/DBRACKET: do not
clear KEYWORD|ALIAS from syniocf.
Tue Jul 29 16:24:38 NDT 1997 Michael Rendell ([email protected])
* c_sh.c(c_exec): added ifdef KSH around fd_clexec()
(based on fix from George Robins).
Tue Jun 3 12:52:05 NDT 1997 Michael Rendell ([email protected])
* misc.c(do_gmatch): removed ifdef KSH about @(..|..) code as it
is needed in SH mode for ${..%..} stuff.
Mon May 19 16:10:06 NDT 1997 Michael Rendell ([email protected])
* table.h(struct block): added getopt_state and flags fields;
added BF_DOGETOPTS.
* sh.h,c_ksh.c: moved user_opt decl/defn from c_ksh.c to sh.h.
* var.c(getspec): added case for V_OPTIND.
* var.c(popblock): if BF_DOGETOPTS set, restore user_opt.
* exec.c(comexec): case CFUNC: save user_opt for ksh-style functions.
* c_ksh.c(getopts_reset,c_getopts): removed getopts_noreset variable
and code.
* sh.h(Getopts): added uoptind field.
Fri May 16 11:40:22 NDT 1997 Michael Rendell ([email protected])
* io.c(error_prefix): don't print kshname if it is the
same as the source file name.
Thu Mar 13 10:42:31 NST 1997 Michael Rendell ([email protected])
* mail.c(mbset): save a copy of the path so it can't get trashed
(eg, by exporting a variable).
Wed Feb 26 11:24:06 NST 1997 Michael Rendell ([email protected])
* emacs.c(x_prev_histword): get word from last command entered,
not from last command relative to current location in history
(fix from Greg A. Woods).
Sun Feb 16 13:18:52 NST 1997 Michael Rendell ([email protected])
* sh.h(FTALKING_I): new define
* misc.c(options[]): added anonymous options for internal use:
changed all code using options to not assume null option name
is the end of options (use NELEM()) instead.
Added slot for FTALKING_I
* c_sh.c(c_read), exec.c(iosetup): test FTALKING_I instead of FTALKING.
* main.c(main): set FTALKING_I.
Fri Jan 10 16:36:36 NST 1997 Michael Rendell ([email protected])
* jobs.c(exchild): use orig_flags instead of flags when testing
XPIPEI/XPIPEO; clear all flags except XEXEC and XERROK.
Tue Jan 7 11:16:08 NST 1997 Michael Rendell ([email protected])
* lex.h(yynerrs): deleted (not used); deleted all assignments of it.
Fri Jan 3 13:40:29 NST 1997 Michael Rendell ([email protected])
* lex.c(yylex): case STBRACE: interpret ( | ) as patterns;
case SPATTERN: allow ( as an alias for @(.
Thu Jan 2 15:44:07 NST 1997 Michael Rendell ([email protected])
* main.c(main): set PATH to def_path in startup.
Thu Jan 2 10:19:43 NST 1997 Michael Rendell ([email protected])
* exec.c(comexec): ifdef KSH the setting of $_; only set $_ to
last arg if interactive.
Wed Jan 1 13:38:26 NST 1997 Michael Rendell ([email protected])
* lex.c(yylex),eval.c(expand),tree.c(tputS,wdscan,wdstrip):
changed OSUBST/CSUBST encoding to have { or x after xSUBST.
* lex.c(yylex): case ${: don't prepend @( and append ) to trim patterns.
* eval.c(expand): prepend MAGIC @ and append MAGIC ) to trim patterns.
* syn.c(function_body): call wdstrip().
* tree.c(wdstrip): new function.
* lex.c(yylex): moved handling of < and > into one location.
Wed Dec 11 13:00:05 NST 1996 Michael Rendell ([email protected])
* sh.h(ksheuid): new variable.
* main.c(main): set/use ksheuid.
* misc.c(change_flag): set ksheuid.
* c_test.c(test_eval): use ksheuid
* c_test.c(test_eaccess): if doing X_OK and user is root, use
stat to avoid false positives on files.
Mon Dec 9 12:08:56 NST 1996 Michael Rendell ([email protected])
* main.c(main): save/clear/restore FERREXIT flag while processing
profile and ENV.
Wed Dec 4 12:25:23 NST 1996 Michael Rendell ([email protected])
* misc.c(parse_args): change -A option handling - make getopts
gather the option (A: vs A).
Thu Nov 21 15:42:57 NST 1996 Michael Rendell ([email protected])
* c_ksh.c(c_alias): accept + options; don't print alias definition
if + option used; allow export flag to be cleared; added -p
option.
Thu Nov 21 14:35:47 NST 1996 Michael Rendell ([email protected])
* tree.c(ptree),c_ksh.c(c_typeset): print ksh functions as
"function foo...", sh functions as "foo()...".
* c_ksh.c(c_typeset): accept -p flag (does nothing).
Wed Nov 20 11:36:08 NST 1996 Michael Rendell ([email protected])
* c_ksh.c(c_typeset): simplified option exclusion code.
* misc.c(ksh_getopt): allow options in same command line to start
with either + or - (if appropriate). [code existed to similate
ksh88 typeset behaviour which disallowed "typeset +x -i foo"]
Wed Nov 13 12:02:59 NST 1996 Michael Rendell ([email protected])
* syn.c(c_list): added multi argument; changed all calls to pass
TRUE, except one in yyparse(); changed logic to accept and
ignore blank lines if multi flag is set.
* syn.c(get_command): removed multiline.on/cf=CONTIN test/assignment.
* syn.c(struct multiline_state,struct nesting_state,multiline,nesting,
multiline_push,multiline_pop,nesting_push,nesting_pop): renamed
*multiline* to *nesting*; removed struct multiline_state.on field
(deleted all references).
Mon Nov 4 16:29:50 NST 1996 Michael Rendell ([email protected])
* c_test.c(c_test): in special < 5 arg code: if single arg is
-t and not in FPOSIX mode, don't decide its a string test.
Wed Oct 30 11:34:39 NST 1996 Michael Rendell ([email protected])
* main.c(include): call quitenv() after shf_close()
(fix from Eric J. Chet).
Wed Oct 30 11:23:17 NST 1996 Michael Rendell ([email protected])
* exec.c(comexec): case CFUNC: set $0 to kshname if non-function
function.
$OpenBSD: ChangeLog,v 1.15 2008/05/08 16:51:30 sobrado Exp $
Tue Oct 29 11:34:58 NST 1996 Michael Rendell ([email protected])
* made pdksh-5.2.12 distribution
Fri Oct 25 11:59:48 NDT 1996 Michael Rendell ([email protected])
* vi.c(vi_cmd): case Cntl('i'): dont fall through, call complete_word().
Tue Oct 22 17:38:21 NDT 1996 Michael Rendell ([email protected])
* table.h(USERATTRIB): new define.
* c_ksh.c(c_typeset): report unset params only if it has some
interesting attributes.
Tue Oct 22 15:54:39 NDT 1996 Michael Rendell ([email protected])
* jobs.c(exchild): changed NEED_PGRP_SYNC code so j_sync_pipe[1] isn't
left open in 2nd+ children.
Tue Oct 22 12:59:49 NDT 1996 Michael Rendell ([email protected])
* main.c(main): memset() env to 0.
Mon Oct 21 12:53:44 NDT 1996 Michael Rendell ([email protected])
* main.c(cleanup_proc_env): new function.
* exec.c(execute): call cleanup_proc_env() before calling ksh_execve().
Fri Oct 11 22:53:57 NDT 1996 Michael Rendell ([email protected])
* vi.c(display): use ch not e->buf[cur] when printing character.
Fri Oct 11 13:26:11 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4(KSH_TIMES_CHECK,KSH_DUP2_CLEXEC_CHECK,KSH_OPENDIR_CHECK):
changed sense of test so "yes" result is printed if you have a good
system.
* aclocal.m4(KSH_C_FUNC_ATTR): changed return type of test_cnst to int.
Fri Oct 11 13:05:40 NDT 1996 Michael Rendell ([email protected])
* syn.c(get_command): added inalias() call when setting cf = CONTIN.
Thu Oct 10 16:22:03 NDT 1996 Michael Rendell ([email protected])
* lex.c(getsc__): case SALIAS: if we read eof, break, don't continue.
Tue Oct 8 13:14:00 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4(KSH_TERM): added SYS_IOCTL_WITH_TERMIOS,
SYS_IOCTL_WITH_TERMIO tests.
* tty.h: include <sys/ioctl.h> with <termios.h>/<termio.h>
if possible.
Tue Oct 8 11:42:36 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.11 distribution
Tue Oct 8 11:02:54 NDT 1996 Michael Rendell ([email protected])
* syn.c(inalias): new function.
* syn.c(c_list): call inalias() instead of testing source->type.
Mon Oct 7 17:00:40 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.10 distribution
Mon Oct 7 16:23:53 NDT 1996 Michael Rendell ([email protected])
* c_sh.c(c_read): when printing prompt, use isatty, not FTALKING.
Wed Oct 2 12:00:51 NDT 1996 Michael Rendell ([email protected])
* lex.c(yylex): redirection stuff: save result of getsc() == '-'
and use it for ungetsc().
* lex.h(struct source): moved ugbuf out of union so it can be used
with alias stuff.
* lex.c(getsc__) case SALIAS: instead of appending a space, get the
next character and stuff it in ugbuf.
* lex.c(getsc_,getsc__): getsc_() renamed to getsc__().
* lex.c(getsc_,getsc): getsc() macro renamed to getsc_().
* lex.c(backslash_skip,ignore_backslash_newline): new variables.
* lex.c(getsc): new macro that checks backslash_skip.
* lex.c(getsc_bn_,getsc_bn): getsc_bn() macro deleted (all calls
replaced with getsc()); getsc_bn_ renamed to getsc_bn.
* lex.c(ungetsc_,ungetsc): ungetsc() macro deleted; renamed ungetsc_()
to ungetsc().
* lex.c(yylex,ungetsc,getsc_bn): set and use backslash_skip,
ignore_backslash_newline.
* lex.c(yylex): removed special cases for backslash-newline sequence,
explicitly ignore backslash followed by eof.
Mon Sep 30 17:14:41 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.9 distribution
Mon Sep 30 12:52:21 NDT 1996 Michael Rendell ([email protected])
* lex.c(pprompt): fixed usage of ntruncate.
Thu Sep 19 17:43:33 NDT 1996 Michael Rendell ([email protected])
* sh.h(KSH_SYSTEM_PROFILE): new define.
* main.c(main): use KSH_SYSTEM_PROFILE.
* aclocal.m4(KSH_OS_TYPE): added case for NEXT.
Thu Sep 19 15:39:54 NDT 1996 Michael Rendell ([email protected])
* tty.c(tty_init): added hack for NeXT's rlogin's missing controlling
tty.
Mon Sep 16 11:18:10 NDT 1996 Michael Rendell ([email protected])
* edit.c(add_glob): don't append a * to a ~username.
* edit.c(x_init): set got_sigwinch before calling check_sigwinch().
Wed Sep 11 14:38:38 NDT 1996 Michael Rendell ([email protected])
* c_ksh.c(c_let): ifdef'd KSH.
* lex.h(SDPAREN),lex.c: ifdef'd KSH all uses of SDPAREN.
* lex.h(MDPAREN),syn.c: ifdef'd KSH all uses of MDPAREN.
Mon Sep 9 16:18:03 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4(AC_PROG_CC): replaced autoconf's version with
modified version.
* configure.in(clock_t): check in sys/time.h as well.
* ksh_times.h: include ksh_time.h.
* ksh_time.h,ksh_times.h: added ifndef KSH_TIME_H/KSH_TIMES_H.
Fri Sep 6 13:20:24 NDT 1996 Michael Rendell ([email protected])
* edit.c(promptlen): X\r hack for delimiting hidden characters
in prompt.
(Based on fix from Bill Kish)
Tue Sep 3 11:03:26 NDT 1996 Michael Rendell ([email protected])
* Makefile.in: removed options.h from HDRS (also removed file).
Thu Aug 29 10:04:01 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4(KSH_MEMMOVE): added return 0 to end of main().
Fri Aug 23 14:23:50 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4,ksh_stat.h: changed S_IFFIFO to S_IFIFO.
Fri Aug 23 09:58:09 NDT 1996 Michael Rendell ([email protected])
* var.c(skip_wdvarname): don't check for array if first char
isn't [.
Thu Aug 22 12:51:25 NDT 1996 Michael Rendell ([email protected])
* jobs.c: added ifdef KSH around Coproc_id/j->coproc_id usagae.
* c_ksh.c(c_read): added ifdef KSH around opipe.
Tue Aug 20 09:41:32 NDT 1996 Michael Rendell ([email protected])
* configure.in: fixed quoting of sed LDSTATIC expression.
Mon Aug 19 14:26:08 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.8 distribution
Mon Aug 19 11:38:16 NDT 1996 Michael Rendell ([email protected])
* table.c(texpand): don't free entry if FINUSE is set.
* var.c(unset): preserve ARRAY and DEFINED if unsetting foo[0].
Thu Aug 15 15:08:52 NDT 1996 Michael Rendell ([email protected])
* jobs.c(sm_sigchld,sm_default): moved to sh.h.
* sh.h(Coproc_id, struct coproc): new typedef; added njobs and
id fields to struct coproc.
* exec.c(execute): case TCOPROC: re-did coprocess stuff to use
njobs/coprocess id.
* jobs.c(struct Job): added coproc_id field.
* jobs.c(exchild): initialize coproc_id to 0; set job coproc_id
and increment coproc.njobs in parent.
* jobs.c(checkjob): check coproc_id and close co-process input/output
if needed.
* exec.c(iosetup): only play with coprocess fds if this is an
empty exec.
* c_sh.c(c_read): commented out coproc_readw_close() call and eof call.
* c_ksh.c(c_print): commented out closing coprocess fd on EPIPE.
* jobs.c(exchild): in parent, last part of job: use orig_flags (not
flags) when checking XCOPROC.
Thu Aug 15 15:00:42 NDT 1996 Michael Rendell ([email protected])
* io.c(get_coproc_fd,cleanup_coproc): renamed to coproc_getfd() and
coproc_cleanup(), respecitively; changed all calls.
Tue Aug 13 16:56:59 NDT 1996 Michael Rendell ([email protected])
* expr.c(O_COMMA,P_COMMA): new enums.
* expr.c(evalexpr): added case for O_COMMA.
Tue Aug 13 15:18:28 NDT 1996 Michael Rendell ([email protected])
* expr.c(do_ppmm): new function to handle ++/--.
* expr.c(evalexpr): call do_ppmm() in P_PRIMARY code.
* expr.c(LAST_BINOP): deleted.
* expr.c(IS_BINOP): new define.
* expr.c(evalexpr): use IS_BINOP.
* expr.c(O_PLUSPLUS,O_MINUSMUNS,opinfo[]): new enums; updated opinfo
* expr.c(ET_LVALUE,ET_RDONLY): new enums.
* expr.c(token): var code: don't increment cp in iter part of for loop,
do it in body; don't correct for off by 1 in array or !noasign code.
* table.h(EXPRLVALUE): new define.
* expr.c(token): var code: set EXPRLVALUE flag if noassign.
* expr.c(intvar): copy temp var if EXPRLVALUE set.
* expr.c(assign_check): new function.
* expr.c(evalexpr): if assign-op, call assign_check().
Tue Aug 13 11:02:32 NDT 1996 Michael Rendell ([email protected])
* vi.c(do_comment),edit.c(x_do_comment): made do_comment generic,
renamed and moved to edit.c; changed all calls.
* emacs.c(x_ftab[]): added x_comment.
* emacs.c(x_defbindings[]): added XFUNC_comment as <esc>#.
* emacs.c(x_comment): new function.
Mon Aug 12 16:13:36 NDT 1996 Michael Rendell ([email protected])
* expr.c(ET_BADVAR): deleted.
* expr.c(ET_RECURSIVE, struct expr.evaling),table.h(EXPRNEVAL): added.
* expr.c(v_evaluate): if curstate.evaling set, clear EXPRINEVAL.
* expr.c(evalerr): added ET_RECURSIVE case, removed ET_BADVAR case.
* expr.c(intvar): do recursion check, call v_evaluate() on value.
Mon Aug 12 14:25:23 NDT 1996 Michael Rendell ([email protected])
* io.c(coproc_read_close): call coproc_readw_close() instead of
duplicating code.
Mon Aug 12 11:21:39 NDT 1996 Michael Rendell ([email protected])
* edit.c(x_locate_word): changed to allow at most 1 leading blank
before the word.
* edit.c(x_file_glob,x_command_glob,add_glob): allow zero length word.
* edit.c(x_cf_glob): allow zero length globs on when doing file
completion.
* edit.c(x_complete_word): #if 0 - it isn't used...
* edit.c(x_file_glob,x_command_glob,x_locate_word): made static.
* eval.c(varsub): changed FNOUNSET error from "unset variable"
to "parameter no set", ala at&t ksh.
* c_ksh.c(c_typeset): print variables that aren't set (just
leave out the =...).
Mon Aug 12 11:03:22 NDT 1996 Michael Rendell ([email protected])
* exec.c(findfunc): removed redundant DEFINED check after tsearch().
Fri Aug 9 22:16:21 NDT 1996 Michael Rendell ([email protected])
* jobs.c(j_change): when turning off FMONITOR and not FTALKING,
changed SS_RESTORE_CURR to SS_RESTORE_ORIG.
* edit.c(x_sigwinch): new function.
* edit.c(x_init): set up signal handler for SIGWINCH; moved
code to get window size into x_sigwinch(); call x_sigwinch().
* emacs.c(xx_cols): new variable.
* emacs.c(x_init): set xx_cols_to x_cols; change all uses of x_cols
to xx_cols.
* vi.c(display): when displaying morec, changed x_cols-2 to
pwidth+winwidth+1.
Fri Aug 9 12:49:00 NDT 1996 Michael Rendell ([email protected])
* table.h(FKSH): new define.
* tree.h(struct op): put evalflags into new union u, added ksh_func
to union; changed all uses of evalflags.
* syn.c(function_body): set u.ksh_func.
* exec.c(execute): changed define() arg to t (was t->left).
* exec.c(define): copy t->left (was t); set FKSH in flag if is
a ksh function.
* exec.c(comexec): don't keep assignments for x() style functions.
* exec.c(comexec: case CFUNC: set kshname ($0) for ksh style functions
only (was FPOSIX).
* exec.c(execute): case TAND/TOR: pass XERROK on when executing right
hand side.
* jobs.c(exchild): deleted redundant code to set j->flags
(near new_job() call).
* sh.h(ksh_tmout),main.c(alarm_init),trap.c(alarm_init,alarm_catcher):
ifdef'd KSH.
* sh.h(SS_SHTRAP,Trap.shtrap): added.
* trap.c(trapsig): if shtrap is non-zero, call it.
* trap.c(setsig): set shtrap if SS_SHTRAP set.
* jobs.c(j_init),trap.c(alarm_init): pass SS_SHTRAP.
* jobs.c(j_sigchld),trap.c(alarm_catcher): don't call trapsig().
* trap.c(Sigact_alarm): removed.
Thu Aug 8 15:57:14 NDT 1996 Michael Rendell ([email protected])
* exec.c(comexec): case CEXEC: print cannot execute error only
if / in pathname; also, set exit code to 126.
* exec.c(do_selectargs): added print_menu arg; only print
menu if this is set, or if REPLY is null; removed "while isspace"
loop.
* exec.c(execute): case TSELECT: call do_selectargs with print_menu
of TRUE on first call only.
* exec.c(define): added was_set variable and logic.
* c_sh.c(c_unset): return 1 if variable/function to be unset wasn't
set to begin with.
Wed Jul 31 10:33:00 NDT 1996 Michael Rendell ([email protected])
* sh.h(Tflag): new type.
* sh.h(builtin_flag): changed type to Tflag.
* table.h(struct tbl): changed type of flag field to Tflag.
* c_ksh.c(typeset): changed type of flag, fset, fclr to Tflag.
* c_ksh.c(c_alias): changed type of xflag to Tflag.
* exec.c(comexec): changed type of old_inuse to Tflag.
* exec.c(builtin): changed type of flag to Tflag.
* var.c(typeset): changed set, clr args to Tflag; convert second
arg of call to local() to boolean.
Wed Jul 31 10:26:25 NDT 1996 Michael Rendell ([email protected])
* sh.h(C_QUOTE): new define.
* sh.h(ctypes[]),misc.c(ctypes[]): changed from char to short.
* misc.c(initctypes): set C_QUOTE bits in ctypes[].
* misc.c(print_value_quoted): use C_QUOTE.
Mon Jul 29 11:38:36 NDT 1996 Michael Rendell ([email protected])
* lex.c(set_prompt): don't print warning message if setjmp returns
non-zero.
Fri Jul 26 10:16:27 NDT 1996 Michael Rendell ([email protected])
* lex.c(set_prompt): don't do ! and parameter expansion if !KSH.
* table.h(V_MAIL,V_MAILPATH,V_MAILCHECK): ifdef KSH.
* var.c(initvar,setspec,unsetspec): ifdef KSH use of MAIL stuff.
* mail.c: ifdef KSH whole file.
* main.c(shell): ifdef KSH call to mcheck().
* main.c(initcoms[]): ifdef KSH the MAILCHECK=600.
(based on patches from Marc Olzheim).
* exec.c(PS4_SUBSTITUTE): new macro.
* exec.c(execute, comexec, iosetup): use PS4_SUBSTITUTE.
Thu Jul 25 17:19:17 NDT 1996 Michael Rendell ([email protected])
* sh.h(F_VIESCCOMPLETE): new define.
* misc.c(options[]): added vi-esccomplete.
* vi.c(classify[]): make ^[ a repeatable command.
* vi.c(vi_cmd): check F_VIESCCOMPLETE for ^[.
Mon Jul 22 16:54:38 NDT 1996 Michael Rendell ([email protected])
* c_ksh.c(c_getopts): return if variable is readonly; don't change
OPTIND if option is bad (fragile).
* c_sh.c(c_brkcont): use ksh_getopt(); changed error message if
n <= 0.
* c_sh.c(c_dot,c_eval,c_exitreturn): use ksh_getopt().
* misc.c(ksh_getopt): print `unknown option' instead of `bad option'.
Mon Jul 22 16:08:40 NDT 1996 Michael Rendell ([email protected])
* edit.c(x_init): do NOT export COLUMNS/LINES - causes more problems
than it fixes.
Mon Jul 22 15:49:35 NDT 1996 Michael Rendell ([email protected])
* syn.c(get_command): fixed test for '< foo (command)' so it
works.
Fri Jun 21 09:57:47 NDT 1996 Michael Rendell ([email protected])
* aclocal.m4(KSH_OPENDIR_CHECK): include dirent.h if HAVE_DIRENT_H
defined (was DIRENT || _POSIX_VERSION).
* aclocal.m4(KSH_UNISTD_H): don't test HAVE_DIRENT_H when including
dirent.h.
Wed Jun 12 11:02:32 NDT 1996 Michael Rendell ([email protected])
* c_test.c(b_ops[]): added "==" entry (ksh93ism).
Mon Jun 10 14:00:21 1996 Michael Rendell ([email protected])
* ksh_stat.h: undef S_ISSOCK if STAT_MACROS_BROKEN defined.
* aclocal.m4(AC_HEADER_STAT): redefine autoconf's version to handle
FreeBSD's S_ISSOCK.
Tue Jun 4 08:41:19 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.7 distribution
* vi.c(CMDLEN): changed from 16 back to 1024.
Sun Jun 2 11:54:46 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.6 distribution
Sun Jun 2 11:46:56 NDT 1996 Michael Rendell ([email protected])
* exec.c(search_access): changed ordering of xsuffixes[], rsuffixes[];
removed code that used xsuffixes[] when suffix is present.
* lex.c(getsc_line): set O_TEXT/O_BINARY if os/2.
* main.c(remove_temps): added os2 ifdefs.
[Changes from Dale DePriest.]
Tue May 21 14:18:22 NDT 1996 Michael Rendell ([email protected])
* vi.c(vi_cmd): case '#': call do_comment() to do work.
* vi.c(do_comment): new function.
* vi.c(putbuf,grabhist,grabsearch): fixed pesimestic off-by-1 error
(cbufsize - 1 -> cbufsize).
* vi.c(vi_hook): case VCMD: case -1: added refresh(0).
* vi.c(vi_cmd): case 'P': don't move cursor back if nothing added.
Tue May 21 12:03:34 NDT 1996 Michael Rendell ([email protected])
* emacs.c(do_complete): don't add space if single match and
it doesn't end with a /.
Tue May 21 11:51:36 NDT 1996 Michael Rendell ([email protected])
* edit.c(x_init): use typeset to set EXPORT attribute for
COLUMNS/LINES.
Tue May 21 11:40:12 NDT 1996 Michael Rendell ([email protected])
* misc.c(parseargs): option setting: ignore context if option
isn't being changed.
* misc.c(printoptions): for non-verbose mode: print a set command
(eg, set -o vi -o ...) instead of just the option names.
Tue May 21 11:14:27 NDT 1996 Michael Rendell ([email protected])
* c_sh.c(c_brkcont): if n is too big, use last enclosing loop.
Fri May 10 09:27:47 NDT 1996 Michael Rendell ([email protected])
* sh.h(Getopt): changed field p from int to unsigned.
Tue May 7 12:10:47 NDT 1996 Michael Rendell ([email protected])
* made pdksh-5.2.5 distribution
Tue May 7 11:45:37 NDT 1996 Michael Rendell ([email protected])
* syn.c(compile): set multiline if source is SSTRING.
* syn.c(yyparse): don't peek before calling c_list() - build
TEOF if c_list() fails and c is 0.
* syn.c(c_list): remove SSTRING test.