Some small cleanups from Lucho.

git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@946 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2004-05-23 18:28:18 +00:00
parent b89c1b7cd3
commit fe3a2a1dd5
4 changed files with 21 additions and 46 deletions

View File

@ -336,16 +336,11 @@ COUNT SftSeek(int sft_idx, LONG new_pos, COUNT mode)
* Lredir via mfs.c from DosEMU works when writing appended files. * Lredir via mfs.c from DosEMU works when writing appended files.
* Mfs.c looks for these mode bits set, so here is my best guess.;^) * Mfs.c looks for these mode bits set, so here is my best guess.;^)
*/ */
if ((s->sft_mode & O_DENYREAD) || (s->sft_mode & O_DENYNONE)) if (s->sft_mode & (O_DENYREAD | O_DENYNONE))
{
s->sft_posit = remote_lseek(s, new_pos); s->sft_posit = remote_lseek(s, new_pos);
return SUCCESS;
}
else else
{
s->sft_posit = s->sft_size + new_pos; s->sft_posit = s->sft_size + new_pos;
return SUCCESS; return SUCCESS;
}
} }
if (mode == 0) if (mode == 0)
{ {
@ -460,8 +455,7 @@ STATIC int DeviceOpenSft(struct dhdr FAR *dhp, sft FAR *sftp)
sftp->sft_shroff = -1; /* /// Added for SHARE - Ron Cemer */ sftp->sft_shroff = -1; /* /// Added for SHARE - Ron Cemer */
sftp->sft_count += 1; sftp->sft_count += 1;
sftp->sft_flags = sftp->sft_flags =
((dhp-> (dhp->dh_attr & ~(SFT_MASK | SFT_FSHARED)) | SFT_FDEVICE | SFT_FEOF;
dh_attr & ~SFT_MASK) & ~SFT_FSHARED) | SFT_FDEVICE | SFT_FEOF;
fmemcpy(sftp->sft_name, dhp->dh_name, FNAME_SIZE); fmemcpy(sftp->sft_name, dhp->dh_name, FNAME_SIZE);
/* pad with spaces */ /* pad with spaces */
@ -1096,8 +1090,8 @@ COUNT DosFindNext(void)
COUNT rc; COUNT rc;
register dmatch FAR *dmp = dta; register dmatch FAR *dmp = dta;
/* /// findnext will always fail on a device name device name or volume id */ /* findnext will always fail on a device name device name or volume id */
if (dmp->dm_attr_fnd == D_DEVICE || dmp->dm_attr_fnd & D_VOLID) if (dmp->dm_attr_fnd & (D_DEVICE | D_VOLID))
return DE_NFILES; return DE_NFILES;
/* /*
@ -1314,14 +1308,14 @@ COUNT DosRename(BYTE FAR * path1, BYTE FAR * path2)
if (result < SUCCESS) if (result < SUCCESS)
return result; return result;
if (!(result & IS_NETWORK) && (result & IS_DEVICE)) if ((result & (IS_NETWORK | IS_DEVICE)) == IS_DEVICE)
return DE_FILENOTFND; return DE_FILENOTFND;
result = truename(path1, PriPathName, CDS_MODE_CHECK_DEV_PATH); result = truename(path1, PriPathName, CDS_MODE_CHECK_DEV_PATH);
if (result < SUCCESS) if (result < SUCCESS)
return result; return result;
if (!(result & IS_NETWORK) && (result & IS_DEVICE)) if ((result & (IS_NETWORK | IS_DEVICE)) == IS_DEVICE)
return DE_FILENOTFND; return DE_FILENOTFND;
return DosRenameTrue(PriPathName, SecPathName, D_ALL); return DosRenameTrue(PriPathName, SecPathName, D_ALL);

View File

@ -105,28 +105,16 @@ f_node_ptr dir_open(register const char *dirname)
/* Convert the name into an absolute name for */ /* Convert the name into an absolute name for */
/* comparison... */ /* comparison... */
/* first the file name with trailing spaces... */
memset(fcbname, ' ', FNAME_SIZE + FEXT_SIZE); memset(fcbname, ' ', FNAME_SIZE + FEXT_SIZE);
for (i = 0; i < FNAME_SIZE; i++) for (i = 0; i < FNAME_SIZE + FEXT_SIZE; i++, dirname++)
{ {
if (*dirname != '\0' && *dirname != '.' && *dirname != '/' && char c = *dirname;
*dirname != '\\') if (c == '.')
fcbname[i] = *dirname++; i = FNAME_SIZE - 1;
else else if (c != '\0' && c != '\\')
break; fcbname[i] = c;
}
/* and the extension (don't forget to */
/* add trailing spaces)... */
if (*dirname == '.')
++dirname;
for (i = 0; i < FEXT_SIZE; i++)
{
if (*dirname != '\0' && *dirname != '.' && *dirname != '/' &&
*dirname != '\\')
fcbname[i + FNAME_SIZE] = *dirname++;
else else
break; break;
} }
@ -164,10 +152,8 @@ f_node_ptr dir_open(register const char *dirname)
/* swap internal and external delete flags */ /* swap internal and external delete flags */
STATIC void swap_deleted(char *name) STATIC void swap_deleted(char *name)
{ {
if (name[0] == DELETED) if (name[0] == DELETED || name[0] == EXT_DELETED)
name[0] = EXT_DELETED; name[0] ^= EXT_DELETED - DELETED; /* 0xe0 */
else if (name[0] == EXT_DELETED)
name[0] = DELETED;
} }
STATIC struct buffer FAR *getblock_from_off(f_node_ptr fnp, unsigned secsize) STATIC struct buffer FAR *getblock_from_off(f_node_ptr fnp, unsigned secsize)
@ -501,7 +487,7 @@ COUNT dos_findnext(void)
++dmp->dm_entry; ++dmp->dm_entry;
++fnp->f_diroff; ++fnp->f_diroff;
if (fnp->f_dir.dir_name[0] != '\0' && fnp->f_dir.dir_name[0] != DELETED if (fnp->f_dir.dir_name[0] != '\0' && fnp->f_dir.dir_name[0] != DELETED
&& (fnp->f_dir.dir_attrib & D_VOLID) != D_VOLID) && !(fnp->f_dir.dir_attrib & D_VOLID))
{ {
if (fcmp_wild(dmp->dm_name_pat, fnp->f_dir.dir_name, FNAME_SIZE + FEXT_SIZE)) if (fcmp_wild(dmp->dm_name_pat, fnp->f_dir.dir_name, FNAME_SIZE + FEXT_SIZE))
{ {

View File

@ -573,13 +573,8 @@ UBYTE FcbRename(xfcb FAR * lpXfcb)
LocalFcb.fcb_drive = FcbDrive; LocalFcb.fcb_drive = FcbDrive;
FcbNameInit(&LocalFcb, loc_szBuffer, &FcbDrive); FcbNameInit(&LocalFcb, loc_szBuffer, &FcbDrive);
result = truename(loc_szBuffer, SecPathName, 0); result = truename(loc_szBuffer, SecPathName, 0);
if (result < SUCCESS || (!(result & IS_NETWORK) && (result & IS_DEVICE))) if (result < SUCCESS || (result & (IS_NETWORK|IS_DEVICE) == IS_DEVICE)
{ || DosRenameTrue(PriPathName, SecPathName, wAttr) != SUCCESS)
result = FCB_ERROR;
break;
}
if (DosRenameTrue(PriPathName, SecPathName, wAttr) != SUCCESS)
{ {
result = FCB_ERROR; result = FCB_ERROR;
break; break;

View File

@ -172,7 +172,7 @@ COUNT DosDevIOctl(lregs * r)
CritErrCode = (CharReqHdr.r_status & S_MASK) + 0x13; CritErrCode = (CharReqHdr.r_status & S_MASK) + 0x13;
return DE_DEVICE; return DE_DEVICE;
} }
if (r->AL == 0x06 || r->AL == 0x07) if (r->AL == 0x06 || r->AL == 0x07)
{ {
r->AX = CharReqHdr.r_status & S_BUSY ? 0000 : 0x00ff; r->AX = CharReqHdr.r_status & S_BUSY ? 0000 : 0x00ff;
@ -280,8 +280,8 @@ COUNT DosDevIOctl(lregs * r)
r->AX = 0; /* (lock/unlock logical/physical volume) */ r->AX = 0; /* (lock/unlock logical/physical volume) */
break; /* simulate success for MS-DOS 7+ SCANDISK etc. --LG */ break; /* simulate success for MS-DOS 7+ SCANDISK etc. --LG */
} }
if (((r->AL == 0x04) && !(dpbp->dpb_device->dh_attr & ATTR_IOCTL)) if (((r->AL == 0x04 || r->AL == 0x05) &&
|| ((r->AL == 0x05) && !(dpbp->dpb_device->dh_attr & ATTR_IOCTL)) !(dpbp->dpb_device->dh_attr & ATTR_IOCTL))
|| ((r->AL == 0x11) || ((r->AL == 0x11)
&& !(dpbp->dpb_device->dh_attr & ATTR_QRYIOCTL)) && !(dpbp->dpb_device->dh_attr & ATTR_QRYIOCTL))
|| ((r->AL == 0x0d) || ((r->AL == 0x0d)