gecko-dev/xpcom
brendan%mozilla.org a791fb2253 Fixes to use atomic rename(2) if possible in nsLocalFile::MoveTo (33098, r=?),
plus a bunch of other fixes and cleanups:

- Fix comment misstatements of fact in nsIFile.idl, improve style slightly.
- Fix typo in comment in nsILocalFile.idl.
- Avoid gratuitous nsCString and nsXPIDLCString copy-constructions, which
  entail malloc'ing, in nsLocalFileUnix.cpp's CopyTo and GetParent methods.
  But do use nsXPIDLCString instead of raw nsMemory::Alloc/Free.
- Get rid of unnecessary mLL_II2L and mLL_L2II macros, use "prlong.h" API only.
  Also use the LL_* macros consistently in case a Unix lacking long long type
  support wants to use this code.
* BTW, the "Date" methods should be renamed to use "Time" instead -- after all
  PRTime is the type, and traditionally "time" refers to the time-number, a
  scalar independent of one's position on the surface of the earth, while
  "date" refers to a struct full of locale-specific information derived from
  time and some "environment" variables such as DST.  Can we rename these
  nsIFile methods before Mozilla 0.9 / Netscape 6?
- Use CHECK_mPath consistently and first, before any assertions relating to
  arguments (which logically come after the 'this' parameter CHECK_mPath is
  making assertions about).
- Use nsCOMPtr for singly-inheriting implementations of XPCOM interfaces, to
  avoid scary-when-scaled 0-refcnt instances from being handled (these all
  got a ref via QI or equivalent soon enough, but you never know).  This also
  removed some naked deletes.
- Canonize all paths copied into mPath to lack trailing slashes, so we don't
  need to strip trailing slashes elsewhere, in higher-frequency methods (you
  set path less often than you get it or a substring of it).
- ssize_t for strlen return values.
- Since shaver used a function pointer to consolidate creat/mkdir logic, but
  didn't fold the necessary close of the new fd returned by non-failing creat
  into the pointed-at function, I did that.
- AppendRelativePath forbids .. as a component (bounded by / or beginning or
  end of string on either side), not just in the middle of fragment (so that
  foo..bar is not an illegal relative pathname -- it should not be).  BTW,
  what the heck is the difference between NS_ERROR_FILE_UNRECOGNIZED_PATH and
  ...INVALID_PATH?
- SetLeafName was overallocating the new pathname buffer by failing to subtract
  the old leafname's length.
- CopyTo was failing to return an NSRESULT_FOR_ERRNO(), it just called that
  macro on a line by itself -- eek!  It also contained redundant if (newFD
  == nsnull) {...} cleanup code, it did a useless PR_GetFileInfo call, and it
  leaked FDs on read or write error.
- Implemented CopyToFollowingLinks as a forwarded call to CopyTo, Unix does
  not support "copying" a symlink via normal file i/o.  Should we instead
  lstat in CopyTo and if a link is the source of the copy, do readlink and
  then symlink?
- Fixed the readlink method (GetTarget) to null-terminate the link string in
  the out parameter (readlink does not do that for you).
- Lots of little nsnull vs. NULL vs. 0, == and != applied to boolean or null
  literals, white-space, indentation, bracing, comment, and sloppy code order
  (e.g., declaring an initialized variable that's not used till after early
  returns) fixes.  Also invert some return logic so that NS_OK is the normal,
  least indented, final return.
2000-09-19 00:22:41 +00:00
..
appshell Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
base If MOZ_ENABLE_JAR_PACKAGING is set, do not install the xpcom.properties. They will be in the the jar file 2000-09-15 22:16:01 +00:00
build Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
components Bug fix for 52648 -- remaining stash of progids which I missed on 2000-09-14 23:20:49 +00:00
doc Bug fix for 52648 -- remaining stash of progids which I missed on 2000-09-14 23:20:49 +00:00
ds Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
glue Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
io Fixes to use atomic rename(2) if possible in nsLocalFile::MoveTo (33098, r=?), 2000-09-19 00:22:41 +00:00
libxpt/xptcall
macbuild adding new string files to the build 2000-09-09 08:54:03 +00:00
proxy Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
reflect Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
remote ** not part of tbox build ** 2000-07-15 01:37:28 +00:00
sample Define QI now that XPConnect wraps JS objects; fix comments (NOT PART OF BUILD). 2000-09-18 02:31:11 +00:00
string adding |.get()| for the other half of |NS_LITERAL_STRING| 2000-09-13 03:44:58 +00:00
tests Ignore generated files 2000-09-18 17:43:15 +00:00
threads Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
tools Bug 37275, Changing value of all progids, and changing everywhere a progid 2000-09-13 23:57:52 +00:00
typelib fix bug 50445. r=shaver@mozilla.org a=brendan@mozilla.org. Thanks to Marcus G. Daniels <mgd@swarm.org> for uncovering this bug 2000-08-29 08:08:33 +00:00
.cvsignore
Makefile.in Finally following warren's lead from "last year", the libs phase has been removed from the build. Directories had to be ordered and in some cases, traversed after a subsequent module was built. 2000-03-02 13:29:03 +00:00
makefile.win Adding a new flag to the Win32 build system. Set DISABLE_TESTS=1 to skip 2000-02-25 04:12:40 +00:00