Xref: news-dnh.mv.net comp.os.msdos.djgpp:180 Path: news-dnh.mv.net!mv!news.sprintlink.net!uunet!in1.uu.net!sunic!sunic.sunet.se!news.uni-c.dk!diku.dk!terra From: terra AT diku DOT dk (Morten Welinder) Newsgroups: comp.os.msdos.djgpp Subject: Code Standards Date: 6 Jun 1995 20:31:04 GMT Organization: Department of Computer Science, U of Copenhagen Lines: 109 Sender: terra AT tyr DOT diku DOT dk Nntp-Posting-Host: odin.diku.dk To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp OK, some thoughts of mine. GO32: ---- Go32 is dead. The majority of comments yours truthfully put in there when I got tired of just seeing "case 0x40:". If this program was not dead it would IMHO need more commenting. Having said that I want to add that there really are no or few user-servicable parts inside. If you don't have your i[345]86- manual within reach (and know it almost be heart) don't mess with it. CWSDPMI: ------- Better, but nor perfect. Still, this is expert-only code. LIBC: ---- Most of the routines are short. Look at the current (for a few more days) version of rename.c below. What more comments do you want? (Forget about those in the docs and those that are relevant to the entire libc, like what the heck is __tb?) Morten ------ No comments needed here. --------------------------------------------------------------------------- #include #include #include #include #include #include int rename(const char *old, const char *new) { __dpmi_regs r; int olen = strlen(old) + 1; int i; for (i=0; i<2; i++) { r.h.ah = 0x56; _put_path2(new, olen); _put_path(old); __dpmi_int(0x21, &r); if(r.x.flags & 1) { if (r.h.ah == 5 && i == 0) /* access denied */ remove(new); /* and try again */ else { errno = __doserr_to_errno(r.x.ax); return -1; } } else break; } return 0; } --------------------------------------------------------------------------- @node rename, file system @unnumberedsec @code{rename} @subheading Syntax @example #include int rename(const char *oldname, const char *newname); @end example @subheading Description This function renames an existing file @var{oldname} to @var{newname}. Wildcards are not allowed, but the two file names may reflect different subdirectories on the same file system. @subheading Return Value Zero on success, nonzero on failure. @subheading Example @example rename("some.doc", "some.sav"); @end example ---------------------------------------------------------------------------