Commit Graph

44 Commits

Author SHA1 Message Date
Bart Oldeman
d8537c13ef Simplified truename(): eliminated the addSep state by adding a backslash in
every new segment, including a trailing backslash. Simplified . and .. logic.
Converted switch to if because there were few cases left.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1478 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-07 13:04:53 +00:00
Bart Oldeman
5ad1fd51e1 Use simpler code for copying the current directory constructing the "truename":
instead of fmemcpy followed by strcpy, just use strcpy. Also use the near
TempCDS more.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1475 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-06 02:22:06 +00:00
Bart Oldeman
de81ab4e46 Unify parse_name_ext for name and extension and inline this function into
truename(). This is an optimization (200 bytes).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1474 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-05 22:13:01 +00:00
Bart Oldeman
9e1e01e9e6 If the current directory is no longer valid, call dos_cd() for the root to
update the CDS cluster. Call media_check explicitly in truename() as a central
first and only place in directory-using DOS calls (except DosFindNext)
to call it.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1473 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-05 21:21:14 +00:00
Bart Oldeman
95653072d3 The original DosGetCuDir is now inlined in truename(). DosGetCuDir now
does truename("D:", CDS_MODE_SKIP_PHYSICAL), and this mode was changed
to no longer call QRemote_Fn (int2f/ax=1123).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1472 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-05 21:09:34 +00:00
Bart Oldeman
39a9574824 Fix truename("C:") where the current directory is different from the root:
then it should not append a backslash.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1471 6ac86273-5f31-0410-b378-82cca8765d1b
2009-07-05 19:46:12 +00:00
Bart Oldeman
f7a9177b64 The invalid pathname character detection is moved from ParseDosName (dosnames.c)
to truename (newstuff.c), because TRUENAME should check these characters
before passing paths on to fatfs.c & fatdir.c.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1440 6ac86273-5f31-0410-b378-82cca8765d1b
2009-06-12 22:58:24 +00:00
Eric Auer
0cc297cf2d The truename function must use the current working directory of
the virtual / created-by-subst drive when it resolves relative
paths, even though truename returns the "real" drive and dir
of where your files actually are in the end. Using the current
directory of the "real" drive made truename give wrong results.

PS: If "subst e: d:\" says "physical path x:\ cannot be made",
then it refers to "making" a root dir. "subst e: d:\foo" works.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1357 6ac86273-5f31-0410-b378-82cca8765d1b
2007-09-15 22:01:03 +00:00
Eric Auer
ab53a50c49 Mktemp (21.5a) only inserts leading backslash in temp file name
if no directory given in template if DOS version is 5.
Older and newer DOS versions just use no dirspec in that case.
This helps ftp.sac.sk/pub/sac/pack/iup067.zip exepacker which
tries to rename the temp file to a file in current directory.

Prepared Truename (21.60) to return 0 if okay, 3a00 if char dev
(and not JOIN / network?). May need further coding to actually
have the intended effect...? Note: The shell TRUENAME command
may change names for display!

Changed the "true DOS version" for FAT16 kernels from 5.0 to
6.22 to reflect the updates in 21.5a and 21.60, other 5 / 6
differences are not simply in the kernel but more in COUNTRY,
KEYB, HIMEM, SMARTDRV, DBLSPACE, EMM386, COMMAND and so on.
In addition, 6.22 is a popular version number to report :-).


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1345 6ac86273-5f31-0410-b378-82cca8765d1b
2007-07-28 19:03:40 +00:00
Bart Oldeman
86a8e9c2d2 This was unequal replacement: in new code performed more memory access
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@951 6ac86273-5f31-0410-b378-82cca8765d1b
2004-05-23 20:06:51 +00:00
Bart Oldeman
b723ff9a46 inthndler cleanups, mostly from Arkady
Bart: made dosmktmp to return a long: consistent with DosOpen et al and
avoids the cast.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@948 6ac86273-5f31-0410-b378-82cca8765d1b
2004-05-23 19:45:48 +00:00
Bart Oldeman
91b3515162 From Lucho: replace loops by fmemset/fmemcpy (43 bytes)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@938 6ac86273-5f31-0410-b378-82cca8765d1b
2004-05-23 14:17:36 +00:00
Bart Oldeman
de444743cc Define I386 and I186 more cleanly.
Add (UWORD) casts to silence the compiler.
Optimize (head*sector) to secs_per_cyl
Add BORLANDC to compiler list and simplify startup printf to one message.
#pragma enable_message(130) for Watcom C causes it to behave a little more
like Borland in terms of warnings.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@776 6ac86273-5f31-0410-b378-82cca8765d1b
2004-02-07 18:16:27 +00:00
Bart Oldeman
bdc5569995 Set the Critical Error number immediately after calling a device driver.
This solves problems with int24 handlers that call int21/ah=59.
Let truename and blockrw return with an error if there is a critical error.
Don't overwrite the critical error # with the DOS error #.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@709 6ac86273-5f31-0410-b378-82cca8765d1b
2003-09-24 19:34:11 +00:00
Bart Oldeman
2cb828283f Remove my old truename fix.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@612 6ac86273-5f31-0410-b378-82cca8765d1b
2003-06-17 08:45:56 +00:00
Bart Oldeman
4c88863f24 Add support for UNC style paths (David Bolen)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@604 6ac86273-5f31-0410-b378-82cca8765d1b
2003-06-15 22:06:03 +00:00
Bart Oldeman
bdc63c1ff0 Fixes from Lixing Yuan: dosnames cleanup, fix for truename with
wildcards and trailing dots.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@598 6ac86273-5f31-0410-b378-82cca8765d1b
2003-06-15 18:57:02 +00:00
Bart Oldeman
80a6dd82af Fix problem with "truename wildcard."
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@576 6ac86273-5f31-0410-b378-82cca8765d1b
2003-04-30 15:42:06 +00:00
Bart Oldeman
484f700bba DE_INVLDDRV should be DE_DEVICE for rename and DE_PATHNOTFND for truename
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@563 6ac86273-5f31-0410-b378-82cca8765d1b
2003-03-23 18:41:36 +00:00
Bart Oldeman
9bcd6b125a Don't allow wildcards for internal truename processing, except for
DosFindfirst and DosTruename.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@536 6ac86273-5f31-0410-b378-82cca8765d1b
2003-03-12 06:50:33 +00:00
Bart Oldeman
e67a8f5058 Changes for kernel 2028 (see history.txt)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@485 6ac86273-5f31-0410-b378-82cca8765d1b
2002-12-09 00:17:15 +00:00
Bart Oldeman
83b77cbb1b Changes for kernel 2027rc.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@427 6ac86273-5f31-0410-b378-82cca8765d1b
2002-10-22 02:40:19 +00:00
Bart Oldeman
dfeb595f8e Last changes for kernel 2027 test.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@414 6ac86273-5f31-0410-b378-82cca8765d1b
2002-08-04 01:14:18 +00:00
Bart Oldeman
511bf63d16 Cleaned up task.c (merged much of DOSExe/ComLoader); transform the CDS into
a proper array.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@413 6ac86273-5f31-0410-b378-82cca8765d1b
2002-08-03 16:54:09 +00:00
Bart Oldeman
93bc26d0d5 Added more functions (memchr, memcmp, strcmp) to asmsupt.asm. Removed strncpy
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@398 6ac86273-5f31-0410-b378-82cca8765d1b
2002-08-03 01:48:49 +00:00
Bart Oldeman
2098578b1b kernel 2026b changes
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@382 6ac86273-5f31-0410-b378-82cca8765d1b
2002-05-08 22:49:35 +00:00
Bart Oldeman
0e8b739c4c kernel 2026 test changes (see history.txt)
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@343 6ac86273-5f31-0410-b378-82cca8765d1b
2002-01-23 22:29:41 +00:00
Bart Oldeman
b6d423a1b3 Ran all .c and .h files through "indent"
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@329 6ac86273-5f31-0410-b378-82cca8765d1b
2001-11-18 14:01:12 +00:00
Bart Oldeman
fe51b7a036 Truncated and disabled $Logs, fixed r/w bugs for kernel 2025b
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@326 6ac86273-5f31-0410-b378-82cca8765d1b
2001-11-17 23:26:45 +00:00
Bart Oldeman
5a18de7cbb Kernel 2025a final changes.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@321 6ac86273-5f31-0410-b378-82cca8765d1b
2001-11-13 23:36:45 +00:00
Bart Oldeman
048c87bbac FAT32 support, misc fixes, INT2F/AH=12 support, drive B: handling
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@305 6ac86273-5f31-0410-b378-82cca8765d1b
2001-09-23 20:39:44 +00:00
Bart Oldeman
b447c6c0be Truename, get free space and ctrl-break fixes.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@280 6ac86273-5f31-0410-b378-82cca8765d1b
2001-08-20 20:32:15 +00:00
Bart Oldeman
c5cb6b1cac Fixes for FORMAT+SYS, FATFS, get current dir, kernel init memory situation.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@274 6ac86273-5f31-0410-b378-82cca8765d1b
2001-07-28 18:13:06 +00:00
Bart Oldeman
be2ae12b54 See history.txt for the list of fixes.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@196 6ac86273-5f31-0410-b378-82cca8765d1b
2001-04-15 03:21:50 +00:00
Bart Oldeman
7c122b0850 Misc, zero terminated device names and redirector bugs fixed.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@188 6ac86273-5f31-0410-b378-82cca8765d1b
2001-04-02 23:18:30 +00:00
Bart Oldeman
2799b7b810 Saner lastdrive handling.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@183 6ac86273-5f31-0410-b378-82cca8765d1b
2001-03-30 22:27:42 +00:00
Jim Tabor
0fddf1f848 Add new files and update cvs with patches and changes
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@61 6ac86273-5f31-0410-b378-82cca8765d1b
2000-08-06 05:50:17 +00:00
Jim Tabor
b8a19f9da0 Add UMB code, patch, and code fixes
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@32 6ac86273-5f31-0410-b378-82cca8765d1b
2000-06-21 18:16:46 +00:00
Jim Tabor
a6fa916054 Read History for Changes
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@29 6ac86273-5f31-0410-b378-82cca8765d1b
2000-06-01 06:37:38 +00:00
Jim Tabor
edf98624fb Read History file for Change info
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@27 6ac86273-5f31-0410-b378-82cca8765d1b
2000-05-26 19:25:19 +00:00
Jim Tabor
21bb3f6923 Fixed project history
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@26 6ac86273-5f31-0410-b378-82cca8765d1b
2000-05-25 20:56:23 +00:00
Jim Tabor
504c1b3c02 Cleanup, add and fix source.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@18 6ac86273-5f31-0410-b378-82cca8765d1b
2000-05-17 19:15:12 +00:00
Jim Tabor
b857858f48 Update CVS to 2020
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@7 6ac86273-5f31-0410-b378-82cca8765d1b
2000-05-08 04:30:00 +00:00
Jim Hall
060002c5ae Initial revision
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@2 6ac86273-5f31-0410-b378-82cca8765d1b
2000-05-06 19:34:20 +00:00