Hi Frank,

you wrote that the "Online Bible for DOS", which one
can download at http://www.onlinebible.net/dosolb.html
does not work in FreeDOS.

After some messing with dosemu and the built-in debugger
and interrupt trace functions of it, I figured out that
your problem is in DOS INT 21 function 29, FcbParseFname.

The difference between MS DOS and FreeDOS is in what
happens when you use a filename with a directory spec
as input. For example "foo.txt" and "x:foo.txt" are
both handled okay, but for "x:\moo\foo.txt", FreeDOS
returned "\moo\foo" as the file name, while it seems
to be supposed to return "" in that case! A patch to
fix this in FreeDOS is as shown below. I also sent
you a modified binary off-list / by direct email.

Please try the updated kernel :-)

Eric



PS: Question to the experts, dos_rename now uses
alloc_find_free to support cross-directory rename
(good), but that has 2 problems: When you rename
a directory, the ".." of it is not updated (bad)
and renaming anything consumes a directory entry
(bad). Both problems have been reported as bugs.
Can anybody write a better fatfs.c dos_rename? It
could "alloc only if different dir, else rename
in-place" and "if renamed item is dir, update ..".
Thanks a lot.



diff -u fcbfns.org fcbfns.c
--- fcbfns.org  2004-07-25 10:04:54.000000000 +0200
+++ fcbfns.c    2007-05-09 01:22:52.000000000 +0200
@@ -149,6 +149,14 @@
     return FP_OFF(lpFileName);
   }

+  /* MS DOS returns all-spaces filename and ext in FCB if pathspec found */
+  if (*lpFileName == '\\')
+  {
+    /* file name and ext are left unset or blanked, see PARSE_BLNK_* above */
+    *wTestMode = PARSE_RET_NOWILD;
+    return FP_OFF(lpFileName);
+  }
+
   /* Now to format the file name into the string                  */
   lpFileName =
       GetNameField(lpFileName, (BYTE FAR *) lpFcb->fcb_fname, FNAME_SIZE,


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to