diff --git a/modules/libreg/src/Makefile.in b/modules/libreg/src/Makefile.in index f5f27b8c9249..d2be7745b483 100644 --- a/modules/libreg/src/Makefile.in +++ b/modules/libreg/src/Makefile.in @@ -47,6 +47,11 @@ MODULE = libreg LIBRARY_NAME = mozreg_s DIST_INSTALL = 1 +# MacOSX requires the MoreFiles module +ifeq ($(OS_ARCH),Darwin) +REQUIRES = macmorefiles +endif + CSRCS = $(MODULES_LIBREG_SRC_LCSRCS) nr_bufio.c BIN_SRCS = VerReg.c reg.c vr_stubs.c @@ -65,6 +70,10 @@ USE_STATIC_LIBS = 1 SDK_LIBRARY = $(LIBRARY) +ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) +SHARED_LIBRARY_LIBS += $(DEPTH)/xpcom/MoreFiles/libmacmorefiles_s.a +endif + include $(topsrcdir)/config/config.mk DEFINES += -DUSE_BUFFERED_REGISTRY_IO diff --git a/modules/libreg/src/reg.c b/modules/libreg/src/reg.c index 4bf9cb4390e2..d6df1c02a13d 100644 --- a/modules/libreg/src/reg.c +++ b/modules/libreg/src/reg.c @@ -151,11 +151,16 @@ static int32 regStartCount = 0; char *globalRegName = NULL; static char *user_name = NULL; + + + #ifdef XP_MACOSX void nr_MacAliasFromPath(const char * fileName, void ** alias, int32 * length); char * nr_PathFromMacAlias(const void * alias, uint32 aliasLength); +#include "MoreFilesX.h" + static void copyCStringToPascal(Str255 dest, const char *src) { size_t copyLen = strlen(src); @@ -181,9 +186,9 @@ static OSErr isFileInTrash(FSRef *fsRef, PRBool *inTrash) err = FSFindFolder(catalogInfo.volume, kTrashFolderType, false, &trashFSRef); if (err == noErr) { + /* FSRefGetParentRef returns noErr and a zeroed FSRef when it reaches the top */ for (currFSRef = *fsRef; - (FSGetCatalogInfo(&currFSRef, kFSCatInfoNodeID, NULL, NULL, NULL, &parentFSRef) == noErr && - FSGetCatalogInfo(&parentFSRef, kFSCatInfoNone, NULL, NULL, NULL, NULL) == noErr); + (FSGetParentRef(&currFSRef, &parentFSRef) == noErr && FSRefValid(&parentFSRef)); currFSRef = parentFSRef) { if (FSCompareFSRefs(&parentFSRef, &trashFSRef) == noErr) diff --git a/modules/libreg/standalone/Makefile.in b/modules/libreg/standalone/Makefile.in index d58010eb4e19..24eaffbb2a52 100644 --- a/modules/libreg/standalone/Makefile.in +++ b/modules/libreg/standalone/Makefile.in @@ -47,6 +47,11 @@ include $(srcdir)/../src/objs.mk MODULE = libreg LIBRARY_NAME = mozregsa_s +# MacOSX requires the MoreFiles module +ifeq ($(OS_ARCH),Darwin) +REQUIRES = macmorefiles +endif + ifeq ($(OS_ARCH),WINNT) USE_STATIC_LIBS = 1 endif