forked from FDOS/freecom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGED
612 lines (593 loc) · 31.1 KB
/
CHANGED
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
v0.84pre7
fix: Check for Win64 in Watcom makefile via %ProgramFiles(x86) (Bart)
chg: Build xms-swap by default (Bart)
fix: Use -fno-builtin for GCC to use libc/overridden functions everywhere (Bart)
chg: Use -mregparmcall for GCC. Needs adjustment of intr() prototype
(still stdcall) (Bart)
chg: Add linker script command.ld so relocations can be used in NASM code
for GCC via _TEXTSEG. (Bart)
fix: Force 8086-asm; use direct call far real_XMSexec instead of push/push/retf.
Fixes #15 (Bart)
fix: Move termination hook into seperate file and always use independent of XMS.
Closes #16 (Bart)
fix: Fix loadhigh failure when zero-byte free memory block is exist
(Sava, lpproj)
fix: Allow escape of > < | via ^> ^< and ^|. Fixes #12. (Bart)
fix: Fix build break on msys2 (with *-mingw32-gcc and ia16-elf-gcc)
(Sava,lpproj)
fix: LH/LOADFIX call execute instead of exec and skip bat files. Fixes #8.
(Bart)
fix: LOADFIX: stop manipulating UMB link, use first fit>0x10000. Fixes #10.
(Bart)
fix: dosGetUMBLinkState needs to return state in _AL, not _AX (see #10)
(Bart)
fix: Avoid possible NULL dereference in dprintf. Fixes #9 (Bart)
fix: XMScopy needs to be declared noinline for GCC to work correctly. (Bart)
fix: Fix "copy con file" where file already exists. (Bart)
We need to use devopen instead of dfnstat to check for src existence.
fix: Create and use sfn_creat() for dos_creatnew() redone.
Also rename dos_creatnew() to sfn_creatnew().
Using creat instead of creatnew for file creation avoids
the need for truncation using write(), and the handle can
be directly used without needing to reopen the file.
However, differently from the previous try, LFNs are still reopened for
compatibility with Windows 2000/XP. (Bart)
fix: dos_read and dos_write now call farread/write for all compilers.
This is more consistent and fixes truncating writes for GCC. (Bart)
fix: Fix lfnmkdir to really create LFNs; easiest to separate out. (Bart)
fix: Don't use expensive open/close to check for SFN.
Instead use the boolean, then put in extra check to see if
int21/ax=7160 works. (Bart)
fix: Add stack checking, adapted from Tom Ehlert (Bart)
fix: Save another 520 bytes of stack by reusing buffers where safe. (Bart)
fix: myfnsplit(): use common buffer to store dir/name/ext to save stack space.
This saves ~1250 bytes of stack and eliminates stack overflows in the
ke2041 test in metados. (Bart)
chg: Generate 28.com and 50.com from assembly language. (Bart)
v0.84pre6
fix: Revert to first-fit dosalloc for copy&dir buffers for non-large model
(Bart)
fix: Enable reporting of directory sizes up to 2TB (with Tom Ehlert)
fix: dosalloc: apply carry to flag image for intr(), not directly via stc
The carry flag was not preserved before. (Bart)
fix: Use intr.asm with OW too, to be able to use SZAPC flags on input. (Bart)
chg: Enable cross-compilation from 64-bit Windows using Open Watcom (Bart)
fix: ia16-elf-gcc: intr( ) now loads flags before invoking interrupt (TK Chia)
fix: compilation errors when LFN is disabled. Fixes #5. (Bart)
fix: Allocate a large enough buffer for the rest of the command line.
We need to use a full buffer for the rest to allow for alias expansion.
Fixes #6. (Bart)
fix: GCC: make sure that XMS calls get ds:si, otherwise ds can be wrong. (Bart)
fix: OW: Use xmsfunc typedef and apply #pragma aux to that.
This way XMScopy actually works, and passes the structure in si,
so messages are copied correctly. Fixes issues with metados. (Bart)
fix: keep asm inputs & clobbers separate in gcc port of dup2 (TK Chia)
fix: ia16-elf-gcc code wrongly assumed XMS driver preserves %bx (TK Chia)
fix: tell OW that bx/cx can be modified, similar to ia16-elf-gcc (Bart)
fix: cmd: shift: use correct context, Fixes SF Bug #155 (Wolfram Sang)
chg: Replace XMSrequest external asm with inline asm for GCC. (Bart)
v0.84pre5
add: Serbian/Yugoslavian for cp852 from freedoslocal (Dejan Strbac)
add: Slovenian translations from freedoslocal (Matej Horvat)
add: Turkish translations from freedoslocal.
fix: Update French translations from freedoslocal (Mateusz Viste)
fix: [bugs:#192] FOR %i IN (*.*) do @ECHO %i does not work
fix: [bugs:#209] The shell doesn't display any error if exec fails.
It will now say "EXE file corrupt" if the .exe file has a bogus header.
chg: Reduce ifdef's for GCC, using new ia16-elf-gcc functionality.
chg: Use cglobal and cextern macros in asm files for globals.
fix: Use last-fit dosalloc for copy&dir buffers to work well with large model
fix: Plug memory leak in and around comResFile().
fix: _dos_allocmem takes a pointer to unsigned, not unsigned long.
fix: Wrap dprintf macro into do { ... } while (0);
fix: Use only libc stdio in DEBUG build, not printf from clib.
chg: Remove no longer used tempfile/rmtmpfile.
fix: cgetchar_timed and eliminate its call to fputmc.
chg: Replace fputmc calls by more direct memset/dos_write calls.
fix: non-small (debug) model compilations for Turbo/Borland.
chg: Compile debug version in medium memory model instead of large.
fix: debug version (large model); enable for watcom.
chg: Create and use sfn_creat() and use instead of dos_creatnew()
fix: lfn_creat needs to truncate files that already exist.
fix: hang for batchfiles that do not end with an EOL character.
This fixes a hang with Rugxulo's metados.img.
v0.84pre4
fix: spelling, by Anders Jonsson <[email protected]>
fix: Edits to Swedish translation file, by Anders Jonsson
fix: Make echolib.bat compatible with cmd.exe (Tom Ehlert)
fix: Fix build for GCC-compiled load_icd.exe (Bart)
fix: parsefnm failures and cleanup other inline asm for OW and GCC (Bart)
fix: revert change keeping context alwyas on heap (caused out-of-memory) (Bart)
fix: replace use of inline asm lcall/call for GCC with plain C calls (Bart)
v0.84pre3
fix: Make sure that ds=ss in XMSexec call (Bart)
The newest ia16-elf-gcc floats ds inside functions and with the inline
asm doesn't know it's a function call (Bart)
chg: fmemcpy now compiles properly with ia16-elf-gcc (remove workaround) (Bart)
chg: Use GNU Make instead of OW wmake to compile with ia16-elf-gcc (Bart)
chg: Build strings without needing to create/remove the subdirectory (Bart)
chg: Move xmssave and some related variables to near transient data
This is possible since the resident code no longer references those
Be careful to not write to any transient data after the save to XMS (Bart)
chg: Fix "TODO make XMSsave two structures in order to drop this subroutine"
(Bart)
chg: Make XMSexec function near and move 80 resident code bytes to transient
section. (Bart)
chg: fix xms-swap TODO: first_time either 04ah or 049h --> no jumps (Bart)
chg: xms-swap: move residentCS from cs: to ds: (Bart)
fix: Stack size for OW needs to be 4K instead of default 2K.
This matches Turbo C's default, and allows for some large stack
users with LFNs. (Bart)
chg: Reduce heap memory by only keeping the necessary rest of the command line.
(Bart)
chg: Keep the context permanently on the heap via realloc, to reduce
fragmentation. (Bart)
chg: Properly patch the heap size for Open Watcom
The memory layout for OW is different from Turbo C.
For Turbo, heap is below stack, but for OW it's the reverse.
Hence OW keeps the data segment much more minimal by default.
There is however a default sbrk increment of 8096 set by
_amblksiz. If we set that to 6K instead the heap will stay
at that size, so TSRs are loaded beyond that point
(for non-XMS-SWAP that is, with XMS-SWAP it's completely
different) (Bart)
chg: getEnv: remove static pointers, caller responsible for free.
Eliminating the 3-pointer dance and free-ing the environment
variable pointer as soon as possible reduces heap fragmentation. (Bart)
fix: Fix farwrite and hence copy for Turbo/GCC (Bart)
fix: "dir" output for dates with our own printf. It supports %02u but not %.2u.
Those produce the same result though (Bart)
chg: port to ia16-elf-gcc (Bart)
fix: kswap_p is a _seg * pointer so we need MK_SEG_PTR for compilers without
_seg (Turbo C 2.01, OW). Otherwise the critical error handler is not installed
correctly for non-xms-swap builds. (Bart)
chg: Use "add si, byte 10" so old and new NASM generate the same opcodes (Bart)
fix: Use proper prototypes on enum{File}Resources callback function (Bart)
chg: allow Linux cross-compilation, port build utils to GCC-Linux (Bart)
fix: Fix ren for files without extensions (passes NULL ptr for ext) (Bart)
fix: Fix LOADHIGH for compilers without _seg pointers. Use FP_SEG
instead of casting the pointer to unsigned, as _seg is defined to far on
compilers without _seg (e.g. Watcom) (Bart)
fix: IF EXIST should auto-fail critical errors due to empty drive (Tom & Jeremy)
add: %CD% as alternative to %_CWD% (Tom)
fix: Use screen height 25 when 0 returned as current height, from Mateusz
Viste, bug #131 see http://sourceforge.net/p/freedos/bugs/131/ (Jeremy)
chg: Merged fcompl1 and fcompl2.c to filecomp.c (Bart)
chg: Untangle findfirst/next/close definitions to make them more explicit (Bart)
chg: Consistently use dos_open/dos_close/dos_read/dos_write, etc
The problem with _open, _read, etc. is that they mean different things
to Turbo than for OW: Turbo _open is like _dos_open but OW _open is an
alias for open (Bart)
chg: Eliminate open() in favor of _open/_creat/dos_creatnew (Bart)
chg: Eliminate fgets(), replacing with _read() (Bart)
chg: Use backspaces instead of gotoxy calls to clear a command line (Bart)
chg: Use _write for all printf style writes in prf.c and for putc(har).
Remove fflush and setbuf calls (Bart)
chg: Eliminate fputs everywhere except for prf.c (Bart)
chg: Eliminate read() by using _read() everywhere (Bart)
chg: Remove references to fopen / fcloseall for non-debug builds (Bart)
chg: Use open/read/close instead of fopen/fread/fclose everywhere (Bart)
fix: EnumFileResources function arguments to all use handles instead of
streams (Bart)
fix: Fix loadModule: it should use an int fd for a handle instead of a FILE *.
(Bart)
chg: replaced all text mode write()s by binary _write()s to save RTL usage
space (Bart)
chg: farread/farwrite cleanup of DOS r/w's (Bart)
chg: Use handle I/O instead of stream I/O for resources to save space (Bart)
chg: Change geninterrupt emulation to use intr() instead of int86x() for
consistency (Bart)
chg: Centralize LFN functions for mkdir/rmdir/chdir (Bart)
fix: Support precision flag and size/precision from argument list in abbreviated
printf function, to fix "dir /lfn" (Bart)
fix: Don't truncate when not necessary for LFN opens. Works around an FD kernel
bug were truncating a 0-byte file caused an error (Bart).
fix: "copy con file" (Bart)
fix: COPY: trailing /a and /b options only apply to the last (destination)
file, not globally, when concatenating, "/a" is the default. (Bart)
chg: Replace stream i/o for COPY by simpler handle i/o, so fileno doesn't need
to be used all the time. (Bart)
chg: Use BIGcopy() for both ascii and binary copies. ASCII just means to check
for Ctrl-Z, don't mess with line endings, so do that manually using fmemchr.
When eof is detected, no more reads are needed. (Bart)
fix: COPY: The /B switch should switch devices to raw mode (see nansi.sys
documentation). Fix errors given for "copy [/a|/b] file.txt con". (Bart)
chg: Use small printf() from the kernel source with a few modifications to do
some buffering. Saves 3.5K in RTL code for OW. (Bart)
fix: exit() needs to be overriden for OpenWatcom as well as Turbo C. (Bart)
fix: Fix direct _seg pointer casts for Open Watcom (and also Turbo C 2.01)(Bart)
fix: Fix size of LFN in struct locffblk, and make sure the ffblk structs are
packed (Bart)
fix: Fix devopen in OW using stdarg.h and proper prototypes (Bart)
fix: Fix xms-swap for Open Watcom (Bart)
fix: Set stdout to unbuffered for Watcom as it is by default for Turbo C (Bart)
fix: Use stdarg.h to avoid messing with prototypes in, and fixing Open Watcom'
use of env_replace (Bart)
fix: Update build system to support Open Watcom. Introduce config.b/config.bat
like in the kernel source to be able to configure make/wmake locations (Bart)
fix: ISR/dir.h/stpcpy/string/?etverify/parsfnm related changes for OW
compatibility (Bart)
chg: Use IREGS/intrpt instead of struct REGPACK/intr everywhere for OW
compatibility. Similarly, USEREGS simulates geninterrupt (Bart)
fix: Avoid Turbo C specific use of sizeof in preprocessor expressions (Bart)
fix: Adjust makefiles to be compatible with TC 2.01's very limited MAKE utility
(no redirection) (Bart)
fix: Fix compiler warnings (Bart)
chg: Handle .obj dependencies for suppl instead of rebuilding every time (Bart)
chg: Prune unused files from stripped-down suppl (Bart)
chg: Remove duplicate .h files from suppl source (Bart)
fix: Do not compare (signed) to ' ' but use iscntrl() - otherwise,
FIXSTRS may chop trailing non-ASCII (eg Russian) words away (Eric Auer).
fix: Fixed compilation completely with Turbo C (Blair).
fix: Got rid of all '//' comments (Blair)
fix: Support for BC (Blair)
fix: Fix for compiler oddities (Arkady).
fix: Fixed bug in Truename (Blair).
fix: Print long filename current directory (Blair).
fix: Use safer intr routine rather than directly modify registers (Blair).
fix: Moved lfnsup to a place where it will not be overwritten (Blair).
add: Add option to compile to support switch character instead of hardcoded '/'
(Blair)
add: The new SET /E feature. (Blair)
fix: Fixed long filename handling in DIR. (Blair)
fix: COPY uses static-size buffers now to prevent known problems with dynamic
allocation. (Blair)
fix: Improved PATH handling routine (Arkady).
fix: Fixed (hopefully) bug in %PATH% parsing routing and A:/B: random accessing bug (Blair).
fix: Fixed bug where a directory could be found in %PATH% parsing (Blair).
chg: Added Polish translation, updated French&Italian translation (Blair).
chg: Made RD/MD/CD more buggy-lfn-implementation friendly (Blair).
chg: Removed usage of CLIB perror function and reduced executable size by nearly
1 kb. Since perror was only used in ren and del, and only two possible errnos
exist, the function can be minimized, and also as an added advantage, the
errors that were printed can now be translated (Blair).
v0.84pre2
add: exec sets CMDLINE if command-line is longer than 125 characters; if setting CMDLINE fails, so does exec. (All DJGPP-compiled apps and various others support CMDLINE for passing parameters)
chg: Size optimizations
chg: CONIO dependencies removed - smaller size
chg: VER /R now prints the FreeDOS version string
chg: SET VAR can display %VAR% instead of syntax error
chg: Remove version strings
fix: COPY now checks for existance of source file before asking to overwrite destination
add: ukr.lng: Ukrainian translated messages
add: default.lng: LFNFOR messages
add: LFN support for REN, COPY, IF EXIST, DEL, FOR (LFNFOR), MKDIR, CHDIR, RMDIR, TYPE, TRUENAME, filename completion (LFNFOR COMPLETE), command execution, and redirection; set LFN=n to disable
chg: DIR/LFN: now displays lfn for all files that return one
fix: IF: /I option parsing interfered with /whatever tests
fix: DIR: divide by 0 {TE, Eric, & Mark Bailey}
v0.84pre:
fix: DIR/VOL: bug#1809, volume label missing spaces {KJD}
fix: VOL: syntax error if extra whitespace after drive {KJD}
add: CDD: if given path to a valid filename, ignore filename portion instead of error
add: SET /U: indicate that the value will be stored in env var in UPPERCASE
add: DIR: bug#1889, added limited 4DOS DESCRIPT.ION file support {KJD}
add: IF: /I option for case insensitive comparisons, if /I "Aa"=="aA" echo is true
fix: IF: bug#1885, fix if exists on system/hidden files {Erwin Veermans}
fix: LH: fix wrong errorlevel returned when program goes resident {KJD}
fix: default.lng: typos and misc corrections {Bernd Blaauw}
fix: swedish.lng & swedish.err so correctly builds
add: /Z: lib\dispexit.c missing, added new implementation {KJD}
add: /Z: Display exit code after external command {Bernd Blaauw}
fix: LH: Errorlevel of program effects LH's error reporting {Eric Auer}
chg: BUILD.BAT: Removed CONFIG.MAK and add the warning concering CONFIG.STD
fix: CONFIG.MAK: changes of CONFIG.MAK propagate to all make's
chg: SUPPL: integrate a stripoped down variant of SUPPL into CVS {Tom Ehlert} [#1794]
add: CRITER: Repeat check autofail magic {Tom Ehlert/Eric Auer}
fix: CLS: cut debug message
add: DIR: display LFNs if enabled with /lfn [Tom Ehlert]
add: DIR: display FAT32 free space on drive [Tom Ehlert]
chg: res_r.c: don't use relative seek; fails under NTFSdos [Tom Ehlert]
chg: doc DIR: note about how many entries can be sorted with /O [Eric Auer]
bugfix: DIR: /b don't append spurios spaces {fd-doc#226}
bugfix: use of the nls thousands separator in convert() [Eduardo Casino]
add: ITALIAN.ERR {Roberto Mariottini}
bugfix: CHCP: use n to set new codepage [Eduardo Casino]
add: cmdinput.c: Ctrl-Left & Ctrl-Right [Tom Ehlert]
fix: xms-swap.mak: dependencies [Tom Ehlert]
chg: init.c: Don't displays command on startup [Tom Ehlert] {common request}
bugfix: init.c: invalid empty MSDOS environment [Tom Ehlert]
fix: appendDisable(): should disable APPEND [Eduardo Casino]
fix: /LOW option
upd: ITALIAN.LNG {Roberto Mariottini}
fix: help screen of internal commands causes "Unknown command error" {Bernd Blaauw}
chg: REN: disable APPEND.EXE {Eduardo Casino}
fix: DIR: disable APPEND.EXE during DIR processing {Eduardo Casino}
bugfix: CLS: use BIOS, unless fd1 is file or NUL {Eric Auer}
add: config.h: MUX_AE_MAX_REPEAT_CALL
bugfix: MUX-AE: useage of DS:[SI] {Eduardo Casino}
bugfix: COPY C: D: heap corruption [#556] {Tom Ehlert}
fix: PROMPT $V: include FreeCOM version information [#1776]
fix: docu: typo and mailing list [#1774]
fix: docu: mailing list at topica {Arkady V.Belousov}
upd: german.lng [Eric Auer]
bugfix: argv[1] and no ComPath stuff [#1761]
fix: typo
upd: documentation: batch processing, Bugzilla
bugfix: documentation of wildcards [#1727]
fix: get_redirection(): double comment mark /* {Arkady V.Belousov}
bugfix: get_redirection(): apostrophe used as quote
bugfix: readcommandline(): spurious \n after commands [#1721]
bugfix: readbatchline(): permit @ before labels [#1747]
bugfix: onoffStr(): do not ignore leading argument delimiters [#1736]
add/upd: CVS $id$ keywords to/of files
bugfix: misidentifying unspecific failures from within SUPPL [#1616]
v0.82 pl 3:
bugfix: Ask for FreeCOM location when STRINGS are missing [#687]
bugfix: INIT: FreeCOM-path and TTY can be in any order
chg: SCRIPTS\MAKECMD.BAT: replaces MAKE_LNG.BAT, make localized FreeCOMs
add: SCRIPTS\MAKE_LNG.BAT: Make language-specific FreeCOM from *.LNG files {Bernd Blaauw}
add: SPANISH.LNG/ERR {Aitor Santamar¡a Merino}
add: copy.c: BIGcopy() - large buffer r/w copy {Tom Ehlert}
add: total update/rewrite GERMAN.LNG {Clemens Löser}
bugfix: FIXSTRS: TEXT_CMDHELP_FOR: Invalid warning for %v {Bernd Blaauw}
bugfix: CRITERR: to use DOS API {Tom Ehlert/Bart Oldeman}
bugfix: LOADHIGH: deallocating context if /L is present {Tom Ehlert}
fix: set.c: warning missing prototype strchr()
bugfix: /F (AutoFail) for the XMS_Swap variant
bugfix: COPY * X: re-linked to correct SUPPL version
fix: typos [#1694,#1696,#1695]
add: FOR/?: example [#1679]
bugfix: typo: bad varable specification [#1678]
fix: copy(): replace chsize() to not fill with '\0's {Tom Ehlert}
add: copy(): Speed-Up by pre-creating the file {Tom Ehlert}
bugfix: BATCH.C: extract of label name failed due to macro {Tom Ehlert}
add: Serbian CP437 LNG/ERR files {Dejan Strbac}
add: Swedish CP850 LNG/ERR files {Oscar Molin}
v0.82 pl 2:
chg: Prevent double-parsing of redirection in CALL and IF
chg: updated FreeCOM implementation status doc
add: documentation for Benny levels, IF and TESTS\BENNY.BAT
bugfix: FREECOM.COM /?: is to terminate unless /P is present [Andrew Sly]
bugfix: Cleanup HTML docs to pass W3C validation
fix: typo in HISTORY /? {Andrew Sly}
chg: wilcard matching: COPY/REN *.TXT ???b.*: If length of source filename
is less than 3, the superflous question marks are ignored, as in MS
COMMAND v6.22 COPY, but INCOMPATIBLE to same version's REN, which
embeds spaces
bugfix: CRITSTRS: hexa-decimal (%&??) interpretation {Strbac Dejan}
upd: STRINGS\DUTCH.LNG {Bernd Blaauw}
bugfix: CVS problem regarding strings\dutch.lng
add: Russian/CP866 language file {Sandul}
bugfix: dfnstat(): Use DOS-44-09 for "X:" {Bart Oldeman}
fix: memory leak (newname) in REN
add: MS COMMAND-style wildcards for REN {Wolf Bergenheim}
add: Serbian language files {Strbac Dejan}
v0.82 pl 1:
chg: Version number scheme: all v0.83 Beta <<even number>> really are
predecessors of v0.82 pl 1
fix: DIR: /O default sort order
add: DEL: /V option [#1587]
chg: tracemode: print prompt prior command [#1487]
add: CALL /Y: To enable tracemode during command
bugfix: PROMPT $T: hour: space padded; fraction zero padded [#1481]
bugfix: command line scanner: must accept ' and ` as filename characters
hence dropping them as quote character [#1244]
bugfix: DIR: /4 synonym for /Y [#937]
bugfix: COPY: remove created files on error [#756]
fix: COPY: broken wildcarded source pattern
add: COPY: colon'ed device names on command line, e.g. COPY CON: file [#225]
fix: COPY: con: is misinterpreted as C:
fix: DIR: /O: endless loop /OU; ignored /OG; /OE: return 0 if no extension
add: DIR: /O: multiple /O** conditions {Tom Ehlert}
bugfix: COPY: process directories as if "*.*" were appended
bugfix: split(): out-of-mem condition during building argument array
v0.83 Beta 56:
add: DIR: /O (single sort order) {Tom Ehlert}
bugfix: CONFIG.H: enabled CHCP by default
fix: typos
bugfix: cached NLS data not flushed
fix: DIR: correct attribute behaviour, no + syntax {Tom Ehlert}
fix: DIR /A-S need to default to attrMay == any
fix: DIR: bailing out if boolean switches found with /A
fix: DIR /S: if not found a single item, display error
add: SET /P {based on luojiuming}
bugfix: removed /V from CMDHELP_DIR
add: DIR /A*** (selected attributes) {based on patch from Michael Devore}
v0.83 Beta 54:
bugfix: prevent from executing non-*.bat/com/exe files [part 1) BugID #966]
bugfix: calling an external program: preserve leading spaces [BugID #752]
bugfix: ECHO: preserve leading spaces [BugID #1081]
v0.83 Beta 52:
add: CHCP (disabled by default)
bugfix: COPY: additional output to honor redirection {Eric Auer} [bugID #1313]
bugfix: onOffStr(): zaps trailing argument delimiters, e.g. ECHO set=
add: save/restore session (swap context) {Tom Ehlert}
bugfix: CTTY CON -> missing CR's {Eric Auer} [bugID #1441]
v0.83 Beta 50:
bugfix: /?: found on all the command line
fix: %0 to return batchfilename as typed on cmd line (bug: maybe upcased)
chg: enumResources(): handle fnam == 0 (file open error)
bugfix: FreeCOM should accept relative path as argv[0]
bugfix: FreeCOM is to pass the fully-qualified path to DOS-4B-00
bugfix: use %1 (and assoc) in FOR commands (activeBatchContext())
add: auto-vars ERRORLEVEL and _CWD (current working directory)
bugfix: removed %? because of incompatibly with existing scripts
bugfix: none-working LOADFIX {Tom Ehlert}
bugfix: XMS-Swap/LOADHIGH: crashes {Tom Ehlert}
v0.83 Beta 48:
bugfix: XMS-Swap/LOADHIGH: wrongly calculated UMBs if loaded into UMB {Tom Ehlert}
fix: expand environment variables within FOR ()'s (utter hack, to be replaced)
chg: do not strip control characters from command line
bugfix: FOR: If a pattern fails to match, --> ignore {Tom Ehlert}
bugfix: FOR and redirection [BugID #1050, #708, #1041]
chg: documentary about new build process, build48.html
add: DUTCH.LNG {Bernd Blaauw}
chg: BUILD.BAT: To display %LNG% at XMS-Swap remark
add: to use on a cdrom to create localized versions {Bernd Blaauw}
fix: COMMAND.COM /P/C cmd: hangs in endless loop, should become interactive
bugfix: CONFIG.MAK: default location of SUPPL
fix: IF ERRORLEVEL non-numeric hack (H? / x?) {Tom Ehlert} [Bug #1066]
add: pt/BR Strings {Max M. Velasques}
v0.83 Beta 46:
add: COPY: keep file time if not appending
chg: upload.txt: update options of DIFF utility
bugfix: documentation: link to ftp://sourceforge
bugfix: shell\batch.c: incorrect dfn.h path
v0.83 Beta 44:
upd: documented bug of 16bit NASM version 0.98.34 compiled on Jun 17 2002
v0.83 Beta 42:
add: feature ENVIRONMENT_KEEP_FREE
bugfix: DOS memory corruption by bad struct MCB declaration
v0.83 Beta 40:
bugfix: ^Break detection after XMS-Swapping
v0.83 Beta 38:
chg: cswap.asm: make local stack 256 (as RBIL suggests)
bugfix: cswap.asm: make local stack 200 bytes to let MS NET work (Tom Ehlert)
chg: init.c: removed warning about non-used arguments
bug: config.h: re-enabled LOADHIGH/FIX
chg: BUILD.BAT to handle XMS-Swap better
bugfix: CTTY: added to try to set the device flags
bugfix: LOADHIGH: disable swapping when executing
bugfix: init.c: /p:arg ignores argument
add: XMS-Only Swap feature (FEATURE_XMS_SWAP) (Tom Ehlert)
chg: COPY: appFile unneccessarily declared FAR (Tom Ehlert)
bugfix: cmdinput.c: histGet(,str,maxlen) (Tom Ehlert)
bugfix: mux_ae.h: #ifdef --> #if (Tom Ehlert)
bugfix: day/month read from ff_time reversed (John Price)
bugfix: IF lower==LOWER bug; MS COMMAND compares case-sensitively
fix: Several typos in documentation
v0.83 Beta 32:
bugfix: if FREECOM.COM /P without AUTOEXEC.BAT --> assert() failure.
add: if DEBUG enabled: internal command EXIT!! that ignores /P
chg: FEATURE_BOOT_KEYS: mandory boot keys (F5/F8) turned into
optional compile-time option; disabled by default now as the
kernel provides F5/F8 checking
chg: some document updates
v0.83 Beta 30:
add: SET /I: To display the size and unused area in env segm
(about 700 bytes increase of image; WILL BE REMOVED WITH NEXT
STABLE RELEASE)
bugfix: INIT.C/COMMAND.C: in MS DOS environment no program
expects that the string area of an environment is used and is
therefore killed. FreeCOM now zeroes the string counter
in order to let SUPPL work correctly.
Warning: Known Bug: Now test is made, if the two bytes for the
counter is not available, thus, the env_nullStrings() function
fails.
bugfix: INIT.C: negated test for FreeDOS's build >= 2025
v0.83 Beta 28:
bugfix: scancmd.c: /B and /A let COPY fail (ec == E_Ignore) (bug 829)
upd: HTML section
v0.83 Beta 25:
bugfix: pre-compiled package BINARY.ZIP without command-line editing
chg: FreeCOM archive (== executable) is opened read-only.
v0.83 Beta 21:
bugfix: process_input(): iscntrl() does not advance ip
possible bugfix: force to default to _unsigned_ char as built-in
<ctype.h> macros do not work with signed char > 127
v0.83 Beta 15:
bugfix: expalias: if malloc() fails, random expanded is free'ed
bugfix: nls_maketime(): 12hour display does not free AM/PM id
fix: dbg_printmem() if compiled in Large memory model, near is invalid
v0.83 Beta 14:
add: ALIAS HTML documentation
bugfix: MEMORY displays batch nesting level, although, not implemented, yet
bugfix: Single point of configuration CONFIG.MAK/.H:
CONFIG.MAK <-> Compiler specific settings, paths etc.
CONFIG.H <-> FreeCOM releated settings, included commands etc.
bugfix: DEFAULT strings for COMMAND /?, WHICH /?, DOSKEY /?, DIR /? (/A & /O)
add: error message if debugging when to open the resource file failed
bugfix: links in FreeCOM.html & typos in commands database
add: check for low memory during init() when debugging
bugfix: TYPE: first argument only
bugfix: DATE: does not accept empty line
bugfix: >>PATH<< with empty %PATH% --> PATH=(null)
fix: BREAK/VERIFY ignore trailing spaces
fix: >>PATH ;<< remove PATH environment variable
fix: cache 3 environment variables to overcome nested useage (e.g. when
loading message segment to print environment variable)
bugfix: keep trailing spaces of command line
chg: default heap size (tools\ptchsize) set to 6KB
chg: error displaying functions centralized into lib\err_fcts.src
add: displayError()
chg: all errors are displayed through functions void error_*()
bugfix: somtimes error messages are not displayed (see displayError())
bugfix: docommand(): type:file must pass ":file" to TYPE
bugfix: error_sfile(): string _SFILE_
bugfix: error message on empty redirection
bugfix: comma and semicolon ';' are recognized as argument seperators
of internal commands
fix: config.mak: missing libpath & "-d" causes crashes
fix: cmdinput.c: first histGet() is not #if'ed
chg: new directory structure
chg: If DEBUG enabled, no available commands are displayed on startup
fix: PTCHSIZE also patches min extra size to force to have this amount
of memory available on start
bugfix: CALL doesn't reset options
add: PTCHSIZE to patch heap size
add: VSPAWN, /SWAP switch, .SWP resource handling
bugfix: COMMAND.COM A:\
bugfix: CALL: if swapOnExec == ERROR, no change of swapOnExec allowed
add: command MEMORY
bugfix: runExtension(): destroys command[-2]
add: clean.bat
add: localized CRITER strings
chg: use LNG files for hard-coded strings (hangForEver(), init.c)
via STRINGS.LIB
add: DEL.C, COPY.C, CBREAK.C: STRINGS-based prompts
add: fixstrs.c: prompts & symbolic keys
add: fixstrs.c: backslash escape sequences
add: version IDs to DEFAULT.LNG and validation to FIXSTRS.C
chg: splitted code apart into LIB\*.c and CMD\*.c
bugfix: IF is now using error system & STRINGS to report errors
add: CALL: /N
bugfix: mktempfile(): if realloc() fails, fn is not deallocated
bugfix: showcmds(): always display all implemented (though possibly not
available) features
fix: criter.asm: DEBUG does no longer compile to .COM (for consistency)
chg: removed all NULLs to prevent NULL problematic, functions must be
used fully prototyped now
v0.81 beta 1:
bugfix: _fstrchr() doesnot find '\0'
bugfix: NULL problematic
v0.81 beta 0:
bugfix: "copy 1 + 2 + 3 target" copies first & last file only
add: interactive command flag
add: FDDEBUG may redirect output into file
bugfix: STRINGS resource length value counts 1. string twice
sub: enumResources() won't check secondary files no longer
fix: MKTOOLS must include $(CFG) into list
add: command WHICH
fix: BUILD.BAT and accompanying makefiles for TC++ v1.01
bugfix: if ENHANCED_INPUT && !HISTORY, CurRight falls through to CurLeft
bugfix: CB_CATCH: In DEBUG mode: recursive test fails always
bugfix: KSSF: restore parentPSP on exit
chg: using STRINGS resource for all non-interactive messages
chg: moved all assembly files to NASM
v0.80b
add: DIR /Y to display 4digit year
fix: DIR displays "bytes free" at the very end, but if more than one
argument is specified, it only displays the free bytes of the
very last argument. The line is now printed after the display
of each argument.
bugfix: When the "bytes free" are displayed the used drive letter
had been deallocated already.
add: NLS-compatible input of date
add: NLS-compatible display of date & time (incl DIR)
fix: parse years 80..199 as century 1900 (by Arkady)
chg: removed some static variables
chg: made all global functions & variables static to LOADHIGH.C
sub: LH.ASM/LOADHIGH.C: duplicate functions (memory API, farmemcmp)
fix: doc of DATE, TIME, FreeCOM
v0.80a
chg: two-digit year -> 2000 if less than 80
add: DATE /D and TIME /T
v0.80:
chg: canexit disabled by default, allowed within initialize()
chg: command table uppercased as Installable Commands use uppercased names
add: installable COMMAND extensions FEATURE_EXTENSIONS
add: F1, F3, F5, cur-right
add: French Strings file
add: German Strings file
add: useage of %COPYCMD%
v0.79dá2:
bugfix: "CD." and analogeous commands
v0.79dá1:
add: FEATURE_ENHANCED_INPUT and it's non-defined variant
bugfix: "%1" could writer behind end of string
bugfix: check of length of external command line was considered too long
chg: moved check for length of external command line in order to let
batch files use the internal length
v0.79dá:
bugfix: "line too long" error if last line of batch files has no newline
bugfix: root path not recognized, e.g. in "C:\PATH> \program"