From fe3a2a1dd55837a1b904f7358c7e2771704c03c1 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sun, 23 May 2004 18:28:18 +0000 Subject: [PATCH] Some small cleanups from Lucho. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@946 6ac86273-5f31-0410-b378-82cca8765d1b --- kernel/dosfns.c | 20 +++++++------------- kernel/fatdir.c | 32 +++++++++----------------------- kernel/fcbfns.c | 9 ++------- kernel/ioctl.c | 6 +++--- 4 files changed, 21 insertions(+), 46 deletions(-) diff --git a/kernel/dosfns.c b/kernel/dosfns.c index 52b7ca0..dbbd8bd 100644 --- a/kernel/dosfns.c +++ b/kernel/dosfns.c @@ -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. * 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); - return SUCCESS; - } else - { s->sft_posit = s->sft_size + new_pos; - return SUCCESS; - } + return SUCCESS; } 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_count += 1; sftp->sft_flags = - ((dhp-> - dh_attr & ~SFT_MASK) & ~SFT_FSHARED) | SFT_FDEVICE | SFT_FEOF; + (dhp->dh_attr & ~(SFT_MASK | SFT_FSHARED)) | SFT_FDEVICE | SFT_FEOF; fmemcpy(sftp->sft_name, dhp->dh_name, FNAME_SIZE); /* pad with spaces */ @@ -1096,8 +1090,8 @@ COUNT DosFindNext(void) COUNT rc; register dmatch FAR *dmp = dta; - /* /// 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) + /* findnext will always fail on a device name device name or volume id */ + if (dmp->dm_attr_fnd & (D_DEVICE | D_VOLID)) return DE_NFILES; /* @@ -1314,14 +1308,14 @@ COUNT DosRename(BYTE FAR * path1, BYTE FAR * path2) if (result < SUCCESS) return result; - if (!(result & IS_NETWORK) && (result & IS_DEVICE)) + if ((result & (IS_NETWORK | IS_DEVICE)) == IS_DEVICE) return DE_FILENOTFND; result = truename(path1, PriPathName, CDS_MODE_CHECK_DEV_PATH); if (result < SUCCESS) return result; - if (!(result & IS_NETWORK) && (result & IS_DEVICE)) + if ((result & (IS_NETWORK | IS_DEVICE)) == IS_DEVICE) return DE_FILENOTFND; return DosRenameTrue(PriPathName, SecPathName, D_ALL); diff --git a/kernel/fatdir.c b/kernel/fatdir.c index 1acbde4..a836808 100644 --- a/kernel/fatdir.c +++ b/kernel/fatdir.c @@ -105,28 +105,16 @@ f_node_ptr dir_open(register const char *dirname) /* Convert the name into an absolute name for */ /* comparison... */ - /* first the file name with trailing spaces... */ 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 != '/' && - *dirname != '\\') - fcbname[i] = *dirname++; - else - break; - } - - /* 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++; + char c = *dirname; + if (c == '.') + i = FNAME_SIZE - 1; + else if (c != '\0' && c != '\\') + fcbname[i] = c; else break; } @@ -164,10 +152,8 @@ f_node_ptr dir_open(register const char *dirname) /* swap internal and external delete flags */ STATIC void swap_deleted(char *name) { - if (name[0] == DELETED) - name[0] = EXT_DELETED; - else if (name[0] == EXT_DELETED) - name[0] = DELETED; + if (name[0] == DELETED || name[0] == EXT_DELETED) + name[0] ^= EXT_DELETED - DELETED; /* 0xe0 */ } STATIC struct buffer FAR *getblock_from_off(f_node_ptr fnp, unsigned secsize) @@ -501,7 +487,7 @@ COUNT dos_findnext(void) ++dmp->dm_entry; ++fnp->f_diroff; 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)) { diff --git a/kernel/fcbfns.c b/kernel/fcbfns.c index 3fa5fe7..253c430 100644 --- a/kernel/fcbfns.c +++ b/kernel/fcbfns.c @@ -573,13 +573,8 @@ UBYTE FcbRename(xfcb FAR * lpXfcb) LocalFcb.fcb_drive = FcbDrive; FcbNameInit(&LocalFcb, loc_szBuffer, &FcbDrive); result = truename(loc_szBuffer, SecPathName, 0); - if (result < SUCCESS || (!(result & IS_NETWORK) && (result & IS_DEVICE))) - { - result = FCB_ERROR; - break; - } - - if (DosRenameTrue(PriPathName, SecPathName, wAttr) != SUCCESS) + if (result < SUCCESS || (result & (IS_NETWORK|IS_DEVICE) == IS_DEVICE) + || DosRenameTrue(PriPathName, SecPathName, wAttr) != SUCCESS) { result = FCB_ERROR; break; diff --git a/kernel/ioctl.c b/kernel/ioctl.c index 01c6dac..888484b 100644 --- a/kernel/ioctl.c +++ b/kernel/ioctl.c @@ -172,7 +172,7 @@ COUNT DosDevIOctl(lregs * r) CritErrCode = (CharReqHdr.r_status & S_MASK) + 0x13; return DE_DEVICE; } - + if (r->AL == 0x06 || r->AL == 0x07) { 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) */ break; /* simulate success for MS-DOS 7+ SCANDISK etc. --LG */ } - if (((r->AL == 0x04) && !(dpbp->dpb_device->dh_attr & ATTR_IOCTL)) - || ((r->AL == 0x05) && !(dpbp->dpb_device->dh_attr & ATTR_IOCTL)) + if (((r->AL == 0x04 || r->AL == 0x05) && + !(dpbp->dpb_device->dh_attr & ATTR_IOCTL)) || ((r->AL == 0x11) && !(dpbp->dpb_device->dh_attr & ATTR_QRYIOCTL)) || ((r->AL == 0x0d)