diff --git a/ChangeLog b/ChangeLog index f7b02b617..ad886965f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,13 @@ * Source/Additions/GSMime.m: Mark ([setDefaultEncoding:]) as deprecated rather than just removing it ... in case someone has started using it. - * Source/NSPathUtilities.m: Tidied a little. + * Source/NSPathUtilities.m: Tidied a little ... moved a function. + * Headers/Additions/GNUstepBase/GSFunctions.h: New header for functions + * Headers/Foundation/NSPathUtilities.h: Moved function + * Source/DocMakefile: Include GSFunctions.h + * Source/GNUmakefile: ditto + * Source/Additions/GNUmakefile: Build GSFunctions.m + * Source/Additions/GSFunctions.m: New file for extra functions. 2005-03-14 Adam Fedor diff --git a/Headers/Additions/GNUstepBase/GSFunctions.h b/Headers/Additions/GNUstepBase/GSFunctions.h new file mode 100644 index 000000000..5e2167b2e --- /dev/null +++ b/Headers/Additions/GNUstepBase/GSFunctions.h @@ -0,0 +1,43 @@ +/** Additional functions for GNUStep + Copyright (C) 2005 Free Software Foundation, Inc. + + Written by: Richard Frith-Macdonald + Created: 2005 + + This file is part of the GNUstep Base Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + + AutogsdocSource: Additions/GSFunctions.m + */ + +#ifndef __GSFunctions_h_GNUSTEP_BASE_INCLUDE +#define __GSFunctions_h_GNUSTEP_BASE_INCLUDE + +#include "GNUstepBase/preface.h" +#include "GNUstepBase/GSObjCRuntime.h" +#include "GNUstepBase/GNUstep.h" + +@class NSArray; +@class NSString; + +/** + * Try to locate file/directory (aName).(anExtension) in paths. + * Will return the first found or nil if nothing is found. + */ +GS_EXPORT NSString *GSFindNamedFile(NSArray *paths, NSString *aName, + NSString *anExtension); + +#endif /* __NSPathUtilities_h_GNUSTEP_BASE_INCLUDE */ diff --git a/Headers/Foundation/NSPathUtilities.h b/Headers/Foundation/NSPathUtilities.h index 7b66d8c1f..dce77766f 100644 --- a/Headers/Foundation/NSPathUtilities.h +++ b/Headers/Foundation/NSPathUtilities.h @@ -40,12 +40,6 @@ */ GS_EXPORT void GSSetUserName(NSString *aName); -/** - * Try to locate file/directory (aName).(anExtension) in paths. - * Will return the first found or nil if nothing is found. - */ -GS_EXPORT NSString *GSFindNamedFile(NSArray *paths, NSString *aName, NSString *anExtension); - GS_EXPORT NSString *GSDefaultsRootForUser(NSString *userName); GS_EXPORT NSString *GSSystemRootDirectory(void) GS_ATTRIB_DEPRECATED; diff --git a/Source/Additions/GNUmakefile b/Source/Additions/GNUmakefile index e50adffc3..2005515ea 100644 --- a/Source/Additions/GNUmakefile +++ b/Source/Additions/GNUmakefile @@ -38,6 +38,7 @@ Additions_OBJC_FILES =\ GSLock.m \ GSMime.m \ GSXML.m \ + GSFunctions.m \ behavior.m ifneq ($(OBJC_RUNTIME_LIB), gnu) diff --git a/Source/Additions/GSFunctions.m b/Source/Additions/GSFunctions.m new file mode 100644 index 000000000..059e3e989 --- /dev/null +++ b/Source/Additions/GSFunctions.m @@ -0,0 +1,65 @@ +/* Extension functions for GNUstep + Copyright (C) 2005 Free Software Foundation, Inc. + + Written by: Richard Frith-Macdonald + Written by: Sheldon Gill + Date: 2005 + + This file is part of the GNUstep Base Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + + NSPathUtilities function reference + $Date$ $Revision$ + */ + +#include "config.h" +#include "GNUstepBase/preface.h" +#include "GNUstepBase/GSFunctions.h" +#include "Foundation/Foundation.h" + +NSString * +GSFindNamedFile(NSArray *paths, NSString *aName, NSString *anExtension) +{ + NSFileManager *file_mgr = [NSFileManager defaultManager]; + NSString *file_name, *file_path, *path; + NSEnumerator *enumerator; + + NSCParameterAssert(aName != nil); + NSCParameterAssert(paths != nil); + + /* make up the name with extension if given */ + if (anExtension != nil) + { + file_name = [NSString stringWithFormat: @"%@.%@", aName, anExtension]; + } + else + { + file_name = aName; + } + + enumerator = [paths objectEnumerator]; + while ((path = [enumerator nextObject])) + { + file_path = [path stringByAppendingPathComponent: file_name]; + + if ([file_mgr fileExistsAtPath: file_path] == YES) + { + return file_path; // Found it! + } + } + return nil; +} + diff --git a/Source/DocMakefile b/Source/DocMakefile index 4c72e9cf6..b198b4b1f 100644 --- a/Source/DocMakefile +++ b/Source/DocMakefile @@ -113,6 +113,7 @@ GSMime.h \ GSObjCRuntime.h \ GSUnion.h \ GSXML.h \ +GSFunctions.h \ behavior.h \ Unicode.h \ GCObject.h \ diff --git a/Source/GNUmakefile b/Source/GNUmakefile index 897c63f5b..7a28a10a0 100644 --- a/Source/GNUmakefile +++ b/Source/GNUmakefile @@ -126,6 +126,7 @@ GSIArray.h \ GSIMap.h \ GCObject.h \ GSLock.h \ +GSFunctions.h \ GSMime.h \ GSXML.h \ GSLocale.h \ diff --git a/Source/NSPathUtilities.m b/Source/NSPathUtilities.m index 02229b28d..24515372d 100644 --- a/Source/NSPathUtilities.m +++ b/Source/NSPathUtilities.m @@ -650,44 +650,6 @@ GSReadStepConfFile(NSString *fileName) return dict; } -/* - GSFindNamedFile should be in Additions somewhere... - */ - -/* See NSPathUtilities.h for description. */ -NSString * -GSFindNamedFile(NSArray *paths, NSString *aName, NSString *anExtension) -{ - NSFileManager *file_mgr = [NSFileManager defaultManager]; - NSString *file_name, *file_path, *path; - NSEnumerator *enumerator; - - NSCParameterAssert(aName != nil); - NSCParameterAssert(paths != nil); - - /* make up the name with extension if given */ - if (anExtension != nil) - { - file_name = [NSString stringWithFormat: @"%@.%@", aName, anExtension]; - } - else - { - file_name = aName; - } - - enumerator = [paths objectEnumerator]; - while ((path = [enumerator nextObject])) - { - file_path = [path stringByAppendingPathComponent: file_name]; - - if ([file_mgr fileExistsAtPath: file_path] == YES) - { - return file_path; // Found it! - } - } - return nil; -} - /* See NSPathUtilities.h for description */ void GSSetUserName(NSString *aName)