From 9b773df557801757741775176c5f3befa002f527 Mon Sep 17 00:00:00 2001 From: Li Linfeng Date: Sun, 6 Oct 2019 12:23:55 +0800 Subject: [PATCH] use unix directory in place of mac directory --- macosx/MacDirectory.mm | 125 ---------------------- macosx/celestia.xcodeproj/project.pbxproj | 8 +- 2 files changed, 4 insertions(+), 129 deletions(-) delete mode 100644 macosx/MacDirectory.mm diff --git a/macosx/MacDirectory.mm b/macosx/MacDirectory.mm deleted file mode 100644 index c0f62d714..000000000 --- a/macosx/MacDirectory.mm +++ /dev/null @@ -1,125 +0,0 @@ -// -// MacDirectory.mm -// celestia -// -// Created by Da Woon Jung on Sun Apr 24 2004. -// Copyright (c) 2005 Chris Laurel. All rights reserved. -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -#include -#import "directory.h" -#import "NSString_ObjCPlusPlus.h" - - -class MacDirectory : public Directory -{ -public: - MacDirectory(NSString *dirName); - virtual ~MacDirectory(); - - bool nextFile(std::string &); - bool enumFiles(EnumFilesHandler &handler, bool deep); - - enum { - DirGood = 0, - DirBad = 1 - }; - -private: - char *_dirstring; - int _status; - DIR *_dir; -}; - - -MacDirectory::MacDirectory(NSString *dirName) : -_status(DirGood), _dir(NULL) -{ - NSString *fullPath = [dirName stringByStandardizingPath]; - const char *fullPathStr = [fullPath UTF8String]; - - unsigned dirNameLen = CFStringGetMaximumSizeForEncoding([fullPath length], kCFStringEncodingUTF8); - - if (dirNameLen > 0) - { - _dirstring = (char *)calloc(dirNameLen+sizeof(char), 1); - strncpy(_dirstring, fullPathStr, dirNameLen/sizeof(char)); - } - else - _dirstring = NULL; -} - - -MacDirectory::~MacDirectory() -{ - if (_dir != NULL) - { - closedir(_dir); - _dir = NULL; - } - - if (_dirstring) - free(_dirstring); -} - - -bool MacDirectory::nextFile(std::string &filename) -{ - if (_status != DirGood) - return false; - - if (_dir == NULL) - { - _dir = opendir(_dirstring); - if (_dir == NULL) - { - _status = DirBad; - return false; - } - } - - struct dirent *ent = readdir(_dir); - if (ent == NULL) - { - _status = DirBad; - return false; - } - else - { - filename = ent->d_name; - return true; - } -} - -bool MacDirectory::enumFiles(EnumFilesHandler &handler, bool deep) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - bool result = Directory::enumFiles(handler, deep); - [pool release]; - return result; -} - - -std::string WordExp(const std::string &filename) -{ - NSString *expandedPath = [[NSString stringWithStdString: filename] stringByStandardizingPath]; - return [expandedPath stdString]; -} - -Directory* OpenDirectory(const std::string &dirname) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - Directory *result = new MacDirectory([NSString stringWithStdString: dirname]); - [pool release]; - return result; -} - -bool IsDirectory(const std::string &filename) -{ - BOOL isDir = NO; - return [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithStdString: filename] isDirectory:&isDir] && isDir; -} diff --git a/macosx/celestia.xcodeproj/project.pbxproj b/macosx/celestia.xcodeproj/project.pbxproj index c44dc7e18..a7f393014 100644 --- a/macosx/celestia.xcodeproj/project.pbxproj +++ b/macosx/celestia.xcodeproj/project.pbxproj @@ -48,6 +48,7 @@ 970AEE8E2329417000E9ED22 /* liblua5.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 970AEE8D2329417000E9ED22 /* liblua5.3.a */; }; 970AEE90232943D300E9ED22 /* libintl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 970AEE8F232943D300E9ED22 /* libintl.a */; }; 970AEE92232943DC00E9ED22 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 970AEE91232943DC00E9ED22 /* libiconv.tbd */; }; + 973256992349A397002D1DAE /* unixdirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 973256982349A397002D1DAE /* unixdirectory.cpp */; }; 9772E5A02329DDC400531773 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9772E59F2329DDC400531773 /* Images.xcassets */; }; 978EBA922324D0740025C9D5 /* ConfigSelectionWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 978EBA912324D0740025C9D5 /* ConfigSelectionWindow.xib */; }; 9798FB522324D2BE007F92B8 /* ConfigSelectionWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9798FB502324D2BE007F92B8 /* ConfigSelectionWindowController.m */; }; @@ -226,7 +227,6 @@ E567F093099112EC00D05031 /* venus_locs.ssc in Copy Data */ = {isa = PBXBuildFile; fileRef = E567EF8E09910E8F00D05031 /* venus_locs.ssc */; }; E567F094099112EC00D05031 /* visualbins.stc in Copy Data */ = {isa = PBXBuildFile; fileRef = E567EF8F09910E8F00D05031 /* visualbins.stc */; }; E567F095099112EC00D05031 /* world-capitals.ssc in Copy Data */ = {isa = PBXBuildFile; fileRef = E567EF9009910E8F00D05031 /* world-capitals.ssc */; }; - E56A3DB80848C19800A21D7E /* MacDirectory.mm in Sources */ = {isa = PBXBuildFile; fileRef = E56A3DB70848C19800A21D7E /* MacDirectory.mm */; }; E56A5AED0848F92200A21D7E /* FullScreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E56A5AEB0848F92200A21D7E /* FullScreenWindow.m */; }; E56B96570AAB22AA0097DDFE /* renderglsl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E56B96530AAB22AA0097DDFE /* renderglsl.cpp */; }; E572837C0793A02800C1F239 /* celestia.cfg in Copy Misc */ = {isa = PBXBuildFile; fileRef = F5626A0002A49B8B014901DC /* celestia.cfg */; }; @@ -539,6 +539,7 @@ 970AEE8F232943D300E9ED22 /* libintl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libintl.a; path = lib/libintl.a; sourceTree = ""; }; 970AEE91232943DC00E9ED22 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; 9726813A231D0D930014C8D7 /* Celestia.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Celestia.entitlements; sourceTree = ""; }; + 973256982349A397002D1DAE /* unixdirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = unixdirectory.cpp; path = ../src/celutil/unixdirectory.cpp; sourceTree = SOURCE_ROOT; }; 9772E59F2329DDC400531773 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 978EBA912324D0740025C9D5 /* ConfigSelectionWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ConfigSelectionWindow.xib; sourceTree = ""; }; 9798FB4F2324D2BE007F92B8 /* ConfigSelectionWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfigSelectionWindowController.h; sourceTree = ""; }; @@ -670,7 +671,6 @@ E567EFF409910F0D00D05031 /* shroxclassic.ssc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = shroxclassic.ssc; sourceTree = ""; }; E567EFF509910F0D00D05031 /* shroxmars.ssc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = shroxmars.ssc; sourceTree = ""; }; E567EFF609910F0D00D05031 /* skylab.ssc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = skylab.ssc; sourceTree = ""; }; - E56A3DB70848C19800A21D7E /* MacDirectory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MacDirectory.mm; sourceTree = ""; }; E56A5AEA0848F92200A21D7E /* FullScreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FullScreenWindow.h; sourceTree = ""; }; E56A5AEB0848F92200A21D7E /* FullScreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FullScreenWindow.m; sourceTree = ""; }; E56B96520AAB22AA0097DDFE /* lightenv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lightenv.h; path = ../src/celengine/lightenv.h; sourceTree = SOURCE_ROOT; }; @@ -1084,7 +1084,6 @@ E50CCA680C06632A00E9C76A /* EclipseFinderController.mm */, F57FA4F002B9AB8601000006 /* FavoriteInfoWindowController.m */, F578B7B402B3E4DB0100020A /* FavoritesDrawerController.m */, - E56A3DB70848C19800A21D7E /* MacDirectory.mm */, F55C817602AF55890100020A /* GotoWindowController.m */, F565A8B202EB418701000006 /* RenderPanelController.m */, E53E61AB0C0CA444003CD767 /* ScriptsController.mm */, @@ -1437,6 +1436,7 @@ F51C6D580295987B014901DC /* bytes.h */, F51C6D5A0295987B014901DC /* color.h */, F51C6D5C0295987B014901DC /* debug.h */, + 973256982349A397002D1DAE /* unixdirectory.cpp */, F51C6D5D0295987B014901DC /* directory.h */, F51C6D5F0295987B014901DC /* filetype.h */, F51C6D600295987B014901DC /* reshandle.h */, @@ -2085,6 +2085,7 @@ E564310C07769C9000E2C4A3 /* MyTree.m in Sources */, E564310D07769C9000E2C4A3 /* boundaries.cpp in Sources */, E564310F07769C9000E2C4A3 /* RenderPanelController.m in Sources */, + 973256992349A397002D1DAE /* unixdirectory.cpp in Sources */, E564311007769C9000E2C4A3 /* url.cpp in Sources */, E564311107769C9000E2C4A3 /* render.cpp in Sources */, E564311207769C9000E2C4A3 /* CelestiaAppCore.mm in Sources */, @@ -2124,7 +2125,6 @@ E54343170783C42500053094 /* BrowserWindowController.mm in Sources */, E589B6DD078AC511005B8DD9 /* glshader.cpp in Sources */, E589B6DF078AC511005B8DD9 /* shadermanager.cpp in Sources */, - E56A3DB80848C19800A21D7E /* MacDirectory.mm in Sources */, E56A5AED0848F92200A21D7E /* FullScreenWindow.m in Sources */, 0C76BFD108537EDB00D31A90 /* qtcapture.cpp in Sources */, E532F4F10933331800D7D5B3 /* dsodb.cpp in Sources */,