You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <and...@us...> - 2006-07-03 20:06:56
|
Revision: 1440 Author: andreradke Date: 2006-07-03 13:06:44 -0700 (Mon, 03 Jul 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1440&view=rev Log Message: ----------- Revert previous checkin which was erroneously commited. Removed Paths: ------------- Frontier/trunk/SQLite/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <dav...@us...> - 2006-07-03 00:18:00
|
Revision: 1439 Author: davidgewirtz Date: 2006-07-02 17:17:44 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1439&view=rev Log Message: ----------- made a copy Added Paths: ----------- Frontier/trunk/SQLite/ Copied: Frontier/trunk/SQLite (from rev 1438, Frontier/branches/SQLite) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <dav...@us...> - 2006-07-03 00:16:28
|
Revision: 1438 Author: davidgewirtz Date: 2006-07-02 17:16:23 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1438&view=rev Log Message: ----------- Updated coding changes, still developing Modified Paths: -------------- Frontier/branches/SQLite/Common/source/langsqlite.c Modified: Frontier/branches/SQLite/Common/source/langsqlite.c =================================================================== --- Frontier/branches/SQLite/Common/source/langsqlite.c 2006-06-28 20:27:13 UTC (rev 1437) +++ Frontier/branches/SQLite/Common/source/langsqlite.c 2006-07-03 00:16:23 UTC (rev 1438) @@ -229,8 +229,7 @@ flnextparamislast = true; /* makes sure Frontier throws an error if more than one param is passed */ - /* Enter the verb, convert the param to null-terminated string */ - if (!getreadonlytextvalue (hparam1, 1, &dbfile)) + if (!gettextvalue (hparam1, 1, &dbfile)) /* get the param */ return (false); pushcharhandle (0x00, dbfile); /* convert *dbfile to a string */ @@ -272,7 +271,7 @@ /* Process the SQLite sequence */ returnCode = sqlite3_close(dbid); - return setintvalue ((short) returnCode, vreturned); + return setlongvalue (returnCode, vreturned); } /* sqlitecloseverb */ @@ -301,9 +300,8 @@ return (false); flnextparamislast = true; /* makes sure Frontier throws an error if more than one param is passed */ - - /* Enter the verb, convert the param to null-terminated string */ - if (!getreadonlytextvalue (hparam1, 2, &query)) + + if (!getreadonlytextvalue (hparam1, 2, &query)) /* get the query param */ return (false); /* Process the SQLite sequence */ @@ -313,7 +311,7 @@ return (false); } - return (setheapvalue ((Handle) queryid, longvaluetype, vreturned)); /* return the db address to the scripter */ + return (setlongvalue ((long) queryid, vreturned)); /* return the db address to the scripter */ } /* sqlitecompilequeryverb */ @@ -340,7 +338,7 @@ /* Process the SQLite sequence */ returnCode = sqlite3_finalize(queryid); - return setintvalue ((short) returnCode, vreturned); + return setlongvalue (returnCode, vreturned); } /* sqliteclearqueryverb */ @@ -367,7 +365,7 @@ /* Process the SQLite sequence */ returnCode = sqlite3_step(queryid); - return setintvalue ((short) returnCode, vreturned); + return setlongvalue (returnCode, vreturned); } /* sqliteexecutequeryverb */ @@ -421,7 +419,8 @@ /* SQLite spec says sqlite3_column_type only returns the above 5 types. But, just in case it lied, we'll return an error type to help Frontier avoid getting a case of return value indigestion. */ - return setostypevalue (langgettypeid (uninitializedvaluetype), vreturned); + langerrormessage ("\x29""SQLite returned an undefined column type."); + return (false); } } /* switch */ @@ -486,7 +485,7 @@ /* Process the SQLite sequence */ returnCode = sqlite3_column_count(queryid); - return setintvalue ((short) returnCode, vreturned); + return setlongvalue (returnCode, vreturned); } /* sqlitegetcolumncountverb */ @@ -651,7 +650,8 @@ /* SQLite spec says sqlite3_column_type only returns the above 5 types. But, just in case it lied, we'll return an error type to help Frontier avoid getting a case of return value indigestion. */ - return (setlongvalue ((long) 0, vreturned)); + langerrormessage ("\x29""SQLite returned an undefined column type."); + return (false); } } /* switch */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-28 20:27:16
|
Revision: 1437 Author: creecode Date: 2006-06-28 13:27:13 -0700 (Wed, 28 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1437&view=rev Log Message: ----------- in sysfunctionvalue function, case getapppathfunc, use getfilespecparent Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/shellsysverbs.c Modified: Frontier/branches/FSRef_Migration/Common/source/shellsysverbs.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/shellsysverbs.c 2006-06-28 20:20:37 UTC (rev 1436) +++ Frontier/branches/FSRef_Migration/Common/source/shellsysverbs.c 2006-06-28 20:27:13 UTC (rev 1437) @@ -387,7 +387,7 @@ static boolean sysfunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) { // - // 2006-06-18 creedon: for Mac, FSRef-ized + // 2006-06-28 creedon: for Mac, FSRef-ized // // 5.0b16 dmb: undo that change. it affect performance adversely if many threads do it. // @@ -541,15 +541,15 @@ flnextparamislast = true; - if (!getstringvalue (hparam1, 1, bs)) - return (false); + if ( ! getstringvalue ( hparam1, 1, bs ) ) + return ( false ); - if (!getapplicationfilespec (bs, &fs)) // 2006-02-17 aradke: initializes fs even if it fails + if ( ! getapplicationfilespec ( bs, &fs ) ) // 2006-02-17 aradke: initializes fs even if it fails setemptystring (bs); - ( void ) extendfilespec ( &fs, &fs ); + ( void ) getfilespecparent ( &fs ); - return (setfilespecvalue (&fs, v)); + return ( setfilespecvalue ( &fs, v ) ); } case memavailfunc: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-28 20:20:40
|
Revision: 1436 Author: creecode Date: 2006-06-28 13:20:37 -0700 (Wed, 28 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1436&view=rev Log Message: ----------- in getprocesspathvisit function use GetProcessBundleLocation to get the FSRef Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/launch.c Modified: Frontier/branches/FSRef_Migration/Common/source/launch.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/launch.c 2006-06-27 23:05:18 UTC (rev 1435) +++ Frontier/branches/FSRef_Migration/Common/source/launch.c 2006-06-28 20:20:37 UTC (rev 1436) @@ -1625,23 +1625,25 @@ #ifdef MACVERSION - static boolean getprocesspathvisit (typrocessvisitinfoptr visitinfo, ProcessInfoRec *processinfo) { + static boolean getprocesspathvisit ( typrocessvisitinfoptr visitinfo, ProcessInfoRec *processinfo ) { // - // 2006-06-24 creedon: FSRef-ized + // 2006-06-28 creedon: FSRef-ized // // 1992-07-14 dmb: created // - if (matchprocess (visitinfo->bsprocess, processinfo)) { // found the process + if ( matchprocess ( visitinfo -> bsprocess, processinfo ) ) { // found the process - FSMakeFSRef ( processinfo -> processAppSpec -> vRefNum, processinfo -> processAppSpec -> parID, - processinfo -> processAppSpec -> name, &visitinfo -> fsprocess -> fsref ); + OSStatus status; + + status = GetProcessBundleLocation ( &( *processinfo ).processNumber, &( *visitinfo ).fsprocess -> fsref ); + + return ( false ); // stop visiting - return (false); // stop visiting } - return (true); // keep visiting + return ( true ); // keep visiting } // getprocesspathvisit This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-27 23:05:24
|
Revision: 1435 Author: creecode Date: 2006-06-27 16:05:18 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1435&view=rev Log Message: ----------- remove personal settings Removed Paths: ------------- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser Deleted: Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 =================================================================== --- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 2006-06-27 23:04:33 UTC (rev 1434) +++ Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 2006-06-27 23:05:18 UTC (rev 1435) @@ -1,1357 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>ActivePerspectiveName</key> - <string>Project</string> - <key>AllowedModules</key> - <array> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Name</key> - <string>Groups and Files Outline View</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Name</key> - <string>Editor</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCTaskListModule</string> - <key>Name</key> - <string>Task List</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDetailModule</string> - <key>Name</key> - <string>File and Smart Group Detail Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Name</key> - <string>Detailed Build Results Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Name</key> - <string>Project Batch Find Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Name</key> - <string>Run Log</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Name</key> - <string>Bookmarks Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Name</key> - <string>Class Browser</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Name</key> - <string>Source Code Control Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXDebugBreakpointsModule</string> - <key>Name</key> - <string>Debug Breakpoints Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDockableInspector</string> - <key>Name</key> - <string>Inspector</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXOpenQuicklyModule</string> - <key>Name</key> - <string>Open Quickly Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Name</key> - <string>Debugger</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Name</key> - <string>Debug Console</string> - </dict> - </array> - <key>Description</key> - <string>DefaultDescriptionKey</string> - <key>DockingSystemVisible</key> - <false/> - <key>Extension</key> - <string>mode1</string> - <key>FavBarConfig</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5DA7A5190A27A8280078C0A3</string> - <key>XCBarModuleItemNames</key> - <dict/> - <key>XCBarModuleItems</key> - <array/> - </dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>com.apple.perspectives.project.mode1</string> - <key>MajorVersion</key> - <integer>31</integer> - <key>MinorVersion</key> - <integer>1</integer> - <key>Name</key> - <string>Default</string> - <key>Notifications</key> - <array/> - <key>OpenEditors</key> - <array/> - <key>PerspectiveWidths</key> - <array> - <integer>-1</integer> - <integer>-1</integer> - </array> - <key>Perspectives</key> - <array> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>active-target-popup</string> - <string>action</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>buildOrClean</string> - <string>build-and-runOrDebug</string> - <string>com.apple.ide.PBXToolbarStopButton</string> - <string>get-info</string> - <string>toggle-editor</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>com.apple.pbx.toolbar.searchfield</string> - </array> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProjectWithEditor</string> - <key>Identifier</key> - <string>perspective.project</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>22</real> - <real>164</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>SCMStatusColumn</string> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>6515255C072BFC6500411831</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {186, 888}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <true/> - <key>XCSharingToken</key> - <string>com.apple.Xcode.GFSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {203, 906}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>SCMStatusColumn</string> - <real>22</real> - <string>MainColumn</string> - <real>164</real> - </array> - <key>RubberWindowFrame</key> - <string>0 55 1276 947 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>203pt</string> - </dict> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20306471E060097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20406471E060097A5F4</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {1068, 775}}</string> - <key>RubberWindowFrame</key> - <string>0 55 1276 947 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>775pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20506471E060097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 780}, {1068, 126}}</string> - <key>RubberWindowFrame</key> - <string>0 55 1276 947 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>126pt</string> - </dict> - </array> - <key>Proportion</key> - <string>1068pt</string> - </dict> - </array> - <key>Name</key> - <string>Project</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - <string>XCModuleDock</string> - <string>PBXNavigatorGroup</string> - <string>XCDetailModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>5DA4EDC40A51B89C00C23DEF</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>5DA4EDC50A51B89C00C23DEF</string> - <string>1CE0B20306471E060097A5F4</string> - <string>1CE0B20506471E060097A5F4</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.default</string> - </dict> - <dict> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProject</string> - <key>Identifier</key> - <string>perspective.morph</string> - <key>IsVertical</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>11E0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>186</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>29B97314FDCFA39411CA2CEA</string> - <string>1C37FABC05509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {186, 337}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <integer>1</integer> - <key>XCSharingToken</key> - <string>com.apple.Xcode.GFSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {203, 355}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>186</real> - </array> - <key>RubberWindowFrame</key> - <string>373 269 690 397 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Morph</string> - <key>PreferredWidth</key> - <integer>300</integer> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>11E0B1FE06471DED0097A5F4</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.default.short</string> - </dict> - </array> - <key>PerspectivesBarVisible</key> - <false/> - <key>ShelfIsVisible</key> - <false/> - <key>SourceDescription</key> - <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> - <key>StatusbarIsVisible</key> - <true/> - <key>TimeStamp</key> - <real>0.0</real> - <key>ToolbarDisplayMode</key> - <integer>1</integer> - <key>ToolbarIsVisible</key> - <true/> - <key>ToolbarSizeMode</key> - <integer>1</integer> - <key>Type</key> - <string>Perspectives</string> - <key>UpdateMessage</key> - <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> - <key>WindowJustification</key> - <integer>5</integer> - <key>WindowOrderList</key> - <array> - <string>5DA4EDCC0A51B89C00C23DEF</string> - <string>1CD10A99069EF8BA00B06720</string> - <string>5DA7A55E0A27B1EE0078C0A3</string> - <string>/Users/creedon/Development/Frontier FSRef Migration/build_XCode/Frontier.xcodeproj</string> - </array> - <key>WindowString</key> - <string>0 55 1276 947 0 0 1280 1002 </string> - <key>WindowTools</key> - <array> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.build</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528F0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {1276, 664}}</string> - <key>RubberWindowFrame</key> - <string>0 56 1276 946 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>664pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>PBXProjectModuleLabel</key> - <string>Build</string> - <key>XCBuildResultsTrigger_Collapse</key> - <integer>1021</integer> - <key>XCBuildResultsTrigger_Open</key> - <integer>1011</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 669}, {1276, 236}}</string> - <key>RubberWindowFrame</key> - <string>0 56 1276 946 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Proportion</key> - <string>236pt</string> - </dict> - </array> - <key>Proportion</key> - <string>905pt</string> - </dict> - </array> - <key>Name</key> - <string>Build Results</string> - <key>ServiceClasses</key> - <array> - <string>PBXBuildResultsModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>5DA7A4C10A278CF40078C0A3</string> - <string>5DA4ECC70A50870B00C23DEF</string> - <string>1CD0528F0623707200166675</string> - <string>XCMainBuildResultsModuleGUID</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.build</string> - <key>WindowString</key> - <string>0 56 1276 946 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>5DA7A4C10A278CF40078C0A3</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.debugger</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>Debugger</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {102, 181}}</string> - <string>{{102, 0}, {1174, 181}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {1276, 181}}</string> - <string>{{0, 181}, {1276, 724}}</string> - </array> - </dict> - </dict> - <key>LauncherConfigVersion</key> - <string>8</string> - <key>PBXProjectModuleGUID</key> - <string>1C162984064C10D400B95A72</string> - <key>PBXProjectModuleLabel</key> - <string>Debug - GLUTExamples (Underwater)</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>DebugConsoleDrawerSize</key> - <string>{100, 120}</string> - <key>DebugConsoleVisible</key> - <string>None</string> - <key>DebugConsoleWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>DebugSTDIOWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>Frame</key> - <string>{{0, 0}, {1276, 905}}</string> - <key>RubberWindowFrame</key> - <string>0 56 1276 946 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Proportion</key> - <string>905pt</string> - </dict> - </array> - <key>Proportion</key> - <string>905pt</string> - </dict> - </array> - <key>Name</key> - <string>Debugger</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>1CD10A99069EF8BA00B06720</string> - <string>5DA4EDC60A51B89C00C23DEF</string> - <string>1C162984064C10D400B95A72</string> - <string>5DA4EDC70A51B89C00C23DEF</string> - <string>5DA4EDC80A51B89C00C23DEF</string> - <string>5DA4EDC90A51B89C00C23DEF</string> - <string>5DA4EDCA0A51B89C00C23DEF</string> - <string>5DA4EDCB0A51B89C00C23DEF</string> - <string>5DA4EDCC0A51B89C00C23DEF</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debug</string> - <key>WindowString</key> - <string>0 56 1276 946 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>1CD10A99069EF8BA00B06720</string> - <key>WindowToolIsVisible</key> - <true/> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.find</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CDD528C0622207200134675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {1276, 706}}</string> - <key>RubberWindowFrame</key> - <string>-1 0 1276 1002 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>1276pt</string> - </dict> - </array> - <key>Proportion</key> - <string>706pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528E0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 711}, {1276, 250}}</string> - <key>RubberWindowFrame</key> - <string>-1 0 1276 1002 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Proportion</key> - <string>250pt</string> - </dict> - </array> - <key>Proportion</key> - <string>961pt</string> - </dict> - </array> - <key>Name</key> - <string>Project Find</string> - <key>ServiceClasses</key> - <array> - <string>PBXProjectFindModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>1C530D57069F1CE1000CFCEE</string> - <string>5DA4ECB30A50860400C23DEF</string> - <string>5DA4ECB40A50860400C23DEF</string> - <string>1CDD528C0622207200134675</string> - <string>1CD0528E0623707200166675</string> - </array> - <key>WindowString</key> - <string>-1 0 1276 1002 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>1C530D57069F1CE1000CFCEE</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>Identifier</key> - <string>MENUSEPARATOR</string> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.debuggerConsole</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAAC065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string>Debugger Console</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {440, 358}}</string> - <key>RubberWindowFrame</key> - <string>21 579 440 400 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Proportion</key> - <string>358pt</string> - </dict> - </array> - <key>Proportion</key> - <string>359pt</string> - </dict> - </array> - <key>Name</key> - <string>Debugger Console</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugCLIModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>5D2A54D20A33F98200BC885B</string> - <string>5DA4EBC00A50806100C23DEF</string> - <string>1C78EAAC065D492600B07095</string> - </array> - <key>WindowString</key> - <string>21 579 440 400 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>5D2A54D20A33F98200BC885B</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.run</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>LauncherConfigVersion</key> - <string>3</string> - <key>PBXProjectModuleGUID</key> - <string>1CD0528B0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Run</string> - <key>Runner</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {366, 168}}</string> - <string>{{0, 173}, {366, 270}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {406, 443}}</string> - <string>{{411, 0}, {517, 443}}</string> - </array> - </dict> - </dict> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {459, 159}}</string> - <key>RubberWindowFrame</key> - <string>21 779 459 200 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Proportion</key> - <string>159pt</string> - </dict> - </array> - <key>Proportion</key> - <string>159pt</string> - </dict> - </array> - <key>Name</key> - <string>Run Log</string> - <key>ServiceClasses</key> - <array> - <string>PBXRunSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>1C0AD2B3069F1EA900FABCE6</string> - <string>5DB0386E0A4919A500E6DF5B</string> - <string>1CD0528B0623707200166675</string> - <string>5DB0386F0A4919A500E6DF5B</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.run</string> - <key>WindowString</key> - <string>21 779 459 200 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>1C0AD2B3069F1EA900FABCE6</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.scm</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB2065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string></string> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {452, 0}}</string> - <key>RubberWindowFrame</key> - <string>791 668 452 308 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052920623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>SCM Results</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 5}, {452, 262}}</string> - <key>RubberWindowFrame</key> - <string>791 668 452 308 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Proportion</key> - <string>262pt</string> - </dict> - </array> - <key>Proportion</key> - <string>267pt</string> - </dict> - </array> - <key>Name</key> - <string>SCM</string> - <key>ServiceClasses</key> - <array> - <string>PBXCVSModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>5DA7A55E0A27B1EE0078C0A3</string> - <string>5DA4EDCD0A51B89C00C23DEF</string> - <string>1C78EAB2065D492600B07095</string> - <string>1CD052920623707200166675</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.scm</string> - <key>WindowString</key> - <string>791 668 452 308 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>5DA7A55E0A27B1EE0078C0A3</string> - <key>WindowToolIsVisible</key> - <true/> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.breakpoints</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>no</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>168</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {168, 350}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <false/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {185, 368}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>168</real> - </array> - <key>RubberWindowFrame</key> - <string>293 551 744 409 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>185pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA1AED706398EBD00589147</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{190, 0}, {554, 368}}</string> - <key>RubberWindowFrame</key> - <string>293 551 744 409 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>554pt</string> - </dict> - </array> - <key>Proportion</key> - <string>368pt</string> - </dict> - </array> - <key>MajorVersion</key> - <integer>2</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>Breakpoints</string> - <key>ServiceClasses</key> - <array> - <string>PBXSmartGroupTreeModule</string> - <string>XCDetailModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>5DA4E9A60A4E57B500C23DEF</string> - <string>5DA4E9A70A4E57B500C23DEF</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CA1AED706398EBD00589147</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.breakpoints</string> - <key>WindowString</key> - <string>293 551 744 409 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>5DA4E9A60A4E57B500C23DEF</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debugAnimator</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debug Visualizer</string> - <key>ServiceClasses</key> - <array> - <string>PBXNavigatorGroup</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugAnimator</string> - <key>WindowString</key> - <string>100 100 700 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.bookmarks</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5D2A55480A341CB600BC885B</string> - <key>PBXProjectModuleLabel</key> - <string>Bookmarks</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {401, 180}}</string> - <key>RubberWindowFrame</key> - <string>21 779 401 200 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Proportion</key> - <string>180pt</string> - </dict> - </array> - <key>Proportion</key> - <string>180pt</string> - </dict> - </array> - <key>Name</key> - <string>Bookmarks</string> - <key>ServiceClasses</key> - <array> - <string>PBXBookmarksModule</string> - </array> - <key>StatusbarIsVisible</key> - <false/> - <key>TableOfContents</key> - <array> - <string>5D7055190A3B3D9900741B43</string> - <string>5D7055D50A3B423B00741B43</string> - <string>5D2A55480A341CB600BC885B</string> - </array> - <key>WindowString</key> - <string>21 779 401 200 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>5D7055190A3B3D9900741B43</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.classBrowser</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>OptionsSetName</key> - <string>Hierarchy, all classes</string> - <key>PBXProjectModuleGUID</key> - <string>1CA6456E063B45B4001379D8</string> - <key>PBXProjectModuleLabel</key> - <string>Class Browser - NSObject</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ClassesFrame</key> - <string>{{0, 0}, {374, 96}}</string> - <key>ClassesTreeTableConfiguration</key> - <array> - <string>PBXClassNameColumnIdentifier</string> - <real>208</real> - <string>PBXClassBookColumnIdentifier</string> - <real>22</real> - </array> - <key>Frame</key> - <string>{{0, 0}, {630, 331}}</string> - <key>MembersFrame</key> - <string>{{0, 105}, {374, 395}}</string> - <key>MembersTreeTableConfiguration</key> - <array> - <string>PBXMemberTypeIconColumnIdentifier</string> - <real>22</real> - <string>PBXMemberNameColumnIdentifier</string> - <real>216</real> - <string>PBXMemberTypeColumnIdentifier</string> - <real>97</real> - <string>PBXMemberBookColumnIdentifier</string> - <real>22</real> - </array> - <key>PBXModuleWindowStatusBarHidden2</key> - <integer>1</integer> - <key>RubberWindowFrame</key> - <string>385 179 630 352 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Proportion</key> - <string>332pt</string> - </dict> - </array> - <key>Proportion</key> - <string>332pt</string> - </dict> - </array> - <key>Name</key> - <string>Class Browser</string> - <key>ServiceClasses</key> - <array> - <string>PBXClassBrowserModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>TableOfContents</key> - <array> - <string>1C0AD2AF069F1E9B00FABCE6</string> - <string>1C0AD2B0069F1E9B00FABCE6</string> - <string>1CA6456E063B45B4001379D8</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.classbrowser</string> - <key>WindowString</key> - <string>385 179 630 352 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1C0AD2AF069F1E9B00FABCE6</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - </array> -</dict> -</plist> Deleted: Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser =================================================================== --- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser 2006-06-27 23:04:33 UTC (rev 1434) +++ Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser 2006-06-27 23:05:18 UTC (rev 1435) @@ -1,3095 +0,0 @@ -// !$*UTF8*$! -{ - 5D1D661B0A4CC069000719F0 /* fileops.c:3551 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152579072BFC6700411831 /* fileops.c */; - hitCount = 1; - lineNumber = 3551; - modificationTime = 173047893.614765; - state = 2; - }; - 5D1D667E0A4CCDE8000719F0 /* shellwindow.c:2016 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152680072BFC6800411831 /* shellwindow.c */; - functionName = "newchildwindow()"; - hitCount = 3; - lineNumber = 2016; - modificationTime = 173048043.074765; - state = 2; - }; - 5D1D66A90A4CDBE4000719F0 /* shellsysverbs.c:812 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; - functionName = "launchfunctionvalue()"; - hitCount = 1; - lineNumber = 812; - modificationTime = 173047893.614832; - state = 2; - }; - 5D1D66AB0A4CDBE6000719F0 /* shellsysverbs.c:825 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; - functionName = "launchfunctionvalue()"; - hitCount = 1; - lineNumber = 825; - modificationTime = 173048296.873024; - state = 1; - }; - 5D2A49B00A2E4A3B00BC885B /* FSCopyObject.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1917, 37373}}"; - sepNavSelRange = "{6383, 14}"; - sepNavVisRect = "{{0, 2371}, {1027, 743}}"; - sepNavWindowFrame = "{{15, -5}, {1004, 1002}}"; - }; - }; - 5D2A49B10A2E4A3B00BC885B /* FSCopyObject.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1027, 4902}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {1027, 744}}"; - }; - }; - 5D2A54AC0A33EF2600BC885B /* PBXBookmarkGroup */ = { - isa = PBXBookmarkGroup; - children = ( - 5D2A55450A341C9B00BC885B /* PBXTextBookmark */, - 5D7055C10A3B3F1A00741B43 /* PBXTextBookmark */, - 5D7055C20A3B3F3300741B43 /* PBXTextBookmark */, - 5D7055C30A3B3F4600741B43 /* PBXTextBookmark */, - ); - name = Root; - }; - 5D2A54E10A3405D700BC885B /* cancoon.c:756 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515260E072BFC6700411831 /* cancoon.c */; - functionName = "ccloadfile()"; - hitCount = 1; - lineNumber = 756; - modificationTime = 173047893.608679; - state = 2; - }; - 5D2A54E30A3405DE00BC885B /* cancoon.c:857 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515260E072BFC6700411831 /* cancoon.c */; - functionName = "ccloadspecialfile()"; - hitCount = 1; - lineNumber = 857; - modificationTime = 173047893.60872; - state = 2; - }; - 5D2A54E50A3405E400BC885B /* cancoon.c:923 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515260E072BFC6700411831 /* cancoon.c */; - functionName = "ccsavespecialfile()"; - hitCount = 1; - lineNumber = 923; - modificationTime = 173048296.87343; - state = 1; - }; - 5D2A54E70A3405EC00BC885B /* cancoon.c:1114 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515260E072BFC6700411831 /* cancoon.c */; - functionName = "ccsavefile()"; - hitCount = 1; - lineNumber = 1114; - modificationTime = 173047893.608803; - state = 2; - }; - 5D2A54E90A3405F600BC885B /* cancoon.c:1286 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515260E072BFC6700411831 /* cancoon.c */; - functionName = "ccclose()"; - hitCount = 1; - lineNumber = 1286; - modificationTime = 173047893.608823; - state = 2; - }; - 5D2A551E0A3415C300BC885B /* icon.c:207 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 651525F6072BFC6700411831 /* icon.c */; - functionName = "customiconload()"; - hitCount = 1; - lineNumber = 207; - modificationTime = 173048296.873254; - state = 1; - }; - 5D2A55450A341C9B00BC885B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6515257A072BFC6700411831 /* filepath.c */; - name = "filepath.c: setfsfile"; - rLen = 0; - rLoc = 9414; - rType = 0; - vrLen = 1277; - vrLoc = 9425; - }; - 5D2A59FB0A3640E300BC885B /* fileverbs.c:3496 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; - functionName = "filefunctionvalue()"; - hitCount = 1; - lineNumber = 3496; - modificationTime = 173047893.608952; - state = 2; - }; - 5D2A5B530A368DB500BC885B /* shellsysverbs.c:1232 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; - functionName = "threadcallscriptverb()"; - hitCount = 1; - lineNumber = 1232; - modificationTime = 173048296.87334; - state = 1; - }; - 5D2A5B550A368DCB00BC885B /* osacomponent.c:5749 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152667072BFC6800411831 /* osacomponent.c */; - functionName = "evaluateosascript()"; - hitCount = 1; - lineNumber = 5749; - modificationTime = 173048296.873204; - state = 1; - }; - 5D2A5B570A368DD300BC885B /* langwinipc.c:1047 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152642072BFC6800411831 /* langwinipc.c */; - functionName = "langipcrunscript()"; - hitCount = 1; - lineNumber = 1047; - modificationTime = 173048296.873169; - state = 1; - }; - 5D2A5B590A368DEA00BC885B /* langvalue.c:8640 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152640072BFC6800411831 /* langvalue.c */; - functionName = "langhandlercall()"; - hitCount = 1; - lineNumber = 8640; - modificationTime = 173048296.873237; - state = 1; - }; - 5D2A5B5D0A368DF800BC885B /* langvalue.c:8032 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152640072BFC6800411831 /* langvalue.c */; - functionName = "binaryfunctionvalue()"; - hitCount = 1; - lineNumber = 8032; - modificationTime = 173048296.873149; - state = 1; - }; - 5D2A5B5F0A368DFE00BC885B /* langregexp.c:1752 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152638072BFC6800411831 /* langregexp.c */; - functionName = "getcodetreefromscriptaddress()"; - hitCount = 1; - lineNumber = 1752; - modificationTime = 173048296.872955; - state = 1; - }; - 5D2A5B630A368E1700BC885B /* lang.c:1545 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515262A072BFC6700411831 /* lang.c */; - functionName = "langrunscript()"; - hitCount = 1; - lineNumber = 1545; - modificationTime = 173048296.873062; - state = 1; - }; - 5D2A5B650A368E1F00BC885B /* langipc.c:1255 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152624072BFC6700411831 /* langipc.c */; - functionName = "langipcfindtraphandler()"; - hitCount = 1; - lineNumber = 1255; - modificationTime = 173048296.873374; - state = 1; - }; - 5D704E2B0A38C07F00741B43 /* fileops.c:451 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152579072BFC6700411831 /* fileops.c */; - functionName = "filegetvolumeinfo()"; - hitCount = 1; - lineNumber = 451; - modificationTime = 173047893.609555; - state = 2; - }; - 5D704E820A38D80500741B43 /* fileverbs.c:3418 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; - functionName = "filefunctionvalue()"; - hitCount = 1; - lineNumber = 3418; - modificationTime = 173047893.609575; - state = 2; - }; - 5D7050010A390E4D00741B43 /* tableedit.c:366 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152689072BFC6800411831 /* tableedit.c */; - functionName = "tablegetwpedittext()"; - hitCount = 1; - lineNumber = 366; - modificationTime = 173047893.609587; - state = 2; - }; - 5D7050030A3914DB00741B43 /* filepath.c:154 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257A072BFC6700411831 /* filepath.c */; - functionName = "filespectopath()"; - hitCount = 1; - lineNumber = 154; - modificationTime = 173047893.609599; - state = 2; - }; - 5D7050050A39153000741B43 /* filepath.c:48 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257A072BFC6700411831 /* filepath.c */; - functionName = "directorytopath()"; - hitCount = 1; - lineNumber = 48; - modificationTime = 173047893.609611; - state = 2; - }; - 5D70500C0A392F8800741B43 /* filepath.c:205 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257A072BFC6700411831 /* filepath.c */; - functionName = "filespectopath()"; - hitCount = 1; - lineNumber = 205; - modificationTime = 173047893.609678; - state = 2; - }; - 5D7050530A39393200741B43 /* langvalue.c:3009 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152640072BFC6800411831 /* langvalue.c */; - functionName = "coercetofilespec()"; - hitCount = 1; - lineNumber = 3009; - modificationTime = 173047893.609697; - state = 2; - }; - 5D7050F90A394E6800741B43 /* shellverbs.c:1093 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515267F072BFC6800411831 /* shellverbs.c */; - functionName = "filemenufunctionvalue()"; - hitCount = 1; - lineNumber = 1093; - modificationTime = 173047893.609755; - state = 2; - }; - 5D70535C0A3A240100741B43 /* file.c:624 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152575072BFC6700411831 /* file.c */; - functionName = "openfile()"; - hitCount = 1; - lineNumber = 624; - modificationTime = 173047893.609773; - state = 2; - }; - 5D7054300A3A9A1B00741B43 /* file.c:64 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152575072BFC6700411831 /* file.c */; - functionName = "equalfilespecs()"; - hitCount = 1; - lineNumber = 64; - modificationTime = 173047893.609839; - state = 2; - }; - 5D7055C10A3B3F1A00741B43 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6515263C072BFC6800411831 /* langsystypes.c */; - name = "langsystypes.c: langpackfileval"; - rLen = 0; - rLoc = 22065; - rType = 0; - vrLen = 810; - vrLoc = 20963; - }; - 5D7055C20A3B3F3300741B43 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6515263C072BFC6800411831 /* langsystypes.c */; - name = "langsystypes.c: getlimitedvaluestring"; - rLen = 0; - rLoc = 7844; - rType = 0; - vrLen = 1021; - vrLoc = 7387; - }; - 5D7055C30A3B3F4600741B43 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 6515263C072BFC6800411831 /* langsystypes.c */; - name = "langsystypes.c: langunpackfileval"; - rLen = 0; - rLoc = 23883; - rType = 0; - vrLen = 821; - vrLoc = 22716; - }; - 5D7055E40A3B443700741B43 /* langsystypes.c:1146 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; - functionName = "langunpackfileval()"; - hitCount = 1; - lineNumber = 1146; - modificationTime = 173047893.609858; - state = 2; - }; - 5D7055EF0A3B47B600741B43 /* langsystypes.c:1024 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; - functionName = "langpackfileval()"; - hitCount = 1; - lineNumber = 1024; - modificationTime = 173047893.60987; - state = 2; - }; - 5D7055F10A3B47BE00741B43 /* langsystypes.c:1038 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; - functionName = "langpackfileval()"; - hitCount = 1; - lineNumber = 1038; - modificationTime = 173047893.609882; - state = 2; - }; - 5D7056C00A3B7B8400741B43 /* fileops.c:1570 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152579072BFC6700411831 /* fileops.c */; - functionName = "setfiletype()"; - hitCount = 1; - lineNumber = 1570; - modificationTime = 173047893.610009; - state = 2; - }; - 5D7057AA0A3BB32500741B43 /* fileverbs.c:3322 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; - functionName = "filefunctionvalue()"; - hitCount = 1; - lineNumber = 3322; - modificationTime = 173047893.610073; - state = 2; - }; - 5DA1D49E0A3D588600AFF013 /* langevaluate.c:623 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152630072BFC6700411831 /* langevaluate.c */; - functionName = "evaluatefileloop()"; - hitCount = 1; - lineNumber = 623; - modificationTime = 173047893.610088; - state = 2; - }; - 5DA1D4A60A3D5B9C00AFF013 /* fileloop.c:493 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152577072BFC6700411831 /* fileloop.c */; - functionName = "folderloop()"; - hitCount = 1; - lineNumber = 493; - modificationTime = 173048296.873006; - state = 1; - }; - 5DA1D4CB0A3D6ECF00AFF013 /* langevaluate.c:581 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152630072BFC6700411831 /* langevaluate.c */; - functionName = "fileloopguts()"; - hitCount = 1; - lineNumber = 581; - modificationTime = 173047893.610201; - state = 2; - }; - 5DA1D4D40A3D70A000AFF013 /* fileloop.c:722 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152577072BFC6700411831 /* fileloop.c */; - functionName = "filenextloop()"; - hitCount = 1; - lineNumber = 722; - modificationTime = 173047893.610222; - state = 2; - }; - 5DA1D4E60A3D776B00AFF013 /* fileloop.c:690 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152577072BFC6700411831 /* fileloop.c */; - functionName = "filenextloop()"; - hitCount = 1; - lineNumber = 690; - modificationTime = 173047893.610265; - state = 2; - }; - 5DA1D5C40A3DF31200AFF013 /* fileloop.c:640 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152577072BFC6700411831 /* fileloop.c */; - functionName = "filenextloop()"; - hitCount = 1; - lineNumber = 640; - modificationTime = 173047893.610281; - state = 2; - }; - 5DA1D5E40A3DF63C00AFF013 /* launch.c:1469 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 651525F8072BFC6700411831 /* launch.c */; - functionName = "getfrontapplication()"; - hitCount = 1; - lineNumber = 1469; - modificationTime = 173047893.610294; - state = 2; - }; - 5DA1D5E60A3DF64D00AFF013 /* shellsysverbs.c:494 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; - functionName = "sysfunctionvalue()"; - hitCount = 1; - lineNumber = 494; - modificationTime = 173047893.610356; - state = 2; - }; - 5DA1D5EE0A3DF98500AFF013 /* launch.c:1417 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 651525F8072BFC6700411831 /* launch.c */; - functionName = "system7frontprogram()"; - hitCount = 1; - lineNumber = 1417; - modificationTime = 173047893.610419; - state = 2; - }; - 5DA1D67D0A3E0E2F00AFF013 /* langvalue.c:5187 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152640072BFC6800411831 /* langvalue.c */; - functionName = "getfilespecvalue()"; - hitCount = 1; - lineNumber = 5187; - modificationTime = 173047893.610476; - state = 2; - }; - 5DA1D6DF0A3E1D3900AFF013 /* langvalue.c:4932 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152640072BFC6800411831 /* langvalue.c */; - functionName = "getfilespecparam()"; - hitCount = 1; - lineNumber = 4932; - modificationTime = 173047893.610494; - state = 2; - }; - 5DA1D8A40A3E6C9600AFF013 /* langhash.c:2601 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152632072BFC6700411831 /* langhash.c */; - functionName = "hashpackvisit()"; - hitCount = 1; - lineNumber = 2601; - modificationTime = 173048296.873306; - state = 1; - }; - 5DA1D8AA0A3E6CE900AFF013 /* langhash.c:3077 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152632072BFC6700411831 /* langhash.c */; - functionName = "hashunpacktable()"; - hitCount = 1; - lineNumber = 3077; - modificationTime = 173048296.873289; - state = 1; - }; - 5DA1D8B20A3E6D4100AFF013 /* langhash.c:3677 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - continueAfterActions = 0; - delayBeforeContinue = 0; - fileReference = 65152632072BFC6700411831 /* langhash.c */; - functionName = "hashgetvaluestring()"; - hitCount = 1; - lineNumber = 3677; - modificationTime = 173047893.61061; - state = 2; - }; - 5DA1D8B40A3E6D4100AFF013 /* langhash.c:3678 */ = { - isa = PBXFileBreakpoint; - actions = ( - ... [truncated message content] |
|
From: <cre...@us...> - 2006-06-27 23:04:37
|
Revision: 1434 Author: creecode Date: 2006-06-27 16:04:33 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1434&view=rev Log Message: ----------- add project Added Paths: ----------- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/ Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/project.pbxproj Added: Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 =================================================================== --- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 (rev 0) +++ Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.mode1 2006-06-27 23:04:33 UTC (rev 1434) @@ -0,0 +1,1357 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActivePerspectiveName</key> + <string>Project</string> + <key>AllowedModules</key> + <array> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Name</key> + <string>Groups and Files Outline View</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Name</key> + <string>Editor</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCTaskListModule</string> + <key>Name</key> + <string>Task List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDetailModule</string> + <key>Name</key> + <string>File and Smart Group Detail Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Name</key> + <string>Detailed Build Results Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Name</key> + <string>Project Batch Find Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXRunSessionModule</string> + <key>Name</key> + <string>Run Log</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Name</key> + <string>Bookmarks Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Name</key> + <string>Class Browser</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Name</key> + <string>Source Code Control Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXDebugBreakpointsModule</string> + <key>Name</key> + <string>Debug Breakpoints Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDockableInspector</string> + <key>Name</key> + <string>Inspector</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXOpenQuicklyModule</string> + <key>Name</key> + <string>Open Quickly Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Name</key> + <string>Debugger</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Name</key> + <string>Debug Console</string> + </dict> + </array> + <key>Description</key> + <string>DefaultDescriptionKey</string> + <key>DockingSystemVisible</key> + <false/> + <key>Extension</key> + <string>mode1</string> + <key>FavBarConfig</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>5DA7A5190A27A8280078C0A3</string> + <key>XCBarModuleItemNames</key> + <dict/> + <key>XCBarModuleItems</key> + <array/> + </dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>com.apple.perspectives.project.mode1</string> + <key>MajorVersion</key> + <integer>31</integer> + <key>MinorVersion</key> + <integer>1</integer> + <key>Name</key> + <string>Default</string> + <key>Notifications</key> + <array/> + <key>OpenEditors</key> + <array/> + <key>PerspectiveWidths</key> + <array> + <integer>-1</integer> + <integer>-1</integer> + </array> + <key>Perspectives</key> + <array> + <dict> + <key>ChosenToolbarItems</key> + <array> + <string>active-target-popup</string> + <string>action</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>buildOrClean</string> + <string>build-and-runOrDebug</string> + <string>com.apple.ide.PBXToolbarStopButton</string> + <string>get-info</string> + <string>toggle-editor</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>com.apple.pbx.toolbar.searchfield</string> + </array> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProjectWithEditor</string> + <key>Identifier</key> + <string>perspective.project</string> + <key>IsVertical</key> + <false/> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C08E77C0454961000C914BD</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>22</real> + <real>164</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>SCMStatusColumn</string> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>6515255C072BFC6500411831</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 888}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <true/> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 906}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>SCMStatusColumn</string> + <real>22</real> + <string>MainColumn</string> + <real>164</real> + </array> + <key>RubberWindowFrame</key> + <string>0 55 1276 947 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>203pt</string> + </dict> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20306471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20406471E060097A5F4</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {1068, 775}}</string> + <key>RubberWindowFrame</key> + <string>0 55 1276 947 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>775pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20506471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 780}, {1068, 126}}</string> + <key>RubberWindowFrame</key> + <string>0 55 1276 947 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>126pt</string> + </dict> + </array> + <key>Proportion</key> + <string>1068pt</string> + </dict> + </array> + <key>Name</key> + <string>Project</string> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + <string>XCModuleDock</string> + <string>PBXNavigatorGroup</string> + <string>XCDetailModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>5DA4EDC40A51B89C00C23DEF</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>5DA4EDC50A51B89C00C23DEF</string> + <string>1CE0B20306471E060097A5F4</string> + <string>1CE0B20506471E060097A5F4</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.default</string> + </dict> + <dict> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProject</string> + <key>Identifier</key> + <string>perspective.morph</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C08E77C0454961000C914BD</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>11E0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>186</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>29B97314FDCFA39411CA2CEA</string> + <string>1C37FABC05509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 337}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>1</integer> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 355}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>186</real> + </array> + <key>RubberWindowFrame</key> + <string>373 269 690 397 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Morph</string> + <key>PreferredWidth</key> + <integer>300</integer> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>11E0B1FE06471DED0097A5F4</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.default.short</string> + </dict> + </array> + <key>PerspectivesBarVisible</key> + <false/> + <key>ShelfIsVisible</key> + <false/> + <key>SourceDescription</key> + <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> + <key>StatusbarIsVisible</key> + <true/> + <key>TimeStamp</key> + <real>0.0</real> + <key>ToolbarDisplayMode</key> + <integer>1</integer> + <key>ToolbarIsVisible</key> + <true/> + <key>ToolbarSizeMode</key> + <integer>1</integer> + <key>Type</key> + <string>Perspectives</string> + <key>UpdateMessage</key> + <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> + <key>WindowJustification</key> + <integer>5</integer> + <key>WindowOrderList</key> + <array> + <string>5DA4EDCC0A51B89C00C23DEF</string> + <string>1CD10A99069EF8BA00B06720</string> + <string>5DA7A55E0A27B1EE0078C0A3</string> + <string>/Users/creedon/Development/Frontier FSRef Migration/build_XCode/Frontier.xcodeproj</string> + </array> + <key>WindowString</key> + <string>0 55 1276 947 0 0 1280 1002 </string> + <key>WindowTools</key> + <array> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.build</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528F0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {1276, 664}}</string> + <key>RubberWindowFrame</key> + <string>0 56 1276 946 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>664pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>PBXProjectModuleLabel</key> + <string>Build</string> + <key>XCBuildResultsTrigger_Collapse</key> + <integer>1021</integer> + <key>XCBuildResultsTrigger_Open</key> + <integer>1011</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 669}, {1276, 236}}</string> + <key>RubberWindowFrame</key> + <string>0 56 1276 946 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Proportion</key> + <string>236pt</string> + </dict> + </array> + <key>Proportion</key> + <string>905pt</string> + </dict> + </array> + <key>Name</key> + <string>Build Results</string> + <key>ServiceClasses</key> + <array> + <string>PBXBuildResultsModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>5DA7A4C10A278CF40078C0A3</string> + <string>5DA4ECC70A50870B00C23DEF</string> + <string>1CD0528F0623707200166675</string> + <string>XCMainBuildResultsModuleGUID</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.build</string> + <key>WindowString</key> + <string>0 56 1276 946 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>5DA7A4C10A278CF40078C0A3</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.debugger</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>Debugger</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {102, 181}}</string> + <string>{{102, 0}, {1174, 181}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {1276, 181}}</string> + <string>{{0, 181}, {1276, 724}}</string> + </array> + </dict> + </dict> + <key>LauncherConfigVersion</key> + <string>8</string> + <key>PBXProjectModuleGUID</key> + <string>1C162984064C10D400B95A72</string> + <key>PBXProjectModuleLabel</key> + <string>Debug - GLUTExamples (Underwater)</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>DebugConsoleDrawerSize</key> + <string>{100, 120}</string> + <key>DebugConsoleVisible</key> + <string>None</string> + <key>DebugConsoleWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>DebugSTDIOWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>Frame</key> + <string>{{0, 0}, {1276, 905}}</string> + <key>RubberWindowFrame</key> + <string>0 56 1276 946 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Proportion</key> + <string>905pt</string> + </dict> + </array> + <key>Proportion</key> + <string>905pt</string> + </dict> + </array> + <key>Name</key> + <string>Debugger</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>1CD10A99069EF8BA00B06720</string> + <string>5DA4EDC60A51B89C00C23DEF</string> + <string>1C162984064C10D400B95A72</string> + <string>5DA4EDC70A51B89C00C23DEF</string> + <string>5DA4EDC80A51B89C00C23DEF</string> + <string>5DA4EDC90A51B89C00C23DEF</string> + <string>5DA4EDCA0A51B89C00C23DEF</string> + <string>5DA4EDCB0A51B89C00C23DEF</string> + <string>5DA4EDCC0A51B89C00C23DEF</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debug</string> + <key>WindowString</key> + <string>0 56 1276 946 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1CD10A99069EF8BA00B06720</string> + <key>WindowToolIsVisible</key> + <true/> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.find</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CDD528C0622207200134675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {1276, 706}}</string> + <key>RubberWindowFrame</key> + <string>-1 0 1276 1002 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>1276pt</string> + </dict> + </array> + <key>Proportion</key> + <string>706pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528E0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Project Find</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 711}, {1276, 250}}</string> + <key>RubberWindowFrame</key> + <string>-1 0 1276 1002 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Proportion</key> + <string>250pt</string> + </dict> + </array> + <key>Proportion</key> + <string>961pt</string> + </dict> + </array> + <key>Name</key> + <string>Project Find</string> + <key>ServiceClasses</key> + <array> + <string>PBXProjectFindModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>1C530D57069F1CE1000CFCEE</string> + <string>5DA4ECB30A50860400C23DEF</string> + <string>5DA4ECB40A50860400C23DEF</string> + <string>1CDD528C0622207200134675</string> + <string>1CD0528E0623707200166675</string> + </array> + <key>WindowString</key> + <string>-1 0 1276 1002 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1C530D57069F1CE1000CFCEE</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>Identifier</key> + <string>MENUSEPARATOR</string> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.debuggerConsole</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAAC065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string>Debugger Console</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {440, 358}}</string> + <key>RubberWindowFrame</key> + <string>21 579 440 400 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Proportion</key> + <string>358pt</string> + </dict> + </array> + <key>Proportion</key> + <string>359pt</string> + </dict> + </array> + <key>Name</key> + <string>Debugger Console</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugCLIModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>5D2A54D20A33F98200BC885B</string> + <string>5DA4EBC00A50806100C23DEF</string> + <string>1C78EAAC065D492600B07095</string> + </array> + <key>WindowString</key> + <string>21 579 440 400 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>5D2A54D20A33F98200BC885B</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.run</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>LauncherConfigVersion</key> + <string>3</string> + <key>PBXProjectModuleGUID</key> + <string>1CD0528B0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Run</string> + <key>Runner</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {366, 168}}</string> + <string>{{0, 173}, {366, 270}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {406, 443}}</string> + <string>{{411, 0}, {517, 443}}</string> + </array> + </dict> + </dict> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {459, 159}}</string> + <key>RubberWindowFrame</key> + <string>21 779 459 200 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXRunSessionModule</string> + <key>Proportion</key> + <string>159pt</string> + </dict> + </array> + <key>Proportion</key> + <string>159pt</string> + </dict> + </array> + <key>Name</key> + <string>Run Log</string> + <key>ServiceClasses</key> + <array> + <string>PBXRunSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>1C0AD2B3069F1EA900FABCE6</string> + <string>5DB0386E0A4919A500E6DF5B</string> + <string>1CD0528B0623707200166675</string> + <string>5DB0386F0A4919A500E6DF5B</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.run</string> + <key>WindowString</key> + <string>21 779 459 200 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1C0AD2B3069F1EA900FABCE6</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.scm</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB2065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string></string> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {452, 0}}</string> + <key>RubberWindowFrame</key> + <string>791 668 452 308 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>0pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052920623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>SCM Results</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 5}, {452, 262}}</string> + <key>RubberWindowFrame</key> + <string>791 668 452 308 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Proportion</key> + <string>262pt</string> + </dict> + </array> + <key>Proportion</key> + <string>267pt</string> + </dict> + </array> + <key>Name</key> + <string>SCM</string> + <key>ServiceClasses</key> + <array> + <string>PBXCVSModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>5DA7A55E0A27B1EE0078C0A3</string> + <string>5DA4EDCD0A51B89C00C23DEF</string> + <string>1C78EAB2065D492600B07095</string> + <string>1CD052920623707200166675</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.scm</string> + <key>WindowString</key> + <string>791 668 452 308 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>5DA7A55E0A27B1EE0078C0A3</string> + <key>WindowToolIsVisible</key> + <true/> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.breakpoints</string> + <key>IsVertical</key> + <false/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>no</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>168</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {168, 350}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <false/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {185, 368}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>168</real> + </array> + <key>RubberWindowFrame</key> + <string>293 551 744 409 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>185pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA1AED706398EBD00589147</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{190, 0}, {554, 368}}</string> + <key>RubberWindowFrame</key> + <string>293 551 744 409 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>554pt</string> + </dict> + </array> + <key>Proportion</key> + <string>368pt</string> + </dict> + </array> + <key>MajorVersion</key> + <integer>2</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>Breakpoints</string> + <key>ServiceClasses</key> + <array> + <string>PBXSmartGroupTreeModule</string> + <string>XCDetailModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>5DA4E9A60A4E57B500C23DEF</string> + <string>5DA4E9A70A4E57B500C23DEF</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CA1AED706398EBD00589147</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.breakpoints</string> + <key>WindowString</key> + <string>293 551 744 409 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>5DA4E9A60A4E57B500C23DEF</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugAnimator</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debug Visualizer</string> + <key>ServiceClasses</key> + <array> + <string>PBXNavigatorGroup</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugAnimator</string> + <key>WindowString</key> + <string>100 100 700 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.bookmarks</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>5D2A55480A341CB600BC885B</string> + <key>PBXProjectModuleLabel</key> + <string>Bookmarks</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {401, 180}}</string> + <key>RubberWindowFrame</key> + <string>21 779 401 200 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Proportion</key> + <string>180pt</string> + </dict> + </array> + <key>Proportion</key> + <string>180pt</string> + </dict> + </array> + <key>Name</key> + <string>Bookmarks</string> + <key>ServiceClasses</key> + <array> + <string>PBXBookmarksModule</string> + </array> + <key>StatusbarIsVisible</key> + <false/> + <key>TableOfContents</key> + <array> + <string>5D7055190A3B3D9900741B43</string> + <string>5D7055D50A3B423B00741B43</string> + <string>5D2A55480A341CB600BC885B</string> + </array> + <key>WindowString</key> + <string>21 779 401 200 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>5D7055190A3B3D9900741B43</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.classBrowser</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>OptionsSetName</key> + <string>Hierarchy, all classes</string> + <key>PBXProjectModuleGUID</key> + <string>1CA6456E063B45B4001379D8</string> + <key>PBXProjectModuleLabel</key> + <string>Class Browser - NSObject</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ClassesFrame</key> + <string>{{0, 0}, {374, 96}}</string> + <key>ClassesTreeTableConfiguration</key> + <array> + <string>PBXClassNameColumnIdentifier</string> + <real>208</real> + <string>PBXClassBookColumnIdentifier</string> + <real>22</real> + </array> + <key>Frame</key> + <string>{{0, 0}, {630, 331}}</string> + <key>MembersFrame</key> + <string>{{0, 105}, {374, 395}}</string> + <key>MembersTreeTableConfiguration</key> + <array> + <string>PBXMemberTypeIconColumnIdentifier</string> + <real>22</real> + <string>PBXMemberNameColumnIdentifier</string> + <real>216</real> + <string>PBXMemberTypeColumnIdentifier</string> + <real>97</real> + <string>PBXMemberBookColumnIdentifier</string> + <real>22</real> + </array> + <key>PBXModuleWindowStatusBarHidden2</key> + <integer>1</integer> + <key>RubberWindowFrame</key> + <string>385 179 630 352 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Name</key> + <string>Class Browser</string> + <key>ServiceClasses</key> + <array> + <string>PBXClassBrowserModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>TableOfContents</key> + <array> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <string>1C0AD2B0069F1E9B00FABCE6</string> + <string>1CA6456E063B45B4001379D8</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.classbrowser</string> + <key>WindowString</key> + <string>385 179 630 352 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + </array> +</dict> +</plist> Added: Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser =================================================================== --- Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser (rev 0) +++ Frontier/branches/FSRef_Migration/build_XCode/Frontier.xcodeproj/creedon.pbxuser 2006-06-27 23:04:33 UTC (rev 1434) @@ -0,0 +1,3095 @@ +// !$*UTF8*$! +{ + 5D1D661B0A4CC069000719F0 /* fileops.c:3551 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152579072BFC6700411831 /* fileops.c */; + hitCount = 1; + lineNumber = 3551; + modificationTime = 173047893.614765; + state = 2; + }; + 5D1D667E0A4CCDE8000719F0 /* shellwindow.c:2016 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152680072BFC6800411831 /* shellwindow.c */; + functionName = "newchildwindow()"; + hitCount = 3; + lineNumber = 2016; + modificationTime = 173048043.074765; + state = 2; + }; + 5D1D66A90A4CDBE4000719F0 /* shellsysverbs.c:812 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; + functionName = "launchfunctionvalue()"; + hitCount = 1; + lineNumber = 812; + modificationTime = 173047893.614832; + state = 2; + }; + 5D1D66AB0A4CDBE6000719F0 /* shellsysverbs.c:825 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; + functionName = "launchfunctionvalue()"; + hitCount = 1; + lineNumber = 825; + modificationTime = 173048296.873024; + state = 1; + }; + 5D2A49B00A2E4A3B00BC885B /* FSCopyObject.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1917, 37373}}"; + sepNavSelRange = "{6383, 14}"; + sepNavVisRect = "{{0, 2371}, {1027, 743}}"; + sepNavWindowFrame = "{{15, -5}, {1004, 1002}}"; + }; + }; + 5D2A49B10A2E4A3B00BC885B /* FSCopyObject.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1027, 4902}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {1027, 744}}"; + }; + }; + 5D2A54AC0A33EF2600BC885B /* PBXBookmarkGroup */ = { + isa = PBXBookmarkGroup; + children = ( + 5D2A55450A341C9B00BC885B /* PBXTextBookmark */, + 5D7055C10A3B3F1A00741B43 /* PBXTextBookmark */, + 5D7055C20A3B3F3300741B43 /* PBXTextBookmark */, + 5D7055C30A3B3F4600741B43 /* PBXTextBookmark */, + ); + name = Root; + }; + 5D2A54E10A3405D700BC885B /* cancoon.c:756 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515260E072BFC6700411831 /* cancoon.c */; + functionName = "ccloadfile()"; + hitCount = 1; + lineNumber = 756; + modificationTime = 173047893.608679; + state = 2; + }; + 5D2A54E30A3405DE00BC885B /* cancoon.c:857 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515260E072BFC6700411831 /* cancoon.c */; + functionName = "ccloadspecialfile()"; + hitCount = 1; + lineNumber = 857; + modificationTime = 173047893.60872; + state = 2; + }; + 5D2A54E50A3405E400BC885B /* cancoon.c:923 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515260E072BFC6700411831 /* cancoon.c */; + functionName = "ccsavespecialfile()"; + hitCount = 1; + lineNumber = 923; + modificationTime = 173048296.87343; + state = 1; + }; + 5D2A54E70A3405EC00BC885B /* cancoon.c:1114 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515260E072BFC6700411831 /* cancoon.c */; + functionName = "ccsavefile()"; + hitCount = 1; + lineNumber = 1114; + modificationTime = 173047893.608803; + state = 2; + }; + 5D2A54E90A3405F600BC885B /* cancoon.c:1286 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515260E072BFC6700411831 /* cancoon.c */; + functionName = "ccclose()"; + hitCount = 1; + lineNumber = 1286; + modificationTime = 173047893.608823; + state = 2; + }; + 5D2A551E0A3415C300BC885B /* icon.c:207 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 651525F6072BFC6700411831 /* icon.c */; + functionName = "customiconload()"; + hitCount = 1; + lineNumber = 207; + modificationTime = 173048296.873254; + state = 1; + }; + 5D2A55450A341C9B00BC885B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6515257A072BFC6700411831 /* filepath.c */; + name = "filepath.c: setfsfile"; + rLen = 0; + rLoc = 9414; + rType = 0; + vrLen = 1277; + vrLoc = 9425; + }; + 5D2A59FB0A3640E300BC885B /* fileverbs.c:3496 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; + functionName = "filefunctionvalue()"; + hitCount = 1; + lineNumber = 3496; + modificationTime = 173047893.608952; + state = 2; + }; + 5D2A5B530A368DB500BC885B /* shellsysverbs.c:1232 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; + functionName = "threadcallscriptverb()"; + hitCount = 1; + lineNumber = 1232; + modificationTime = 173048296.87334; + state = 1; + }; + 5D2A5B550A368DCB00BC885B /* osacomponent.c:5749 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152667072BFC6800411831 /* osacomponent.c */; + functionName = "evaluateosascript()"; + hitCount = 1; + lineNumber = 5749; + modificationTime = 173048296.873204; + state = 1; + }; + 5D2A5B570A368DD300BC885B /* langwinipc.c:1047 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152642072BFC6800411831 /* langwinipc.c */; + functionName = "langipcrunscript()"; + hitCount = 1; + lineNumber = 1047; + modificationTime = 173048296.873169; + state = 1; + }; + 5D2A5B590A368DEA00BC885B /* langvalue.c:8640 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152640072BFC6800411831 /* langvalue.c */; + functionName = "langhandlercall()"; + hitCount = 1; + lineNumber = 8640; + modificationTime = 173048296.873237; + state = 1; + }; + 5D2A5B5D0A368DF800BC885B /* langvalue.c:8032 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152640072BFC6800411831 /* langvalue.c */; + functionName = "binaryfunctionvalue()"; + hitCount = 1; + lineNumber = 8032; + modificationTime = 173048296.873149; + state = 1; + }; + 5D2A5B5F0A368DFE00BC885B /* langregexp.c:1752 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152638072BFC6800411831 /* langregexp.c */; + functionName = "getcodetreefromscriptaddress()"; + hitCount = 1; + lineNumber = 1752; + modificationTime = 173048296.872955; + state = 1; + }; + 5D2A5B630A368E1700BC885B /* lang.c:1545 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515262A072BFC6700411831 /* lang.c */; + functionName = "langrunscript()"; + hitCount = 1; + lineNumber = 1545; + modificationTime = 173048296.873062; + state = 1; + }; + 5D2A5B650A368E1F00BC885B /* langipc.c:1255 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152624072BFC6700411831 /* langipc.c */; + functionName = "langipcfindtraphandler()"; + hitCount = 1; + lineNumber = 1255; + modificationTime = 173048296.873374; + state = 1; + }; + 5D704E2B0A38C07F00741B43 /* fileops.c:451 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152579072BFC6700411831 /* fileops.c */; + functionName = "filegetvolumeinfo()"; + hitCount = 1; + lineNumber = 451; + modificationTime = 173047893.609555; + state = 2; + }; + 5D704E820A38D80500741B43 /* fileverbs.c:3418 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; + functionName = "filefunctionvalue()"; + hitCount = 1; + lineNumber = 3418; + modificationTime = 173047893.609575; + state = 2; + }; + 5D7050010A390E4D00741B43 /* tableedit.c:366 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152689072BFC6800411831 /* tableedit.c */; + functionName = "tablegetwpedittext()"; + hitCount = 1; + lineNumber = 366; + modificationTime = 173047893.609587; + state = 2; + }; + 5D7050030A3914DB00741B43 /* filepath.c:154 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257A072BFC6700411831 /* filepath.c */; + functionName = "filespectopath()"; + hitCount = 1; + lineNumber = 154; + modificationTime = 173047893.609599; + state = 2; + }; + 5D7050050A39153000741B43 /* filepath.c:48 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257A072BFC6700411831 /* filepath.c */; + functionName = "directorytopath()"; + hitCount = 1; + lineNumber = 48; + modificationTime = 173047893.609611; + state = 2; + }; + 5D70500C0A392F8800741B43 /* filepath.c:205 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257A072BFC6700411831 /* filepath.c */; + functionName = "filespectopath()"; + hitCount = 1; + lineNumber = 205; + modificationTime = 173047893.609678; + state = 2; + }; + 5D7050530A39393200741B43 /* langvalue.c:3009 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152640072BFC6800411831 /* langvalue.c */; + functionName = "coercetofilespec()"; + hitCount = 1; + lineNumber = 3009; + modificationTime = 173047893.609697; + state = 2; + }; + 5D7050F90A394E6800741B43 /* shellverbs.c:1093 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515267F072BFC6800411831 /* shellverbs.c */; + functionName = "filemenufunctionvalue()"; + hitCount = 1; + lineNumber = 1093; + modificationTime = 173047893.609755; + state = 2; + }; + 5D70535C0A3A240100741B43 /* file.c:624 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152575072BFC6700411831 /* file.c */; + functionName = "openfile()"; + hitCount = 1; + lineNumber = 624; + modificationTime = 173047893.609773; + state = 2; + }; + 5D7054300A3A9A1B00741B43 /* file.c:64 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152575072BFC6700411831 /* file.c */; + functionName = "equalfilespecs()"; + hitCount = 1; + lineNumber = 64; + modificationTime = 173047893.609839; + state = 2; + }; + 5D7055C10A3B3F1A00741B43 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6515263C072BFC6800411831 /* langsystypes.c */; + name = "langsystypes.c: langpackfileval"; + rLen = 0; + rLoc = 22065; + rType = 0; + vrLen = 810; + vrLoc = 20963; + }; + 5D7055C20A3B3F3300741B43 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6515263C072BFC6800411831 /* langsystypes.c */; + name = "langsystypes.c: getlimitedvaluestring"; + rLen = 0; + rLoc = 7844; + rType = 0; + vrLen = 1021; + vrLoc = 7387; + }; + 5D7055C30A3B3F4600741B43 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6515263C072BFC6800411831 /* langsystypes.c */; + name = "langsystypes.c: langunpackfileval"; + rLen = 0; + rLoc = 23883; + rType = 0; + vrLen = 821; + vrLoc = 22716; + }; + 5D7055E40A3B443700741B43 /* langsystypes.c:1146 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; + functionName = "langunpackfileval()"; + hitCount = 1; + lineNumber = 1146; + modificationTime = 173047893.609858; + state = 2; + }; + 5D7055EF0A3B47B600741B43 /* langsystypes.c:1024 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; + functionName = "langpackfileval()"; + hitCount = 1; + lineNumber = 1024; + modificationTime = 173047893.60987; + state = 2; + }; + 5D7055F10A3B47BE00741B43 /* langsystypes.c:1038 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515263C072BFC6800411831 /* langsystypes.c */; + functionName = "langpackfileval()"; + hitCount = 1; + lineNumber = 1038; + modificationTime = 173047893.609882; + state = 2; + }; + 5D7056C00A3B7B8400741B43 /* fileops.c:1570 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152579072BFC6700411831 /* fileops.c */; + functionName = "setfiletype()"; + hitCount = 1; + lineNumber = 1570; + modificationTime = 173047893.610009; + state = 2; + }; + 5D7057AA0A3BB32500741B43 /* fileverbs.c:3322 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515257B072BFC6700411831 /* fileverbs.c */; + functionName = "filefunctionvalue()"; + hitCount = 1; + lineNumber = 3322; + modificationTime = 173047893.610073; + state = 2; + }; + 5DA1D49E0A3D588600AFF013 /* langevaluate.c:623 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152630072BFC6700411831 /* langevaluate.c */; + functionName = "evaluatefileloop()"; + hitCount = 1; + lineNumber = 623; + modificationTime = 173047893.610088; + state = 2; + }; + 5DA1D4A60A3D5B9C00AFF013 /* fileloop.c:493 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152577072BFC6700411831 /* fileloop.c */; + functionName = "folderloop()"; + hitCount = 1; + lineNumber = 493; + modificationTime = 173048296.873006; + state = 1; + }; + 5DA1D4CB0A3D6ECF00AFF013 /* langevaluate.c:581 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152630072BFC6700411831 /* langevaluate.c */; + functionName = "fileloopguts()"; + hitCount = 1; + lineNumber = 581; + modificationTime = 173047893.610201; + state = 2; + }; + 5DA1D4D40A3D70A000AFF013 /* fileloop.c:722 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152577072BFC6700411831 /* fileloop.c */; + functionName = "filenextloop()"; + hitCount = 1; + lineNumber = 722; + modificationTime = 173047893.610222; + state = 2; + }; + 5DA1D4E60A3D776B00AFF013 /* fileloop.c:690 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152577072BFC6700411831 /* fileloop.c */; + functionName = "filenextloop()"; + hitCount = 1; + lineNumber = 690; + modificationTime = 173047893.610265; + state = 2; + }; + 5DA1D5C40A3DF31200AFF013 /* fileloop.c:640 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152577072BFC6700411831 /* fileloop.c */; + functionName = "filenextloop()"; + hitCount = 1; + lineNumber = 640; + modificationTime = 173047893.610281; + state = 2; + }; + 5DA1D5E40A3DF63C00AFF013 /* launch.c:1469 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 651525F8072BFC6700411831 /* launch.c */; + functionName = "getfrontapplication()"; + hitCount = 1; + lineNumber = 1469; + modificationTime = 173047893.610294; + state = 2; + }; + 5DA1D5E60A3DF64D00AFF013 /* shellsysverbs.c:494 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 6515267C072BFC6800411831 /* shellsysverbs.c */; + functionName = "sysfunctionvalue()"; + hitCount = 1; + lineNumber = 494; + modificationTime = 173047893.610356; + state = 2; + }; + 5DA1D5EE0A3DF98500AFF013 /* launch.c:1417 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 651525F8072BFC6700411831 /* launch.c */; + functionName = "system7frontprogram()"; + hitCount = 1; + lineNumber = 1417; + modificationTime = 173047893.610419; + state = 2; + }; + 5DA1D67D0A3E0E2F00AFF013 /* langvalue.c:5187 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152640072BFC6800411831 /* langvalue.c */; + functionName = "getfilespecvalue()"; + hitCount = 1; + lineNumber = 5187; + modificationTime = 173047893.610476; + state = 2; + }; + 5DA1D6DF0A3E1D3900AFF013 /* langvalue.c:4932 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152640072BFC6800411831 /* langvalue.c */; + functionName = "getfilespecparam()"; + hitCount = 1; + lineNumber = 4932; + modificationTime = 173047893.610494; + state = 2; + }; + 5DA1D8A40A3E6C9600AFF013 /* langhash.c:2601 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152632072BFC6700411831 /* langhash.c */; + functionName = "hashpackvisit()"; + hitCount = 1; + lineNumber = 2601; + modificationTime = 173048296.873306; + state = 1; + }; + 5DA1D8AA0A3E6CE900AFF013 /* langhash.c:3077 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152632072BFC6700411831 /* langhash.c */; + functionName = "hashunpacktable()"; + hitCount = 1; + lineNumber = 3077; + modificationTime = 173048296.873289; + state = 1; + }; + 5DA1D8B20A3E6D4100AFF013 /* langhash.c:3677 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + continueAfterActions = 0; + delayBeforeContinue = 0; + fileReference = 65152632072BFC6700411831 /* langhash.c */; + functionName = "hashgetvaluestring()"; + hitCount = 1; + lineNumber = 3677; + modificationTime = 173047... [truncated message content] |
|
From: <cre...@us...> - 2006-06-27 20:05:02
|
Revision: 1433 Author: creecode Date: 2006-06-27 13:04:57 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1433&view=rev Log Message: ----------- remove personal settings Removed Paths: ------------- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser Deleted: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 =================================================================== --- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 2006-06-27 19:17:17 UTC (rev 1432) +++ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 2006-06-27 20:04:57 UTC (rev 1433) @@ -1,1358 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>ActivePerspectiveName</key> - <string>Project</string> - <key>AllowedModules</key> - <array> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Name</key> - <string>Groups and Files Outline View</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Name</key> - <string>Editor</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCTaskListModule</string> - <key>Name</key> - <string>Task List</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDetailModule</string> - <key>Name</key> - <string>File and Smart Group Detail Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Name</key> - <string>Detailed Build Results Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Name</key> - <string>Project Batch Find Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Name</key> - <string>Run Log</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Name</key> - <string>Bookmarks Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Name</key> - <string>Class Browser</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Name</key> - <string>Source Code Control Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXDebugBreakpointsModule</string> - <key>Name</key> - <string>Debug Breakpoints Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDockableInspector</string> - <key>Name</key> - <string>Inspector</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXOpenQuicklyModule</string> - <key>Name</key> - <string>Open Quickly Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Name</key> - <string>Debugger</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Name</key> - <string>Debug Console</string> - </dict> - </array> - <key>Description</key> - <string>DefaultDescriptionKey</string> - <key>DockingSystemVisible</key> - <false/> - <key>Extension</key> - <string>mode1</string> - <key>FavBarConfig</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5D1271350A254F9D00749CBB</string> - <key>XCBarModuleItemNames</key> - <dict/> - <key>XCBarModuleItems</key> - <array/> - </dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>com.apple.perspectives.project.mode1</string> - <key>MajorVersion</key> - <integer>31</integer> - <key>MinorVersion</key> - <integer>1</integer> - <key>Name</key> - <string>Default</string> - <key>Notifications</key> - <array/> - <key>OpenEditors</key> - <array> - <dict> - <key>Content</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5DA7A7150A2A42B10078C0A3</string> - <key>PBXProjectModuleLabel</key> - <string>FSCopyObject.h</string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>5DA7A7160A2A42B10078C0A3</string> - <key>PBXProjectModuleLabel</key> - <string>FSCopyObject.h</string> - <key>_historyCapacity</key> - <integer>0</integer> - <key>bookmark</key> - <string>5DA7A7170A2A42B10078C0A3</string> - <key>history</key> - <array> - <string>5DA7A70D0A2A421F0078C0A3</string> - </array> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>Geometry</key> - <dict> - <key>Frame</key> - <string>{{0, 20}, {921, 905}}</string> - <key>PBXModuleWindowStatusBarHidden2</key> - <false/> - <key>RubberWindowFrame</key> - <string>0 56 921 946 0 0 1280 1002 </string> - </dict> - </dict> - </array> - <key>PerspectiveWidths</key> - <array> - <integer>-1</integer> - <integer>-1</integer> - </array> - <key>Perspectives</key> - <array> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>active-target-popup</string> - <string>action</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>buildOrClean</string> - <string>build-and-runOrDebug</string> - <string>com.apple.ide.PBXToolbarStopButton</string> - <string>get-info</string> - <string>toggle-editor</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>com.apple.pbx.toolbar.searchfield</string> - </array> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProjectWithEditor</string> - <key>Identifier</key> - <string>perspective.project</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>186</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>08FB7794FE84155DC02AAC07</string> - <string>1C37FABC05509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {186, 338}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <true/> - <key>XCSharingToken</key> - <string>com.apple.Xcode.GFSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {203, 356}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>186</real> - </array> - <key>RubberWindowFrame</key> - <string>360 380 690 397 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>203pt</string> - </dict> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20306471E060097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>MyNewFile14.java</string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20406471E060097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>MyNewFile14.java</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {482, 0}}</string> - <key>RubberWindowFrame</key> - <string>360 380 690 397 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CE0B20506471E060097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 5}, {482, 351}}</string> - <key>RubberWindowFrame</key> - <string>360 380 690 397 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>351pt</string> - </dict> - </array> - <key>Proportion</key> - <string>482pt</string> - </dict> - </array> - <key>Name</key> - <string>Project</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - <string>XCModuleDock</string> - <string>PBXNavigatorGroup</string> - <string>XCDetailModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>5DA7A7130A2A42B10078C0A3</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>5DA7A7140A2A42B10078C0A3</string> - <string>1CE0B20306471E060097A5F4</string> - <string>1CE0B20506471E060097A5F4</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.default</string> - </dict> - <dict> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProject</string> - <key>Identifier</key> - <string>perspective.morph</string> - <key>IsVertical</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>11E0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>186</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>29B97314FDCFA39411CA2CEA</string> - <string>1C37FABC05509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {186, 337}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <integer>1</integer> - <key>XCSharingToken</key> - <string>com.apple.Xcode.GFSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {203, 355}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>186</real> - </array> - <key>RubberWindowFrame</key> - <string>373 269 690 397 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Morph</string> - <key>PreferredWidth</key> - <integer>300</integer> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>11E0B1FE06471DED0097A5F4</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.default.short</string> - </dict> - </array> - <key>PerspectivesBarVisible</key> - <false/> - <key>ShelfIsVisible</key> - <false/> - <key>SourceDescription</key> - <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> - <key>StatusbarIsVisible</key> - <true/> - <key>TimeStamp</key> - <real>0.0</real> - <key>ToolbarDisplayMode</key> - <integer>1</integer> - <key>ToolbarIsVisible</key> - <true/> - <key>ToolbarSizeMode</key> - <integer>1</integer> - <key>Type</key> - <string>Perspectives</string> - <key>UpdateMessage</key> - <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> - <key>WindowJustification</key> - <integer>5</integer> - <key>WindowOrderList</key> - <array> - <string>1C530D57069F1CE1000CFCEE</string> - <string>5DA7A7150A2A42B10078C0A3</string> - <string>/Users/creedon/Development/Frontier/Common/FSCopyObject/FSCopyObject.xcodeproj</string> - </array> - <key>WindowString</key> - <string>360 380 690 397 0 0 1280 1002 </string> - <key>WindowTools</key> - <array> - <dict> - <key>Identifier</key> - <string>windowTool.build</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528F0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052900623707200166675</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {500, 215}}</string> - <key>RubberWindowFrame</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>218pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>PBXProjectModuleLabel</key> - <string>Build</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 222}, {500, 236}}</string> - <key>RubberWindowFrame</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Proportion</key> - <string>236pt</string> - </dict> - </array> - <key>Proportion</key> - <string>458pt</string> - </dict> - </array> - <key>Name</key> - <string>Build Results</string> - <key>ServiceClasses</key> - <array> - <string>PBXBuildResultsModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAA5065D492600B07095</string> - <string>1C78EAA6065D492600B07095</string> - <string>1CD0528F0623707200166675</string> - <string>XCMainBuildResultsModuleGUID</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.build</string> - <key>WindowString</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debugger</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>Debugger</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {317, 164}}</string> - <string>{{317, 0}, {377, 164}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {694, 164}}</string> - <string>{{0, 164}, {694, 216}}</string> - </array> - </dict> - </dict> - <key>LauncherConfigVersion</key> - <string>8</string> - <key>PBXProjectModuleGUID</key> - <string>1C162984064C10D400B95A72</string> - <key>PBXProjectModuleLabel</key> - <string>Debug - GLUTExamples (Underwater)</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>DebugConsoleDrawerSize</key> - <string>{100, 120}</string> - <key>DebugConsoleVisible</key> - <string>None</string> - <key>DebugConsoleWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>DebugSTDIOWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>Frame</key> - <string>{{0, 0}, {694, 380}}</string> - <key>RubberWindowFrame</key> - <string>321 238 694 422 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debugger</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1CD10A99069EF8BA00B06720</string> - <string>1C0AD2AB069F1E9B00FABCE6</string> - <string>1C162984064C10D400B95A72</string> - <string>1C0AD2AC069F1E9B00FABCE6</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debug</string> - <key>WindowString</key> - <string>321 238 694 422 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1CD10A99069EF8BA00B06720</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>windowTool.find</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CDD528C0622207200134675</string> - <key>PBXProjectModuleLabel</key> - <string>HelloWorldTool.c</string> - <key>StatusBarVisibility</key> - <true/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {781, 212}}</string> - <key>RubberWindowFrame</key> - <string>381 284 781 470 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>781pt</string> - </dict> - </array> - <key>Proportion</key> - <string>212pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528E0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 217}, {781, 212}}</string> - <key>RubberWindowFrame</key> - <string>381 284 781 470 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Proportion</key> - <string>212pt</string> - </dict> - </array> - <key>Proportion</key> - <string>429pt</string> - </dict> - </array> - <key>Name</key> - <string>Project Find</string> - <key>ServiceClasses</key> - <array> - <string>PBXProjectFindModule</string> - </array> - <key>StatusbarIsVisible</key> - <true/> - <key>TableOfContents</key> - <array> - <string>1C530D57069F1CE1000CFCEE</string> - <string>5DA7A7110A2A42AF0078C0A3</string> - <string>5DA7A7120A2A42AF0078C0A3</string> - <string>1CDD528C0622207200134675</string> - <string>1CD0528E0623707200166675</string> - </array> - <key>WindowString</key> - <string>381 284 781 470 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>1C530D57069F1CE1000CFCEE</string> - <key>WindowToolIsVisible</key> - <false/> - </dict> - <dict> - <key>Identifier</key> - <string>MENUSEPARATOR</string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debuggerConsole</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAAC065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string>Debugger Console</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {440, 358}}</string> - <key>RubberWindowFrame</key> - <string>650 41 440 400 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Proportion</key> - <string>358pt</string> - </dict> - </array> - <key>Proportion</key> - <string>358pt</string> - </dict> - </array> - <key>Name</key> - <string>Debugger Console</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugCLIModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAAD065D492600B07095</string> - <string>1C78EAAE065D492600B07095</string> - <string>1C78EAAC065D492600B07095</string> - </array> - <key>WindowString</key> - <string>650 41 440 400 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.run</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>LauncherConfigVersion</key> - <string>3</string> - <key>PBXProjectModuleGUID</key> - <string>1CD0528B0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Run</string> - <key>Runner</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {493, 167}}</string> - <string>{{0, 176}, {493, 267}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {405, 443}}</string> - <string>{{414, 0}, {514, 443}}</string> - </array> - </dict> - </dict> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {460, 159}}</string> - <key>RubberWindowFrame</key> - <string>316 696 459 200 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXRunSessionModule</string> - <key>Proportion</key> - <string>159pt</string> - </dict> - </array> - <key>Proportion</key> - <string>159pt</string> - </dict> - </array> - <key>Name</key> - <string>Run Log</string> - <key>ServiceClasses</key> - <array> - <string>PBXRunSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C0AD2B3069F1EA900FABCE6</string> - <string>1C0AD2B4069F1EA900FABCE6</string> - <string>1CD0528B0623707200166675</string> - <string>1C0AD2B5069F1EA900FABCE6</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.run</string> - <key>WindowString</key> - <string>316 696 459 200 0 0 1280 1002 </string> - <key>WindowToolGUID</key> - <string>1C0AD2B3069F1EA900FABCE6</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.scm</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB2065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB3065D492600B07095</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {452, 0}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052920623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>SCM</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ConsoleFrame</key> - <string>{{0, 259}, {452, 0}}</string> - <key>Frame</key> - <string>{{0, 7}, {452, 259}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - <key>TableConfiguration</key> - <array> - <string>Status</string> - <real>30</real> - <string>FileName</string> - <real>199</real> - <string>Path</string> - <real>197.09500122070312</real> - </array> - <key>TableFrame</key> - <string>{{0, 0}, {452, 250}}</string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Proportion</key> - <string>262pt</string> - </dict> - </array> - <key>Proportion</key> - <string>266pt</string> - </dict> - </array> - <key>Name</key> - <string>SCM</string> - <key>ServiceClasses</key> - <array> - <string>PBXCVSModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAB4065D492600B07095</string> - <string>1C78EAB5065D492600B07095</string> - <string>1C78EAB2065D492600B07095</string> - <string>1CD052920623707200166675</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.scm</string> - <key>WindowString</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.breakpoints</string> - <key>IsVertical</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>no</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>168</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {168, 350}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <integer>0</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {185, 368}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>168</real> - </array> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>185pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA1AED706398EBD00589147</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{190, 0}, {554, 368}}</string> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>554pt</string> - </dict> - </array> - <key>Proportion</key> - <string>368pt</string> - </dict> - </array> - <key>MajorVersion</key> - <integer>2</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>Breakpoints</string> - <key>ServiceClasses</key> - <array> - <string>PBXSmartGroupTreeModule</string> - <string>XCDetailModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1CDDB66807F98D9800BB5817</string> - <string>1CDDB66907F98D9800BB5817</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CA1AED706398EBD00589147</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.breakpoints</string> - <key>WindowString</key> - <string>315 424 744 409 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1CDDB66807F98D9800BB5817</string> - <key>WindowToolIsVisible</key> - <integer>1</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debugAnimator</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debug Visualizer</string> - <key>ServiceClasses</key> - <array> - <string>PBXNavigatorGroup</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugAnimator</string> - <key>WindowString</key> - <string>100 100 700 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.bookmarks</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Bookmarks</string> - <key>ServiceClasses</key> - <array> - <string>PBXBookmarksModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>WindowString</key> - <string>538 42 401 187 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.classBrowser</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>OptionsSetName</key> - <string>Hierarchy, all classes</string> - <key>PBXProjectModuleGUID</key> - <string>1CA6456E063B45B4001379D8</string> - <key>PBXProjectModuleLabel</key> - <string>Class Browser - NSObject</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ClassesFrame</key> - <string>{{0, 0}, {374, 96}}</string> - <key>ClassesTreeTableConfiguration</key> - <array> - <string>PBXClassNameColumnIdentifier</string> - <real>208</real> - <string>PBXClassBookColumnIdentifier</string> - <real>22</real> - </array> - <key>Frame</key> - <string>{{0, 0}, {630, 331}}</string> - <key>MembersFrame</key> - <string>{{0, 105}, {374, 395}}</string> - <key>MembersTreeTableConfiguration</key> - <array> - <string>PBXMemberTypeIconColumnIdentifier</string> - <real>22</real> - <string>PBXMemberNameColumnIdentifier</string> - <real>216</real> - <string>PBXMemberTypeColumnIdentifier</string> - <real>97</real> - <string>PBXMemberBookColumnIdentifier</string> - <real>22</real> - </array> - <key>PBXModuleWindowStatusBarHidden2</key> - <integer>1</integer> - <key>RubberWindowFrame</key> - <string>385 179 630 352 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Proportion</key> - <string>332pt</string> - </dict> - </array> - <key>Proportion</key> - <string>332pt</string> - </dict> - </array> - <key>Name</key> - <string>Class Browser</string> - <key>ServiceClasses</key> - <array> - <string>PBXClassBrowserModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>TableOfContents</key> - <array> - <string>1C0AD2AF069F1E9B00FABCE6</string> - <string>1C0AD2B0069F1E9B00FABCE6</string> - <string>1CA6456E063B45B4001379D8</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.classbrowser</string> - <key>WindowString</key> - <string>385 179 630 352 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1C0AD2AF069F1E9B00FABCE6</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - </array> -</dict> -</plist> Deleted: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser =================================================================== --- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser 2006-06-27 19:17:17 UTC (rev 1432) +++ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser 2006-06-27 20:04:57 UTC (rev 1433) @@ -1,127 +0,0 @@ -// !$*UTF8*$! -{ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - activeBuildConfigurationName = Development; - activeBuildStyle = 014CEA4C0018CE3E11CA2923 /* Development */; - activeExecutable = 5D1271210A254DE000749CBB /* FSCopyObject */; - activeTarget = 8DD76F840486A9BA00D96B5E /* FSCopyObject */; - breakpoints = ( - ); - codeSenseManager = 5D1271310A254DFF00749CBB /* Code sense */; - executables = ( - 5D1271210A254DE000749CBB /* FSCopyObject */, - ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 243, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 170541589; - PBXWorkspaceStateSaveDate = 170541589; - }; - perUserProjectItems = { - 5DA7A70D0A2A421F0078C0A3 /* PBXBookmark */ = 5DA7A70D0A2A421F0078C0A3 /* PBXBookmark */; - 5DA7A7170A2A42B10078C0A3 /* PBXTextBookmark */ = 5DA7A7170A2A42B10078C0A3 /* PBXTextBookmark */; - }; - sourceControlManager = 5D1271300A254DFF00749CBB /* Source Control */; - userBuildSettings = { - }; - }; - 5D1271210A254DE000749CBB /* FSCopyObject */ = { - isa = PBXExecutable; - activeArgIndex = 2147483647; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - configStateDict = { - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = FSCopyObject; - sourceDirectories = ( - ); - }; - 5D1271300A254DFF00749CBB /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - }; - scmType = ""; - }; - 5D1271310A254DFF00749CBB /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 5DA7A70D0A2A421F0078C0A3 /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = D453246105B3E83B007EC99B /* FSCopyObject.h */; - }; - 5DA7A7170A2A42B10078C0A3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = D453246105B3E83B007EC99B /* FSCopyObject.h */; - name = "#define dwarning(s)\t\t\t\t\tdo { printf s; fflush(stderr); } while( 0 )"; - rLen = 74; - rLoc = 2916; - rType = 0; - vrLen = 2645; - vrLoc = 0; - }; - 8DD76F840486A9BA00D96B5E /* FSCopyObject */ = { - activeExec = 0; - executables = ( - 5D1271210A254DE000749CBB /* FSCopyObject */, - ); - }; - D453246005B3E83B007EC99B /* FSCopyObject.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1917, 37753}}"; - sepNavSelRange = "{18263, 12}"; - sepNavVisRect = "{{0, 8546}, {740, 180}}"; - sepNavWindowFrame = "{{0, 0}, {921, 1002}}"; - }; - }; - D453246105B3E83B007EC99B /* FSCopyObject.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {938, 4902}}"; - sepNavSelRange = "{2916, 74}"; - sepNavVisRect = "{{0, 0}, {882, 873}}"; - sepNavWindowFrame = "{{0, 0}, {921, 1002}}"; - }; - }; - D453246405B3E83B007EC99B /* HelloWorldTool.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {962, 5548}}"; - sepNavSelRange = "{10592, 3}"; - sepNavVisRect = "{{0, 4317}, {740, 180}}"; - sepNavWindowFrame = "{{15, -5}, {921, 1002}}"; - }; - }; -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-27 19:17:54
|
Revision: 1432 Author: creecode Date: 2006-06-27 12:17:17 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1432&view=rev Log Message: ----------- add FSCopyObject Added Paths: ----------- Frontier/branches/FSRef_Migration/Common/FSCopyObject/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.mcp Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/project.pbxproj Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/project.pbxproj Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/project.pbxproj Frontier/branches/FSRef_Migration/Common/FSCopyObject/ReadMe.txt Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/ConsoleSIOUX.plc Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/FSCopyObject.c Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/FSCopyObject.h Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/GenLinkedList.c Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/GenLinkedList.h Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/HelloWorld.c Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/HelloWorldTool.c Frontier/branches/FSRef_Migration/Common/FSCopyObject/Sources/carb.r Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Carbon Debug Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Classic Debug Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/Info.plist Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/MacOS/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/MacOS/FSCopyObject Mach-O Debug Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/PkgInfo Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/Resources/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/Resources/English.lproj/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject Mach-O Debug.app/Contents/Resources/English.lproj/InfoPlist.strings Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/categories.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/cdecls.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/decls.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/files.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/imports.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/pbxindex.header Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/protocols.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/refs.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/strings.pbxstrings/ Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/strings.pbxstrings/control Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/strings.pbxstrings/strings Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/subclasses.pbxbtree Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject.build/FSCopyObject.pbxindex/symbols0.pbxsymbols Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject_CW_D Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject_PB_D Frontier/branches/FSRef_Migration/Common/FSCopyObject/build/FSCopyObject_X_D Added: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.mcp =================================================================== (Binary files differ) Property changes on: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.mcp ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/project.pbxproj =================================================================== --- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/project.pbxproj (rev 0) +++ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/project.pbxproj 2006-06-27 19:17:17 UTC (rev 1432) @@ -0,0 +1,284 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 38; + objects = { + 014CEA4C0018CE3E11CA2923 = { + buildRules = ( + ); + buildSettings = { + COPY_PHASE_STRIP = NO; + OPTIMIZATION_CFLAGS = "-O0"; + }; + isa = PBXBuildStyle; + name = Development; + }; +//010 +//011 +//012 +//013 +//014 +//030 +//031 +//032 +//033 +//034 + 034768E4FF38A6EB11DB9C8B = { + isa = PBXExecutableFileReference; + path = FSCopyObject_PB_D; + refType = 3; + }; +//030 +//031 +//032 +//033 +//034 +//080 +//081 +//082 +//083 +//084 + 08FB7793FE84155DC02AAC07 = { + buildStyles = ( + 014CEA4C0018CE3E11CA2923, + ); + hasScannedForEncodings = 1; + isa = PBXProject; + mainGroup = 08FB7794FE84155DC02AAC07; + projectDirPath = ""; + targets = ( + 08FB779FFE84155DC02AAC07, + ); + }; + 08FB7794FE84155DC02AAC07 = { + children = ( + 08FB7795FE84155DC02AAC07, + 08FB779DFE84155DC02AAC07, + 1A8B4A8EFE9D542A11CA2CBB, + ); + isa = PBXGroup; + name = FSCopyObject; + refType = 4; + }; + 08FB7795FE84155DC02AAC07 = { + children = ( + FBA28BC503EF74A90DC9188A, + FB5C175F03EF56350DC9188A, + FB5C176103EF56390DC9188A, + F5D86944046F9D9601E12ADD, + F5D86946046F9D9C01E12ADD, + ); + isa = PBXGroup; + name = Source; + refType = 4; + }; + 08FB779DFE84155DC02AAC07 = { + children = ( + FB5C185003EF56860DC9188A, + ); + isa = PBXGroup; + name = "External Frameworks and Libraries"; + refType = 4; + }; + 08FB779FFE84155DC02AAC07 = { + buildPhases = ( + 08FB77A0FE84155DC02AAC07, + 08FB77A1FE84155DC02AAC07, + 08FB77A3FE84155DC02AAC07, + 08FB77A5FE84155DC02AAC07, + C6859E9E029092A704C91782, + ); + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ""; + HEADER_SEARCH_PATHS = ""; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = FSCopyObject_PB_D; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; + }; + dependencies = ( + ); + isa = PBXToolTarget; + name = FSCopyObject; + productInstallPath = "$(HOME)/bin"; + productName = FSCopyObject; + productReference = 034768E4FF38A6EB11DB9C8B; + }; + 08FB77A0FE84155DC02AAC07 = { + buildActionMask = 2147483647; + files = ( + FB5C176203EF56390DC9188A, + F5D86947046F9D9C01E12ADD, + ); + isa = PBXHeadersBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 08FB77A1FE84155DC02AAC07 = { + buildActionMask = 2147483647; + files = ( + FB5C176003EF56350DC9188A, + FBA28BC603EF74A90DC9188A, + F5D86945046F9D9601E12ADD, + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 08FB77A3FE84155DC02AAC07 = { + buildActionMask = 2147483647; + files = ( + FB5C191E03EF56860DC9188A, + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 08FB77A5FE84155DC02AAC07 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXRezBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; +//080 +//081 +//082 +//083 +//084 +//1A0 +//1A1 +//1A2 +//1A3 +//1A4 + 1A8B4A8EFE9D542A11CA2CBB = { + children = ( + 034768E4FF38A6EB11DB9C8B, + ); + isa = PBXGroup; + name = Products; + refType = 4; + }; +//1A0 +//1A1 +//1A2 +//1A3 +//1A4 +//C60 +//C61 +//C62 +//C63 +//C64 + C6859E9E029092A704C91782 = { + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + isa = PBXCopyFilesBuildPhase; + runOnlyForDeploymentPostprocessing = 1; + }; +//C60 +//C61 +//C62 +//C63 +//C64 +//F50 +//F51 +//F52 +//F53 +//F54 + F5D86944046F9D9601E12ADD = { + fileEncoding = 30; + isa = PBXFileReference; + name = GenLinkedList.c; + path = Sources/GenLinkedList.c; + refType = 4; + }; + F5D86945046F9D9601E12ADD = { + fileRef = F5D86944046F9D9601E12ADD; + isa = PBXBuildFile; + settings = { + }; + }; + F5D86946046F9D9C01E12ADD = { + fileEncoding = 30; + isa = PBXFileReference; + name = GenLinkedList.h; + path = Sources/GenLinkedList.h; + refType = 4; + }; + F5D86947046F9D9C01E12ADD = { + fileRef = F5D86946046F9D9C01E12ADD; + isa = PBXBuildFile; + settings = { + }; + }; +//F50 +//F51 +//F52 +//F53 +//F54 +//FB0 +//FB1 +//FB2 +//FB3 +//FB4 + FB5C175F03EF56350DC9188A = { + fileEncoding = 30; + isa = PBXFileReference; + name = FSCopyObject.c; + path = Sources/FSCopyObject.c; + refType = 4; + }; + FB5C176003EF56350DC9188A = { + fileRef = FB5C175F03EF56350DC9188A; + isa = PBXBuildFile; + settings = { + }; + }; + FB5C176103EF56390DC9188A = { + fileEncoding = 30; + isa = PBXFileReference; + name = FSCopyObject.h; + path = Sources/FSCopyObject.h; + refType = 4; + }; + FB5C176203EF56390DC9188A = { + fileRef = FB5C176103EF56390DC9188A; + isa = PBXBuildFile; + settings = { + }; + }; + FB5C185003EF56860DC9188A = { + isa = PBXFrameworkReference; + name = CoreServices.framework; + path = /System/Library/Frameworks/CoreServices.framework; + refType = 0; + }; + FB5C191E03EF56860DC9188A = { + fileRef = FB5C185003EF56860DC9188A; + isa = PBXBuildFile; + settings = { + }; + }; + FBA28BC503EF74A90DC9188A = { + fileEncoding = 30; + isa = PBXFileReference; + name = HelloWorldTool.c; + path = Sources/HelloWorldTool.c; + refType = 4; + }; + FBA28BC603EF74A90DC9188A = { + fileRef = FBA28BC503EF74A90DC9188A; + isa = PBXBuildFile; + settings = { + }; + }; + }; + rootObject = 08FB7793FE84155DC02AAC07; +} Property changes on: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.pbproj/project.pbxproj ___________________________________________________________________ Name: svn:executable + * Added: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/project.pbxproj =================================================================== --- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/project.pbxproj (rev 0) +++ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/project.pbxproj 2006-06-27 19:17:17 UTC (rev 1432) @@ -0,0 +1,321 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 39; + objects = { + 014CEA4C0018CE3E11CA2923 = { + buildRules = ( + ); + buildSettings = { + COPY_PHASE_STRIP = NO; + DEBUGGING_SYMBOLS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OPTIMIZATION_CFLAGS = "-O0"; + }; + isa = PBXBuildStyle; + name = Development; + }; + 014CEA4D0018CE3E11CA2923 = { + buildRules = ( + ); + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + }; + isa = PBXBuildStyle; + name = Deployment; + }; +//010 +//011 +//012 +//013 +//014 +//080 +//081 +//082 +//083 +//084 + 08FB7793FE84155DC02AAC07 = { + buildSettings = { + }; + buildStyles = ( + 014CEA4C0018CE3E11CA2923, + 014CEA4D0018CE3E11CA2923, + ); + hasScannedForEncodings = 1; + isa = PBXProject; + mainGroup = 08FB7794FE84155DC02AAC07; + projectDirPath = ""; + targets = ( + 8DD76F840486A9BA00D96B5E, + ); + }; + 08FB7794FE84155DC02AAC07 = { + children = ( + 08FB7795FE84155DC02AAC07, + 08FB779DFE84155DC02AAC07, + 1A8B4A8EFE9D542A11CA2CBB, + ); + isa = PBXGroup; + name = FSCopyObject_X_D; + refType = 4; + sourceTree = "<group>"; + }; + 08FB7795FE84155DC02AAC07 = { + children = ( + D453246005B3E83B007EC99B, + D453246105B3E83B007EC99B, + D453246205B3E83B007EC99B, + D453246305B3E83B007EC99B, + D453246405B3E83B007EC99B, + ); + isa = PBXGroup; + name = Source; + refType = 4; + sourceTree = "<group>"; + }; + 08FB779DFE84155DC02AAC07 = { + children = ( + 097DBE83FE8419DDC02AAC07, + ); + isa = PBXGroup; + name = "External Frameworks and Libraries"; + refType = 4; + sourceTree = "<group>"; + }; +//080 +//081 +//082 +//083 +//084 +//090 +//091 +//092 +//093 +//094 + 097DBE83FE8419DDC02AAC07 = { + fallbackIsa = PBXFileReference; + isa = PBXFrameworkReference; + lastKnownFileType = wrapper.framework; + name = CoreServices.framework; + path = /System/Library/Frameworks/CoreServices.framework; + refType = 0; + sourceTree = "<absolute>"; + }; +//090 +//091 +//092 +//093 +//094 +//1A0 +//1A1 +//1A2 +//1A3 +//1A4 + 1A8B4A8EFE9D542A11CA2CBB = { + children = ( + 8DD76F8E0486A9BA00D96B5E, + ); + isa = PBXGroup; + name = Products; + refType = 4; + sourceTree = "<group>"; + }; +//1A0 +//1A1 +//1A2 +//1A3 +//1A4 +//8D0 +//8D1 +//8D2 +//8D3 +//8D4 + 8DD76F840486A9BA00D96B5E = { + buildPhases = ( + 8DD76F850486A9BA00D96B5E, + 8DD76F860486A9BA00D96B5E, + 8DD76F880486A9BA00D96B5E, + 8DD76F8A0486A9BA00D96B5E, + 8DD76F8B0486A9BA00D96B5E, + ); + buildRules = ( + ); + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = ""; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = FSCopyObject_X_D; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; + }; + dependencies = ( + ); + isa = PBXNativeTarget; + name = FSCopyObject; + productInstallPath = "$(HOME)/bin"; + productName = FSCopyObject_X_D; + productReference = 8DD76F8E0486A9BA00D96B5E; + productType = "com.apple.product-type.tool"; + }; + 8DD76F850486A9BA00D96B5E = { + buildActionMask = 2147483647; + files = ( + D453246605B3E83B007EC99B, + D453246805B3E83B007EC99B, + ); + isa = PBXHeadersBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 8DD76F860486A9BA00D96B5E = { + buildActionMask = 2147483647; + files = ( + D453246505B3E83B007EC99B, + D453246705B3E83B007EC99B, + D453246905B3E83B007EC99B, + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 8DD76F880486A9BA00D96B5E = { + buildActionMask = 2147483647; + files = ( + 8DD76F890486A9BA00D96B5E, + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 8DD76F890486A9BA00D96B5E = { + fileRef = 097DBE83FE8419DDC02AAC07; + isa = PBXBuildFile; + settings = { + }; + }; + 8DD76F8A0486A9BA00D96B5E = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXRezBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 8DD76F8B0486A9BA00D96B5E = { + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + isa = PBXCopyFilesBuildPhase; + runOnlyForDeploymentPostprocessing = 1; + }; + 8DD76F8E0486A9BA00D96B5E = { + explicitFileType = "compiled.mach-o.executable"; + includeInIndex = 0; + isa = PBXFileReference; + path = FSCopyObject_X_D; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; +//8D0 +//8D1 +//8D2 +//8D3 +//8D4 +//D40 +//D41 +//D42 +//D43 +//D44 + D453246005B3E83B007EC99B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = FSCopyObject.c; + path = Sources/FSCopyObject.c; + refType = 4; + sourceTree = "<group>"; + }; + D453246105B3E83B007EC99B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = FSCopyObject.h; + path = Sources/FSCopyObject.h; + refType = 4; + sourceTree = "<group>"; + }; + D453246205B3E83B007EC99B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = GenLinkedList.c; + path = Sources/GenLinkedList.c; + refType = 4; + sourceTree = "<group>"; + }; + D453246305B3E83B007EC99B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = GenLinkedList.h; + path = Sources/GenLinkedList.h; + refType = 4; + sourceTree = "<group>"; + }; + D453246405B3E83B007EC99B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = HelloWorldTool.c; + path = Sources/HelloWorldTool.c; + refType = 4; + sourceTree = "<group>"; + }; + D453246505B3E83B007EC99B = { + fileRef = D453246005B3E83B007EC99B; + isa = PBXBuildFile; + settings = { + }; + }; + D453246605B3E83B007EC99B = { + fileRef = D453246105B3E83B007EC99B; + isa = PBXBuildFile; + settings = { + }; + }; + D453246705B3E83B007EC99B = { + fileRef = D453246205B3E83B007EC99B; + isa = PBXBuildFile; + settings = { + }; + }; + D453246805B3E83B007EC99B = { + fileRef = D453246305B3E83B007EC99B; + isa = PBXBuildFile; + settings = { + }; + }; + D453246905B3E83B007EC99B = { + fileRef = D453246405B3E83B007EC99B; + isa = PBXBuildFile; + settings = { + }; + }; + }; + rootObject = 08FB7793FE84155DC02AAC07; +} Property changes on: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcode/project.pbxproj ___________________________________________________________________ Name: svn:executable + * Added: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 =================================================================== --- Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 (rev 0) +++ Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.mode1 2006-06-27 19:17:17 UTC (rev 1432) @@ -0,0 +1,1358 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActivePerspectiveName</key> + <string>Project</string> + <key>AllowedModules</key> + <array> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Name</key> + <string>Groups and Files Outline View</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Name</key> + <string>Editor</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCTaskListModule</string> + <key>Name</key> + <string>Task List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDetailModule</string> + <key>Name</key> + <string>File and Smart Group Detail Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Name</key> + <string>Detailed Build Results Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Name</key> + <string>Project Batch Find Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXRunSessionModule</string> + <key>Name</key> + <string>Run Log</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Name</key> + <string>Bookmarks Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Name</key> + <string>Class Browser</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Name</key> + <string>Source Code Control Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXDebugBreakpointsModule</string> + <key>Name</key> + <string>Debug Breakpoints Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDockableInspector</string> + <key>Name</key> + <string>Inspector</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXOpenQuicklyModule</string> + <key>Name</key> + <string>Open Quickly Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Name</key> + <string>Debugger</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Name</key> + <string>Debug Console</string> + </dict> + </array> + <key>Description</key> + <string>DefaultDescriptionKey</string> + <key>DockingSystemVisible</key> + <false/> + <key>Extension</key> + <string>mode1</string> + <key>FavBarConfig</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>5D1271350A254F9D00749CBB</string> + <key>XCBarModuleItemNames</key> + <dict/> + <key>XCBarModuleItems</key> + <array/> + </dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>com.apple.perspectives.project.mode1</string> + <key>MajorVersion</key> + <integer>31</integer> + <key>MinorVersion</key> + <integer>1</integer> + <key>Name</key> + <string>Default</string> + <key>Notifications</key> + <array/> + <key>OpenEditors</key> + <array> + <dict> + <key>Content</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>5DA7A7150A2A42B10078C0A3</string> + <key>PBXProjectModuleLabel</key> + <string>FSCopyObject.h</string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>5DA7A7160A2A42B10078C0A3</string> + <key>PBXProjectModuleLabel</key> + <string>FSCopyObject.h</string> + <key>_historyCapacity</key> + <integer>0</integer> + <key>bookmark</key> + <string>5DA7A7170A2A42B10078C0A3</string> + <key>history</key> + <array> + <string>5DA7A70D0A2A421F0078C0A3</string> + </array> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>Geometry</key> + <dict> + <key>Frame</key> + <string>{{0, 20}, {921, 905}}</string> + <key>PBXModuleWindowStatusBarHidden2</key> + <false/> + <key>RubberWindowFrame</key> + <string>0 56 921 946 0 0 1280 1002 </string> + </dict> + </dict> + </array> + <key>PerspectiveWidths</key> + <array> + <integer>-1</integer> + <integer>-1</integer> + </array> + <key>Perspectives</key> + <array> + <dict> + <key>ChosenToolbarItems</key> + <array> + <string>active-target-popup</string> + <string>action</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>buildOrClean</string> + <string>build-and-runOrDebug</string> + <string>com.apple.ide.PBXToolbarStopButton</string> + <string>get-info</string> + <string>toggle-editor</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>com.apple.pbx.toolbar.searchfield</string> + </array> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProjectWithEditor</string> + <key>Identifier</key> + <string>perspective.project</string> + <key>IsVertical</key> + <false/> + <key>Layout</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C08E77C0454961000C914BD</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>186</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>08FB7794FE84155DC02AAC07</string> + <string>1C37FABC05509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 338}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <true/> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 356}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>186</real> + </array> + <key>RubberWindowFrame</key> + <string>360 380 690 397 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>203pt</string> + </dict> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20306471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>MyNewFile14.java</string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20406471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>MyNewFile14.java</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {482, 0}}</string> + <key>RubberWindowFrame</key> + <string>360 380 690 397 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>0pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20506471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 5}, {482, 351}}</string> + <key>RubberWindowFrame</key> + <string>360 380 690 397 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>351pt</string> + </dict> + </array> + <key>Proportion</key> + <string>482pt</string> + </dict> + </array> + <key>Name</key> + <string>Project</string> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + <string>XCModuleDock</string> + <string>PBXNavigatorGroup</string> + <string>XCDetailModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>5DA7A7130A2A42B10078C0A3</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>5DA7A7140A2A42B10078C0A3</string> + <string>1CE0B20306471E060097A5F4</string> + <string>1CE0B20506471E060097A5F4</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.default</string> + </dict> + <dict> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProject</string> + <key>Identifier</key> + <string>perspective.morph</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C08E77C0454961000C914BD</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>11E0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>186</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>29B97314FDCFA39411CA2CEA</string> + <string>1C37FABC05509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 337}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>1</integer> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 355}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>186</real> + </array> + <key>RubberWindowFrame</key> + <string>373 269 690 397 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Morph</string> + <key>PreferredWidth</key> + <integer>300</integer> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>11E0B1FE06471DED0097A5F4</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.default.short</string> + </dict> + </array> + <key>PerspectivesBarVisible</key> + <false/> + <key>ShelfIsVisible</key> + <false/> + <key>SourceDescription</key> + <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> + <key>StatusbarIsVisible</key> + <true/> + <key>TimeStamp</key> + <real>0.0</real> + <key>ToolbarDisplayMode</key> + <integer>1</integer> + <key>ToolbarIsVisible</key> + <true/> + <key>ToolbarSizeMode</key> + <integer>1</integer> + <key>Type</key> + <string>Perspectives</string> + <key>UpdateMessage</key> + <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> + <key>WindowJustification</key> + <integer>5</integer> + <key>WindowOrderList</key> + <array> + <string>1C530D57069F1CE1000CFCEE</string> + <string>5DA7A7150A2A42B10078C0A3</string> + <string>/Users/creedon/Development/Frontier/Common/FSCopyObject/FSCopyObject.xcodeproj</string> + </array> + <key>WindowString</key> + <string>360 380 690 397 0 0 1280 1002 </string> + <key>WindowTools</key> + <array> + <dict> + <key>Identifier</key> + <string>windowTool.build</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528F0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052900623707200166675</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {500, 215}}</string> + <key>RubberWindowFrame</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>218pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>PBXProjectModuleLabel</key> + <string>Build</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 222}, {500, 236}}</string> + <key>RubberWindowFrame</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Proportion</key> + <string>236pt</string> + </dict> + </array> + <key>Proportion</key> + <string>458pt</string> + </dict> + </array> + <key>Name</key> + <string>Build Results</string> + <key>ServiceClasses</key> + <array> + <string>PBXBuildResultsModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAA5065D492600B07095</string> + <string>1C78EAA6065D492600B07095</string> + <string>1CD0528F0623707200166675</string> + <string>XCMainBuildResultsModuleGUID</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.build</string> + <key>WindowString</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugger</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>Debugger</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {317, 164}}</string> + <string>{{317, 0}, {377, 164}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {694, 164}}</string> + <string>{{0, 164}, {694, 216}}</string> + </array> + </dict> + </dict> + <key>LauncherConfigVersion</key> + <string>8</string> + <key>PBXProjectModuleGUID</key> + <string>1C162984064C10D400B95A72</string> + <key>PBXProjectModuleLabel</key> + <string>Debug - GLUTExamples (Underwater)</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>DebugConsoleDrawerSize</key> + <string>{100, 120}</string> + <key>DebugConsoleVisible</key> + <string>None</string> + <key>DebugConsoleWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>DebugSTDIOWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>Frame</key> + <string>{{0, 0}, {694, 380}}</string> + <key>RubberWindowFrame</key> + <string>321 238 694 422 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debugger</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CD10A99069EF8BA00B06720</string> + <string>1C0AD2AB069F1E9B00FABCE6</string> + <string>1C162984064C10D400B95A72</string> + <string>1C0AD2AC069F1E9B00FABCE6</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debug</string> + <key>WindowString</key> + <string>321 238 694 422 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CD10A99069EF8BA00B06720</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.find</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CDD528C0622207200134675</string> + <key>PBXProjectModuleLabel</key> + <string>HelloWorldTool.c</string> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {781, 212}}</string> + <key>RubberWindowFrame</key> + <string>381 284 781 470 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>781pt</string> + </dict> + </array> + <key>Proportion</key> + <string>212pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528E0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Project Find</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 217}, {781, 212}}</string> + <key>RubberWindowFrame</key> + <string>381 284 781 470 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Proportion</key> + <string>212pt</string> + </dict> + </array> + <key>Proportion</key> + <string>429pt</string> + </dict> + </array> + <key>Name</key> + <string>Project Find</string> + <key>ServiceClasses</key> + <array> + <string>PBXProjectFindModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>1C530D57069F1CE1000CFCEE</string> + <string>5DA7A7110A2A42AF0078C0A3</string> + <string>5DA7A7120A2A42AF0078C0A3</string> + <string>1CDD528C0622207200134675</string> + <string>1CD0528E0623707200166675</string> + </array> + <key>WindowString</key> + <string>381 284 781 470 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1C530D57069F1CE1000CFCEE</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>Identifier</key> + <string>MENUSEPARATOR</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debuggerConsole</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAAC065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string>Debugger Console</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {440, 358}}</string> + <key>RubberWindowFrame</key> + <string>650 41 440 400 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Proportion</key> + <string>358pt</string> + </dict> + </array> + <key>Proportion</key> + <string>358pt</string> + </dict> + </array> + <key>Name</key> + <string>Debugger Console</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugCLIModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAAD065D492600B07095</string> + <string>1C78EAAE065D492600B07095</string> + <string>1C78EAAC065D492600B07095</string> + </array> + <key>WindowString</key> + <string>650 41 440 400 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.run</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>LauncherConfigVersion</key> + <string>3</string> + <key>PBXProjectModuleGUID</key> + <string>1CD0528B0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Run</string> + <key>Runner</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {493, 167}}</string> + <string>{{0, 176}, {493, 267}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {405, 443}}</string> + <string>{{414, 0}, {514, 443}}</string> + </array> + </dict> + </dict> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {460, 159}}</string> + <key>RubberWindowFrame</key> + <string>316 696 459 200 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXRunSessionModule</string> + <key>Proportion</key> + <string>159pt</string> + </dict> + </array> + <key>Proportion</key> + <string>159pt</string> + </dict> + </array> + <key>Name</key> + <string>Run Log</string> + <key>ServiceClasses</key> + <array> + <string>PBXRunSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C0AD2B3069F1EA900FABCE6</string> + <string>1C0AD2B4069F1EA900FABCE6</string> + <string>1CD0528B0623707200166675</string> + <string>1C0AD2B5069F1EA900FABCE6</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.run</string> + <key>WindowString</key> + <string>316 696 459 200 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1C0AD2B3069F1EA900FABCE6</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.scm</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB2065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB3065D492600B07095</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {452, 0}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>0pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052920623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>SCM</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ConsoleFrame</key> + <string>{{0, 259}, {452, 0}}</string> + <key>Frame</key> + <string>{{0, 7}, {452, 259}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + <key>TableConfiguration</key> + <array> + <string>Status</string> + <real>30</real> + <string>FileName</string> + <real>199</real> + <string>Path</string> + <real>197.09500122070312</real> + </array> + <key>TableFrame</key> + <string>{{0, 0}, {452, 250}}</string> + </dict> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Proportion</key> + <string>262pt</string> + </dict> + </array> + <key>Proportion</key> + <string>266pt</string> + </dict> + </array> + <key>Name</key> + <string>SCM</string> + <key>ServiceClasses</key> + <array> + <string>PBXCVSModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAB4065D492600B07095</string> + <string>1C78EAB5065D492600B07095</string> + <string>1C78EAB2065D492600B07095</string> + <string>1CD052920623707200166675</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.scm</string> + <key>WindowString</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.breakpoints</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>no</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>168</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {168, 350}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>0</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {185, 368}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>168</real> + </array> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>185pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA1AED706398EBD00589147</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{190, 0}, {554, 368}}</string> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>554pt</string> + </dict> + </array> + <key>Proportion</key> + <string>368pt</string> + </dict> + </array> + <key>MajorVersion</key> + <integer>2</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>Breakpoints</string> + <key>ServiceClasses</key> + <array> + <string>PBXSmartGroupTreeModule</string> + <string>XCDetailModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CDDB66807F98D9800BB5817</string> + <string>1CDDB66907F98D9800BB5817</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CA1AED706398EBD00589147</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.breakpoints</string> + <key>WindowString</key> + <string>315 424 744 409 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CDDB66807F98D9800BB5817</string> + <key>WindowToolIsVisible</key> + <integer>1</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugAnimator</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debug Visualizer</string> + <key>ServiceClasses</key> + <array> + <string>PBXNavigatorGroup</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugAnimator</string> + <key>WindowString</key> + <string>100 100 700 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.bookmarks</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Bookmarks</string> + <key>ServiceClasses</key> + <array> + <string>PBXBookmarksModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>WindowString</key> + <string>538 42 401 187 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.classBrowser</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>OptionsSetName</key> + <string>Hierarchy, all classes</string> + <key>PBXProjectModuleGUID</key> + <string>1CA6456E063B45B4001379D8</string> + <key>PBXProjectModuleLabel</key> + <string>Class Browser - NSObject</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ClassesFrame</key> + <string>{{0, 0}, {374, 96}}</string> + <key>ClassesTreeTableConfiguration</key> + <array> + <string>PBXClassNameColumnIdentifier</string> + <real>208</real> + <string>PBXClassBookColumnIdentifier</string> + <real>22</real> + </array> + <key>Frame</key> + <string>{{0, 0}, {630, 331}}</string> + <key>MembersFrame</key> + <string>{{0, 105}, {374, 395}}</string> + <key>MembersTreeTableConfiguration</key> + <array> + <string>PBXMemberTypeIconColumnIdentifier</string> + <real>22</real> + <string>PBXMemberNameColumnIdentifier</string> + <real>216</real> + <string>PBXMemberTypeColumnIdentifier</string> + <real>97</real> + <string>PBXMemberBookColumnIdentifier</string> + <real>22</real> + </array> + <key>PBXModuleWindowStatusBarHidden2</key> + <integer>1</integer> + <key>RubberWindowFrame</key> + <string>385 179 630 352 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Name</key> + <string>Class Browser</string> + <key>ServiceClasses</key> + <array> + <string>PBXClassBrowserModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>TableOfContents</key> + <array> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <string>1C0AD2B0069F1E9B00FABCE6</string> + <string>1CA6456E063B45B4001379D8</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.classbrowser</string> + <key>WindowString</key> + <string>385 179 630 352 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + </array> +</dict> +</plist> Added: Frontier/branches/FSRef_Migration/Common/FSCopyObject/FSCopyObject.xcodeproj/creedon.pbxuser =====================... [truncated message content] |
|
From: <cre...@us...> - 2006-06-26 21:52:35
|
Revision: 1431 Author: creecode Date: 2006-06-26 14:52:31 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1431&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/fileloop.c Modified: Frontier/branches/FSRef_Migration/Common/source/fileloop.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/fileloop.c 2006-06-26 21:33:54 UTC (rev 1430) +++ Frontier/branches/FSRef_Migration/Common/source/fileloop.c 2006-06-26 21:52:31 UTC (rev 1431) @@ -36,684 +36,790 @@ #include "fileloop.h" +#ifdef MACVERSION + #include "MoreFilesX.h" -#ifdef MACVERSION -typedef struct tyfilelooprecord { - - short vnum; /*the volume we're looping through*/ - - long dirid; /*the folder we're looking in*/ - - short ixdirectory; /*index for the next file to look at*/ - - hdllistrecord hfilelist; /*a list of filenames to be looped over*/ - } tyfilelooprecord, *ptrfilelooprecord, **hdlfilelooprecord; - - + typedef struct tyfilelooprecord { + + short vnum; /*the volume we're looping through*/ + + long dirid; /*the folder we're looking in*/ + + short ixdirectory; /*index for the next file to look at*/ + + hdllistrecord hfilelist; /*a list of filenames to be looped over*/ + } tyfilelooprecord, *ptrfilelooprecord, **hdlfilelooprecord; +#endif // MACVERSION -static boolean fileloopreleaseitem (Handle h) { -#pragma unused(h) - /* - callback routine that disposes of one of our items. since there are no - handles linked into our handle, there's nothing to release. - - I just wanted to have one of these around so the next guy that uses the - list facilty knows how to link a releaseitem callback routine. - */ - - return (true); - } /*fileloopreleaseitem*/ - +#ifdef WIN95VERSION -boolean diskinitloop (tyfileloopcallback diskfilter, Handle *hdiskloop) { -#pragma unused(diskfilter) + typedef struct tyfindloopinfo + { + tyfilespec fs; + HANDLE findhandle; + tyfileloopcallback ffilter; + boolean doingDrives; + short drivenum; + } findloopinfo; - /* - same as fileinitloop, but for volumes on line +#endif // WIN95VERSION + + +#ifdef MACVERSION - 8/15/92 dmb: added, but commented out, diskfilter support - */ - - tyfilelooprecord info; - ParamBlockRec pb; - register hdlfilelooprecord h; - short ix; - hdllistrecord hlist; - - clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ - - clearbytes (&info, sizeof (info)); - - info.ixdirectory = 1; /*start with the first file*/ - - if (!newfilledhandle (&info, sizeof (info), hdiskloop)) - return (false); - - h = (hdlfilelooprecord) *hdiskloop; /*copy into register*/ - - hlist = nil; - - if (!opnewlist (&hlist, false)) - goto error; - - (**h).hfilelist = hlist; - - opsetreleaseitemcallback (hlist, &fileloopreleaseitem); - - ix = 1; /*start with file index 1*/ - - while (true) { - FSSpec fsvol; - OSErr errcode; - Handle hstring; - #if TARGET_API_MAC_CARBON == 1 - HFSUniStr255 theName; - //Code change by Timothy Paustian Thursday, June 29, 2000 10:29:59 AM - //Updated to modern call for volume infomation - //Ii am checking this now against the original. - FSVolumeRefNum vRefNum;//this is just a SInt16 + static boolean fileloopreleaseitem (Handle h) { + #pragma unused(h) + + /* + callback routine that disposes of one of our items. since there are no + handles linked into our handle, there's nothing to release. - //Watch out that the fsvol.name parameter works as expected. - //this is still not working the way it should - errcode = FSGetVolumeInfo(0, ix, &vRefNum, kFSVolInfoNone, nil, &theName, nil); - if (errcode == nsvErr) /*not an error, just ran out of volumes*/ - return (true); + I just wanted to have one of these around so the next guy that uses the + list facilty knows how to link a releaseitem callback routine. + */ - { - UnicodeToTextInfo theInfo; - UnicodeMapping theMapping; - theMapping.unicodeEncoding = kTextEncodingUnicodeDefault; - theMapping.otherEncoding = kTextEncodingMacRoman; - theMapping.mappingVersion = kUnicodeUseLatestMapping; - errcode = CreateUnicodeToTextInfo(&theMapping,&theInfo); - if (oserror (errcode)) // 1/29/97 dmb: call oserror - goto error; - //fsvol.name[0] = theName.length; - errcode = ConvertFromUnicodeToPString (theInfo, theName.length * 2, theName.unicode, fsvol.name); - if (oserror (errcode)) // 1/29/97 dmb: call oserror - goto error; - } - ix++; - fsvol.vRefNum = vRefNum; + return (true); + } /*fileloopreleaseitem*/ - #else //not carbon - pb.volumeParam.ioVolIndex = ix++; + + boolean diskinitloop (tyfileloopcallback diskfilter, Handle *hdiskloop) { + #pragma unused(diskfilter) + + /* + same as fileinitloop, but for volumes on line - pb.volumeParam.ioNamePtr = fsvol.name; + 8/15/92 dmb: added, but commented out, diskfilter support + */ - errcode = PBGetVInfoSync (&pb); - fsvol.vRefNum = pb.volumeParam.ioVRefNum; + tyfilelooprecord info; + ParamBlockRec pb; + register hdlfilelooprecord h; + short ix; + hdllistrecord hlist; - if (errcode == nsvErr) /*not an error, just ran out of volumes*/ - return (true); - #endif//end carbon + clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ - if (errcode == nsvErr) /*not an error, just ran out of volumes*/ - return (true); + clearbytes (&info, sizeof (info)); - if (oserror (errcode)) // 1/29/97 dmb: call oserror - goto error; + info.ixdirectory = 1; /*start with the first file*/ - fsvol.parID = fsRtParID; + if (!newfilledhandle (&info, sizeof (info), hdiskloop)) + return (false); - if (!newfilledhandle (&fsvol, sizeof (fsvol), &hstring)) - goto error; + h = (hdlfilelooprecord) *hdiskloop; /*copy into register*/ - if (!oppushhandle (hlist, nil, (Handle) hstring)) + hlist = nil; + + if (!opnewlist (&hlist, false)) goto error; - - } /*while*/ - - error: - - opdisposelist (hlist); - - disposehandle (*hdiskloop); - - *hdiskloop = nil; - - return (false); - } /*diskinitloop*/ - - -boolean fileinitloop (const tyfilespec *fs, tyfileloopcallback filefilter, Handle *hfileloop) { -#pragma unused(filefilter) - - /* - a conglomeration of filemanager incantations which sets up a UserLand - fileloop construct. we create a new handle (allows fileloops to be - nested inside other file loops, not statically allocated) and fill it - with information that each iteration of a fileloop will need. took - a minimum of two days fiddling (3/16-17/90) to get this to work -- DW. - - 12/6/91 dmb: generate dirNFErr when fileparsevolname fails - - 8/15/92 dmb: added, but commented out, filefilter support - - 2.1b2 dmb: updated to use filespecs - - 3.0.2 dmb: make sure fs is a folder, not a file - */ - - tyfilelooprecord info; - CInfoPBRec pb; - long dirid; - register hdlfilelooprecord h; - short ix; - hdllistrecord hlist; - - clearbytes (&pb, sizeof (CInfoPBRec)); /*init all fields to zero*/ - - setoserrorparam ((ptrstring) (*fs).name); - - pb.hFileInfo.ioVRefNum = (*fs).vRefNum; - - pb.hFileInfo.ioDirID = (*fs).parID; - - pb.hFileInfo.ioNamePtr = (StringPtr) (*fs).name; - - if (oserror (PBGetCatInfoSync (&pb))) - return (false); - - if (!foldertest (&pb)) { /*3.0.2*/ - oserror (dirNFErr); + (**h).hfilelist = hlist; - return (false); - } - - dirid = pb.dirInfo.ioDrDirID; /*must remember this for loop body*/ - - clearbytes (&info, sizeof (info)); - - info.vnum = pb.hFileInfo.ioVRefNum; - - info.dirid = pb.hFileInfo.ioDirID; - - info.ixdirectory = 1; /*start with the first file*/ - - if (!newfilledhandle (&info, sizeof (info), hfileloop)) - return (false); - - h = (hdlfilelooprecord) *hfileloop; /*copy into register*/ - - hlist = nil; - - if (!opnewlist (&hlist, false)) - goto error; + opsetreleaseitemcallback (hlist, &fileloopreleaseitem); - (**h).hfilelist = hlist; - - opsetreleaseitemcallback (hlist, &fileloopreleaseitem); - - ix = 1; /*start with file index 1*/ - - while (true) { + ix = 1; /*start with file index 1*/ - bigstring bsfile; - Handle hstring; - OSErr errcode; + while (true) { + FSSpec fsvol; + OSErr errcode; + Handle hstring; + #if TARGET_API_MAC_CARBON == 1 + HFSUniStr255 theName; + //Code change by Timothy Paustian Thursday, June 29, 2000 10:29:59 AM + //Updated to modern call for volume infomation + //Ii am checking this now against the original. + FSVolumeRefNum vRefNum;//this is just a SInt16 + + //Watch out that the fsvol.name parameter works as expected. + //this is still not working the way it should + errcode = FSGetVolumeInfo(0, ix, &vRefNum, kFSVolInfoNone, nil, &theName, nil); + if (errcode == nsvErr) /*not an error, just ran out of volumes*/ + return (true); + + { + UnicodeToTextInfo theInfo; + UnicodeMapping theMapping; + theMapping.unicodeEncoding = kTextEncodingUnicodeDefault; + theMapping.otherEncoding = kTextEncodingMacRoman; + theMapping.mappingVersion = kUnicodeUseLatestMapping; + errcode = CreateUnicodeToTextInfo(&theMapping,&theInfo); + if (oserror (errcode)) // 1/29/97 dmb: call oserror + goto error; + //fsvol.name[0] = theName.length; + errcode = ConvertFromUnicodeToPString (theInfo, theName.length * 2, theName.unicode, fsvol.name); + if (oserror (errcode)) // 1/29/97 dmb: call oserror + goto error; + } + ix++; + fsvol.vRefNum = vRefNum; + + #else //not carbon + pb.volumeParam.ioVolIndex = ix++; + + pb.volumeParam.ioNamePtr = fsvol.name; + + errcode = PBGetVInfoSync (&pb); + fsvol.vRefNum = pb.volumeParam.ioVRefNum; + + if (errcode == nsvErr) /*not an error, just ran out of volumes*/ + return (true); + #endif//end carbon + + if (errcode == nsvErr) /*not an error, just ran out of volumes*/ + return (true); + + if (oserror (errcode)) // 1/29/97 dmb: call oserror + goto error; + + fsvol.parID = fsRtParID; + + if (!newfilledhandle (&fsvol, sizeof (fsvol), &hstring)) + goto error; + + if (!oppushhandle (hlist, nil, (Handle) hstring)) + goto error; + + } /*while*/ - pb.dirInfo.ioDrDirID = dirid; /*may be smashed by ioFlNum on previous loop*/ + error: - pb.dirInfo.ioFDirIndex = ix++; + opdisposelist (hlist); - pb.dirInfo.ioNamePtr = bsfile; + disposehandle (*hdiskloop); - errcode = PBGetCatInfoSync (&pb); + *hdiskloop = nil; - if (errcode == fnfErr) /*not an error, just ran out of files*/ - return (true); - - #if TARGET_API_MAC_CARBON == 1 - - if (errcode == dirNFErr) /*On OS X, this is what's returned for a read permission error. Weird.*/ - return (true); + return (false); + } /*diskinitloop*/ - if (errcode == afpAccessDenied) /* 2005-01-05 creedon - don't bail when user does not have the correct permissions < http://sourceforge.net/tracker/index.php?func=detail&aid=1096641&group_id=120666&atid=687798 > */ - return (true); - #endif + boolean diskloop (tyfileloopcallback diskcallback, long refcon) { - if (oserror (errcode)) /*errcode != noErr*/ - goto error; + /* + dmb 9/21/93: filegetvolumeinfo takes a vRefNum, not a string. + */ - /*if it's a folder, insert a colon at the end of the file name*/ + HVolumeParam pb; + short ix; - if (foldertest (&pb)) - if (!pushchar (':', bsfile)) - goto error; + clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ - /* - if (filefilter != nil) { + ix = 1; /*start with file index 1*/ + + while (true) { - if (!(*filefilter) (bspath, bsfile)) - continue; + bigstring bsvolume; + tyfileinfo info; + OSErr errcode; + + pb.ioVolIndex = ix++; + + pb.ioNamePtr = bsvolume; + + errcode = PBHGetVInfoSync ((HParmBlkPtr) &pb); + + if (errcode == nsvErr) /*not an error, just ran out of volumes*/ + return (true); + + if (oserror (errcode)) + return (false); + + filegetvolumeinfo (pb.ioVRefNum, &info); + + if (!(*diskcallback) (bsvolume, &info, refcon)) + return (false); + } /*while*/ + } /*diskloop*/ + +#endif // MACVERSION + + +#ifdef WIN95VERSION + + static boolean initfileloopspec (tyfilespec *fs) + { + HANDLE findHandle; + WIN32_FIND_DATA fileinfo; + char fn[300]; + char * filename; + short isFolder; + + copystring (fsname (fs), fn); + filename = fsname (fs); + + if (fileisvolume (fs)) { + cleanendoffilename (fsname (fs)); + appendcstring (filename, "\\*"); + return (true); } - */ + + cleanendoffilename (fn); + nullterminate (fn); - if (!newtexthandle (bsfile, &hstring)) - goto error; + findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + + if (findHandle == INVALID_HANDLE_VALUE) + { + oserror (GetLastError()); + return (false); //no match + } + + isFolder = (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)?true:false; + + if (FindNextFile (findHandle, &fileinfo)) + { + FindClose (findHandle); + return (true); //wild card must be present to find second + } + + FindClose (findHandle); - if (!oppushhandle (hlist, nil, (Handle) hstring)) - goto error; - } /*while*/ - - error: - - opdisposelist (hlist); - - disposehandle (*hfileloop); - - *hfileloop = nil; - - return (false); - } /*fileinitloop*/ + if (isFolder) { + cleanendoffilename (filename); + appendcstring (filename, "\\*"); -void fileendloop (Handle hfileloop) { - - register hdlfilelooprecord h = (hdlfilelooprecord) hfileloop; - - opdisposelist ((**h).hfilelist); - - disposehandle ((Handle) h); - } /*fileendloop*/ + nullterminate (filename); + } + return (true); + } -boolean filenextloop (Handle hfileloop, tyfilespec *fsfile, boolean *flfolder) { +#endif // WIN95VERSION + + +boolean fileinitloop ( const ptrfilespec fst, tyfileloopcallback filefilter, Handle *hfileloop ) { + + #ifdef MACVERSION - /* - 8/17/92 dmb: we're using text handles now instead of string handles. - - 2.1b2 dmb: now we're using filespecs! - - 2.1b11 dmb: for volumes, whole fsspec is now stashed in handle - - 3.0.2b1 dmb: must set flfolder to true for disks - - 3.0.4b1 dmb: return true of fnfErr; script will have to handle error anyway - - 5.0.2b21 dmb: don't call FSMakeFSSpec for each file; just the first. - */ - - register hdlfilelooprecord h = (hdlfilelooprecord) hfileloop; - Handle hdata; - bigstring bs; - short vnum; - long dirid; - OSErr err; - - if (!opgetlisthandle ((**h).hfilelist, (**h).ixdirectory++, nil, &hdata)) - return (false); - - vnum = (**h).vnum; - - if (vnum == 0) { /*item is a volume, hdata contains refnum*/ + #pragma unused(filefilter) + + // + // a conglomeration of filemanager incantations which sets up a UserLand + // fileloop construct. we create a new handle (allows fileloops to be + // nested inside other file loops, not statically allocated) and fill it + // with information that each iteration of a fileloop will need. took + // a minimum of two days fiddling (3/16-17/90) to get this to work -- DW. + // + // 2006-06-26 creedon: minimally FSRef-ized + // + // 3.0.2 dmb: make sure fs is a folder, not a file + // + // 2.1b2 dmb: updated to use filespecs + // + // 1992-08-15 dmb: added, but commented out, filefilter support + // + // 1991-12-06 dmb: generate dirNFErr when fileparsevolname fails + // - /* - vnum = **(short **) hdata; + tyfilelooprecord info; + CInfoPBRec pb; + long dirid; + register hdlfilelooprecord h; + short ix; + hdllistrecord hlist; + FSSpec fs; + tyfilespec fst2; - setemptystring (bs); - */ + ( void ) extendfilespec ( fst, &fst2 ); - *fsfile = **(FSSpec **) hdata; + FSRefMakeFSSpec ( &fst2.fsref, &fs ); // might need to do more checking here to handle path - *flfolder = true; /*3.0.2b1*/ + clearbytes (&pb, sizeof (CInfoPBRec)); // init all fields to zero - return (true); - } - else { + setoserrorparam ((ptrstring) fs.name); - dirid = (**h).dirid; + pb.hFileInfo.ioVRefNum = fs.vRefNum; - texthandletostring (hdata, bs); + pb.hFileInfo.ioDirID = fs.parID; - *flfolder = bs [*bs] == ':'; + pb.hFileInfo.ioNamePtr = (StringPtr) fs.name; - if (*flfolder) - --*bs; + if (oserror (PBGetCatInfoSync (&pb))) + return (false); - if ((**h).ixdirectory == 2) { //first time + if (!foldertestcipbr (&pb)) { // 3.0.2 - err = FSMakeFSSpec (vnum, dirid, bs, fsfile); + oserror (dirNFErr); - (**h).vnum = (*fsfile).vRefNum; + return (false); - (**h).dirid = (*fsfile).parID; + } + + dirid = pb.dirInfo.ioDrDirID; // must remember this for loop body + + clearbytes (&info, sizeof (info)); + + info.vnum = pb.hFileInfo.ioVRefNum; + + info.dirid = pb.hFileInfo.ioDirID; + + info.ixdirectory = 1; // start with the first file + + if (!newfilledhandle (&info, sizeof (info), hfileloop)) + return (false); + + h = (hdlfilelooprecord) *hfileloop; // copy into register + + hlist = nil; + + if (!opnewlist (&hlist, false)) + goto error; - if ((err == noErr) || (err == fnfErr)) /* 3.0.4b1 dmb */ - return (true); + (**h).hfilelist = hlist; + + opsetreleaseitemcallback (hlist, &fileloopreleaseitem); + + ix = 1; // start with file index 1 + + while (true) { - return (!oserror (err)); /* false */ - } - else { + bigstring bsfile; + Handle hstring; + OSErr errcode; - (*fsfile).vRefNum = vnum; + pb.dirInfo.ioDrDirID = dirid; // may be smashed by ioFlNum on previous loop - (*fsfile).parID = dirid; + pb.dirInfo.ioFDirIndex = ix++; - copystring (bs, (*fsfile).name); + pb.dirInfo.ioNamePtr = bsfile; - return (true); - } - } - } /*filenextloop*/ + errcode = PBGetCatInfoSync (&pb); + + if (errcode == fnfErr) // not an error, just ran out of files + return (true); + + if (errcode == dirNFErr) // On OS X, this is what's returned for a read permission error. Weird. + return (true); + if (errcode == afpAccessDenied) // 2005-01-05 creedon - don't bail when user does not have the correct permissions < http://sourceforge.net/tracker/index.php?func=detail&aid=1096641&group_id=120666&atid=687798 > + return (true); -boolean diskloop (tyfileloopcallback diskcallback, long refcon) { - - /* - dmb 9/21/93: filegetvolumeinfo takes a vRefNum, not a string. - */ - - HVolumeParam pb; - short ix; - - clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ - - ix = 1; /*start with file index 1*/ - - while (true) { + if (oserror (errcode)) // errcode != noErr + goto error; + + // if it's a folder, insert a colon at the end of the file name + + if (foldertestcipbr (&pb)) + if (!pushchar (':', bsfile)) + goto error; + + /* + if (filefilter != nil) { + + if (!(*filefilter) (bspath, bsfile)) + continue; + } + */ + + if (!newtexthandle (bsfile, &hstring)) + goto error; + + if (!oppushhandle (hlist, nil, (Handle) hstring)) + goto error; + + } // while + + error: - bigstring bsvolume; - tyfileinfo info; - OSErr errcode; + opdisposelist (hlist); - pb.ioVolIndex = ix++; + disposehandle (*hfileloop); - pb.ioNamePtr = bsvolume; + *hfileloop = nil; - errcode = PBHGetVInfoSync ((HParmBlkPtr) &pb); + return (false); - if (errcode == nsvErr) /*not an error, just ran out of volumes*/ - return (true); + #endif // MACVERSION + + #ifdef WIN95VERSION + + findloopinfo ** fi; - if (oserror (errcode)) + *hfileloop = NULL; + fi = (findloopinfo **) NewHandle (sizeof(findloopinfo)); + + if (fi == NULL) return (false); + + (**fi).fs = *pfs; + (**fi).findhandle = NULL; + (**fi).ffilter = filefilter; + (**fi).doingDrives = false; + (**fi).drivenum = 0; /*start with A*/ + + if (isemptystring ((**fi).fs.fullSpecifier)) { /* do disks */ + (**fi).doingDrives = true; + } + else { + initfileloopspec (&((**fi).fs)); + } + + *hfileloop = (Handle)fi; + return (true); + + #endif // WIN95VERSION + + } // fileinitloop + + +void fileendloop (Handle hfileloop) { + + #ifdef MACVERSION + + register hdlfilelooprecord h = (hdlfilelooprecord) hfileloop; - filegetvolumeinfo (pb.ioVRefNum, &info); + opdisposelist ((**h).hfilelist); - if (!(*diskcallback) (bsvolume, &info, refcon)) - return (false); - } /*while*/ - } /*diskloop*/ + disposehandle ((Handle) h); + #endif // MACVERSION -boolean folderloop (const tyfilespec *pfs, boolean flreverse, tyfileloopcallback filecallback, long refcon) { + #ifdef WIN95VERSION - /* - loop through all of the files in the folder at fs, and call filecallback - for each one. - - if flreverse is true, loop through files backwards to allow for deletions - - DW 8/28/93: inexplicably, getmacfileinfo is determining that ctfiles is 1 - greater than the actual number of files in our folder (it's the History - folder in clayhistorymenu.c). the way the loop was structured, we visit - no files in the folder in this case. changed it so that on fnfErr we - continue the loop. the next time thru it will find a file. hope this - doesn't break anything else (it shouldn't). - */ - - FSSpec fs = *pfs; /*work with a copy*/ - CInfoPBRec pb; - long dirid; - bigstring bsfile; - short ix; - long ctfiles; - tyfileinfo info; - OSErr ec; - - setoserrorparam ((ptrstring) fs.name); - - if (!getmacfileinfo (&fs, &pb)) - return (false); + findloopinfo ** fi; + fi = (findloopinfo **) hfileloop; + + if (fi != NULL) + { + if ((**fi).findhandle != NULL) + FindClose ((**fi).findhandle); - assert (BitTst (&pb.dirInfo.ioFlAttrib, 3)); /*be sure it's a folder*/ + disposehandle ((Handle) fi); + + #endif // WIN95VERSION - dirid = pb.dirInfo.ioDrDirID; /*must remember this for loop body*/ + } // fileendloop + + +boolean folderloop ( const ptrfilespec pfs, boolean flreverse, tyfileloopcallback filecallback, long refcon ) { + + #ifdef MACVERSION - ctfiles = pb.dirInfo.ioDrNmFls; - - if (flreverse) - ix = ctfiles; - else - ix = 1; /*start with file index 1*/ - - while (--ctfiles >= 0) { + // + // loop through all of the files in the folder at fs, and call filecallback + // for each one. + // + // if flreverse is true, loop through files backwards to allow for deletions + // + // 2006-06-26 creedon: minimally FSRef-ized + // + // 1993-08-28 DW: inexplicably, getmacfileinfo is determining that ctfiles is 1 + // greater than the actual number of files in our folder (it's the History + // folder in clayhistorymenu.c). the way the loop was structured, we visit + // no files in the folder in this case. changed it so that on fnfErr we + // continue the loop. the next time thru it will find a file. hope this + // doesn't break anything else (it shouldn't). + // - pb.dirInfo.ioDrDirID = dirid; /*may be smashed by ioFlNum on previous loop*/ + FSSpec fs; + CInfoPBRec pb; + long dirid; + bigstring bsfile; + short ix; + long ctfiles; + tyfileinfo info; + OSErr ec; - pb.dirInfo.ioFDirIndex = ix; + FSRefMakeFSSpec ( &( *pfs ).fsref, &fs ); // might need to do more checking here to handle path - if (flreverse) - --ix; - else - ++ix; + setoserrorparam ((ptrstring) fs.name); - pb.dirInfo.ioNamePtr = bsfile; + if (!getmacfileinfocipbr (&fs, &pb)) + return (false); + + assert (BitTst (&pb.dirInfo.ioFlAttrib, 3)); // be sure it's a folder - ec = PBGetCatInfoSync (&pb); + dirid = pb.dirInfo.ioDrDirID; // must remember this for loop body - if (ec == fnfErr) /*DW 8/28/93: continue instead of returning true*/ - continue; - - if (oserror (ec)) - return (false); + ctfiles = pb.dirInfo.ioDrNmFls; - filegetinfofrompb (&pb, &info); + if (flreverse) + ix = ctfiles; + else + ix = 1; // start with file index 1 - if (!(*filecallback) (bsfile, &info, refcon)) - return (false); - } /*while*/ + while (--ctfiles >= 0) { + + pb.dirInfo.ioDrDirID = dirid; // may be smashed by ioFlNum on previous loop + + pb.dirInfo.ioFDirIndex = ix; + + if (flreverse) + --ix; + else + ++ix; + + pb.dirInfo.ioNamePtr = bsfile; + + ec = PBGetCatInfoSync (&pb); + + if (ec == fnfErr) // DW 8/28/93: continue instead of returning true + continue; + + if (oserror (ec)) + return (false); + + filegetinfofrompbcipbr (&pb, &info); + + if (!(*filecallback) (bsfile, &info, refcon)) + return (false); + + } // while + + return (true); - return (true); - } /*folderloop*/ -#endif - - - - -#ifdef WIN95VERSION -// start windows version...... -typedef struct tyfindloopinfo - { - tyfilespec fs; - HANDLE findhandle; - tyfileloopcallback ffilter; - boolean doingDrives; - short drivenum; - } findloopinfo; - -static boolean initfileloopspec (tyfilespec *fs) - { - HANDLE findHandle; - WIN32_FIND_DATA fileinfo; - char fn[300]; - char * filename; - short isFolder; - - copystring (fsname (fs), fn); - filename = fsname (fs); + #endif // MACVERSION - if (fileisvolume (fs)) { - cleanendoffilename (fsname (fs)); - appendcstring (filename, "\\*"); - return (true); - } - - cleanendoffilename (fn); - nullterminate (fn); + #ifdef WIN95VERSION - findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + HANDLE findHandle; + WIN32_FIND_DATA fileinfo; + char fn[300]; + char pathname[300]; + char * endofpath; + bigstring bsfile; + tyfileinfo info; + int errCode; - if (findHandle == INVALID_HANDLE_VALUE) - { - oserror (GetLastError()); - return (false); //no match - } - isFolder = (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)?true:false; + copystring (fsname (pfs), fn); - if (FindNextFile (findHandle, &fileinfo)) - { - FindClose (findHandle); - return (true); //wild card must be present to find second - } + cleanendoffilename (fn); - FindClose (findHandle); - if (isFolder) { - cleanendoffilename (filename); + nullterminate (fn); + + findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); - appendcstring (filename, "\\*"); + if (findHandle == INVALID_HANDLE_VALUE) + { + oserror (GetLastError()); + return (false); + } - nullterminate (filename); - } + winsetfileinfo (&fileinfo, &info); - return (true); - } + GetFullPathName (stringbaseaddress(fn), 300, stringbaseaddress(pathname), &endofpath); -boolean fileinitloop (const tyfilespec *pfs, tyfileloopcallback filefilter, Handle *hfileloop) { - - findloopinfo ** fi; - - *hfileloop = NULL; - fi = (findloopinfo **) NewHandle (sizeof(findloopinfo)); + *endofpath = 0; /*terminates path name*/ - if (fi == NULL) - return (false); + setstringlength(pathname, strlen(stringbaseaddress(pathname))); - (**fi).fs = *pfs; - (**fi).findhandle = NULL; - (**fi).ffilter = filefilter; - (**fi).doingDrives = false; - (**fi).drivenum = 0; /*start with A*/ + buildfilename (pathname, 0, fileinfo.cFileName, 1, bsfile); - if (isemptystring ((**fi).fs.fullSpecifier)) { /* do disks */ - (**fi).doingDrives = true; - } - else { - initfileloopspec (&((**fi).fs)); - } + if (!(*filecallback) (bsfile, &info, refcon)) + { + FindClose(findHandle); + return (false); + } - *hfileloop = (Handle)fi; - return (true); - } + while (FindNextFile (findHandle, &fileinfo)) + { + winsetfileinfo (&fileinfo, &info); -void fileendloop (Handle hfileloop) { - - findloopinfo ** fi; - fi = (findloopinfo **) hfileloop; + buildfilename (pathname, 0, fileinfo.cFileName, 1, bsfile); - if (fi != NULL) - { - if ((**fi).findhandle != NULL) - FindClose ((**fi).findhandle); - - disposehandle ((Handle) fi); - } - } /*fileendloop*/ + if (!(*filecallback) (bsfile, &info, refcon)) + { + FindClose(findHandle); + return (false); + } + } + errCode = GetLastError(); -boolean filenextloop (Handle hfileloop, tyfilespec *fsfile, boolean *flfolder) { - findloopinfo ** fi; - HANDLE findHandle; - WIN32_FIND_DATA fileinfo; - char fn[300]; - char pathname[300]; - char * endofpath; - int errCode; - short drivenum; - DWORD drivemap, drivemask; + FindClose(findHandle); - if (hfileloop == NULL) - return (false); + if (errCode == ERROR_NO_MORE_FILES) + return (true); - if (fsfile == NULL) + oserror(errCode); + return (false); - fi = (findloopinfo **) hfileloop; + #endif // WIN95VERSION + + } // folderloop - if ((**fi).doingDrives) { /*We are looping over each volume - not files*/ - while (true) { - drivenum = (**fi).drivenum; - ++((**fi).drivenum); +boolean filenextloop ( Handle hfileloop, ptrfilespec fsfilet, boolean *flfolder ) { - if (drivenum >= 26) - return (false); + #ifdef MACVERSION + + // + // 2006-06-26 creedon: minimally FSRef-ized + // + // 5.0.2b21 dmb: don't call FSMakeFSSpec for each file; just the first. + // + // 3.0.4b1 dmb: return true of fnfErr; script will have to handle error anyway + // + // 3.0.2b1 dmb: must set flfolder to true for disks + // + // 2.1b11 dmb: for volumes, whole fsspec is now stashed in handle + // + // 2.1b2 dmb: now we're using filespecs! + // + // 1992-08-17 dmb: we're using text handles now instead of string handles. + + register hdlfilelooprecord h = (hdlfilelooprecord) hfileloop; + Handle hdata; + bigstring bs; + short vnum; + long dirid; + OSErr err; + FSSpec fsfile; + - drivemap = GetLogicalDrives(); + if (!opgetlisthandle ((**h).hfilelist, (**h).ixdirectory++, nil, &hdata)) + return (false); - drivemask = 1 << drivenum; - - if ((drivemap & drivemask) == drivemask) { /* we found one */ - /*convert drivenum to filespec */ - wsprintf (stringbaseaddress(fsname(fsfile)), "%c:\\", drivenum + 'A'); - setstringlength (fsname(fsfile), strlen(stringbaseaddress(fsname(fsfile)))); - *flfolder = true; + vnum = (**h).vnum; + + if (vnum == 0) { /*item is a volume, hdata contains refnum*/ + + /* + vnum = **(short **) hdata; + + setemptystring (bs); + */ + + fsfile = **(FSSpec **) hdata; + + *flfolder = true; /*3.0.2b1*/ + + FSpMakeFSRef ( &fsfile, &( *fsfilet ).fsref ); + + getfilespecparent ( &( *fsfilet ) ); + + return (true); + + } + else { + + dirid = (**h).dirid; + + texthandletostring (hdata, bs); + + *flfolder = bs [*bs] == ':'; + + if (*flfolder) + --*bs; + + if ((**h).ixdirectory == 2) { //first time + + err = FSMakeFSSpec (vnum, dirid, bs, &fsfile); + + (**h).vnum = fsfile.vRefNum; + + (**h).dirid = fsfile.parID; + + if ((err == noErr) || (err == fnfErr)) { // 3.0.4b1 dmb + + FSpMakeFSRef ( &fsfile, &( *fsfilet ).fsref ); + + getfilespecparent ( &( *fsfilet ) ); + + return (true); + + } + + return ( ! oserror ( err ) ); // false + + } + else { + + fsfile.vRefNum = vnum; + + fsfile.parID = dirid; + + copystring (bs, fsfile.name); + + FSpMakeFSRef ( &fsfile, &( *fsfilet ).fsref ); + + getfilespecparent ( &( *fsfilet ) ); + return (true); } } - } + + #endif // MACVERSION + + #ifdef WIN95VERSION + + findloopinfo ** fi; + HANDLE findHandle; + WIN32_FIND_DATA fileinfo; + char fn[300]; + char pathname[300]; + char * endofpath; + int errCode; + short drivenum; + DWORD drivemap, drivemask; - if ((**fi).findhandle == NULL) /*we are looking for the first one...*/ - { - copystring (fsname (&(**fi).fs), fn); + if (hfileloop == NULL) + return (false); - cleanendoffilename (fn); + if (fsfile == NULL) + return (false); - nullterminate (fn); - - findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + fi = (findloopinfo **) hfileloop; - if (findHandle == INVALID_HANDLE_VALUE) - { - oserror (GetLastError()); - return (false); - } + if ((**fi).doingDrives) { /*We are looping over each volume - not files*/ + while (true) { + drivenum = (**fi).drivenum; - GetFullPathName (stringbaseaddress(fn), 300, stringbaseaddress(pathname), &endofpath); + ++((**fi).drivenum); - *endofpath = 0; /*terminates path name*/ + if (drivenum >= 26) + return (false); - setstringlength(pathname, strlen(stringbaseaddress(pathname))); + drivemap = GetLogicalDrives(); + + drivemask = 1 << drivenum; - copystring (pathname, fsname (&(**fi).fs)); - buildfilename (fsname (&(**fi).fs), 0, fileinfo.cFileName, 1, fsname (fsfile)); + if ((drivemap & drivemask) == drivemask) { /* we found one */ + /*convert drivenum to filespec */ + wsprintf (stringbaseaddress(fsname(fsfile)), "%c:\\", drivenum + 'A'); + setstringlength (fsname(fsfile), strlen(stringbaseaddress(fsname(fsfile)))); + *flfolder = true; + return (true); + } + } + } - if (flfolder != NULL) - *flfolder = (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)?true:false; + if ((**fi).findhandle == NULL) /*we are looking for the first one...*/ + { + copystring (fsname (&(**fi).fs), fn); - (**fi).findhandle = findHandle; + cleanendoffilename (fn); - if (strcmp (fileinfo.cFileName, ".") == 0) - goto SkippingDotandDotDot; + nullterminate (fn); + + findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); - if (strcmp (fileinfo.cFileName, "..") == 0) - goto SkippingDotandDotDot; + if (findHandle == INVALID_HANDLE_VALUE) + { + oserror (GetLastError()); + return (false); + } - if (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - cleanendoffilename (fsname(fsfile)); - appendcstring (fsname(fsfile), "\\"); - } + GetFullPathName (stringbaseaddress(fn), 300, stringbaseaddress(pathname), &endofpath); - return (true); - } - else - { -SkippingDotandDotDot: - if (FindNextFile ((**fi).findhandle, &fileinfo)) - { + *endofpath = 0; /*terminates path name*/ + + setstringlength(pathname, strlen(stringbaseaddress(pathname))); + + copystring (pathname, fsname (&(**fi).fs)); buildfilename (fsname (&(**fi).fs), 0, fileinfo.cFileName, 1, fsname (fsfile)); if (flfolder != NULL) *flfolder = (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)?true:false; + (**fi).findhandle = findHandle; + if (strcmp (fileinfo.cFileName, ".") == 0) goto SkippingDotandDotDot; @@ -727,83 +833,41 @@ return (true); } + else + { + SkippingDotandDotDot: + if (FindNextFile ((**fi).findhandle, &fileinfo)) + { + buildfilename (fsname (&(**fi).fs), 0, fileinfo.cFileName, 1, fsname (fsfile)); - errCode = GetLastError(); + if (flfolder != NULL) + *flfolder = (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)?true:false; -// FindClose((**fi).findhandle); + if (strcmp (fileinfo.cFileName, ".") == 0) + goto SkippingDotandDotDot; - if (errCode != ERROR_NO_MORE_FILES) - oserror(errCode); - } + if (strcmp (fileinfo.cFileName, "..") == 0) + goto SkippingDotandDotDot; - return (false); - } + if (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + cleanendoffilename (fsname(fsfile)); + appendcstring (fsname(fsfile), "\\"); + } + return (true); + } -boolean folderloop (const tyfilespec *pfs, boolean flreverse, tyfileloopcallback filecallback, long refcon) { - HANDLE findHandle; - WIN32_FIND_DATA fileinfo; - char fn[300]; - char pathname[300]; - char * endofpath; - bigstring bsfile; - tyfileinfo info; - int errCode; + errCode = GetLastError(); + // FindClose((**fi).findhandle); - copystring (fsname (pfs), fn); + if (errCode != ERROR_NO_MORE_FILES) + oserror(errCode); + } - cleanendoffilename (fn); - - nullterminate (fn); + return (false); - findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + #endif // WIN95VERSION + + } // filenextloop - if (findHandle == INVALID_HANDLE_VALUE) - { - oserror (GetLastError()); - return (false); - } - - winsetfileinfo (&fileinfo, &info); - - GetFullPathName (stringbaseaddress(fn), 300, stringbaseaddress(pathname), &endofpath); - - *endofpath = 0; /*terminates path name*/ - - setstringlength(pathname, strlen(stringbaseaddress(pathname))); - - buildfilename (pathname, 0, fileinfo.cFileName, 1, bsfile); - - if (!(*filecallback) (bsfile, &info, refcon)) - { - FindClose(findHandle); - return (false); - } - - while (FindNextFile (findHandle, &fileinfo)) - { - winsetfileinfo (&fileinfo, &info); - - buildfilename (pathname, 0, fileinfo.cFileName, 1, bsfile); - - if (!(*filecallback) (bsfile, &info, refcon)) - { - FindClose(findHandle); - return (false); - } - } - - errCode = GetLastError(); - - FindClose(findHandle); - - if (errCode == ERROR_NO_MORE_FILES) - return (true); - - oserror(errCode); - return (false); - } - -#endif - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 21:33:57
|
Revision: 1430 Author: creecode Date: 2006-06-26 14:33:54 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1430&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/headers/file.h Frontier/branches/FSRef_Migration/Common/headers/fileloop.h Modified: Frontier/branches/FSRef_Migration/Common/headers/file.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/file.h 2006-06-26 21:33:09 UTC (rev 1429) +++ Frontier/branches/FSRef_Migration/Common/headers/file.h 2006-06-26 21:33:54 UTC (rev 1430) @@ -162,7 +162,7 @@ long timecreated, timemodified, timeaccessed; /*the creation and modification date for the file*/ - long sizedataforkhigh, sizedatafork, sizeresourcefork; /*the size of the file's two forks*/ + unsigned long long sizedataforkhigh, sizedatafork, sizeresourcefork; /*the size of the file's two forks*/ short ixlabel; /*the file's label, as displayed in the Finder*/ @@ -186,17 +186,20 @@ /*prototypes*/ + #ifdef WIN95VERSION + typedef int (WINAPI * tyGetDiskFreeSpaceEx) (unsigned short *, ULARGE_INTEGER *, ULARGE_INTEGER *, ULARGE_INTEGER *); extern tyGetDiskFreeSpaceEx adrGetDiskFreeSpaceEx; extern void winsetfileinfo (WIN32_FIND_DATA * fileinfo, tyfileinfo *info); - extern boolean winfileerror (const tyfilespec *); + extern boolean winfileerror (const ptrfilespec ); + #endif -extern void setfserrorparam (const tyfilespec *); +extern void setfserrorparam ( const tyfilespec * ); extern boolean endswithpathsep (bigstring bs); @@ -204,25 +207,27 @@ extern boolean getmachinename (bigstring bsname); -extern boolean equalfilespecs (const tyfilespec *, const tyfilespec *); +extern boolean filegetinfo (const ptrfilespec, tyfileinfo *info); // 1/28/97 dmb for clay -extern boolean filegetinfo (const tyfilespec *fs, tyfileinfo *info); // 1/28/97 dmb for clay +extern void filegetinfofrompb ( FSRefParam *, tyfileinfo * ); -extern void filegetinfofrompb (CInfoPBRec *pb, tyfileinfo *info); +extern void filegetinfofrompbcipbr ( CInfoPBRec *, tyfileinfo * ); extern boolean filegetvolumeinfo (short vnum, tyfileinfo *info); extern boolean filegetvolumename (short vnum, bigstring volname); -extern boolean getmacfileinfo (const tyfilespec *fs, CInfoPBRec *pb); +extern boolean getmacfileinfo ( const ptrfilespec, FSRefParamPtr, FSCatalogInfoPtr ); +extern boolean getmacfileinfocipbr ( const FSSpecPtr, CInfoPBRec * ); + extern boolean filemakespec (short vnum, long dirid, bigstring fname, ptrfilespec pfs); -extern boolean filegetfilename (const tyfilespec *pfs, bigstring name); // 1/28/97 dmb end for clay +extern boolean getfsfile (const ptrfilespec pfs, bigstring name); // 1/28/97 dmb end for clay extern void filenotfounderror (bigstring); -extern boolean surefile (const tyfilespec *); +extern boolean surefile (const ptrfilespec ); extern boolean filegeteof (hdlfilenum, long *); @@ -230,12 +235,8 @@ extern boolean filesetposition (hdlfilenum, long); -extern boolean filegetposition (hdlfilenum, long *); - extern long filegetsize (hdlfilenum); -extern boolean filetruncate (hdlfilenum); - extern boolean filewrite (hdlfilenum, long, void *); extern boolean filereaddata (hdlfilenum, long, long *, void *); @@ -250,97 +251,91 @@ extern boolean filereadhandle (hdlfilenum, Handle *); -#ifdef NEWFILESPECTYPE -extern boolean fileparsevolname (bigstring, long *, bigstring); -#else -extern boolean fileparsevolname (bigstring, short *, bigstring); -#endif +extern boolean fileparsevolname (bigstring, ptrfilespec); -extern boolean fileresolvealias (tyfilespec *); +extern boolean fileresolvealias ( ptrfilespec ); extern boolean filefrompath (bigstring, bigstring); extern boolean folderfrompath (bigstring, bigstring); -extern boolean getfileparentfolder (const tyfilespec *, tyfilespec *); +extern boolean getfileparentfolder (const ptrfilespec , ptrfilespec ); -extern boolean deletefile (const tyfilespec *); +extern boolean deletefile ( const ptrfilespec ); -extern boolean renamefile (const tyfilespec *, bigstring); +extern boolean renamefile (const ptrfilespec , bigstring); -extern boolean movefile (const tyfilespec *, const tyfilespec *); +extern boolean movefile (const ptrfilespec , const ptrfilespec ); -extern boolean lockfile (const tyfilespec *); +extern boolean lockfile (const ptrfilespec ); -extern boolean unlockfile (const tyfilespec *); +extern boolean unlockfile (const ptrfilespec ); -extern boolean newfolder (const tyfilespec *); +extern boolean newfolder (const ptrfilespec ); -extern boolean newfile (const tyfilespec *, OSType, OSType); +extern boolean newfile ( const ptrfilespec , OSType, OSType ); extern void fileinit (void); extern void fileshutdown (void); -extern boolean fileopenorcreate (const tyfilespec *, OSType, OSType, hdlfilenum *); +extern boolean opennewfile ( ptrfilespec , OSType, OSType, hdlfilenum *); -extern boolean opennewfile (const tyfilespec *, OSType, OSType, hdlfilenum *); +extern boolean openfile ( const ptrfilespec , hdlfilenum *, boolean ); -extern boolean openfile (const tyfilespec *, hdlfilenum *, boolean); - extern boolean closefile (hdlfilenum); -extern boolean flushvolumechanges (const tyfilespec * fsspec, hdlfilenum fnum); +extern boolean flushvolumechanges (const ptrfilespec fsspec, hdlfilenum fnum); extern boolean getfullfilepath (bigstring); -extern boolean foldertest (CInfoPBRec *); +extern boolean foldertest ( FSRefParamPtr ); -extern boolean getfiletype (const tyfilespec *, OSType *); +extern boolean foldertestcipbr ( CInfoPBRec * ); -extern boolean getfilecreator (const tyfilespec *, OSType *); +extern boolean getfiletype (const ptrfilespec , OSType *); -extern boolean fileexists (const tyfilespec *, boolean *); +extern boolean getfilecreator (const ptrfilespec , OSType *); -extern boolean filesize (const tyfilespec *, long *); +extern boolean filesize (const ptrfilespec , long *); -extern boolean fileisfolder (const tyfilespec *, boolean *); +extern boolean fileisfolder (const ptrfilespec , boolean *); -extern boolean fileisvolume (const tyfilespec *); +extern boolean fileisvolume (const ptrfilespec ); -extern boolean fileislocked (const tyfilespec *, boolean *); +extern boolean fileislocked (const ptrfilespec , boolean *); -extern boolean fileisbusy (const tyfilespec *, boolean *); +extern boolean fileisbusy (const ptrfilespec , boolean *); -extern boolean filehasbundle (const tyfilespec *, boolean *); +extern boolean filehasbundle (const ptrfilespec , boolean *); -extern boolean filesetbundle (const tyfilespec *, boolean); +extern boolean filesetbundle (const ptrfilespec , boolean); -extern boolean fileisalias (const tyfilespec *, boolean *); +extern boolean fileisalias (const ptrfilespec , boolean *); -extern boolean fileisvisible (const tyfilespec *, boolean *); +extern boolean fileisvisible (const ptrfilespec , boolean *); -extern boolean filesetvisible (const tyfilespec *, boolean); +extern boolean filesetvisible (const ptrfilespec , boolean); -extern boolean getfiledates (const tyfilespec *, unsigned long *, unsigned long *); +extern boolean getfiledates (const ptrfilespec , unsigned long *, unsigned long *); -extern boolean setfiledates (const tyfilespec *, unsigned long, unsigned long); +extern boolean setfiledates (const ptrfilespec , unsigned long, unsigned long); + +extern boolean getfilepos (const ptrfilespec , Point *); -extern boolean getfilepos (const tyfilespec *, Point *); +extern boolean setfilepos (const ptrfilespec , Point); -extern boolean setfilepos (const tyfilespec *, Point); +extern boolean setfilecreated (const ptrfilespec , long); + +extern boolean setfilemodified (const ptrfilespec , long); -extern boolean setfilecreated (const tyfilespec *, long); +extern boolean setfiletype (const ptrfilespec , OSType); -extern boolean setfilemodified (const tyfilespec *, long); +extern boolean setfilecreator (const ptrfilespec , OSType); -extern boolean setfiletype (const tyfilespec *, OSType); - -extern boolean setfilecreator (const tyfilespec *, OSType); - extern boolean largefilebuffer (Handle *); -extern boolean copyfile (const tyfilespec *, const tyfilespec *, boolean, boolean); +extern boolean copyfile (const ptrfilespec , const ptrfilespec , boolean, boolean); extern short filegetapplicationvnum (void); @@ -348,123 +343,115 @@ extern short filegetsystemvnum (void); -extern boolean getspecialfolderpath (bigstring, bigstring, boolean, tyfilespec *); +extern boolean getspecialfolderpath (bigstring, bigstring, boolean, ptrfilespec ); -extern boolean ejectvol (const tyfilespec *); +extern boolean ejectvol (const ptrfilespec ); -extern boolean isejectable (const tyfilespec *, boolean *); +extern boolean isejectable (const ptrfilespec , boolean *); -extern boolean langgetextendedvolumeinfo (const tyfilespec *, double *, double *); +extern boolean langgetextendedvolumeinfo (const ptrfilespec , double *, double *); -extern boolean getfreespace (const tyfilespec *, long *); +extern boolean getfreespace (const ptrfilespec , long *); -extern boolean getvolumesize (const tyfilespec *, long *); +extern boolean getvolumesize (const ptrfilespec , long *); -extern boolean getvolumeblocksize (const tyfilespec *, long *); +extern boolean getvolumeblocksize (const ptrfilespec , long *); -extern boolean filesonvolume (const tyfilespec *, long *); +extern boolean filesonvolume (const ptrfilespec , long *); -extern boolean foldersonvolume (const tyfilespec *, long *); +extern boolean foldersonvolume (const ptrfilespec , long *); -extern boolean isvolumelocked (const tyfilespec *, boolean *); +extern boolean isvolumelocked (const ptrfilespec , boolean *); -extern boolean volumecreated (const tyfilespec *, unsigned long *); +extern boolean volumecreated (const ptrfilespec , unsigned long *); -extern boolean lockvolume (const tyfilespec *, boolean); +extern boolean lockvolume (const ptrfilespec , boolean); -extern boolean unmountvolume (const tyfilespec *); +extern boolean unmountvolume (const ptrfilespec ); extern boolean drivenumtovolname (short, bigstring); -extern boolean findapplication (OSType, tyfilespec *); +extern boolean findapplication (OSType, ptrfilespec ); -extern boolean getfilecomment (const tyfilespec *, bigstring); +extern boolean getfilecomment (const ptrfilespec , bigstring); -extern boolean setfilecomment (const tyfilespec *, bigstring); +extern boolean setfilecomment (const ptrfilespec , bigstring); -extern boolean getfilelabel (const tyfilespec *, bigstring); +extern boolean getfilelabel (const ptrfilespec , bigstring); -extern boolean setfilelabel (const tyfilespec *, bigstring); +extern boolean setfilelabel (const ptrfilespec , bigstring); extern boolean mountvolume (bigstring, bigstring, bigstring); extern boolean initfile (void); -extern boolean fiffindinfile (const tyfilespec *, bigstring, long *); /*findinfile.c*/ +extern boolean fiffindinfile (const ptrfilespec , bigstring, long *); /*findinfile.c*/ -extern boolean fifcomparefiles (const tyfilespec *, const tyfilespec *); +extern boolean fifcomparefiles (const ptrfilespec , const ptrfilespec ); -extern boolean fifcharcounter (const tyfilespec *, char, long *); +extern boolean fifcharcounter (const ptrfilespec , char, long *); -extern boolean fifclosefile (const tyfilespec *); +extern boolean fifclosefile (const ptrfilespec ); extern boolean fifcloseallfiles (long); -extern boolean fifopenfile (const tyfilespec *, long); +extern boolean fifopenfile (const ptrfilespec , long); -extern boolean fifendoffile (const tyfilespec *); +extern boolean fifendoffile (const ptrfilespec ); -extern boolean fifreadline (const tyfilespec *, Handle *); +extern boolean fifreadline (const ptrfilespec , Handle *); -extern boolean fifwriteline (const tyfilespec *, Handle); +extern boolean fifwriteline (const ptrfilespec , Handle); -extern boolean fifreadhandle (const tyfilespec *, long, Handle *); +extern boolean fifreadhandle (const ptrfilespec , long, Handle *); -extern boolean fifreadfile (const tyfilespec *fs, Handle *x); /* 2006-04-11 aradke */ +extern boolean fifreadfile (const ptrfilespec fs, Handle *x); /* 2006-04-11 aradke */ -extern boolean fifwritehandle (const tyfilespec *, Handle); +extern boolean fifwritehandle (const ptrfilespec , Handle); -extern boolean fifsetposition (const tyfilespec *, long); +extern boolean fifsetposition (const ptrfilespec , long); -extern boolean fifgetposition (const tyfilespec *, long *); +extern boolean fifgetposition (const ptrfilespec , long *); -extern boolean fifsetendoffile (const tyfilespec *fs, long eof); +extern boolean fifsetendoffile (const ptrfilespec fs, long eof); -extern boolean fifgetendoffile (const tyfilespec *fs, long *eof); +extern boolean fifgetendoffile (const ptrfilespec fs, long *eof); -#pragma mark === filepath.c === - - extern boolean directorytopath (long, short, bigstring); +#pragma mark === file.c === -extern boolean volumerefnumtopath (short, bigstring); +extern boolean equalfilespecs (const ptrfilespec , const ptrfilespec ); -extern boolean filesetdefaultpath (const tyfilespec *); +extern boolean filegetposition (hdlfilenum, long *); -extern boolean filegetdefaultpath (tyfilespec *); +extern boolean fileexists ( const ptrfilespec , boolean * ); -extern boolean filespectopath (const tyfilespec *, bigstring); +extern boolean filetruncate (hdlfilenum); -extern boolean pathtofilespec (bigstring, tyfilespec *); +#ifdef MACVERSION -extern boolean filegetpath (const tyfilespec *, bigstring); + extern boolean CFStringRefToHFSUniStr255 ( CFStringRef, HFSUniStr255 * ); // 2006-06-07 creedon + + extern boolean CFStringToStr255 ( CFStringRef , StringPtr ); // 2006-06-07 creedon + + extern boolean FSRefGetNameStr255 ( const FSRef *, Str255 ); // 2006-06-07 creedon + + extern boolean HFSUniStr255ToStr255 ( ConstHFSUniStr255Param, StringPtr ); // 2006-06-07 creedon + + extern boolean bigstringToHFSUniStr255 ( const bigstring, HFSUniStr255 * ); // 2006-06-07 creedon + +#endif -extern boolean setfsfile (tyfilespec *, bigstring); -extern boolean getfsfile (const tyfilespec *, bigstring); - -extern boolean getfsvolume (const tyfilespec *, long *); - -extern void initfsdefault (void); /* 2005-07-18 creedon */ - - -#pragma mark === fileverbs.c === - - //extern filecheckdefaultpath (bigstring); - -extern boolean filegetprogramversion (bigstring); - -extern boolean filestart (void); /*6.1b15 AR*/ - - #pragma mark === filedialog.c === -extern boolean sfdialog (tysfverb, bigstring, ptrsftypelist, tyfilespec *, OSType); /* 2005-10-06 creedon - added OSType */ +extern boolean sfdialog (tysfverb, bigstring, ptrsftypelist, ptrfilespec , OSType); /* 2005-10-06 creedon - added OSType */ extern boolean initfiledialog (void); #ifdef MACVERSION + //Code change by Timothy Paustian Tuesday, June 20, 2000 2:22:02 PM //Nav services code for Frontier. extern OSErr TimsPutFile(bigstring prompt, Str255 fileName, StandardFileReply * outReply); @@ -472,24 +459,66 @@ extern OSErr TimsGetFolderOrVolume(bigstring prompt, SInt16 dialogType, StandardFileReply * outReply); extern pascal void NavEventProc(NavEventCallbackMessage callBackSelector, - NavCBRecPtr callBackParms, - NavCallBackUserData callBackUD); + NavCBRecPtr callBackParms, + NavCallBackUserData callBackUD); - extern OSErr getafile (bigstring prompt, ptrsftypelist filetypes, StandardFileReply * outReply, OSType); /* 2005-09-23 creedon */ #endif #endif + #pragma mark === filemp3.c === -boolean getmp3info (const tyfilespec *, long *, long *, long *, long *, boolean *); +boolean getmp3info (const ptrfilespec , long *, long *, long *, long *, boolean *); #pragma mark === fileops.c === -extern short getfilelabelindex (const tyfilespec *, short *); /* 2006-04-23 creedon */ +extern OSStatus GetApplicationIconRef (const ProcessSerialNumber* , const FSSpec* , IconRef* ); // 2006-06-04 creedon -extern boolean setfilelabelindex (const tyfilespec *, short, boolean); /* 2006-04-23 creedon */ +extern OSStatus LSIsApplication( const FSRef *, Boolean *, Boolean * ); // 2006-05-25 +extern boolean extendfilespec ( const ptrfilespec, ptrfilespec ); // 2006-06-23 creedon + +extern boolean getfilespecparent ( ptrfilespec ); // 2006-06-17 creedon + +extern boolean setfilelabelindex (const ptrfilespec , short, boolean); // 2006-04-23 creedon */ + +extern short getfilelabelindex (const ptrfilespec , short *); // 2006-04-23 creedon */ + + +#pragma mark === filepath.c === + + extern boolean directorytopath ( const ptrfilespec, bigstring); + +extern boolean volumerefnumtopath (short, bigstring); + +extern boolean filesetdefaultpath ( const ptrfilespec ); + +extern boolean filegetdefaultpath (ptrfilespec ); + +extern boolean filespectopath (const ptrfilespec , bigstring); + +extern boolean pathtofilespec ( bigstring, ptrfilespec ); + +extern boolean filegetpath (const ptrfilespec , bigstring); + +extern boolean setfsfile (ptrfilespec , bigstring); + +extern boolean getfsfile (const ptrfilespec , bigstring); + +extern boolean getfsvolume (const ptrfilespec, long *); + +extern void initfsdefault (void); /* 2005-07-18 creedon */ + + +#pragma mark === fileverbs.c === + + //extern filecheckdefaultpath (bigstring); + +extern boolean filegetprogramversion (bigstring); + +extern boolean filestart (void); /*6.1b15 AR*/ + Modified: Frontier/branches/FSRef_Migration/Common/headers/fileloop.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/fileloop.h 2006-06-26 21:33:09 UTC (rev 1429) +++ Frontier/branches/FSRef_Migration/Common/headers/fileloop.h 2006-06-26 21:33:54 UTC (rev 1430) @@ -41,15 +41,15 @@ extern boolean diskinitloop (tyfileloopcallback, Handle *); -extern boolean fileinitloop (const tyfilespec *, tyfileloopcallback, Handle *); +extern boolean fileinitloop (const ptrfilespec, tyfileloopcallback, Handle *); extern void fileendloop (Handle); -extern boolean filenextloop (Handle, tyfilespec *, boolean *); +extern boolean filenextloop ( Handle, ptrfilespec, boolean * ); extern boolean diskloop (tyfileloopcallback, long); -extern boolean folderloop (const tyfilespec *, boolean, tyfileloopcallback, long); +extern boolean folderloop ( const ptrfilespec, boolean, tyfileloopcallback, long ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 21:33:12
|
Revision: 1429 Author: creecode Date: 2006-06-26 14:33:09 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1429&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/filedialog.c Modified: Frontier/branches/FSRef_Migration/Common/source/filedialog.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/filedialog.c 2006-06-26 21:30:16 UTC (rev 1428) +++ Frontier/branches/FSRef_Migration/Common/source/filedialog.c 2006-06-26 21:33:09 UTC (rev 1429) @@ -29,7 +29,10 @@ #include "standard.h" #ifdef MACVERSION -# include "mac.h" + + # include "mac.h" + # include "MoreFilesX.h" + #endif #include "filealias.h" @@ -53,1188 +56,1148 @@ #ifdef MACVERSION -#include "SetUpA5.h" + #include "SetUpA5.h" -#define sfgetfileid 5000 -#define sfputfileid 5001 -#define sfgetfolderid 5002 -#define sfgetdiskid 5003 + #define sfgetfileid 5000 + #define sfputfileid 5001 + #define sfgetfolderid 5002 + #define sfgetdiskid 5003 -#define sfgetfolderbutton 11 -#define sfgetpromptitem 10 + #define sfgetfolderbutton 11 + #define sfgetpromptitem 10 -typedef struct tysfdata { /*data passed to hook routines*/ - - StandardFileReply sfreply; - - bigstring sfprompt; - - Str63 sfname; - - ptrsftypelist sftypes; - } tysfdata, *ptrsfdata; + typedef struct tysfdata { /*data passed to hook routines*/ + + StandardFileReply sfreply; + + bigstring sfprompt; + + Str63 sfname; + + ptrsftypelist sftypes; + } tysfdata, *ptrsfdata; -#if !TARGET_API_MAC_CARBON + #if ! TARGET_API_MAC_CARBON -static pascal short sfputfilehook (short item, DialogPtr pdialog, tysfdata *pdata) { - - /* - 6/11/93 dmb: added for System 7 Standard File - */ -#ifdef flcomponent - long curA5; -#endif - if (GetWRefCon (pdialog) != sfMainDialogRefCon) - return (item); - -#ifdef flcomponent - - curA5 = SetUpAppA5 (); - -#endif - - if (item == sfHookFirstCall) { - - if ((*pdata).sfreply.sfFile.vRefNum != 0) - item = sfHookChangeSelection; - } - -#ifdef flcomponent - - RestoreA5 (curA5); - -#endif - - return (item); - } /*sfputfilehook*/ + static pascal short sfputfilehook (short item, DialogPtr pdialog, tysfdata *pdata) { + + /* + 6/11/93 dmb: added for System 7 Standard File + */ + + #ifdef flcomponent + long curA5; + #endif + if (GetWRefCon (pdialog) != sfMainDialogRefCon) + return (item); + + #ifdef flcomponent + + curA5 = SetUpAppA5 (); + + #endif + + if (item == sfHookFirstCall) { + + if ((*pdata).sfreply.sfFile.vRefNum != 0) + item = sfHookChangeSelection; + } + + #ifdef flcomponent + + RestoreA5 (curA5); + + #endif + + return (item); + } /*sfputfilehook*/ -static pascal short sfprompthook (short item, DialogPtr pdialog, tysfdata *pdata) { - - /* - 6/11/93 dmb: recoded to System 7 Standard File - */ -#ifdef flcomponent - long curA5; -#endif - if (GetWRefCon (pdialog) != sfMainDialogRefCon) - return (item); - -#ifdef flcomponent - - curA5 = SetUpAppA5 (); - -#endif - - if (item == sfHookFirstCall) { - Rect ritem, rdialog; - CGrafPtr dialogPort; - dialoggetobjectrect (pdialog, sfgetpromptitem, &ritem); - - //Code change by Timothy Paustian Sunday, April 30, 2000 9:20:45 PM - //Changed to Opaque call for Carbon -#if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 - dialogPort = GetDialogPort(pdialog); - GetPortBounds(dialogPort, &rdialog); -#else - //old code -#pragma unused(dialogPort) - rdialog = (*pdialog).portRect; -#endif - if (isemptystring ((*pdata).sfprompt)) { + static pascal short sfprompthook (short item, DialogPtr pdialog, tysfdata *pdata) { - rdialog.bottom = ritem.top; - /* - hidedialogitem (pdialog, sfgetpromptitem); + 6/11/93 dmb: recoded to System 7 Standard File */ - } - else { - rdialog.bottom = ritem.bottom + 4; + #ifdef flcomponent + long curA5; + #endif + + if (GetWRefCon (pdialog) != sfMainDialogRefCon) + return (item); - setdialogtext (pdialog, sfgetpromptitem, (*pdata).sfprompt); - } - - sizewindow (pdialog, rdialog.right - rdialog.left, rdialog.bottom - rdialog.top); - - if ((*pdata).sfreply.sfFile.vRefNum != 0) - item = sfHookChangeSelection; - } - -#ifdef flcomponent - - RestoreA5 (curA5); - -#endif - - return (item); - } /*sfprompthook*/ + #ifdef flcomponent + + curA5 = SetUpAppA5 (); + + #endif + + if (item == sfHookFirstCall) { + Rect ritem, rdialog; + CGrafPtr dialogPort; + dialoggetobjectrect (pdialog, sfgetpromptitem, &ritem); + + //Code change by Timothy Paustian Sunday, April 30, 2000 9:20:45 PM + //Changed to Opaque call for Carbon + + #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 + dialogPort = GetDialogPort(pdialog); + GetPortBounds(dialogPort, &rdialog); + #else + //old code + #pragma unused(dialogPort) + rdialog = (*pdialog).portRect; + #endif + + if (isemptystring ((*pdata).sfprompt)) { + + rdialog.bottom = ritem.top; + + /* + hidedialogitem (pdialog, sfgetpromptitem); + */ + } + else { + + rdialog.bottom = ritem.bottom + 4; + + setdialogtext (pdialog, sfgetpromptitem, (*pdata).sfprompt); + } + + sizewindow (pdialog, rdialog.right - rdialog.left, rdialog.bottom - rdialog.top); + + if ((*pdata).sfreply.sfFile.vRefNum != 0) + item = sfHookChangeSelection; + } + + #ifdef flcomponent + + RestoreA5 (curA5); + + #endif + + return (item); + } /*sfprompthook*/ -static pascal short sffolderhook (short item, DialogPtr pdialog, tysfdata *pdata) { - - /* - 12/5/91 dmb: if a folder is selected, use it instead of the current folder - - 1/30/92 dmb: added code to handle folder aliases, which are files - - 9/15/92 dmb: save path in sfstring (255 chars) instead of reply.fName (63 chars) - - 6/11/93 dmb: recoded to System 7 Standard File - - 2.1b9 dmb: push dialog port when ellipsizing button title - */ - - bigstring bs; -#ifdef flcomponent - long curA5; -#endif - - if (GetWRefCon (pdialog) != sfMainDialogRefCon) - return (item); - -#ifdef flcomponent - - curA5 = SetUpAppA5 (); - -#endif - - item = sfprompthook (item, pdialog, pdata); - - switch (item) { - - case sfgetfolderbutton: { - - if ((*pdata).sfreply.sfFlags & kIsAlias) { /*must be the alias of a folder*/ - Boolean flfolder, flwasalias; - OSErr errcode; + static pascal short sffolderhook (short item, DialogPtr pdialog, tysfdata *pdata) { + + /* + 12/5/91 dmb: if a folder is selected, use it instead of the current folder + + 1/30/92 dmb: added code to handle folder aliases, which are files + + 9/15/92 dmb: save path in sfstring (255 chars) instead of reply.fName (63 chars) + + 6/11/93 dmb: recoded to System 7 Standard File + + 2.1b9 dmb: push dialog port when ellipsizing button title + */ + + bigstring bs; + + #ifdef flcomponent + long curA5; + #endif + + if (GetWRefCon (pdialog) != sfMainDialogRefCon) + return (item); + + #ifdef flcomponent - errcode = ResolveAliasFile (&(*pdata).sfreply.sfFile, true, &flfolder, &flwasalias); + curA5 = SetUpAppA5 (); - switch (errcode) { + #endif + + item = sfprompthook (item, pdialog, pdata); + + switch (item) { + + case sfgetfolderbutton: { + + if ((*pdata).sfreply.sfFlags & kIsAlias) { /*must be the alias of a folder*/ + Boolean flfolder, flwasalias; + OSErr errcode; + + errcode = ResolveAliasFile (&(*pdata).sfreply.sfFile, true, &flfolder, &flwasalias); + + switch (errcode) { + + case noErr: + break; + + case userCanceledErr: + item = sfHookNullEvent; + + goto exit; + + default: + getsystemerrorstring (errcode, bs); + + parsedialogstring (bs, (*pdata).sfreply.sfFile.name, nil, nil, nil, bs); + + customalert (sferrordialogid, bs); + + item = sfHookNullEvent; + + goto exit; + } + } - case noErr: - break; + (*pdata).sfreply.sfGood = true; - case userCanceledErr: - item = sfHookNullEvent; - - goto exit; + item = sfItemCancelButton; /*force exit*/ - default: - getsystemerrorstring (errcode, bs); + break; + }; + + case sfHookNullEvent: + if (!equalstrings ((*pdata).sfname, (*pdata).sfreply.sfFile.name)) { /*selection changed*/ + FSSpec fs; - parsedialogstring (bs, (*pdata).sfreply.sfFile.name, nil, nil, nil, bs); + fs = (*pdata).sfreply.sfFile; - customalert (sferrordialogid, bs); + copystring (fs.name, (*pdata).sfname); /*remember for next time before changing*/ - item = sfHookNullEvent; + if (isemptystring (fs.name)) /*nothing selected*/ + FSMakeFSSpec (fs.vRefNum, fs.parID, nil, &fs); - goto exit; - } + copystring (fs.name, bs); + //Code change by Timothy Paustian Monday, August 21, 2000 4:20:21 PM + //pushport must have a CGrafPtr on OS X + { + CGrafPtr thePort; + #if TARGET_API_MAC_CARBON == 1 + thePort = GetDialogPort(pdialog); + #else + thePort = (CGrafPtr)pdialog; + #endif + + pushport (thePort); + } + ellipsize (bs, 72); + + popport (); + + setdialogbutton (pdialog, sfgetfolderbutton, bs); + } + + break; } - (*pdata).sfreply.sfGood = true; + exit: - item = sfItemCancelButton; /*force exit*/ + #ifdef flcomponent - break; - }; - - case sfHookNullEvent: - if (!equalstrings ((*pdata).sfname, (*pdata).sfreply.sfFile.name)) { /*selection changed*/ - FSSpec fs; + RestoreA5 (curA5); + + #endif + + return (item); + } /*sffolderhook*/ + + + static pascal short sfdiskhook (short item, DialogPtr pdialog, tysfdata *pdata) { + + /* + 6/11/93 dmb: recoded to System 7 Standard File; back to using Drive + button like Frontier 1.0. + */ + + #ifdef flcomponent + long curA5; + #endif + + if (GetWRefCon (pdialog) != sfMainDialogRefCon) + return (item); + + #ifdef flcomponent - fs = (*pdata).sfreply.sfFile; + curA5 = SetUpAppA5 (); - copystring (fs.name, (*pdata).sfname); /*remember for next time before changing*/ + #endif + + item = sfprompthook (item, pdialog, pdata); + + switch (item) { - if (isemptystring (fs.name)) /*nothing selected*/ - FSMakeFSSpec (fs.vRefNum, fs.parID, nil, &fs); + case sfItemOpenButton: + case sfHookOpenFolder: + #if 0 + + (*pdata).sfreply.vRefNum = -SFSaveDisk; /*IM IV-72*/ + + setemptystring ((*pdata).sfreply.fName); /*we just want the volume*/ + + #endif + + FSMakeFSSpec ((*pdata).sfreply.sfFile.vRefNum, 0, 0, &(*pdata).sfreply.sfFile); + + (*pdata).sfreply.sfGood = true; + + item = sfItemCancelButton; /*force exit*/ + + break; - copystring (fs.name, bs); - //Code change by Timothy Paustian Monday, August 21, 2000 4:20:21 PM - //pushport must have a CGrafPtr on OS X - { - CGrafPtr thePort; - #if TARGET_API_MAC_CARBON == 1 - thePort = GetDialogPort(pdialog); - #else - thePort = (CGrafPtr)pdialog; - #endif - - pushport (thePort); - } - ellipsize (bs, 72); + case sfHookGoToDesktop: + item = sfHookGoToNextDrive; + + break; - popport (); + case sfHookNullEvent: + if ((*pdata).sfreply.sfIsVolume) /*need to open volume to enable Drive button*/ + item = sfHookOpenFolder; + else { + if (isemptystring ((*pdata).sfreply.sfFile.name)) /*no selection*/ + item = sfHookGoToParent; + } + + break; - setdialogbutton (pdialog, sfgetfolderbutton, bs); + case sfHookGoToParent: + item = sfHookNullEvent; + + break; + + default: + if (item >= sfHookCharOffset) /*typing -- ignore*/ + item = sfHookNullEvent; } - break; - } - - exit: - - #ifdef flcomponent - - RestoreA5 (curA5); - - #endif - - return (item); - } /*sffolderhook*/ + #ifdef flcomponent + + RestoreA5 (curA5); + + #endif + + return (item); + } /*sfdiskhook*/ -static pascal short sfdiskhook (short item, DialogPtr pdialog, tysfdata *pdata) { - - /* - 6/11/93 dmb: recoded to System 7 Standard File; back to using Drive - button like Frontier 1.0. - */ -#ifdef flcomponent - long curA5; -#endif - - if (GetWRefCon (pdialog) != sfMainDialogRefCon) - return (item); - -#ifdef flcomponent - - curA5 = SetUpAppA5 (); - -#endif - - item = sfprompthook (item, pdialog, pdata); - - switch (item) { - - case sfItemOpenButton: - case sfHookOpenFolder: - #if 0 + static pascal Boolean onlyfoldersfilter (ParmBlkPtr pb, tysfdata *pdata) { + #pragma unused (pdata) - (*pdata).sfreply.vRefNum = -SFSaveDisk; /*IM IV-72*/ + /* + if (foldertest (pb)) + */ - setemptystring ((*pdata).sfreply.fName); /*we just want the volume*/ + if (pb->fileParam.ioFlAttrib & ioDirMask) + return (0); - #endif + return (-1); /*...don't show files*/ + } /*onlyfoldersfilter*/ + + + static pascal Boolean knowntypesfilter (ParmBlkPtr pb, tysfdata *pdata) { - FSMakeFSSpec ((*pdata).sfreply.sfFile.vRefNum, 0, 0, &(*pdata).sfreply.sfFile); + short i; - (*pdata).sfreply.sfGood = true; + if (pb->fileParam.ioFlAttrib & ioDirMask) + return (0); - item = sfItemCancelButton; /*force exit*/ + if (pdata->sftypes == nil) // show all files + return (0); - break; - - case sfHookGoToDesktop: - item = sfHookGoToNextDrive; - - break; - - case sfHookNullEvent: - if ((*pdata).sfreply.sfIsVolume) /*need to open volume to enable Drive button*/ - item = sfHookOpenFolder; - else { - if (isemptystring ((*pdata).sfreply.sfFile.name)) /*no selection*/ - item = sfHookGoToParent; + for (i = 0; i < pdata->sftypes->cttypes; ++i) { + + OSType type = pdata->sftypes->types [i]; + byte bstype [6]; + bigstring bssuffix; + + ostypetostring (type, bstype); + + lastword (pb->fileParam.ioNamePtr, '.', bssuffix); + + if (stringlength (bssuffix) == 3) //handle 8.3 names + setstringlength (bstype, 3); + + if (equalidentifiers (bssuffix, bstype)) + return (0); + + if (pb->fileParam.ioFlFndrInfo.fdType == type) + return (0); } - break; - - case sfHookGoToParent: - item = sfHookNullEvent; + return (-1); // didn't find it in our list + } /*knowntypesfilter*/ + + + #if !TARGET_RT_MAC_CFM - break; - - default: - if (item >= sfHookCharOffset) /*typing -- ignore*/ - item = sfHookNullEvent; - } - -#ifdef flcomponent - - RestoreA5 (curA5); - -#endif - - return (item); - } /*sfdiskhook*/ + #define onlyfoldersfilterUPP ((FileFilterYDUPP) &onlyfoldersfilter) + #define knowntypesfilterUPP ((FileFilterYDUPP) &knowntypesfilter) + #define sfputfilehookUPP (&sfputfilehook) + #define sfprompthookUPP (&sfprompthook) + #define sffolderhookUPP (&sffolderhook) + #define sfdiskhookUPP (&sfdiskhook) + #else -static pascal Boolean onlyfoldersfilter (ParmBlkPtr pb, tysfdata *pdata) { -#pragma unused (pdata) - - /* - if (foldertest (pb)) - */ - - if (pb->fileParam.ioFlAttrib & ioDirMask) - return (0); - - return (-1); /*...don't show files*/ - } /*onlyfoldersfilter*/ + #if !TARGET_API_MAC_CARBON + static RoutineDescriptor onlyfoldersfilterDesc = BUILD_ROUTINE_DESCRIPTOR (uppFileFilterYDProcInfo, onlyfoldersfilter); + static RoutineDescriptor knowntypesfilterDesc = BUILD_ROUTINE_DESCRIPTOR (uppFileFilterYDProcInfo, knowntypesfilter); + static RoutineDescriptor sfputfilehookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfputfilehook); + static RoutineDescriptor sfprompthookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfprompthook); + static RoutineDescriptor sffolderhookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sffolderhook); + static RoutineDescriptor sfdiskhookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfdiskhook); + + #define onlyfoldersfilterUPP (&onlyfoldersfilterDesc) + #define knowntypesfilterUPP (&knowntypesfilterDesc) + #define sfputfilehookUPP (&sfputfilehookDesc) + #define sfprompthookUPP (&sfprompthookDesc) + #define sffolderhookUPP (&sffolderhookDesc) + #define sfdiskhookUPP (&sfdiskhookDesc) + + #endif -static pascal Boolean knowntypesfilter (ParmBlkPtr pb, tysfdata *pdata) { - - short i; - - if (pb->fileParam.ioFlAttrib & ioDirMask) - return (0); - - if (pdata->sftypes == nil) // show all files - return (0); - - for (i = 0; i < pdata->sftypes->cttypes; ++i) { - - OSType type = pdata->sftypes->types [i]; - byte bstype [6]; - bigstring bssuffix; - - ostypetostring (type, bstype); - - lastword (pb->fileParam.ioNamePtr, '.', bssuffix); - - if (stringlength (bssuffix) == 3) //handle 8.3 names - setstringlength (bstype, 3); - - if (equalidentifiers (bssuffix, bstype)) - return (0); - - if (pb->fileParam.ioFlFndrInfo.fdType == type) - return (0); - } - - return (-1); // didn't find it in our list - } /*knowntypesfilter*/ + #endif + #endif /* !TARGET_API_MAC_CARBON */ - -#if !TARGET_RT_MAC_CFM - - #define onlyfoldersfilterUPP ((FileFilterYDUPP) &onlyfoldersfilter) - #define knowntypesfilterUPP ((FileFilterYDUPP) &knowntypesfilter) - #define sfputfilehookUPP (&sfputfilehook) - #define sfprompthookUPP (&sfprompthook) - #define sffolderhookUPP (&sffolderhook) - #define sfdiskhookUPP (&sfdiskhook) +#endif -#else +#ifdef WIN95VERSION - #if !TARGET_API_MAC_CARBON - static RoutineDescriptor onlyfoldersfilterDesc = BUILD_ROUTINE_DESCRIPTOR (uppFileFilterYDProcInfo, onlyfoldersfilter); - static RoutineDescriptor knowntypesfilterDesc = BUILD_ROUTINE_DESCRIPTOR (uppFileFilterYDProcInfo, knowntypesfilter); - static RoutineDescriptor sfputfilehookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfputfilehook); - static RoutineDescriptor sfprompthookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfprompthook); - static RoutineDescriptor sffolderhookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sffolderhook); - static RoutineDescriptor sfdiskhookDesc = BUILD_ROUTINE_DESCRIPTOR (uppDlgHookYDProcInfo, sfdiskhook); + static void buildfilter (char * filter, short * len, bigstring bsname, bigstring bsext) { + short namelen, extlen; - - #define onlyfoldersfilterUPP (&onlyfoldersfilterDesc) - #define knowntypesfilterUPP (&knowntypesfilterDesc) - #define sfputfilehookUPP (&sfputfilehookDesc) - #define sfprompthookUPP (&sfprompthookDesc) - #define sffolderhookUPP (&sffolderhookDesc) - #define sfdiskhookUPP (&sfdiskhookDesc) - - #endif + namelen = stringlength (bsname); + extlen = stringlength (bsext); + memmove (filter + *len, stringbaseaddress(bsname), namelen); + *len = *len + namelen; + memmove (filter + *len, "\0", 1); + *len = *len + 1; + memmove (filter + *len, stringbaseaddress(bsext), extlen); + *len = *len + extlen; + memmove (filter + *len, "\0", 1); + *len = *len + 1; + memmove (filter + *len, "\0", 1); //alway finish the filter but don't count it in the length + } /*buildfilter*/ #endif -#endif /* !TARGET_API_MAC_CARBON */ - - boolean sfdialog (tysfverb sfverb, bigstring bsprompt, ptrsftypelist filetypes, tyfilespec *fspec, OSType filecreator) { - - /* - return true if the user selected a file with one of the SF routines, - return false otherwise. - - as a bonus, we return the full path for the selected file in the path string. - - 2005-10-06 creedon: added filecreator parameter, used for get file dialog - - 2005-09-21 creedon: changed from TimsGetFile to getafile - - Tuesday, June 20, 2000 8:50:41 PM Timothy Paustian: I am going to hack the heck out of this routine. See what you think - - 4.1b13 dmb: un-commented out the shellwritescrap and shellactive calls. - I don't know how they got commented; I must have been experimenting with - something. - - 2.1b2 dmb: updated interface to be filespec-based. for putfile, the name in the - filespec is the default name. for all verbs, a non-empty filespec seeds the dialog - - 2.1b1 dmb: set sfdata.sfname to an impossible value to ensure button update - - 6/11/93 dmb: recoded to System 7 Standard File - - 12/18/92 dmb: call shellwritescrap - - 9/15/92 dmb: when picking a folder, grab path from sfstring instead of reply - record. - - 2/10/92 dmb: added call to new shellactivate; standard file breaks when brought - up in the background. - - 12/27/91 dmb: if the default fname includes a colon, attempt to set default - directory, and remove folder specification from dialog default - - 4/16/91 dmb: replaced filetype parameter with pointer to type list. callers - can pass nil when irrelevant, or when all types are to be shown. - - 11/16/90 dmb: replace flput boolean with sfverb enum. added code for folder - and disk selection dialogs +boolean sfdialog ( tysfverb sfverb, bigstring bsprompt, ptrsftypelist filetypes, ptrfilespec fspec, OSType filecreator ) { - 8/1/90 dmb: if filetype is zero, show all files by passing zero to SFGetFile - */ - - Str255 bs; - tysfdata sfdata; - FSSpec *fs = &sfdata.sfreply.sfFile; - OSErr anErr = noErr; + // + // return true if the user selected a file with one of the SF routines, + // return false otherwise. + // + // as a bonus, we return the full path for the selected file in the path + // string. + // -#if !TARGET_API_MAC_CARBON - Point pt = {-1, -1}; - short cttypes = -1; - OSType *types = nil; -#endif + #ifdef MACVERSION -#ifdef flcomponent - long appA5; -#endif + // + // 2006-06-26 creedon: minimally FSRef-ized + // + // 2005-10-06 creedon: added filecreator parameter, used for get file + // dialog + // + // 2005-09-21 creedon: changed from TimsGetFile to getafile + // + // 2000-06-20 Timothy Paustian: I am going to hack the heck out of this routine. See what you think + // + // 4.1b13 dmb: un-commented out the shellwritescrap and shellactive calls. + // I don't know how they got commented; I must have been experimenting with + // something. + // + // 2.1b2 dmb: updated interface to be filespec-based. for putfile, the name in the + // filespec is the default name. for all verbs, a non-empty filespec seeds the dialog + // + // 2.1b1 dmb: set sfdata.sfname to an impossible value to ensure button update + // + // 6/11/93 dmb: recoded to System 7 Standard File + // + // 12/18/92 dmb: call shellwritescrap + // + // 9/15/92 dmb: when picking a folder, grab path from sfstring instead of reply + // record. + // + // 2/10/92 dmb: added call to new shellactivate; standard file breaks when brought + // up in the background. + // + // 12/27/91 dmb: if the default fname includes a colon, attempt to set default + // directory, and remove folder specification from dialog default + // + // 4/16/91 dmb: replaced filetype parameter with pointer to type list. callers + // can pass nil when irrelevant, or when all types are to be shown. + // + // 11/16/90 dmb: replace flput boolean with sfverb enum. added code for folder + // and disk selection dialogs + // + // 8/1/90 dmb: if filetype is zero, show all files by passing zero to SFGetFile + // - //move the switch statement to below because it's smarter to call it there when using - //the new routines for Nav services. - - clearbytes (&sfdata, sizeof (sfdata)); - - copystring (bsprompt, sfdata.sfprompt); - - sfdata.sftypes = filetypes; - - setemptystring (bs); - - if (!isemptystring ((*fspec).name)) { /*if path is included, set default dir and strip to file name*/ - - *fs = *fspec; /*seed directory & file selection*/ - - /* - if (pathtofilespec (fname, fs) && ((*fs).vRefNum != 0)) - copystring ((*fs).name, fname); - else - filefrompath (fname, fname); - */ - } - - setstringlength (sfdata.sfname, -1); /*make sure it can't match fsspec*/ - - shellwritescrap (textscraptype); - - shellactivate (); - -#ifdef flcomponent - - appA5 = SetUpCurA5 (); /*for system*/ - -#endif - - switch (sfverb) { - - case sfputfileverb: - if(gCanUseNavServ) { - anErr = TimsPutFile(bsprompt, (*fs).name, &sfdata.sfreply); - } -#if TARGET_API_MAC_CARBON != 1 - //we can get away with this because nav services is always there in OSX. - else - CustomPutFile ( - bsprompt, - (*fs).name, - &sfdata.sfreply, - sfputfileid, - pt, - sfputfilehookUPP, - nil, nil, nil, - &sfdata); -#endif + // Str255 bs; + tysfdata sfdata; + FSSpec *fs = &sfdata.sfreply.sfFile, fspect; + OSErr err = noErr; - break; - - case sfgetfileverb: -#if TARGET_API_MAC_CARBON == 1 - anErr = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); -#else - CustomGetFile ( - knowntypesfilterUPP, - cttypes, - types, - &sfdata.sfreply, - sfgetfileid, - pt, - sfprompthookUPP, - nil, nil, nil, - &sfdata); -#endif - break; - - case sfgetfolderverb: - if(gCanUseNavServ) - anErr = TimsGetFolderOrVolume(bsprompt, sfgetfolderid, &sfdata.sfreply); -#if !TARGET_API_MAC_CARBON - else - CustomGetFile (onlyfoldersfilterUPP, cttypes, types, &sfdata.sfreply, sfgetfolderid, pt, - sffolderhookUPP, nil, nil, nil, &sfdata); -#endif - break; - - case sfgetdiskverb: - if(gCanUseNavServ) - anErr = TimsGetFolderOrVolume(bsprompt, sfgetdiskid, &sfdata.sfreply); -#if !TARGET_API_MAC_CARBON - else - CustomGetFile (nil, cttypes, types, &sfdata.sfreply, sfgetdiskid, pt, - sfdiskhookUPP, nil, nil, nil, &sfdata); -#endif + FSGetCatalogInfo ( &( *fspec ).fsref, kFSCatInfoNone, NULL, NULL, &fspect, NULL ); - break; - } - - //code moved to above - //if (sfverb == sfputfileverb) - //Code change by Timothy Paustian Tuesday, June 20, 2000 8:44:39 PM - //I added nav services as the dialog. This works well so I updated it - //in the PPC version also. - //CustomPutFile (bsprompt, (*fs).name, &sfdata.sfreply, id, pt, - // sfhook, nil, nil, nil, &sfdata); - //else - //Code change by Timothy Paustian Tuesday, June 20, 2000 2:58:33 PM - //Use nav services verbs and a switch statment - - //CustomGetFile (sffilefilter, cttypes, types, &sfdata.sfreply, id, pt, - // sfhook, nil, nil, nil, &sfdata); - -#ifdef flcomponent - - RestoreA5 (appA5); - -#endif - //if the user canceled return false - //I know that oserror can handle this, but lets make it - //obvious that we are checking. - if (userCanceledErr == anErr) - return false; + #ifdef flcomponent - if(oserror(anErr)) - return false; + long appA5; + + #endif - if (sfdata.sfreply.sfGood) { - - FSMakeFSSpec ((*fs).vRefNum, (*fs).parID, (*fs).name, fspec); /*canonize*/ - - /* - *fspec = sfdata.sfreply.sfFile; - */ - return (true); - } - - return (false); - } /*sfdialog*/ + // move the switch statement to below because it's smarter to call it there when using the new routines for Nav services. -#endif + clearbytes (&sfdata, sizeof (sfdata)); -#ifdef WIN95VERSION -static void buildfilter (char * filter, short * len, bigstring bsname, bigstring bsext) { - short namelen, extlen; + copystring (bsprompt, sfdata.sfprompt); - namelen = stringlength (bsname); - extlen = stringlength (bsext); + sfdata.sftypes = filetypes; - memmove (filter + *len, stringbaseaddress(bsname), namelen); - *len = *len + namelen; - memmove (filter + *len, "\0", 1); - *len = *len + 1; - memmove (filter + *len, stringbaseaddress(bsext), extlen); - *len = *len + extlen; - memmove (filter + *len, "\0", 1); - *len = *len + 1; - memmove (filter + *len, "\0", 1); //alway finish the filter but don't count it in the length - } /*buildfilter*/ + // setemptystring (bs); + if ( ! isemptystring ( fspect.name ) ) { // if path is included, set default dir and strip to file name + + *fs = fspect; /*seed directory & file selection*/ + + /* + if (pathtofilespec (fname, fs) && ((*fs).vRefNum != 0)) + copystring ((*fs).name, fname); + else + filefrompath (fname, fname); + */ + } -boolean sfdialog (tysfverb sfverb, bigstring bsprompt, ptrsftypelist filetypes, tyfilespec *fspec, OSType filecreator) { -#pragma unused (filecreator) - - /* - 2005-10-06 creedon: added filecreator, unused on Windows - - 5.0.2b4 dmb: fixed bug in above change that would generate an error for empty paths + setstringlength (sfdata.sfname, -1); /*make sure it can't match fsspec*/ - 5.0.1 dmb: make sure default file and directory are valid, or we'll fail (silently) - */ + shellwritescrap (textscraptype); - TCHAR szFile[MAX_PATH]; - OPENFILENAME OpenFileName; - BROWSEINFO BrowseInfo; - LPITEMIDLIST itemList; - char title [256]; - char filter [1024]; - short filterlen = 0; - char defaultdir [256]; - char defaultfile [256]; - bigstring extension; - byte type [6]; - bigstring osstring; - boolean fl = false; - short i; - boolean fldatabases = false; - boolean flfatpages = false; - // Global pointer to the shell's IMalloc interface. - static LPMALLOC pMalloc = NULL; + shellactivate (); + #ifdef flcomponent + + appA5 = SetUpCurA5 (); /*for system*/ + + #endif - OpenFileName.lStructSize = sizeof(OPENFILENAME); - OpenFileName.hwndOwner = shellframewindow; - OpenFileName.hInstance = shellinstance; - OpenFileName.lpstrFilter = NULL; - OpenFileName.lpstrCustomFilter = NULL; - OpenFileName.nMaxCustFilter = 0; - OpenFileName.nFilterIndex = 0; - OpenFileName.lpstrFile = stringbaseaddress(fsname (fspec)); - OpenFileName.nMaxFile = sizeof(fsname (fspec)) - 2; - OpenFileName.lpstrFileTitle = NULL; - OpenFileName.nMaxFileTitle = 0; - OpenFileName.lpstrTitle = title; - OpenFileName.lpstrInitialDir = NULL; - OpenFileName.lpstrTitle = NULL; - OpenFileName.nFileOffset = 0; - OpenFileName.nFileExtension = 0; - OpenFileName.lpstrDefExt = NULL; - OpenFileName.lCustData = (LPARAM)NULL; - OpenFileName.lpfnHook = NULL; - OpenFileName.lpTemplateName = 0; + switch (sfverb) { + + case sfputfileverb: + if(gCanUseNavServ) { + err = TimsPutFile(bsprompt, (*fs).name, &sfdata.sfreply); + } - strcpy (szFile, ""); - - // set the title - if (bsprompt != NULL) { - - copyptocstring (bsprompt, title); - - OpenFileName.lpstrTitle = title; - } + break; + + case sfgetfileverb: + err = getafile (bsprompt, filetypes, &sfdata.sfreply, filecreator); + + break; + + case sfgetfolderverb: + if(gCanUseNavServ) + err = TimsGetFolderOrVolume(bsprompt, sfgetfolderid, &sfdata.sfreply); - // set default dir, file and extension fields - if (!isemptystring (fsname (fspec))) { + break; + + case sfgetdiskverb: + if(gCanUseNavServ) + err = TimsGetFolderOrVolume(bsprompt, sfgetdiskid, &sfdata.sfreply); - tyfilespec fsdir; - boolean flfolder; + break; + } - folderfrompath (fsname (fspec), defaultdir); - - if (pathtofilespec (defaultdir, &fsdir) && - fileexists (&fsdir, &flfolder) && flfolder) { + #ifdef flcomponent - OpenFileName.lpstrInitialDir = defaultdir; + RestoreA5 (appA5); - //if (!isemptystring (defaultdir)) - // OpenFileName.nFileOffset = stringlength (defaultdir) + 1; + #endif + + //if the user canceled return false + //I know that oserror can handle this, but lets make it + //obvious that we are checking. + if (userCanceledErr == err) + return false; + + if(oserror(err)) + return false; + + if (sfdata.sfreply.sfGood) { - convertpstring (defaultdir); + FSMakeFSRef ( ( *fs ).vRefNum, ( *fs ).parID, ( *fs ).name, &( *fspec ).fsref); // canonize + + return (true); } + + return (false); - filefrompath (fsname (fspec), defaultfile); + #endif // MACVERSION - lastword (defaultfile, ':', defaultfile); //skip any Mac path + #ifdef WIN95VERSION - //OpenFileName.nFileExtension = stringlength (fsname (fspec)); + #pragma unused ( filecreator ) - lastword (defaultfile, '.', extension); + /* + 2005-10-06 creedon: added filecreator, unused on Windows - //if (stringlength (extension) < stringlength (fsname (fspec))) - // OpenFileName.nFileExtension -= stringlength (extension); - - copystring (defaultfile, fsname (fspec)); + 5.0.2b4 dmb: fixed bug in above change that would generate an error for empty paths - nullterminate (fsname (fspec)); - } + 5.0.1 dmb: make sure default file and directory are valid, or we'll fail (silently) + */ - releasethreadglobals (); - - switch (sfverb) { - - case sfputfileverb: - OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER | OFN_OVERWRITEPROMPT; //| OFN_NOCHANGEDIR; - - if (filetypes != nil) { - setemptystring (filter); + TCHAR szFile[MAX_PATH]; + OPENFILENAME OpenFileName; + BROWSEINFO BrowseInfo; + LPITEMIDLIST itemList; + char title [256]; + char filter [1024]; + short filterlen = 0; + char defaultdir [256]; + char defaultfile [256]; + bigstring extension; + byte type [6]; + bigstring osstring; + boolean fl = false; + short i; + boolean fldatabases = false; + boolean flfatpages = false; + // Global pointer to the shell's IMalloc interface. + static LPMALLOC pMalloc = NULL; - //RAB: 1/22/98 use string since the windows type can be any case - ostypetostring ((*filetypes).types [0], osstring); - if (equalidentifiers (osstring, BIGSTRING ("\x04" "fatp"))) - copystring (BIGSTRING ("\x016" "Fat Page [*.fatp]\0*.*\0"), filter); + OpenFileName.lStructSize = sizeof(OPENFILENAME); + OpenFileName.hwndOwner = shellframewindow; + OpenFileName.hInstance = shellinstance; + OpenFileName.lpstrFilter = NULL; + OpenFileName.lpstrCustomFilter = NULL; + OpenFileName.nMaxCustFilter = 0; + OpenFileName.nFilterIndex = 0; + OpenFileName.lpstrFile = stringbaseaddress(fsname (fspec)); + OpenFileName.nMaxFile = sizeof(fsname (fspec)) - 2; + OpenFileName.lpstrFileTitle = NULL; + OpenFileName.nMaxFileTitle = 0; + OpenFileName.lpstrTitle = title; + OpenFileName.lpstrInitialDir = NULL; + OpenFileName.lpstrTitle = NULL; + OpenFileName.nFileOffset = 0; + OpenFileName.nFileExtension = 0; + OpenFileName.lpstrDefExt = NULL; + OpenFileName.lCustData = (LPARAM)NULL; + OpenFileName.lpfnHook = NULL; + OpenFileName.lpTemplateName = 0; - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftop"))) - copystring (BIGSTRING ("\x015" "Outline [*.ftop]\0*.*\0"), filter); + strcpy (szFile, ""); + + // set the title + if (bsprompt != NULL) { + + copyptocstring (bsprompt, title); + + OpenFileName.lpstrTitle = title; + } - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftwp"))) - copystring (BIGSTRING ("\x019" "WP Document [*.ftwp]\0*.*\0"), filter); + // set default dir, file and extension fields + if (!isemptystring (fsname (fspec))) { - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "fttb"))) - copystring (BIGSTRING ("\x013" "Table [*.fttb]\0*.*\0"), filter); + tyfilespec fsdir; + boolean flfolder; - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftmb"))) - copystring (BIGSTRING ("\x012" "Menu [*.ftmb]\0*.*\0"), filter); + folderfrompath (fsname (fspec), defaultdir); + + if (pathtofilespec (defaultdir, &fsdir) && + fileexists (&fsdir, &flfolder) && flfolder) { + + OpenFileName.lpstrInitialDir = defaultdir; + + //if (!isemptystring (defaultdir)) + // OpenFileName.nFileOffset = stringlength (defaultdir) + 1; + + convertpstring (defaultdir); + } + + filefrompath (fsname (fspec), defaultfile); - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftsc"))) - copystring (BIGSTRING ("\x014" "Script [*.ftsc]\0*.*\0"), filter); + lastword (defaultfile, ':', defaultfile); //skip any Mac path - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftds"))) - copystring (BIGSTRING ("\x01c" "Desktop Script [*.ftds]\0*.*\0"), filter); + //OpenFileName.nFileExtension = stringlength (fsname (fspec)); + + lastword (defaultfile, '.', extension); + + //if (stringlength (extension) < stringlength (fsname (fspec))) + // OpenFileName.nFileExtension -= stringlength (extension); + + copystring (defaultfile, fsname (fspec)); - else if (equalidentifiers (osstring, BIGSTRING ("\x04" "root"))) - copystring (BIGSTRING ("\x016" "Database [*.root]\0*.*\0"), filter); + nullterminate (fsname (fspec)); + } - if (! isemptystring (filter)) { - convertpstring (filter); - - OpenFileName.lpstrFilter = filter; - } - - ostypetostring ((*filetypes).types [0], type); + releasethreadglobals (); + + switch (sfverb) { + + case sfputfileverb: + OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER | OFN_OVERWRITEPROMPT; //| OFN_NOCHANGEDIR; - popleadingchars (type, '.'); + if (filetypes != nil) { + setemptystring (filter); - poptrailingwhitespace (type); - -// convertpstring (type); - -// OpenFileName.lpstrDefExt = type; - OpenFileName.lpstrDefExt = NULL; - } + //RAB: 1/22/98 use string since the windows type can be any case + ostypetostring ((*filetypes).types [0], osstring); - // Call the common dialog function. - fl = GetSaveFileName (&OpenFileName); + if (equalidentifiers (osstring, BIGSTRING ("\x04" "fatp"))) + copystring (BIGSTRING ("\x016" "Fat Page [*.fatp]\0*.*\0"), filter); - if (fl && (filetypes != NULL) && (stringlength(type) > 0)) { + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftop"))) + copystring (BIGSTRING ("\x015" "Outline [*.ftop]\0*.*\0"), filter); - setstringlength (fsname (fspec), strlen(stringbaseaddress(fsname (fspec)))); - lastword (fsname (fspec), '.', extension); + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftwp"))) + copystring (BIGSTRING ("\x019" "WP Document [*.ftwp]\0*.*\0"), filter); - if ((stringlength (fsname (fspec)) == stringlength (extension)) || (stringlength (extension) > 4)) { /* no extension */ - pushstring ("\x01.", fsname(fspec)); - pushstring (type, fsname(fspec)); - nullterminate (fsname (fspec)); - } - } - - break; - - case sfgetfileverb: - OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; //| OFN_NOCHANGEDIR; + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "fttb"))) + copystring (BIGSTRING ("\x013" "Table [*.fttb]\0*.*\0"), filter); - // create the filter string - if (filetypes != nil) { /*showing specific files*/ + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftmb"))) + copystring (BIGSTRING ("\x012" "Menu [*.ftmb]\0*.*\0"), filter); - //copystring ("\x09Types: [\0", filter); - setemptystring (extension); + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftsc"))) + copystring (BIGSTRING ("\x014" "Script [*.ftsc]\0*.*\0"), filter); - for (i = 0; i < (*filetypes).cttypes; ++i) { - - if (i > 0) - pushchar (';', extension); - - if ((*filetypes).types [i] == 'root') - fldatabases = true; + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "ftds"))) + copystring (BIGSTRING ("\x01c" "Desktop Script [*.ftds]\0*.*\0"), filter); - if ((*filetypes).types [i] == 'fatp') - flfatpages = true; + else if (equalidentifiers (osstring, BIGSTRING ("\x04" "root"))) + copystring (BIGSTRING ("\x016" "Database [*.root]\0*.*\0"), filter); - if ((*filetypes).types [i] == 'ROOT') - fldatabases = true; + if (! isemptystring (filter)) { + convertpstring (filter); - if ((*filetypes).types [i] == 'FATP') - flfatpages = true; + OpenFileName.lpstrFilter = filter; + } - ostypetostring ((*filetypes).types [i], type); + ostypetostring ((*filetypes).types [0], type); popleadingchars (type, '.'); poptrailingwhitespace (type); + + // convertpstring (type); - pushstring (BIGSTRING ("\x02" "*."), extension); + // OpenFileName.lpstrDefExt = type; + OpenFileName.lpstrDefExt = NULL; + } - pushstring (type, extension); + // Call the common dialog function. + fl = GetSaveFileName (&OpenFileName); - if (stringlength (type) > 3) { + if (fl && (filetypes != NULL) && (stringlength(type) > 0)) { + + setstringlength (fsname (fspec), strlen(stringbaseaddress(fsname (fspec)))); + lastword (fsname (fspec), '.', extension); + + if ((stringlength (fsname (fspec)) == stringlength (extension)) || (stringlength (extension) > 4)) { /* no extension */ + pushstring ("\x01.", fsname(fspec)); + pushstring (type, fsname(fspec)); + nullterminate (fsname (fspec)); + } + } + + break; + + case sfgetfileverb: + OpenFileName.Flags = OFN_SHOWHELP | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; //| OFN_NOCHANGEDIR; + + // create the filter string + if (filetypes != nil) { /*showing specific files*/ + + //copystring ("\x09Types: [\0", filter); + setemptystring (extension); + + for (i = 0; i < (*filetypes).cttypes; ++i) { - setstringlength (type, 3); + if (i > 0) + pushchar (';', extension); + + if ((*filetypes).types [i] == 'root') + fldatabases = true; - pushstring (BIGSTRING ("\x03" ";*."), extension); + if ((*filetypes).types [i] == 'fatp') + flfatpages = true; + + if ((*filetypes).types [i] == 'ROOT') + fldatabases = true; + + if ((*filetypes).types [i] == 'FATP') + flfatpages = true; + + ostypetostring ((*filetypes).types [i], type); + popleadingchars (type, '.'); + + poptrailingwhitespace (type); + + pushstring (BIGSTRING ("\x02" "*."), extension); + pushstring (type, extension); - } - } - - filterlen = 0; + if (stringlength (type) > 3) { + + setstringlength (type, 3); - buildfilter (filter, &filterlen, BIGSTRING ("\x1c" "Openable Types: [*.clickers]"), extension); - - if (fldatabases) - buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Databases [*.root]"), BIGSTRING ("\x0c" "*.root;*.roo")); + pushstring (BIGSTRING ("\x03" ";*."), extension); + + pushstring (type, extension); + } + } + + filterlen = 0; - // pushstring ("\x20\0Databases [*.root]\0*.roo;*.root", filter); + buildfilter (filter, &filterlen, BIGSTRING ("\x1c" "Openable Types: [*.clickers]"), extension); + + if (fldatabases) + buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Databases [*.root]"), BIGSTRING ("\x0c" "*.root;*.roo")); - if (flfatpages) { - buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Fat Pages [*.fatp]"), BIGSTRING ("\x5a" "*.fatp;*.fat;*.FTsc;*.FTs;*.FTwp;*.FTw;*.FTop;*.FTo;*.FTmb;*.FTm;*.FTtb;*.FTt;*.Ftds;*.FTd")); - buildfilter (filter, &filterlen, BIGSTRING ("\x17" "Frontier Menus [*.FTmb]"), BIGSTRING ("\x0c" "*.FTmb;*.FTm")); - buildfilter (filter, &filterlen, BIGSTRING ("\x1a" "Frontier Outlines [*.FTop]"), BIGSTRING ("\x0c" "*.FTop;*.FTo")); - buildfilter (filter, &filterlen, BIGSTRING ("\x19" "Frontier Scripts [*.FTsc]"), BIGSTRING ("\x0c" "*.FTsc;*.FTs")); - buildfilter (filter, &filterlen, BIGSTRING ("\x21" "Frontier Desktop Scripts [*.FTds]"), BIGSTRING ("\x0c" "*.FTds;*.FTd")); - buildfilter (filter, &filterlen, BIGSTRING ("\x18" "Frontier Tables [*.FTtb]"), BIGSTRING ("\x0c" "*.FTtb;*.FTt")); - buildfilter (filter, &filterlen, BIGSTRING ("\x19" "Frontier WP Text [*.FTwp]"), BIGSTRING ("\x0c" "*.FTwp;*.FTw")); - } + // pushstring ("\x20\0Databases [*.root]\0*.roo;*.root", filter); - // pushstring ("\x20\0Fat Pages [*.fatp]\0*.fat;*.fatp", filter); + if (flfatpages) { + buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Fat Pages [*.fatp]"), BIGSTRING ("\x5a" "*.fatp;*.fat;*.FTsc;*.FTs;*.FTwp;*.FTw;*.FTop;*.FTo;*.FTmb;*.FTm;*.FTtb;*.FTt;*.Ftds;*.FTd")); + buildfilter (filter, &filterlen, BIGSTRING ("\x17" "Frontier Menus [*.FTmb]"), BIGSTRING ("\x0c" "*.FTmb;*.FTm")); + buildfilter (filter, &filterlen, BIGSTRING ("\x1a" "Frontier Outlines [*.FTop]"), BIGSTRING ("\x0c" "*.FTop;*.FTo")); + buildfilter (filter, &filterlen, BIGSTRING ("\x19" "Frontier Scripts [*.FTsc]"), BIGSTRING ("\x0c" "*.FTsc;*.FTs")); + buildfilter (filter, &filterlen, BIGSTRING ("\x21" "Frontier Desktop Scripts [*.FTds]"), BIGSTRING ("\x0c" "*.FTds;*.FTd")); + buildfilter (filter, &filterlen, BIGSTRING ("\x18" "Frontier Tables [*.FTtb]"), BIGSTRING ("\x0c" "*.FTtb;*.FTt")); + buildfilter (filter, &filterlen, BIGSTRING ("\x19" "Frontier WP Text [*.FTwp]"), BIGSTRING ("\x0c" "*.FTwp;*.FTw")); + } - buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Plain Text [*.txt]"), BIGSTRING ("\x12" "*.Text;*.txt;*.tex")); - buildfilter (filter, &filterlen, BIGSTRING ("\x0f" "All Files [*.*]"), BIGSTRING ("\x03" "*.*")); + // pushstring ("\x20\0Fat Pages [*.fatp]\0*.fat;*.fatp", filter); - OpenFileName.lpstrFilter = filter; + buildfilter (filter, &filterlen, BIGSTRING ("\x12" "Plain Text [*.txt]"), BIGSTRING ("\x12" "*.Text;*.txt;*.tex")); + buildfilter (filter, &filterlen, BIGSTRING ("\x0f" "All Files [*.*]"), BIGSTRING ("\x03" "*.*")); - ostypetostring ((*filetypes).types [0], type); - - //RAB: 1/22/98 added next two lines - // poptrailingwhitespace is no longer done in ostypetostring. - popleadingchars (type, '.'); + OpenFileName.lpstrFilter = filter; - poptrailingwhitespace (type); + ostypetostring ((*filetypes).types [0], type); + + //RAB: 1/22/98 added next two lines + // poptrailingwhitespace is no longer done in ostypetostring. + popleadingchars (type, '.'); - convertpstring (type); - - OpenFileName.lpstrDefExt = type; - } + poptrailingwhitespace (type); - // Call the common dialog function. - fl = GetOpenFileName (&OpenFileName); - - break; - - case sfgetfolderverb: - case sfgetdiskverb: - // Get the shell's allocator. - if (pMalloc == NULL && !SUCCEEDED(SHGetMalloc(&pMalloc))) - break; - - BrowseInfo.hwndOwner = OpenFileName.hwndOwner; - BrowseInfo.pidlRoot = NULL; - BrowseInfo.pszDisplayName = szFile; - BrowseInfo.lpszTitle = OpenFileName.lpstrTitle; - BrowseInfo.ulFlags = BIF_RETURNONLYFSDIRS; - if (sfverb == sfgetdiskverb) - BrowseInfo.ulFlags |= BIF_RETURNFSANCESTORS; - BrowseInfo.lpfn = NULL; - BrowseInfo.lParam = 0; + convertpstring (type); + + OpenFileName.lpstrDefExt = type; + } + + // Call the common dialog function. + fl = GetOpenFileName (&OpenFileName); - itemList = SHBrowseForFolder (&BrowseInfo); + break; - if (itemList != NULL) { + case sfgetfolderverb: + case sfgetdiskverb: + // Get the shell's allocator. + if (pMalloc == NULL && !SUCCEEDED(SHGetMalloc(&pMalloc))) + break; + + BrowseInfo.hwndOwner = OpenFileName.hwndOwner; + BrowseInfo.pidlRoot = NULL; + BrowseInfo.pszDisplayName = szFile; + BrowseInfo.lpszTitle = OpenFileName.lpstrTitle; + BrowseInfo.ulFlags = BIF_RETURNONLYFSDIRS; + if (sfverb == sfgetdiskverb) + BrowseInfo.ulFlags |= BIF_RETURNFSANCESTORS; + BrowseInfo.lpfn = NULL; + BrowseInfo.lParam = 0; + + itemList = SHBrowseForFolder (&BrowseInfo); + + if (itemList != NULL) { - fl = SHGetPathFromIDList (itemList, szFile); + fl = SHGetPathFromIDList (itemList, szFile); - copyctopstring (szFile, fsname (fspec)); + copyctopstring (szFile, fsname (fspec)); - if (sfverb == sfgetdiskverb) { + if (sfverb == sfgetdiskverb) { - firstword (fsname (fspec), ':', fsname (fspec)); - - pushstring ("\x02:\\", fsname (fspec)); - } - else { + firstword (fsname (fspec), ':', fsname (fspec)); + + pushstring ("\x02:\\", fsname (fspec)); + } + else { - pushstring ("\x01\\", fsname (fspec)); - } - - nullterminate (fsname (fspec)); + pushstring ("\x01\\", fsname (fspec)); + } + + nullterminate (fsname (fspec)); - // deallocate itemList - pMalloc->lpVtbl->Free (pMalloc, itemList); + // deallocate itemList + pMalloc->lpVtbl->Free (pMalloc, itemList); - /* - LPSHELLFOLDER ppshf; - if (SHGetDesktopFolder (&ppshf) == NOERROR) { - ULONG ctchars; - WCHAR szWide [300]; + /* + LPSHELLFOLDER ppshf; + if (SHGetDesktopFolder (&ppshf) == NOERROR) { + ULONG ctchars; + WCHAR szWide [300]; - MultiByteToWideChar (CP_ACP, 0, szFile, -1, szWide, 300); + MultiByteToWideChar (CP_ACP, 0, szFile, -1, szWide, 300); - ppshf->lpVtbl->ParseDisplayName (ppshf, NULL, szWide, &ctchars, &itemList,NULL); + ppshf->lpVtbl->ParseDisplayName (ppshf, NULL, szWide, &ctchars, &itemList,NULL); - fl = SHGetPathFromIDList (itemList, szFile); + fl = SHGetPathFromIDList (itemList, szFile); - pMalloc->lpVtbl->Free (pMalloc, itemList); + pMalloc->lpVtbl->Free (pMalloc, itemList); - ppshf->lpVtbl->Release (ppshf); - } - */ + ppshf->lpVtbl->Release (ppshf); } + */ + } + + break; - break; + } - } - - grabthreadglobals (); - - if (!fl) { + grabthreadglobals (); - oserror (GetLastError ()); + if (!fl) { + + oserror (GetLastError ()); + + return (false); + } - return (false); - } - - setstringlength (fsname (fspec), strlen(stringbaseaddress(fsname (fspec)))); - - return (true); - } /*sfdialog*/ + setstringlength (fsname (fspec), strlen(stringbaseaddress(fsname (fspec)))); + + return (true); -#endif + #endif // WIN95VERSION + } // sfdialog + #ifdef MACVERSION -boolean initfiledialog (void) { + boolean initfiledialog (void) { - #ifdef flcomponent - - #if !TARGET_API_MAC_CARBON - RememberA5 (); - #endif /*for hook*/ - - #endif - - return (true); - } /*initfile*/ + #ifdef flcomponent + + #if !TARGET_API_MAC_CARBON + RememberA5 (); + #endif /*for hook*/ + + #endif + + return (true); + } /*initfile*/ -//Code change by Timothy Paustian Tuesday, June 20, 2000 2:55:17 PM -//New routine to use Nav services for this instead of CustomPutFile. -OSErr -TimsPutFile(bigstring prompt, Str255 fileName, StandardFileReply * outReply) -{ + //Code change by Timothy Paustian Tuesday, June 20, 2000 2:55:17 PM + //New routine to use Nav services for this instead of CustomPutFile. + OSErr + TimsPutFile(bigstring prompt, Str255 fileName, StandardFileReply * outReply) + { - OSErr anErr = noErr; - NavReplyRecord reply; - NavDialogOptions dialogOptions; - OSType fileTypeToSave = 'TEXT'; - NavEventUPP eventProc = NewNavEventUPP(NavEventProc); + OSErr anErr = noErr; + NavReplyRecord reply; + NavDialogOptions dialogOptions; + OSType fileTypeToSave = 'TEXT'; + NavEventUPP eventProc = NewNavEventUPP(NavEventProc); - anErr = NavGetDefaultDialogOptions(&dialogOptions); - copystring(fileName, dialogOptions.savedFileName); - copystring(prompt, dialogOptions.message); - dialogOptions.dialogOptionFlags |= kNavNoTypePopup; /* 08/25/2000 AR */ - if (anErr == noErr) - { - anErr = NavPutFile( nil, &reply, &dialogOptions, eventProc, - fileTypeToSave, 'LAND', nil); + anErr = NavGetDefaultDialogOptions(&dialogOptions); + copystring(fileName, dialogOptions.savedFileName); + copystring(prompt, dialogOptions.message); + dialogOptions.dialogOptionFlags |= kNavNoTypePopup; /* 08/25/2000 AR */ + if (anErr == noErr) + { + anErr = NavPutFile( nil, &reply, &dialogOptions, eventProc, + fileTypeToSave, 'LAND', nil); - if (anErr == noErr && reply.validRecord) - { - AEKeyword theKeyword; - DescType actualType; - Size actualSize; - FSSpec documentFSSpec; + if (anErr == noErr && reply.validRecord) + { + AEKeyword theKeyword; + DescType actualType; + Size actualSize; + FSSpec documentFSSpec; - anErr = AEGetNthPtr(&(reply.selection), 1, typeFSS, - &theKeyword, &actualType, - &documentFSSpec, sizeof(documentFSSpec), - &actualSize ); - if (anErr == noErr) - { + anErr = AEGetNthPtr(&(reply.selection), 1, typeFSS, + &theKeyword, &actualType, + &documentFSSpec, sizeof(documentFSSpec), + &actualSize ); + if (anErr == noErr) + { - outReply->sfReplacing = reply.replacing; - FSMakeFSSpec (documentFSSpec.vRefNum, documentFSSpec.parID, documentFSSpec.name, &(outReply->sfFile)); - outReply->sfGood = true; - } - // Always call NavCompleteSave() to complete - #if TARGET_API_MAC_CARBON != 1 - anErr = NavCompleteSave(&reply, kNavTranslateInPlace); - #endif - - (void) NavDisposeReply(&reply); - } - } - DisposeNavEventUPP(eventProc); - return anErr; -} + outReply->sfReplacing = reply.replacing; + FSMakeFSSpec (documentFSSpec.vRefNum, documentFSSpec.parID, documentFSSpec.name, &(outReply->sfFile)); + outReply->sfGood = true; + } + // Always call NavCompleteSave() to complete + #if TARGET_API_MAC_CARBON != 1 + anErr = NavCompleteSave(&reply, kNavTranslateInPlace); + #endif + + (void) NavDisposeReply(&reply); + } + } + DisposeNavEventUPP(eventProc); + return anErr; + } -OSErr getafile (bigstring prompt, ptrsftypelist filetypes, StandardFileReply * outReply, OSType filecreator) { + OSErr getafile (bigstring prompt, ptrsftypelist filetypes, StandardFileReply * outReply, OSType filecreator) { - /* - 2005-10-06 creedon: added filecreator parameter - - 2005-09-21 creedon: created, cribbed from TimsGetFile - */ + /* + 2005-10-06 creedon: added filecreator parameter + + 2005-09-21 creedon: created, cribbed from TimsGetFile + */ - NavDialogCreationOptions dialogOptions; - NavDialogRef dialogRef; - NavEventUPP eventProc = NewNavEventUPP (NavEventProc); - NavReplyRecord reply; - NavTypeListHandle typeList = nil; - OSErr anErr = noErr; + NavDialogCreationOptions dialogOptions; + NavDialogRef dialogRef; + NavEventUPP eventProc = NewNavEventUPP (NavEventProc); + NavReplyRecord reply; + NavTypeListHandle typeList = nil; + OSErr anErr = noErr; - anErr = NavGetDefaultDialogCreationOptions (&dialogOptions); - - dialogOptions.clientName = CFStringCreateWithCString (NULL, APPNAME_SHORT, kCFStringEncodingMacRoman); - dialogOptions.message = CFStringCreateWithPascalString (NULL, prompt, kCFStringEncodingMacRoman); - - if (anErr == noErr) { - - if (filetypes == nil) - dialogOptions.optionFlags -= kNavNoTypePopup; - else - dialogOptions.optionFlags += kNavAllFilesInPopup; // add all documents to show pop-up - - dialogOptions.optionFlags ^=kNavAllowMultipleFiles; //no multiple files for now - - dialogOptions.optionFlags ^= kNavAllowPreviews; // clear preview option - - dialogOptions.optionFlags += kNavSupportPackages; // see packages + anErr = NavGetDefaultDialogCreationOptions (&dialogOptions); - // dialogOptions.dialogOptionFlags += kNavAllowOpenPackages; // can open packages - - if (filetypes != nil) { // translate into a type list NavServices understands + dialogOptions.clientName = CFStringCreateWithCString ( kCFAllocatorDefault, APPNAME_SHORT, kCFStringEncodingMacRoman ); + dialogOptions.message = CFStringCreateWithPascalString ( kCFAllocatorDefault, prompt, kCFStringEncodingMacRoman ); - NavTypeListPtr typesP = nil; - SInt32 hSize = (sizeof (NavTypeList) + sizeof (OSType) * (filetypes->cttypes - 1)); - newhandle (hSize, (Handle*) &typeList); - typesP = (NavTypeListPtr) *((Handle) typeList); - - typesP->componentSignature = filecreator; - typesP->reserved = 0; - typesP->osTypeCount = filetypes->cttypes; - - BlockMoveData (&(filetypes->types), typesP->osType, (Size) (sizeof (OSType) * filetypes->cttypes)); - } - - anErr = NavCreateGetFileDialog (&dialogOptions, typeList, eventProc, NULL, NULL, NULL, &dialogRef); - - anErr = NavDialogRun (dialogRef); + if (anErr == noErr) { - anErr = NavDialogGetReply (dialogRef, &reply); + if (filetypes == nil) + dialogOptions.optionFlags -= kNavNoTypePopup; + else + dialogOptions.optionFlags += kNavAllFilesInPopup; // add all documents to show pop-up - if (anErr == noErr && reply.validRecord) { - - AEKeyword theKeyword; - DescType actualType; - Size actualSize; - FSSpec documentFSSpec; + dialogOptions.optionFlags ^=kNavAllowMultipleFiles; //no multiple files for now + + dialogOptions.optionFlags ^= kNavAllowPreviews; // clear preview option + + dialogOptions.optionFlags += kNavSupportPackages; // see packages + + // dialogOptions.dialogOptionFlags += kNavAllowOpenPackages; // can open packages - anErr = AEGetNthPtr (&(reply.selection), 1, typeFSS, &theKeyword, &actualType, &documentFSSpec, sizeof (documentFSSpec), &actualSize); // get a pointer to selected file + if (filetypes != nil) { // translate into a type list NavServices understands - assert (actualType == typeFSS); - - if (anErr == noErr) { - FSMakeFSSpec (documentFSSpec.vRefNum, documentFSSpec.parID, documentFSSpec.name, &(outReply->sfFile)); - - outReply->sfGood = true; + NavTypeListPtr typesP = nil; + SInt32 hSize = (sizeof (NavTypeList) + sizeof (OSType) * (filetypes->cttypes - 1)); + newhandle (hSize, (Handle*) &typeList); + typesP = (NavTypeListPtr) *((Handle) typeList); + + typesP->componentSignature = filecreator; + typesP->reserved = 0; + typesP->osTypeCount = filetypes->cttypes; + + BlockMoveData (&(filetypes->types), typesP->osType, (Size) (sizeof (OSType) * filetypes->cttypes)); } + + anErr = NavCreateGetFileDialog (&dialogOptions, typeList, eventProc, NULL, NULL, NULL, &dialogRef); - anErr = NavDisposeReply (&reply); // dispose of NavReplyRecord, resources, descriptors - } - } - - DisposeNavEventUPP (eventProc); - - NavDialogDispose (dialogRef); - - return anErr; - } /* getafile */ + anErr = NavDialogRun (dialogRef); + + anErr = NavDialogGetReply (dialogRef, &reply); + if (anErr == noErr && reply.validRecord) { + + AEKeyword theKeyword; + DescType actualType; + Size actualSize; + FSSpec documentFSSpec; -OSErr -TimsGetFolderOrVolume(bigstring prompt, SInt16 dialogType, StandardFileReply * outReply) -{ - NavDialogOptions dialogOptions; - NavEventUPP eventProc = NewNavEventUPP(NavEventProc); - OSErr anErr = noErr; - NavReplyRecord reply; - - // Specify default options for dialog box - //we don't really need to modify this, but it is needed for NavChooseFolder - anErr = NavGetDefaultDialogOptions(&dialogOptions); - copystring(prompt, dialogOptions.message); - - if(anErr == noErr) - { - //display the dialog - if(sfgetfolderid == dialogType) - anErr = NavChooseFolder(nil, &reply, &dialogOptions, eventProc, nil, nil); - else - { - assert(sfgetdiskid == dialogType); - anErr = NavChooseVolume(nil, &reply, &dialogOptions, eventProc, nil, nil); - } - - if (anErr == noErr && reply.validRecord) - { - AEKeyword theKeyword; - DescType actualType; - Size actualSize; - FSSpec documentFSSpec; - - // Get a pointer to selected file - anErr = AEGetNthPtr(&(reply.selection), 1, - typeFSS, &theKeyword, - &actualType, &documentFSSpec, - sizeof(documentFSSpec), - &actu... [truncated message content] |
|
From: <cre...@us...> - 2006-06-26 21:30:19
|
Revision: 1428 Author: creecode Date: 2006-06-26 14:30:16 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1428&view=rev Log Message: ----------- removed include filesystem7.h Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/filealias.c Modified: Frontier/branches/FSRef_Migration/Common/source/filealias.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/filealias.c 2006-06-26 21:28:48 UTC (rev 1427) +++ Frontier/branches/FSRef_Migration/Common/source/filealias.c 2006-06-26 21:30:16 UTC (rev 1428) @@ -61,7 +61,6 @@ #include "error.h" #include "resources.h" #include "file.h" -#include "filesystem7.h" typedef struct { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 21:28:53
|
Revision: 1427 Author: creecode Date: 2006-06-26 14:28:48 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1427&view=rev Log Message: ----------- removed include filesystem7.h in filelaunchanythingverb function replace System7Open with LSOpenFSRef Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/fileverbs.c Modified: Frontier/branches/FSRef_Migration/Common/source/fileverbs.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-06-26 21:19:26 UTC (rev 1426) +++ Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-06-26 21:28:48 UTC (rev 1427) @@ -40,7 +40,6 @@ #include "process.h" #include "kernelverbs.h" #include "file.h" -#include "filesystem7.h" #include "filealias.h" #include "tablestructure.h" #include "kernelverbdefs.h" @@ -2865,27 +2864,35 @@ } // followaliasverb - boolean filelaunchanythingverb (hdltreenode hparam1, tyvaluerecord *vreturned) { + boolean filelaunchanythingverb ( hdltreenode hparam1, tyvaluerecord *vreturned ) { - /* - 6/1/92 dmb: generate oserror if System7Open fails - */ + // + // 2006-06-26 creedon: replace System7Open with LSOpenFSRef + // + // 1992-06-01 dmb: generate oserror if System7Open fails + // + OSStatus status; tyfilespec fs; flnextparamislast = true; - if (!getpathvalue (hparam1, 1, &fs)) // fs holds the file's path - return (false); + if ( ! getpathvalue ( hparam1, 1, &fs ) ) // fs holds the file's path + return ( false ); setfserrorparam ( &fs ); - if ( oserror ( System7Open ( &fs ) ) ) + ( void ) extendfilespec ( &fs, &fs ); + + status = LSOpenFSRef ( &fs.fsref, NULL ); + + if ( oserror ( status ) ) return ( false ); - return (setbooleanvalue (true, vreturned)); - } /*filelaunchanythingverb*/ + return ( setbooleanvalue ( true, vreturned ) ); + } // filelaunchanythingverb + #endif static boolean filefunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 21:19:42
|
Revision: 1426 Author: creecode Date: 2006-06-26 14:19:26 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1426&view=rev Log Message: ----------- files deleted Removed Paths: ------------- Frontier/branches/FSRef_Migration/Common/headers/filesystem7.h Frontier/branches/FSRef_Migration/Common/source/filelaunch.c Deleted: Frontier/branches/FSRef_Migration/Common/headers/filesystem7.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/filesystem7.h 2006-06-26 19:48:29 UTC (rev 1425) +++ Frontier/branches/FSRef_Migration/Common/headers/filesystem7.h 2006-06-26 21:19:26 UTC (rev 1426) @@ -1,37 +0,0 @@ - -/* $Id$ */ - -/****************************************************************************** - - UserLand Frontier(tm) -- High performance Web content management, - object database, system-level and Internet scripting environment, - including source code editing and debugging. - - Copyright (C) 1992-2004 UserLand Software, Inc. - - 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. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -******************************************************************************/ - -#define filesystem7include - - -/*prototypes*/ - -extern short System7Open (FSSpec); /*filelaunch.c*/ - - - - Deleted: Frontier/branches/FSRef_Migration/Common/source/filelaunch.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/filelaunch.c 2006-06-26 19:48:29 UTC (rev 1425) +++ Frontier/branches/FSRef_Migration/Common/source/filelaunch.c 2006-06-26 21:19:26 UTC (rev 1426) @@ -1,345 +0,0 @@ - -/* $Id$ */ - -/****************************************************************************** - - UserLand Frontier(tm) -- High performance Web content management, - object database, system-level and Internet scripting environment, - including source code editing and debugging. - - Copyright (C) 1992-2004 UserLand Software, Inc. - - 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. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -******************************************************************************/ - -#include "frontier.h" -#include "standard.h" - -#include "file.h" -#include "filesystem7.h" -#include "ops.h" - - - -#define kAEFinderEvents 'FNDR' -#define kAEShowClipboard 'shcl' -#define kAEPutAway 'sput' -#define keyAEFinderSelection 'fsel' -#define kAEDrag 'drag' -#define keyAEFinderMisc 'fmsc' -#define kAEEmptyTrash 'empt' -#define kAEOpenSelection 'sope' -#define kAEPrintSelection 'spri' - -#if TARGET_API_MAC_CARBON == 1 -#else -static ProcessSerialNumber FinderNumber; -//Code change by Timothy Paustian Wednesday, June 21, 2000 4:04:43 PM -//in Carbon you have to use high level apple events. Since what we are trying -//to do is launch an application, lets try that. -static OSErr GetFinderPort(void) { - - IPCListPortsPBRec ipc; - PPCPortRec port; - LocationNameRec where; - short i; - short err; - long first4; - PortInfoRec FinderPort; - - if (FinderNumber.lowLongOfPSN || FinderNumber.highLongOfPSN) { - err = GetPortNameFromProcessSerialNumber(&FinderPort.name, &FinderNumber); - if (err == noErr) return noErr; - }; - - for (i = 0; ; i++) { - ipc.ioCompletion = 0; - ipc.startIndex = i; - ipc.requestCount = 1; - ipc.portName = &port; - port.nameScript = 0; - port.name[0] = 1; - port.name[1] = '='; - port.portKindSelector = ppcByString; - port.u.portTypeStr[0] = 1; - port.u.portTypeStr[1] = '='; - ipc.locationName = &where; - where.locationKindSelector = ppcNoLocation; - ipc.bufferPtr = &FinderPort; - - err = IPCListPortsSync(&ipc); - if (err != noErr) return err; - if (ipc.actualCount != 1) return -1; - BlockMove(&FinderPort.name.u.portTypeStr[1], &first4, 4); - if (first4 != 'MACS') continue; - GetProcessSerialNumberFromPortName(&FinderPort.name, &FinderNumber); - return 0; - }; - -} -#endif - -/* -the MFDispatch calls are only needed if you want to make the request -anonymously. Normally you don't have to do this. I do it because I -don't want the Finder sending replies back to the frontmost app. -*/ - -pascal short MFDispatch(short number) ONEWORDINLINE (0xA88F); - -short System7Open (FSSpec fs2) { - - /* - 3/12/92 dmb: commented out MFDispatch calls, seeking A/UX compatibility - - 6/1/92 dmb: added return (err) at end of function - - 8/20/92 dmb: special case for a/ux - */ - - #if TARGET_API_MAC_CARBON == 1 - //Code change by Timothy Paustian Wednesday, June 21, 2000 4:06:47 PM - //Maybe I'm nuts, but I think I can do this very easily. - //2/25/2001 Tim P No I can't this needs to be an apple event - //I need to send an apple event to have the thing opened - //The below code works. It is a total rip off of the example code in apples - //Finder launch example. http://developer.apple.com/samplecode/Sample_Code/Interapplication_Comm/FinderLaunch.htm - //I have pretty much left it as is. We could clean it up by not creating a targetList, But - //I am leaving the ability in there in case it's wante later - OSErr err; - AppleEvent theAEvent, theReply; - AEAddressDesc fndrAddress; - AEDescList targetListDesc; - OSType fndrCreator; - Boolean wasChanged; - AliasHandle targetAlias; - long idx; // 2006-04-03 - kw --- renamed - long nTargets = 1; - FSSpec targets[1]; - FSSpec *targetList; - targets[0] = fs2; - targetList = targets; - - /* verify parameters */ - if ( (nTargets == 0) - || (targetList == NULL)) - { - return paramErr; - } - - /* set up locals */ - AECreateDesc(typeNull, NULL, 0, &theAEvent); - AECreateDesc(typeNull, NULL, 0, &fndrAddress); - AECreateDesc(typeNull, NULL, 0, &theReply); - AECreateDesc(typeNull, NULL, 0, &targetListDesc); - targetAlias = NULL; - fndrCreator = 'MACS'; - - /* create an open documents event targeting the finder */ - err = AECreateDesc(typeApplSignature, (Ptr) &fndrCreator, - sizeof(fndrCreator), &fndrAddress); - if (err != noErr) goto bail; - err = AECreateAppleEvent(kCoreEventClass, kAEOpenDocuments, - &fndrAddress, kAutoGenerateReturnID, - kAnyTransactionID, &theAEvent); - if (err != noErr) goto bail; - - /* create the list of files to open */ - err = AECreateList(NULL, 0, false, &targetListDesc); - if (err != noErr) goto bail; - for ( idx = 0; idx < nTargets; idx++) { - if (targetAlias == NULL) - err = NewAlias(NULL, (targetList + idx), &targetAlias); - else err = UpdateAlias(NULL, (targetList + idx), targetAlias, &wasChanged); - if (err != noErr) goto bail; - HLock((Handle) targetAlias); - err = AEPutPtr(&targetListDesc, (idx + 1), typeAlias, *targetAlias, GetHandleSize((Handle) targetAlias)); - HUnlock((Handle) targetAlias); - if (err != noErr) goto bail; - } - - /* add the file list to the apple event */ - err = AEPutParamDesc(&theAEvent, keyDirectObject, &targetListDesc); - if (err != noErr) goto bail; - - /* send the event to the Finder */ - err = AESend(&theAEvent, &theReply, kAENoReply, - kAENormalPriority, kAEDefaultTimeout, NULL, NULL); - - /* clean up and leave */ -bail: - if (targetAlias != NULL) DisposeHandle((Handle) targetAlias); - AEDisposeDesc(&targetListDesc); - AEDisposeDesc(&theAEvent); - AEDisposeDesc(&fndrAddress); - AEDisposeDesc(&theReply); - return err; - - #else - - static EventRecord er; - short err; - AliasHandle a1 = 0, a2 = 0; - long hs1, hs2; - FSSpec fs1; - Handle message; - CInfoPBRec pb; - long version; - - err = GetFinderPort(); - - if (err != noErr) - return err; - - /* - err = FSMakeFSSpec(vRefNum, dirID, name, &fs2); - if (err != noErr) - return err; - */ - - /* get some catalog information, which we will use later. */ - pb.dirInfo.ioCompletion=0; - pb.dirInfo.ioNamePtr = fs2.name; - pb.dirInfo.ioVRefNum = fs2.vRefNum; - pb.dirInfo.ioFDirIndex = 0; - pb.dirInfo.ioDrDirID = fs2.parID; - - err = PBGetCatInfoSync(&pb); - - if (err != noErr) - return err; - - err = NewAliasMinimal(&fs2, &a2); - - if (err != noErr) - return err; - - fs1 = fs2; - - if (gestalt (gestaltAUXVersion, &version)) { /*running under A/UX; cover bugs*/ - - if (fs1.parID == 1) { /*it's a volume*/ - - fs1.vRefNum = -1; /*a/ux wants to see the root as the parent*/ - } - else { /*not a volume: path parsing works better under a/ux*/ - - bigstring path; - - if (!filespectopath (&fs1, path)) - return (false); - - folderfrompath (path, path); - - if (!pathtofilespec (path, &fs1)) - return (false); - - goto gotfs1; - } - } - else { - - if (fs1.parID == 1) { /*it's a volume*/ - - err = FindFolder(fs1.vRefNum, kDesktopFolderType, false, &fs1.vRefNum, &fs1.parID); - - if (err != noErr) - return err; - } - } - - err = FSMakeFSSpec(fs1.vRefNum, fs1.parID, "\p", &fs1); - - if (err != noErr) - return err; - - gotfs1: - - err = NewAliasMinimal(&fs1, &a1); - - if (err != noErr) - return err; - - hs1 = GetHandleSize((Handle) a1); - hs2 = GetHandleSize((Handle) a2); - - MoveHHi((Handle) a1); HLock((Handle) a1); - MoveHHi((Handle) a2); HLock((Handle) a2); - - er.what = kHighLevelEvent; /* PHLE fills this in, but we do it just to be clear. */ - er.message = kAEFinderEvents; /* this is the event class */ - *(long *)&er.where = kAEOpenSelection; /* this is the event type - see Card 131 */ - er.when = TickCount(); /* this also gets filled in, but... */ - er.modifiers = 0; /* doesn't matter */ - - message = NewHandle (24 + hs1 + 28 + hs2); - - /* - normally you'd use Apple Events manager calls to pack up a message and - send it. I do things this way only because I can't be sure the frontmost - app has initialized that manager. - */ - - if (message) { - register long *filler = (void *)*message; - - *filler++ = 'aevt'; - *filler++ = 0x00010001; - *filler++ = ';;;;'; - *filler++ = '----'; - *filler++ = 'alis'; - *filler++ = hs1; - BlockMove(*a1, filler, hs1); filler = (long *)(hs1 + (long) filler); - *filler++ = 'fsel'; - *filler++ = 'list'; - *filler++ = hs2 + 16; - *filler++ = 1; - *filler++ = 0; - *filler++ = 'alis'; - *filler++ = hs2; - BlockMove(*a2, filler, hs2); - }; - - DisposeHandle((Handle) a1); - DisposeHandle((Handle) a2); - - if (!message) - return (memFullErr); - - /* - MFDispatch(0x40); - */ - HLock(message); - - err = PostHighLevelEvent(&er, &FinderNumber, 237, - *message, GetHandleSize(message), - receiverIDisPSN); - - /* - MFDispatch(0x41); - */ - - if ((pb.dirInfo.ioFlAttrib & ioDirMask) || pb.hFileInfo.ioFlFndrInfo.fdType == 'cdev') { - SetFrontProcess(&FinderNumber); - }; - - DisposeHandle(message); - #endif - - - return (err); - } /*System7Open*/ - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 19:48:35
|
Revision: 1425 Author: creecode Date: 2006-06-26 12:48:29 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1425&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/shellwindow.c Modified: Frontier/branches/FSRef_Migration/Common/source/shellwindow.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/shellwindow.c 2006-06-26 18:55:18 UTC (rev 1424) +++ Frontier/branches/FSRef_Migration/Common/source/shellwindow.c 2006-06-26 19:48:29 UTC (rev 1425) @@ -52,6 +52,12 @@ #include "tablestructure.h" #include "cancoon.h" +#ifdef MACVERSION + + #include "MoreFilesX.h" + +#endif + #ifdef WIN95VERSION #include "FrontierWinMain.h" #endif @@ -451,23 +457,36 @@ short windowgetvnum (WindowPtr w) { + + // + // 2006-06-23 creedon: FSRef-ized + // hdlwindowinfo hinfo; if (!getwindowinfo (w, &hinfo)) return (0); -#ifdef MACVERSION - return ((**hinfo).fspec.vRefNum); -#endif + #ifdef MACVERSION + + short vnum; + + FSGetVRefNum ( &(**hinfo).fspec.fsref, &vnum ); + + return ( vnum ); + + #endif -#ifdef WIN95VERSION - return -1; // *** need new field? -#endif - } /*windowgetvnum*/ + #ifdef WIN95VERSION + return -1; // *** need new field? + + #endif -boolean windowsetfspec (WindowPtr w, tyfilespec *fspec) { + } // windowgetvnum + + +boolean windowsetfspec (WindowPtr w, ptrfilespec fspec) { hdlwindowinfo hinfo; bigstring bstitle; @@ -485,7 +504,7 @@ } /*windowsetfspec*/ -boolean windowgetfspec (WindowPtr w, tyfilespec *fspec) { +boolean windowgetfspec (WindowPtr w, ptrfilespec fspec) { /* 6.18.97 dmb: return boolean value indicating whether or not the @@ -1961,11 +1980,7 @@ //Must pass a CGrafPtr to pushport on OS X to avoid a crash { CGrafPtr thePort; - #if TARGET_API_MAC_CARBON == 1 thePort = GetWindowPort(w); - #else - thePort = (CGrafPtr)w; - #endif pushport (thePort); } @@ -2000,7 +2015,10 @@ shellsetwindowtitle (hinfo, bstitle); // 7.24.97 dmb: was windowsettitle - copystring (bstitle, fsname (&(**hinfo).fspec)); + // do we need to do this? + + (**hinfo).fspec.path = CFStringCreateWithPascalString (kCFAllocatorDefault, bstitle, kCFStringEncodingMacRoman ); + } fl = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 18:55:28
|
Revision: 1424 Author: creecode Date: 2006-06-26 11:55:18 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1424&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/FrontierSDK/Toolkits/AppletToolkit/Headers/appletfiles.h Modified: Frontier/branches/FSRef_Migration/FrontierSDK/Toolkits/AppletToolkit/Headers/appletfiles.h =================================================================== --- Frontier/branches/FSRef_Migration/FrontierSDK/Toolkits/AppletToolkit/Headers/appletfiles.h 2006-06-26 18:53:58 UTC (rev 1423) +++ Frontier/branches/FSRef_Migration/FrontierSDK/Toolkits/AppletToolkit/Headers/appletfiles.h 2006-06-26 18:55:18 UTC (rev 1424) @@ -111,7 +111,7 @@ boolean filemakespec (short, long, bigstring, ptrfilespec); -boolean filegetfilename (ptrfilespec, bigstring); +boolean getfsfile (ptrfilespec, bigstring); boolean equalfilespecs (ptrfilespec, ptrfilespec); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 18:54:05
|
Revision: 1423 Author: creecode Date: 2006-06-26 11:53:58 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1423&view=rev Log Message: ----------- FSRef-ization started, problem, see < http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=128533&group_id=120666&group_project_id=48146 >. Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/dbverbs.c Modified: Frontier/branches/FSRef_Migration/Common/source/dbverbs.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/dbverbs.c 2006-06-26 18:41:12 UTC (rev 1422) +++ Frontier/branches/FSRef_Migration/Common/source/dbverbs.c 2006-06-26 18:53:58 UTC (rev 1423) @@ -404,6 +404,7 @@ boolean flreadonly; odbref odb; + } tyodbrecord, *ptrodbrecord, **hdlodbrecord; @@ -463,9 +464,13 @@ static boolean getodbparam (hdltreenode hparam1, short pnum, hdlodbrecord *hodbrecord) { + // + // 2006-06-23 creedon: for Mac, FSRef-zed + // + hdlodbrecord hodb; tyfilespec fs; - tyfilespec * ptrfs; + ptrfilespec ptrfs; ptrfs = &fs; @@ -473,23 +478,32 @@ return (false); for (hodb = hodblist; hodb != nil; hodb = (**hodb).hnext) { - - if (equalfilespecs (&(**hodb).fs, ptrfs)) { + + if ( equalfilespecs ( &( **hodb ).fs, ptrfs ) ) { *hodbrecord = hodb; return (true); } } + + bigstring bs; - lang2paramerror (dbnotopenederror, bsfunctionname, fsname(ptrfs)); + getfsfile ( ptrfs, bs ); + lang2paramerror (dbnotopenederror, bsfunctionname, bs ); + return (false); - } /*getodbparam*/ + + } // getodbparam static boolean getodbvalue (hdltreenode hparam1, short pnum, tyodbrecord *odb, boolean flreadonly) { + // + // 2006-06-23 creedon: for Mac, FSRef-ized + // + hdlodbrecord hodb; if (!getodbparam (hparam1, pnum, &hodb)) @@ -498,8 +512,12 @@ *odb = **hodb; if ((*odb).flreadonly && !flreadonly) { + + bigstring bs; + + getfsfile ( &( *odb ).fs, bs ); - lang2paramerror (dbopenedreadonlyerror, bsfunctionname, fsname(&(*odb).fs)); + lang2paramerror (dbopenedreadonlyerror, bsfunctionname, bs ); return (false); } @@ -562,22 +580,24 @@ static boolean dbnewverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - /* - 4.1b5 dmb: new verb - */ + // + // 2006-06-20 creedon: for Mac, extend filespec + // + // 4.1b5 dmb: new verb + // tyodbrecord odbrec; boolean fl; flnextparamislast = true; - if (!getfilespecvalue (hparam1, 1, &odbrec.fs)) + if ( ! getfilespecvalue ( hparam1, 1, &odbrec.fs ) ) return (false); + + shellpushdefaultglobals (); // so that config is correct - shellpushdefaultglobals (); /*so that config is correct*/ + fl = opennewfile ( &odbrec.fs, config.filecreator, config.filetype, &odbrec.fref ); - fl = opennewfile (&odbrec.fs, config.filecreator, config.filetype, &odbrec.fref); - shellpopglobals (); if (!fl) @@ -589,28 +609,30 @@ if (odberror (fl)) { - deletefile (&odbrec.fs); + deletefile ( &odbrec.fs ); return (false); } return (setbooleanvalue (true, vreturned)); - } /*dbnewverb*/ + } // dbnewverb static boolean dbopenverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - /* - 4.1b5 dmb: added ability to access already-open root in Frontier - */ + // + // 2006-06-20 creedon: for Mac, extend filespec + // + // 4.1b5 dmb: added ability to access already-open root in Frontier + // tyodbrecord odbrec; hdlodbrecord hodb; WindowPtr w; - + odbrec.fref = 0; - if (!getfilespecvalue (hparam1, 1, &odbrec.fs)) + if ( ! getfilespecvalue ( hparam1, 1, &odbrec.fs ) ) return (false); flnextparamislast = true; @@ -618,18 +640,20 @@ if (!getbooleanvalue (hparam1, 2, &odbrec.flreadonly)) return (false); - w = shellfindfilewindow (&odbrec.fs); + ( void ) extendfilespec ( &odbrec.fs, &odbrec.fs ); + + w = shellfindfilewindow ( &odbrec.fs ); if (w != nil) { if (odberror (odbaccesswindow (w, &odbrec.odb))) return (false); - /*fref remains zero, so unwanted closefiles aren't a problem*/ + // fref remains zero, so unwanted closefiles aren't a problem } else { - if (!openfile (&odbrec.fs, &odbrec.fref, odbrec.flreadonly)) + if ( ! openfile ( &odbrec.fs, &odbrec.fref, odbrec.flreadonly)) return (false); if (odberror (odbopenfile (odbrec.fref, &odbrec.odb, odbrec.flreadonly))) { @@ -648,11 +672,11 @@ return (false); } - + listlink ((hdllinkedlist) hodblist, (hdllinkedlist) hodb); return (setbooleanvalue (true, vreturned)); - } /*dbopenverb*/ + } // dbopenverb static boolean dbsaveverb (hdltreenode hparam1, tyvaluerecord *vreturned) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 18:41:18
|
Revision: 1422 Author: creecode Date: 2006-06-26 11:41:12 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1422&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/file.c Modified: Frontier/branches/FSRef_Migration/Common/source/file.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/file.c 2006-06-26 18:21:12 UTC (rev 1421) +++ Frontier/branches/FSRef_Migration/Common/source/file.c 2006-06-26 18:41:12 UTC (rev 1422) @@ -29,11 +29,9 @@ #include "standard.h" #ifdef MACVERSION - #if TARGET_API_MAC_CARBON - #include "MoreFilesX.h" - #else - #include "MoreFilesExtras.h" - #endif + + #include "MoreFilesX.h" + #endif #include "filealias.h" @@ -63,31 +61,46 @@ -boolean equalfilespecs (const tyfilespec *fs1, const tyfilespec *fs2) { +boolean equalfilespecs (const ptrfilespec fs1, const ptrfilespec fs2) { - /* - 5.0a25 dmb: until we set the volumeID to zero for all Win fsspecs, - we must not compare them here - */ + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + // 5.0a25 dmb: until we set the volumeID to zero for all Win fsspecs, we must not compare them here + // #ifdef MACVERSION - if ((*fs1).vRefNum != (*fs2).vRefNum) - return (false); + + if ( FSCompareFSRefs ( &( *fs1 ).fsref, &( *fs2 ).fsref ) != noErr ) + return ( false ); + + // seems like the checking could be improved for paths, what if one is NULL and the other is not? + + if ( ( ( *fs1 ).path != NULL ) && ( ( *fs2 ).path != NULL ) ) + if ( CFStringCompare ( ( *fs1 ).path, ( *fs2 ).path, 0 ) != kCFCompareEqualTo ) + return ( false ); + + bigstring bs1, bs2; - if ((*fs1).parID != (*fs2).parID) - return (false); + getfsfile ( fs1, bs1 ); + getfsfile ( fs2, bs2 ); - return (equalstrings ((ptrstring) fsname (fs1), (ptrstring) fsname (fs2))); + return ( equalstrings ( bs1, bs2 ) ); + #endif + #ifdef WIN95VERSION - //if ((*fs1).volumeID != (*fs2).volumeID) + + // if ((*fs1).volumeID != (*fs2).volumeID) // return (false); return (lstrcmp(fsname (fs1), fsname (fs2)) == 0); -#endif - } /*equalfilespecs*/ + + #endif + } // equalfilespecs + boolean filesetposition (hdlfilenum fnum, long position) { /* @@ -461,31 +474,44 @@ #endif //MACVERSION -boolean flushvolumechanges (const tyfilespec *fs, hdlfilenum fnum) { -#ifdef MACVERSION -# pragma unused(fnum) +boolean flushvolumechanges (const ptrfilespec fs, hdlfilenum fnum) { - /* - 4.1b7 dmb: was -- FlushVol (nil, (*fs).vRefNum); + #ifdef MACVERSION - now use PB call to do asynch flush - */ + # pragma unused(fnum) + + /* + 4.1b7 dmb: was -- FlushVol (nil, (*fs).vRefNum); + + now use PB call to do asynch flush + */ + + ParamBlockRec *pb; + + pb = (ParamBlockRec *) NewPtrClear (sizeof (ParamBlockRec)); + + FSCatalogInfo catalogInfo; + OSStatus status; - ParamBlockRec *pb; + // clearbytes ( &catalogInfo, longsizeof ( catalogInfo ) ); + + status = FSGetCatalogInfo ( &( *fs ).fsref, kFSCatInfoVolume, &catalogInfo, NULL, NULL, NULL ); + + (*pb).volumeParam.ioVRefNum = catalogInfo.volume; + + (*pb).volumeParam.ioCompletion = iocompletionUPP; + + PBFlushVolAsync (pb); + + #endif + + #ifdef WIN95VERSION - pb = (ParamBlockRec *) NewPtrClear (sizeof (ParamBlockRec)); + if (fnum != NULL) + FlushFileBuffers (fnum); + + #endif - (*pb).volumeParam.ioVRefNum = (*fs).vRefNum; - - (*pb).volumeParam.ioCompletion = iocompletionUPP; - - PBFlushVolAsync (pb); -#endif - -#ifdef WIN95VERSION - if (fnum != NULL) - FlushFileBuffers (fnum); -#endif return (true); } /*flushvolumechanges*/ @@ -508,287 +534,265 @@ } /*fileshutdown*/ -static boolean filecreateandopen (const tyfilespec *fs, OSType creator, OSType filetype, hdlfilenum *fnum) { -#ifdef MACVERSION - OSStatus err = noErr; -// char s[256]; - - setfserrorparam (fs); +static boolean filecreateandopen ( ptrfilespec fs, OSType creator, OSType filetype, hdlfilenum *fnum) { + + // + // 2006-06-26 creedon: for Mac, FSRef-ized + // - if (oserror (FSpCreate (fs, creator, filetype, smSystemScript))) /*failed to open the file for writing*/ - return (false); - - if (oserror (FSpOpenDF (fs, fsRdWrPerm, fnum))) { + #ifdef MACVERSION - FSClose (*fnum); + HFSUniStr255 name; + OSErr err; - deletefile (fs); + setfserrorparam ( fs ); - return (false); /*failed to open the file for writing*/ - } - - #if TARGET_API_MAC_CARBON - { - FSRef myRef; - err = FSpMakeFSRef (fs,&myRef); - if (!err) - FSSetNameLocked(&myRef); - } - #endif + CFStringRefToHFSUniStr255 ( ( *fs ).path, &name ); - return (true); -#endif + err = FSCreateFileUnicode ( &( *fs ).fsref, name.length, name.unicode, kFSCatInfoNone, NULL, &( *fs ).fsref, NULL ); + + if ( oserror ( err ) ) + return (false); + + ( *fs ).path = NULL; // clear out path + + HFSUniStr255 dataforkname; + + err = FSGetDataForkName ( &dataforkname ); + + if ( oserror ( err ) ) + return ( false ); + + err = FSOpenFork ( &( *fs ).fsref, dataforkname.length, dataforkname.unicode, fsRdWrPerm, fnum ); -#ifdef WIN95VERSION - HANDLE fref; - - fref = (Handle) CreateFile (stringbaseaddress (fsname (fs)), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, - NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - *fnum = 0; - - if (fref == INVALID_HANDLE_VALUE) { + if ( oserror ( err ) ) { + + FSClose (*fnum); + + deletefile (fs); + + return (false); // failed to open the file for writing + } - winfileerror (fs); + FSSetNameLocked ( &( *fs ).fsref ); + + return (true); + + #endif - return (false); - } - - *fnum = (hdlfilenum) fref; - return (true); -#endif - } /*filecreateandopen*/ - - -boolean fileopenorcreate (const tyfilespec *fs, OSType creator, OSType filetype, hdlfilenum *fnum) { -#ifdef MACVERSION - /* - open or create a file indicated by fs. return with fnum set to the Mac - filesystem's file number for the file. + #ifdef WIN95VERSION - if we open a file, we takes what we get in the creator and filetype department. - however, if we create a file it's of the indicated filetype and creator. - */ - - if (FSpOpenDF (fs, fsRdWrPerm, fnum) == noErr) { - /*file exists and is open*/ - #if TARGET_API_MAC_CARBON - FSRef myRef; - if (FSpMakeFSRef (fs,&myRef)) - FSSetNameLocked(&myRef); - #else - FSpSetNameLocked(&fs); - #endif - return (true); - } - return (filecreateandopen (fs, creator, filetype, fnum)); -#endif + HANDLE fref; -#ifdef WIN95VERSION - HANDLE fref; - DWORD dAccess; - char fn[300]; + fref = (Handle) CreateFile (stringbaseaddress (fsname (fs)), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, + NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + *fnum = 0; - dAccess = GENERIC_READ | GENERIC_WRITE; + if (fref == INVALID_HANDLE_VALUE) { + + winfileerror (fs); - copystring (fsname (fs), fn); - - nullterminate (fn); + return (false); + } - fref = (Handle) CreateFile (stringbaseaddress(fn), dAccess, FILE_SHARE_READ, - NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - *fnum = 0; - - if (fref == INVALID_HANDLE_VALUE) { + *fnum = (hdlfilenum) fref; - winfileerror (fs); + return (true); + + #endif + + } // filecreateandopen - return (false); - } - *fnum = (hdlfilenum) fref; - return (true); -#endif - } /*fileopenorcreate*/ +boolean opennewfile ( ptrfilespec fs, OSType creator, OSType filetype, hdlfilenum *fnum ) { - -boolean opennewfile (const tyfilespec *fs, OSType creator, OSType filetype, hdlfilenum *fnum) { + // + // 2006-06-22 creedon: for Mac, FSRef-ized + // boolean flfolder; + tyfilespec fst; - if (fileexists (fs, &flfolder)) { /*file exists, delete it*/ + ( void ) extendfilespec ( fs, &fst ); + + if ( fileexists ( &fst, &flfolder ) ) { // file exists, delete it + //WriteToConsole("We're deleting a file that already exists. No idea why."); - if (!deletefile (fs)) - return (false); + + if ( ! deletefile ( &fst ) ) + return ( false ); } - return (filecreateandopen (fs, creator, filetype, fnum)); - } /*opennewfile*/ + return ( filecreateandopen ( fs, creator, filetype, fnum ) ); + } // opennewfile -boolean openfile (const tyfilespec *fs, hdlfilenum *fnum, boolean flreadonly) { +boolean openfile ( const ptrfilespec fs, hdlfilenum *fnum, boolean flreadonly ) { -#ifdef MACVERSION - /* - 5/23/91 dmb: make sure we clear fnum on error; if file is already open, - FSOpen will set fnum to the existing channel - - 4.1b4 dmb: added flreadonly paramater - */ - - OSErr errcode; - OSErr err = noErr; - short perm; - - setfserrorparam (fs); /*in case error message takes a filename parameter*/ - - if (flreadonly) - perm = fsRdPerm; - else - perm = fsRdWrPerm; + // + // 2006-06-26 creedon: for Mac, FSRef-ized + // + // 4.1b4 dmb: on Mac added flreadonly paramater + // + // 1991-05-23 dmb: on Mac make sure we clear fnum on error; if file is already open, + // FSOpen will set fnum to the existing channel + // + + #ifdef MACVERSION + + OSErr err; + short perm; + + setfserrorparam ( fs ); // in case error message takes a filename parameter + + if (flreadonly) + perm = fsRdPerm; + else + perm = fsRdWrPerm; - errcode = FSpOpenDF (fs, perm, fnum); - - if (oserror (errcode)) { + HFSUniStr255 dataforkname; - *fnum = 0; + err = FSGetDataForkName ( &dataforkname ); - return (false); - } - #if TARGET_API_MAC_CARBON - { - FSRef myRef; - err = FSpMakeFSRef (fs,&myRef); - if (!err) - err = FSSetNameLocked(&myRef); - } - #else - err = FSpSetNameLocked(fs); + if ( oserror ( err ) ) + return ( false ); + + err = FSOpenFork ( &( *fs ).fsref, dataforkname.length, dataforkname.unicode, perm, fnum ); + + if ( oserror ( err ) ) { + + *fnum = 0; + + return (false); + } + + FSSetNameLocked ( &( *fs ).fsref ); + + return (true); + #endif + + #ifdef WIN95VERSION - if (err!=noErr){ - //sprintf(s,"error locking file name: %d",err); - //WriteToConsole(s); - } - - return (true); -#endif + HANDLE fref; + DWORD dAccess; + char fn[300]; -#ifdef WIN95VERSION - HANDLE fref; - DWORD dAccess; - char fn[300]; + if (flreadonly) + dAccess = GENERIC_READ; + else + dAccess = GENERIC_READ | GENERIC_WRITE; - if (flreadonly) - dAccess = GENERIC_READ; - else - dAccess = GENERIC_READ | GENERIC_WRITE; + copystring (fsname (fs), fn); - copystring (fsname (fs), fn); + nullterminate (fn); - nullterminate (fn); + fref = (Handle) CreateFile (stringbaseaddress(fn), dAccess, FILE_SHARE_READ, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + *fnum = 0; - fref = (Handle) CreateFile (stringbaseaddress(fn), dAccess, FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - *fnum = 0; + if (fref == INVALID_HANDLE_VALUE) { + + winfileerror (fs); - if (fref == INVALID_HANDLE_VALUE) { + return (false); + } + + *fnum = (hdlfilenum) fref; + return (true); - winfileerror (fs); - - return (false); - } - - *fnum = (hdlfilenum) fref; - return (true); -#endif - } /*openfile*/ + #endif -/******* + } /* openfile */ -From MoreFilesExtras. -I'm going to use this to yank the fsspec back out from a refnum, -so that I can clear the finder name lock from the file prior to closing it. -*******/ - - boolean closefile (hdlfilenum fnum) { -#ifdef MACVERSION - OSStatus err = noErr; -// char s[256]; + + // + // 2006-06-22 creedon: for Mac FSRef-ized + // + // 1990-08-20 dmb: on Mac check for 0. + // + // From MoreFilesExtras. I'm going to use this to yank the fsspec back out from a refnum, so that I can clear the finder + // name lock from the file prior to closing it. + // - /* - dmb 8/20/90: check for 0. - */ + #ifdef MACVERSION - if (fnum != 0) { - #if TARGET_API_MAC_CARBON - FSRef myRef; - err = FileRefNumGetFSRef (fnum, &myRef); - if (err == noErr) { - FSClearNameLocked (&myRef); + OSStatus err = noErr; + + if ( fnum != 0 ) { + + FSRef fsr; + + err = FileRefNumGetFSRef ( fnum, &fsr ); + + if ( err == noErr ) { + FSClearNameLocked ( &fsr ); } - #else - FSSpec fs; - err = FSpGetFileLocation (fnum,&fs); - if (err==noErr) { - FSpClearNameLocked (&fs); - } - #endif else { //sprintf(s,"Error is %d",err); //WriteToConsole(s); } - - return (!oserror (FSClose (fnum))); - } + + err = FSCloseFork ( fnum ); + + return ( ! oserror ( err ) ); + + } + + return ( true ); + + #endif + + #ifdef WIN95VERSION - return (true); -#endif - -#ifdef WIN95VERSION - if (fnum != 0) { - - if (!CloseHandle (fnum)) { + if (fnum != 0) { - winerror (); + if (!CloseHandle (fnum)) { + + winerror (); - return (false); + return (false); + } } - } + + return (true); + #endif - return (true); -#endif - } /*closefile*/ + } // closefile -boolean deletefile (const tyfilespec *fs) { +boolean deletefile ( const ptrfilespec fs ) { - /* - 2.1b2 dmb: new filespec-based version - - 5.0.1 dmb: always setsferror param - */ + // + // 2006-06-26 creedon: for Mac, FSRef-ized + // + // 5.0.1 dmb: always setfserror param + // + // 2.1b2 dmb: on Mac new filespec-based version + // #ifdef MACVERSION - setfserrorparam (fs); /*in case error message takes a filename parameter*/ - #if TARGET_API_MAC_CARBON - { - FSRef myRef; - if (FSpMakeFSRef (fs,&myRef)) - FSClearNameLocked(&myRef); - } - #else - FSpClearNameLocked(fs); - #endif - return (!oserror (FSpDelete (fs))); + + OSErr err; + + setfserrorparam ( fs ); // in case error message takes a filename parameter + + FSClearNameLocked ( &( *fs ).fsref ); + + err = FSDeleteObject ( &( *fs ).fsref ); + + return ( ! oserror ( err ) ); + #endif #ifdef WIN95VERSION + char fn[300]; boolean fldeletefolder; - setfserrorparam (fs); /*in case error message takes a filename parameter*/ + setfserrorparam (fs); // in case error message takes a filename parameter copystring (fsname (fs), fn); @@ -815,102 +819,232 @@ return (false); #endif - } /*deletefile*/ + } // deletefile + -boolean fileexists (const tyfilespec *fs, boolean *flfolder) { -#ifdef MACVERSION - /* - we figure if we can get info on it, it must exist. +boolean fileexists ( const ptrfilespec fs, boolean *flfolder ) { + + // + // we figure if we can get info on it, it must exist. + // + // can't call filegetinfo because it has an error message if the file isn't found. + // + // 2006-06-19 creedon: Mac OS X bundles/packages are not considered folders + // + // for Mac, FSRef-ized + // + // 5.0.2b15 rab: on Mac return false to non-existent volume specs. + // + // 2.1b2 dmb: on Mac filespec implementation + // + // 7/1/91 dmb: on Mac special case empty string so we don't try to get info about the default volume and return true. + // - can't call filegetinfo because it has an error message if the file - isn't found. + #ifdef MACVERSION - 7/1/91 dmb: special case empty string so we don't try to get info about - the default volume and return true. + FSCatalogInfo catalogInfo; - 2.1b2 dmb: filespec implementation + *flfolder = false; + + if ( ( *fs ).path != NULL ) + return ( false ); + + if ( FSGetCatalogInfo ( &( *fs ).fsref, kFSCatInfoNodeFlags, &catalogInfo, NULL, NULL, NULL ) != noErr ) + return ( false ); + + *flfolder = ( ( catalogInfo.nodeFlags & kFSNodeIsDirectoryMask ) != 0 ); + + /* Mac OS X bundles/packages are not considered folders */ { - 5.0.2b15 rab: return false to non-existent volume specs. - */ + boolean flisapplication, flisbundle; + + LSIsApplication ( &( *fs ).fsref, &flisapplication, &flisbundle ); + + if ( flisapplication || flisbundle ) + *flfolder = false; + } + + return (true); + + #endif - CInfoPBRec pb; + #ifdef WIN95VERSION - *flfolder = false; + HANDLE ff; + WIN32_FIND_DATA ffd; + char fn[300]; + + *flfolder = false; + + copystring (fsname (fs), fn); + + /*if ends with \ get rid of it... and handle the root*/ + + cleanendoffilename (fn); + + nullterminate (fn); + + if (stringlength(fn) == 2) { + if (isalpha(fn[1]) && fn[2] == ':') { + *flfolder = true; + return (fileisvolume(fs)); + } + } + + ff = FindFirstFile (stringbaseaddress(fn), &ffd); + + if (ff == INVALID_HANDLE_VALUE) + return (false); + + *flfolder = ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY?true:false; + + FindClose (ff); + + return (true); + + #endif - if (isemptystring (fsname (fs))) - return (false); + } // fileexists + + +#ifdef MACVERSION + + static OSErr FSRefGetName ( const FSRef *fsRef, CFStringRef *name ) { - clearbytes (&pb, sizeof (pb)); + // + // the caller must dispose of the CFString + // - pb.hFileInfo.ioNamePtr = (StringPtr) fsname (fs); - - pb.hFileInfo.ioVRefNum = (*fs).vRefNum; - - pb.hFileInfo.ioDirID = (*fs).parID; - - if (PBGetCatInfoSync (&pb) != noErr) - return (false); - - *flfolder = foldertest (&pb); - - return (true); -#endif -#ifdef WIN95VERSION - HANDLE ff; - WIN32_FIND_DATA ffd; - char fn[300]; + HFSUniStr255 hname; + OSErr err = FSGetCatalogInfo ( fsRef, kFSCatInfoNone, NULL, &hname, NULL, NULL ); - *flfolder = false; + *name = CFStringCreateWithCharacters ( kCFAllocatorDefault, hname.unicode, hname.length ); - copystring (fsname (fs), fn); + // CFRelease ( name ); - /*if ends with \ get ride of it... and handle the root*/ + return ( err ); + + } // FSRefGetName - cleanendoffilename (fn); - nullterminate (fn); + boolean CFStringToStr255 ( CFStringRef input, StringPtr output ) { + + output [ 0 ] = CFStringGetBytes ( input, CFRangeMake ( 0, ( ( CFStringGetLength ( input ) >= 255 ) ? + 255 : CFStringGetLength ( input ) ) ), kTextEncodingMacRoman, '^', false, + &( output [1] ), 255, NULL ); + + // MIN ( CFStringGetLength ( input ), 255 ) + + if ( output [ 0 ] == 0 ) + return ( false ); + + return ( true ); + + } // CFStringToStr255 - if (stringlength(fn) == 2) { - if (isalpha(fn[1]) && fn[2] == ':') { - *flfolder = true; - return (fileisvolume(fs)); - } - } - ff = FindFirstFile (stringbaseaddress(fn), &ffd); + boolean HFSUniStr255ToStr255 ( ConstHFSUniStr255Param input, StringPtr output ) { + + CFStringRef csr; + + csr = CFStringCreateWithCharacters ( kCFAllocatorDefault, input -> unicode, input -> length ); + + CFStringToStr255 ( csr, output ); - if (ff == INVALID_HANDLE_VALUE) - return (false); + CFRelease ( csr ); + + return ( true ); - *flfolder = ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY?true:false; + } // HFSUniStr255ToStr255 - FindClose (ff); - return (true); -#endif - } /*fileexists*/ + boolean FSRefGetNameStr255 ( const FSRef *fsRef, Str255 bsname ) { -boolean filegetfilename (const tyfilespec *pfs, bigstring name) { + CFStringRef csr; + OSErr err = FSRefGetName ( fsRef, &csr ); + + if ( err != noErr ) + return ( false ); + + if ( csr == NULL ) + return ( false ); -#ifdef MACVERSION - /* - filespecs for volumes have their strings set to the empty string. - */ + if ( ! CFStringGetPascalString ( csr, bsname, 256, kCFStringEncodingMacRoman ) ) + return ( false ); + + CFRelease ( csr ); + + return ( true ); + + } // FSRefGetNameStr255 - copystring (fsname (pfs), name); - if (stringlength (name) > 0) - return (true); + boolean bigstringToHFSUniStr255 ( const bigstring bs, HFSUniStr255 *output ) { + + CFStringRef temp = CFStringCreateWithPascalString (kCFAllocatorDefault, bs, kCFStringEncodingMacRoman ); - return (filegetvolumename ((*pfs).vRefNum, name)); -#endif + output -> length = CFStringGetLength(temp); + + CFStringGetCharacters(temp, CFRangeMake(0, output -> length), output -> unicode); + + CFRelease ( temp ); -#ifdef WIN95VERSION - lastword ((ptrstring) fsname (pfs), '\\', name); + /* + HFSUniStr255 name; + unsigned long len; + OSStatus status; + // TextEncoding encoding = ; + TextToUnicodeInfo info; + + if ( CreateTextToUnicodeInfoByEncoding ( CreateTextEncoding ( kTextEncodingMacRoman, + kTextEncodingDefaultVariant, kTextEncodingDefaultFormat ), &info ) != noErr ) + return ( false ); + + status = ConvertFromPStringToUnicode ( info, bs, sizeof ( name.unicode ), ( name -> length ), name.unicode ); + + DisposeTextToUnicodeInfo ( &info ); - return (true); -#endif - } /*filegetfilename*/ + if ( status != noErr ) + return ( false ); + */ + + return ( true ); + + } // bigstringToHFSUniStr255 + + boolean CFStringRefToHFSUniStr255 ( CFStringRef input, HFSUniStr255 *output ) { + + output -> length = CFStringGetBytes ( input, CFRangeMake ( 0, ( ( CFStringGetLength ( input ) >= 255 ) ? + CFStringGetLength ( input ) : 255 ) ), + kCFStringEncodingUnicode, 0, false, ( UInt8 * ) ( output -> unicode ), 255, + NULL ); + + if ( output -> length == 0 ) + return ( false ); + + return ( true ); + + } // CFStringRefToHFSUniStr255 + + + /* bigstring fsname ( const ptrfilespec fs ) { + + bigstring bsname; + + CFStringRef cname; + + FSRefGetName ( ( *fs ).ref, &cname ); + + CFStringToStr255 ( cname, &bsname ); + + CFRelease ( cname ); + + return ( bsname ); + + } */ + + #endif + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 18:21:14
|
Revision: 1421 Author: creecode Date: 2006-06-26 11:21:12 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1421&view=rev Log Message: ----------- removed extra lines at end of file Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/headers/filealias.h Modified: Frontier/branches/FSRef_Migration/Common/headers/filealias.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/filealias.h 2006-06-26 01:52:22 UTC (rev 1420) +++ Frontier/branches/FSRef_Migration/Common/headers/filealias.h 2006-06-26 18:21:12 UTC (rev 1421) @@ -54,5 +54,3 @@ boolean MakeAliasFile (const FSSpec* srcFile, const FSSpec* destFile); - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-26 01:52:28
|
Revision: 1420 Author: creecode Date: 2006-06-25 18:52:22 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1420&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/filemp3.c Frontier/branches/FSRef_Migration/Common/source/fileops.c Modified: Frontier/branches/FSRef_Migration/Common/source/filemp3.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/filemp3.c 2006-06-25 20:38:54 UTC (rev 1419) +++ Frontier/branches/FSRef_Migration/Common/source/filemp3.c 2006-06-26 01:52:22 UTC (rev 1420) @@ -384,7 +384,7 @@ }/*getxingheader*/ -boolean getmp3info (const tyfilespec *fs, long *seconds, long *bitrate, long *frequency, long *offset, boolean *flvariablebitrate) { +boolean getmp3info (const ptrfilespec fs, long *seconds, long *bitrate, long *frequency, long *offset, boolean *flvariablebitrate) { tympeginfostruct mp3; long ix = 0; Modified: Frontier/branches/FSRef_Migration/Common/source/fileops.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/fileops.c 2006-06-25 20:38:54 UTC (rev 1419) +++ Frontier/branches/FSRef_Migration/Common/source/fileops.c 2006-06-26 01:52:22 UTC (rev 1420) @@ -50,13 +50,9 @@ #ifdef MACVERSION - #if TARGET_API_MAC_CARBON - #include "MoreFilesX.h" - #else - pascal OSErr XGetVInfo(short volReference, StringPtr volName, short *vRefNum, UInt64 *freeBytes, - UInt64 *totalBytes); - #endif - + #include "MoreFilesX.h" + #include "FSCopyObject.h" + #ifdef flcomponent #include "SetUpA5.h" #endif @@ -133,19 +129,32 @@ typedef struct tyfileinfo tyvolinfo; -void setfserrorparam (const tyfilespec *fs) { +void setfserrorparam ( const tyfilespec *fs ) { + + // + // 2006-06-25 creedon; for Mac, FSRef-ized + // - /* - bigstring bs; + #ifdef MACVERSION - if (!filespectopath (fs, bs)) - copystring ((ptrstring) (*fs).name, bs); + bigstring bs; + + if ( ( *fs ).path != NULL ) + CFStringToStr255 ( ( *fs ).path, bs ); + else + FSRefGetNameStr255 ( &( *fs ).fsref, bs ); + + setoserrorparam ( bs ); + + #endif + + #ifdef WIN95VERSION - setoserrorparam (bs); - */ + setoserrorparam ((ptrstring) fsname (fs)); - setoserrorparam ((ptrstring) fsname (fs)); - } /*setfserrorparam*/ + #endif + + } /* setfserrorparam */ boolean endswithpathsep (bigstring bs) { @@ -214,91 +223,136 @@ #ifdef MACVERSION -boolean foldertest (CInfoPBRec *pb) { - - /* - return true if pb holds info describing a folder. - - 4/26/96 dmb: use mask, not BitTst (a toolbox call) - */ - - /* - return (BitTst (&pb->dirInfo.ioFlAttrib, 3)); - */ - return ((pb->dirInfo.ioFlAttrib & ioDirMask) != 0); - } /*foldertest*/ + boolean foldertest ( FSRefParamPtr pb ) { + + // + // return true if pb holds info describing a folder. + // + // 2006-06-25 creedon: FSRef-ized + // + // 1996-04-26 dmb: use mask, not BitTst (a toolbox call) + // + + // return (BitTst (&pb->dirInfo.ioFlAttrib, 3)); -static void filebeachball (void) { - + return ( ( pb -> catInfo -> nodeFlags & kFSNodeIsDirectoryMask ) != 0 ); + + } // foldertest + + + boolean foldertestcipbr (CInfoPBRec *pb) { + + /* + return true if pb holds info describing a folder. + + 4/26/96 dmb: use mask, not BitTst (a toolbox call) + */ + + /* + return (BitTst (&pb->dirInfo.ioFlAttrib, 3)); + */ + return ((pb->dirInfo.ioFlAttrib & ioDirMask) != 0); + } /*foldertest*/ + + /* - roll the beachball cursor if there is one. + static void filebeachball (void) { + + // + roll the beachball cursor if there is one. + // + + if (beachballcursor ()) + rollbeachball (); + } // filebeachball */ - - if (beachballcursor ()) - rollbeachball (); - } /*filebeachball*/ - -boolean getmacfileinfo (const tyfilespec *fs, CInfoPBRec *pb) { - - /* - 2.1b2 dmb: new fsspec-based version - */ - - setoserrorparam ((ptrstring) (*fs).name); /*in case error message takes a filename parameter*/ - - clearbytes (pb, sizeof (*pb)); - - (*pb).hFileInfo.ioNamePtr = (StringPtr) (*fs).name; - - (*pb).hFileInfo.ioVRefNum = (*fs).vRefNum; - - (*pb).hFileInfo.ioDirID = (*fs).parID; - - return (!oserror (PBGetCatInfoSync (pb))); - } /*getmacfileinfo*/ + boolean getmacfileinfo ( const ptrfilespec fs, FSRefParamPtr pb, FSCatalogInfoPtr catinfo ) { + + /* + 2.1b2 dmb: new fsspec-based version + */ + + OSErr err; + + setfserrorparam ( fs ); // in case error message takes a filename parameter + + clearbytes ( pb, sizeof ( *pb ) ); + clearbytes ( catinfo, sizeof ( *catinfo ) ); + + ( *pb ).catInfo = catinfo; + + ( *pb ).ref = &( *fs ).fsref; + ( *pb ).whichInfo = kFSCatInfoGettableInfo; + + err = PBGetCatalogInfoSync ( pb ); + + return ( ! oserror ( err ) ); + } /* getmacfileinfo */ -static boolean setmacfileinfo (const tyfilespec *fs, CInfoPBRec *pb) { - - /* - 2.1b2 dmb: new fsspec-based version - */ - - setoserrorparam ((ptrstring) (*fs).name); /*in case error message takes a filename parameter*/ - - (*pb).hFileInfo.ioNamePtr = (StringPtr) (*fs).name; - - (*pb).hFileInfo.ioVRefNum = (*fs).vRefNum; - - (*pb).hFileInfo.ioDirID = (*fs).parID; - - return (!oserror (PBSetCatInfoSync (pb))); - } /*setmacfileinfo*/ + boolean getmacfileinfocipbr (const FSSpecPtr fs, CInfoPBRec *pb) { + + /* + 2.1b2 dmb: new fsspec-based version + */ + + setoserrorparam ((ptrstring) (*fs).name); /*in case error message takes a filename parameter*/ + + clearbytes (pb, sizeof (*pb)); + + (*pb).hFileInfo.ioNamePtr = (StringPtr) (*fs).name; + + (*pb).hFileInfo.ioVRefNum = (*fs).vRefNum; + + (*pb).hFileInfo.ioDirID = (*fs).parID; + + return (!oserror (PBGetCatInfoSync (pb))); + } /*getmacfileinfo*/ -static boolean touchparentfolder (const tyfilespec *fs) { - - /* - touch the file date of the parent folder of fs - */ - - FSSpec fsfolder; - - if (FSMakeFSSpec ((*fs).vRefNum, (*fs).parID, nil, &fsfolder) != noErr) - return (false); - - setfilemodified (&fsfolder, timenow ()); - - return (true); - } /*touchparentfolder*/ + static boolean setmacfileinfo ( const ptrfilespec fs, FSRefParam *pb ) { + + /* + 2.1b2 dmb: new fsspec-based version + */ + + setfserrorparam ( fs ); /*in case error message takes a filename parameter*/ + + ( *pb ).ref = &( *fs ).fsref; + ( *pb ).whichInfo = kFSCatInfoSettableInfo; + + return ( ! oserror ( PBSetCatalogInfoSync ( pb ) ) ); + } /* setmacfileinfo */ + + + static boolean touchparentfolder ( const ptrfilespec fs ) { + + // + // touch the file date of the parent folder of fs + // + // 2006-06-18 creedon: FSRef-ized + // + + tyfilespec fsfolder = { { { 0 } }, 0 }; + + if ( FSGetCatalogInfo ( &( *fs ).fsref, kFSCatInfoNone, NULL, NULL, NULL, &fsfolder.fsref ) != noErr ) + return (false); + + setfilemodified ( &fsfolder, timenow ( ) ); + + return (true); + + } // touchparentfolder + + #endif #ifdef WIN95VERSION -boolean winfileerror (const tyfilespec *fs) { +boolean winfileerror (const ptrfilespec fs) { DWORD err = GetLastError (); @@ -311,301 +365,440 @@ #ifdef MACVERSION // 1/29/97 dmb: adopt applet toolkit version -static boolean getinfofromvolpb (const HVolumeParam *pb, tyfileinfo *info) { - - /* - dmb 9/21/93: for a volume, dirid should be fsRtParID, not fsRtDirID. - */ - - short drivenum; - #if !TARGET_API_MAC_CARBON - QHdrPtr dqtop; - QElemPtr dqelem; - #endif + static boolean getinfofromvolpb (const FSVolumeInfoParamPtr pb, tyfileinfo *info) { + + // + // 2006-06-25 creedon: FSRef-ized + // + // 1993-09-21 dmb: for a volume, dirid should be fsRtParID, not fsRtDirID. + // + + short drivenum; + + clearbytes (info, sizeof (tyfileinfo)); + + ( *info ).vnum = (*pb).ioVRefNum; + + ( *info ).dirid = fsRtParID; + + ( *info ).flvolume = true; + + ( *info ).flfolder = true; + + /* date time */ { + + CFAbsoluteTime oCFTime; + OSStatus status; + + status = UCConvertUTCDateTimeToCFAbsoluteTime ( &( *( *pb ).volumeInfo ).createDate, &oCFTime ); + + status = UCConvertCFAbsoluteTimeToSeconds ( oCFTime, &( *info ).timecreated ); - - clearbytes (info, sizeof (tyfileinfo)); - - (*info).vnum = (*pb).ioVRefNum; - - (*info).dirid = fsRtParID; /*fsRtDirID*/ - - (*info).flvolume = true; - - (*info).flfolder = true; - - (*info).timecreated = (*pb).ioVCrDate; - - (*info).timemodified = (*pb).ioVLsMod; - - (*info).fllocked = ((*pb).ioVAtrb & 0x8000) != 0; - - (*info).flhardwarelock = ((*pb).ioVAtrb & 0x0080) != 0; - - if ((*info).flhardwarelock) - (*info).fllocked = true; - - (*info).ctfreebytes = (*pb).ioVAlBlkSiz * (*pb).ioVFrBlk; - - (*info).cttotalbytes = (*pb).ioVAlBlkSiz * (*pb).ioVNmAlBlks; - - (*info).blocksize = (*pb).ioVAlBlkSiz; - - (*info).ctfiles = (*pb).ioVFilCnt; - - (*info).ctfolders = (*pb).ioVDirCnt; - - drivenum = (*pb).ioVDrvInfo; - - //Code change by Timothy Paustian Sunday, June 25, 2000 9:17:36 PM - //The below code is to figure out if a volume is ejectable. I don't think - //you can do this in carbon, so just set it to false. - #if TARGET_API_MAC_CARBON == 1 - (*info).flejectable = false; - #else + status = UCConvertUTCDateTimeToCFAbsoluteTime ( &( *( *pb ).volumeInfo ).modifyDate, &oCFTime ); + + status = UCConvertCFAbsoluteTimeToSeconds ( oCFTime, &( *info ).timemodified ); + + } + + ( *info ).flhardwarelock = BitTst ( &( *( *pb ).volumeInfo ).flags, 7 ); - dqtop = GetDrvQHdr (); - - dqelem = (*dqtop).qHead; - - while (true) { + if (( *info ).flhardwarelock) + ( *info ).fllocked = true; + else + ( *info ).fllocked = BitTst ( &( *( *pb ).volumeInfo ).flags, 15 ); - if (dqelem == nil) { /*volume is no longer in a drive; it must be ejectable!*/ + ( *info ).ctfreebytes = ( *( *pb ).volumeInfo ).blockSize * ( *( *pb ).volumeInfo ).freeBlocks; + + ( *info ).cttotalbytes = ( *( *pb ).volumeInfo ).blockSize * ( *( *pb ).volumeInfo ).totalBlocks; + + ( *info ).blocksize = ( *( *pb ).volumeInfo ).blockSize; + + ( *info ).ctfiles = ( *( *pb ).volumeInfo ).fileCount; + + ( *info ).ctfolders = ( *( *pb ).volumeInfo ).folderCount; + + drivenum = ( *( *pb ).volumeInfo ).driveNumber; + + //Code change by Timothy Paustian Sunday, June 25, 2000 9:17:36 PM + //The below code is to figure out if a volume is ejectable. I don't think + //you can do this in carbon, so just set it to false. + + ( *info ).flejectable = false; + + return (true); + + } // getinfofromvolpb + + + boolean filegetvolumeinfo (short vnum, tyfileinfo *info) { + + // + // dmb 9/21/93: take vnum as parameter, not volname. otherwise, we can't distinguish between two vols w/the + // same name. + // + // 1993-09-07 DW: determine if it's a network volume + // + + FSVolumeInfoParam pb; + FSVolumeInfo volinfo; + + clearbytes ( &pb, sizeof ( pb ) ); // init all fields to zero + clearbytes ( &volinfo, sizeof ( volinfo ) ); // init all fields to zero + + pb.volumeInfo = &volinfo; + + pb.ioVRefNum = vnum; + pb.whichInfo = kFSVolInfoGettableInfo; + + if ( oserror ( PBGetVolumeInfoSync ( &pb ) ) ) + return ( false ); + + // clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ + + getinfofromvolpb ( &pb, info ); + + /* network volume */ { - (*info).flejectable = true; + HParamBlockRec lpb; + GetVolParmsInfoBuffer buffer; + OSErr err; - break; - } - - if ((*(DrvQEl *)dqelem).dQDrive == drivenum) { + clearbytes (&lpb, sizeof (lpb)); /*init all fields to zero*/ - byte driveflag = *((byte *) dqelem - 3); + lpb.ioParam.ioVRefNum = (*info).vnum; - (*info).flejectable = ((driveflag != 8) && (driveflag != 0x48)); /*IM IV-181*/ + lpb.ioParam.ioBuffer = ( Ptr ) &buffer; - break; + lpb.ioParam.ioReqCount = sizeof (buffer); + + err = PBHGetVolParmsSync (&lpb); + + if (err == noErr) + ( *info ).flremotevolume = VolIsNetworkVolume ( &buffer ); } - dqelem = (*dqelem).qLink; - } /*while*/ - #endif - - - return (true); - } /*getinfofromvolpb*/ + return (true); + } /*filegetvolumeinfo*/ -boolean filegetvolumeinfo (short vnum, tyfileinfo *info) { - - /* - dmb 9/21/93: take vnum as parameter, not volname. otherwise, - we can't distinguish between two vols w/the same name. - */ - - HVolumeParam pb; - - clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ - - pb.ioVRefNum = vnum; - - if (oserror (PBHGetVInfoSync ((HParmBlkPtr) &pb))) - return (false); - - clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ - - getinfofromvolpb (&pb, info); - - /*DW 9/7/93: determine if it's a network volume*/ { + void filegetinfofrompb ( FSRefParam *pb, tyfileinfo *info ) { - HParamBlockRec lpb; - GetVolParmsInfoBuffer buffer; - OSErr ec; + // + // 2006-06-24 creedon: FSRef-ized + // + // 5.1.4 dmb: set finderbits for folders too. + // + // 1993-09-24 dmb: handle volumes here, combining vol info with root directory folder info. I'm not sure if a + // volume lock is always reflected in the root directory, so don't set fllocked false if the + // attribute isn't set in the pb. (it starts out cleared anyway.) + // - clearbytes (&lpb, sizeof (lpb)); /*init all fields to zero*/ + unsigned short finderbits; - lpb.ioParam.ioVRefNum = (*info).vnum; + clearbytes ( info, sizeof ( tyfileinfo ) ); // init all fields to zero - lpb.ioParam.ioBuffer = (Ptr) &buffer; + ( *info ).dirid = ( *pb ).catInfo -> parentDirID; - lpb.ioParam.ioReqCount = sizeof (buffer); + /* date time */ { - ec = PBHGetVolParmsSync (&lpb); - - if (ec == noErr) - (*info).flremotevolume = buffer.vMServerAdr != 0; /*see Apple TN-Files docviewer doc*/ - } - - return (true); - } /*filegetvolumeinfo*/ + CFAbsoluteTime oCFTime; + OSStatus status; + + status = UCConvertUTCDateTimeToCFAbsoluteTime ( &( *pb ).catInfo -> createDate, &oCFTime ); + + status = UCConvertCFAbsoluteTimeToSeconds ( oCFTime, &info -> timecreated ); + status = UCConvertUTCDateTimeToCFAbsoluteTime ( &( *pb ).catInfo -> contentModDate, &oCFTime ); + + status = UCConvertCFAbsoluteTimeToSeconds ( oCFTime, &info -> timemodified ); + + } // date time -void filegetinfofrompb (CInfoPBRec *pb, tyfileinfo *info) { - - /* - dmb 9/24/93: handle volumes here, combining vol info with root - directory folder info. I'm not sure if a volume lock is always - reflected in the root directory, so don't set fllocked false - if the attribute isn't set in the pb. (it starts out cleared anyway.) - - 5.1.4 dmb: set finderbits for folders too. - */ - - short finderbits; - - clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ - - (*info).vnum = (*pb).hFileInfo.ioVRefNum; - - (*info).dirid = (*pb).hFileInfo.ioFlParID; - - if ((*info).dirid == fsRtParID) - filegetvolumeinfo ((*info).vnum, info); - else - (*info).flvolume = false; - - if (BitTst (&(*pb).dirInfo.ioFlAttrib, 7)) /*if it's a volume, fllocked may already be set*/ - (*info).fllocked = true; - -// (*info).flfolder = BitTst (&(*pb).dirInfo.ioFlAttrib, 3); - (*info).flfolder = (((*pb).dirInfo.ioFlAttrib & ioDirMask) != 0); - - (*info).ixlabel = ((*pb).hFileInfo.ioFlFndrInfo.fdFlags & 0x000E) >> 1; - - if ((*info).flfolder) { - - /*Folders are considered "busy" if there are any files within the folder */ + ( *info ).vnum = ( *( *pb ).catInfo ).volume; - (*info).flbusy = (*pb).dirInfo.ioDrNmFls > 0; + if ( ( *info ).dirid == fsRtParID) + filegetvolumeinfo (( *info ).vnum, info); + else + ( *info ).flvolume = false; + + if ( ( pb -> catInfo -> nodeFlags & kFSNodeForkOpenMask ) != 0 ) // if it's a volume, fllocked may already be set + ( *info ).fllocked = true; + else + ( *info ).fllocked = ( ( *pb ).catInfo -> nodeFlags & kFSNodeLockedMask ) != 0; - (*info).filecreator = (*info).filetype = ' '; + ( *info ).flfolder = ( ( pb -> catInfo -> nodeFlags & kFSNodeIsDirectoryMask ) != 0 ); - if (!(*info).flvolume) { /*these aren't the same for a volume & its root dir*/ + if ( ( *info ).flfolder ) { + + boolean flisapplication, flisbundle; - (*info).timecreated = (*pb).dirInfo.ioDrCrDat; + LSIsApplication ( ( *pb ).ref, &flisapplication, &flisbundle ); - (*info).timemodified = (*pb).dirInfo.ioDrMdDat; + if ( flisapplication || flisbundle ) { // Mac OS X bundles/packages are not considered folders - (*info).ctfiles = (*pb).dirInfo.ioDrNmFls; + ( *info ).flfolder = false; + + ( *info ).flbundle = true; + + } // if + + ( *info ).flbusy = pb -> catInfo -> valence > 0; // Folders are considered "busy" if there are any files + // within the folder + if ( ( *info ).flfolder ) + + ( *info ).filecreator = ( *info ).filetype = ' '; + + else { + + LSItemInfoRecord iteminfo; + OSStatus status; + + status = LSCopyItemInfoForRef ( ( *pb ).ref, kLSRequestTypeCreator, &iteminfo ); + + ( *info ).filecreator = iteminfo.creator; + + ( *info ).filetype = iteminfo.filetype; + + } // if + + ( *info ).iconposition = ( ( FolderInfo * ) pb -> catInfo -> finderInfo ) -> location; + + if ( ! ( *info ).flvolume ) { // these aren't the same for a volume & its root dir + + ( *info ).ctfiles = pb -> catInfo -> valence; + + } // if + + ( *info ).folderview = ( tyfolderview ) 0; // I can't find a way to get this info from FSRefParamPtr, I thought about trying to fake a DInfo structure and getting it from there but it may not even have the right value, I did find a reference to DRMacWindowView // dinfo.frView >> 8; + + finderbits = ( ( FolderInfo * ) pb -> catInfo -> finderInfo ) -> finderFlags; + } + else { // fill in fields for a file, somewhat different format than a folder - (*info).iconposition = (*pb).dirInfo.ioDrUsrWds.frLocation; + ( *info ).ixlabel = ( ( ( FileInfo * ) pb -> catInfo -> finderInfo ) -> finderFlags & kColor ) >> 1; - (*info).folderview = (tyfolderview) ((*pb).dirInfo.ioDrUsrWds.frView >> 8); - - finderbits = (*pb).dirInfo.ioDrUsrWds.frFlags; - } - else { /*fill in fields for a file, somewhat different format than a folder*/ - - (*info).flbusy = BitTst (&(*pb).hFileInfo.ioFlAttrib, 0); + ( *info ).flbusy = ( pb -> catInfo -> nodeFlags & kFSNodeForkOpenMask ) != 0; + + ( *info ).filecreator = ( ( FileInfo * ) pb -> catInfo -> finderInfo ) -> fileCreator; - (*info).filecreator = (*pb).hFileInfo.ioFlFndrInfo.fdCreator; + ( *info ).filetype = ( ( FileInfo * ) pb -> catInfo -> finderInfo ) -> fileType; + + ( *info ).sizedatafork = pb -> catInfo -> dataLogicalSize; + + ( *info ).sizeresourcefork = pb -> catInfo -> rsrcLogicalSize; + + ( *info ).iconposition = ( ( FileInfo * ) pb -> catInfo -> finderInfo ) -> location; + + finderbits = ( ( FileInfo * ) pb -> catInfo -> finderInfo ) -> finderFlags; + + } // if + + /* copy from the finder bits into the record */ { - (*info).filetype = (*pb).hFileInfo.ioFlFndrInfo.fdType; - - (*info).timecreated = (*pb).hFileInfo.ioFlCrDat; + ( *info ).flalias = (finderbits & kIsAlias) != 0; + + ( *info ).flbundle = (finderbits & kHasBundle) != 0; + + ( *info ).flinvisible = (finderbits & kIsInvisible) != 0; + + ( *info ).flstationery = (finderbits & kIsStationery) != 0; + + ( *info ).flshared = (finderbits & kIsShared) != 0; + + ( *info ).flnamelocked = (finderbits & kNameLocked) != 0; + + ( *info ).flcustomicon = (finderbits & kHasCustomIcon) != 0; + + } // finder bits + + } // filegetinfofrompb - (*info).timemodified = (*pb).hFileInfo.ioFlMdDat; + + void filegetinfofrompbcipbr (CInfoPBRec *pb, tyfileinfo *info) { - (*info).sizedatafork = (*pb).hFileInfo.ioFlLgLen; + /* + dmb 9/24/93: handle volumes here, combining vol info with root + directory folder info. I'm not sure if a volume lock is always + reflected in the root directory, so don't set fllocked false + if the attribute isn't set in the pb. (it starts out cleared anyway.) - (*info).sizeresourcefork = (*pb).hFileInfo.ioFlRLgLen; + 5.1.4 dmb: set finderbits for folders too. + */ - (*info).iconposition = (*pb).hFileInfo.ioFlFndrInfo.fdLocation; + short finderbits; - finderbits = (*pb).hFileInfo.ioFlFndrInfo.fdFlags; - } - - /*copy from the finder bits into the record*/ { - - (*info).flalias = (finderbits & kIsAlias) != 0; + clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ - (*info).flbundle = (finderbits & kHasBundle) != 0; + (*info).vnum = (*pb).hFileInfo.ioVRefNum; - (*info).flinvisible = (finderbits & kIsInvisible) != 0; + (*info).dirid = (*pb).hFileInfo.ioFlParID; - (*info).flstationery = (finderbits & kIsStationery) != 0; + if ((*info).dirid == fsRtParID) + filegetvolumeinfo ((*info).vnum, info); + else + (*info).flvolume = false; - (*info).flshared = (finderbits & kIsShared) != 0; + if (BitTst (&(*pb).dirInfo.ioFlAttrib, 7)) /*if it's a volume, fllocked may already be set*/ + (*info).fllocked = true; - (*info).flnamelocked = (finderbits & kNameLocked) != 0; + // (*info).flfolder = BitTst (&(*pb).dirInfo.ioFlAttrib, 3); + (*info).flfolder = (((*pb).dirInfo.ioFlAttrib & ioDirMask) != 0); - (*info).flcustomicon = (finderbits & kHasCustomIcon) != 0; - } - } /*filegetinfofrompb*/ + (*info).ixlabel = ((*pb).hFileInfo.ioFlFndrInfo.fdFlags & 0x000E) >> 1; + + if ((*info).flfolder) { + + /*Folders are considered "busy" if there are any files within the folder */ + + (*info).flbusy = (*pb).dirInfo.ioDrNmFls > 0; + + (*info).filecreator = (*info).filetype = ' '; + + if (!(*info).flvolume) { /*these aren't the same for a volume & its root dir*/ + + (*info).timecreated = (*pb).dirInfo.ioDrCrDat; + + (*info).timemodified = (*pb).dirInfo.ioDrMdDat; + + (*info).ctfiles = (*pb).dirInfo.ioDrNmFls; + } + + (*info).iconposition = (*pb).dirInfo.ioDrUsrWds.frLocation; + + (*info).folderview = (tyfolderview) ((*pb).dirInfo.ioDrUsrWds.frView >> 8); + + finderbits = (*pb).dirInfo.ioDrUsrWds.frFlags; + } + else { /*fill in fields for a file, somewhat different format than a folder*/ + + (*info).flbusy = BitTst (&(*pb).hFileInfo.ioFlAttrib, 0); + + (*info).filecreator = (*pb).hFileInfo.ioFlFndrInfo.fdCreator; + + (*info).filetype = (*pb).hFileInfo.ioFlFndrInfo.fdType; + + (*info).timecreated = (*pb).hFileInfo.ioFlCrDat; + + (*info).timemodified = (*pb).hFileInfo.ioFlMdDat; + + (*info).sizedatafork = (*pb).hFileInfo.ioFlLgLen; + + (*info).sizeresourcefork = (*pb).hFileInfo.ioFlRLgLen; + + (*info).iconposition = (*pb).hFileInfo.ioFlFndrInfo.fdLocation; + + finderbits = (*pb).hFileInfo.ioFlFndrInfo.fdFlags; + } + + /*copy from the finder bits into the record*/ { + + (*info).flalias = (finderbits & kIsAlias) != 0; + + (*info).flbundle = (finderbits & kHasBundle) != 0; + + (*info).flinvisible = (finderbits & kIsInvisible) != 0; + + (*info).flstationery = (finderbits & kIsStationery) != 0; + + (*info).flshared = (finderbits & kIsShared) != 0; + + (*info).flnamelocked = (finderbits & kNameLocked) != 0; + + (*info).flcustomicon = (finderbits & kHasCustomIcon) != 0; + } + } /* filegetinfofrompbcipbr */ + #endif -#ifdef MACVERSION -#define filegetfsvolumeinfo(fs, info) filegetvolumeinfo((*fs).vRefNum, info) -#endif +static boolean filegetfsvolumeinfo (const ptrfilespec fs, tyfileinfo *info) { -#ifdef WIN95VERSION -static boolean filegetfsvolumeinfo (const tyfilespec *fs, tyfileinfo *info) { - DWORD sectorsPerCluster, bytesPerSector, numberOfFreeClusters, totalNumberOfClusters; - UINT drivetype; - bigstring volname; - bigstring errmsg; + clearbytes (info, sizeof (tyfileinfo)); // init all fields to zero - clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ + #ifdef MACVERSION + + long vnum; + + getfsvolume ( fs, &vnum ); - if (fileisvolume (fs)) { - info->flvolume = true; - info->flbusy = true; + if ( !filegetvolumeinfo ( vnum, info ) ) + return ( false ); + + return ( true ); + + #endif - copystring (fsname(fs), volname); - cleanendoffilename (volname); - pushchar ('\\', volname); - nullterminate (volname); + #ifdef WIN95VERSION -// if (GetVolumeInformation (stringbaseaddress (volname), stringbaseaddress(volnamebuf), -// sizeof(volnamebuf)-2, &volserial, &maxfilelen, &filesystemflags, -// stringbaseaddress(filesystemnamebuffer), sizeof (filesystemnamebuffer)) { -// -// } + DWORD sectorsPerCluster, bytesPerSector, numberOfFreeClusters, totalNumberOfClusters; + UINT drivetype; + bigstring volname; + bigstring errmsg; - if (GetDiskFreeSpace (stringbaseaddress (volname), §orsPerCluster, &bytesPerSector, - &numberOfFreeClusters, &totalNumberOfClusters)) { + if (fileisvolume (fs)) { + info->flvolume = true; + info->flbusy = true; - DWORD bytesPerCluster; - DWORD numberOfClustersIn2GB; + copystring (fsname(fs), volname); + cleanendoffilename (volname); + pushchar ('\\', volname); + nullterminate (volname); - bytesPerCluster = bytesPerSector * sectorsPerCluster; + // if (GetVolumeInformation (stringbaseaddress (volname), stringbaseaddress(volnamebuf), + // sizeof(volnamebuf)-2, &volserial, &maxfilelen, &filesystemflags, + // stringbaseaddress(filesystemnamebuffer), sizeof (filesystemnamebuffer)) { + // + // } - numberOfClustersIn2GB = 0x7FFFFFFFL / bytesPerCluster; + if (GetDiskFreeSpace (stringbaseaddress (volname), §orsPerCluster, &bytesPerSector, + &numberOfFreeClusters, &totalNumberOfClusters)) { - info->ctfreebytes = (numberOfFreeClusters <= numberOfClustersIn2GB) - ? (numberOfFreeClusters * bytesPerCluster) - : (numberOfClustersIn2GB * bytesPerCluster); + DWORD bytesPerCluster; + DWORD numberOfClustersIn2GB; - info->cttotalbytes = (totalNumberOfClusters <= numberOfClustersIn2GB) - ? (totalNumberOfClusters * bytesPerCluster) - : (numberOfClustersIn2GB * bytesPerCluster); + bytesPerCluster = bytesPerSector * sectorsPerCluster; - info->blocksize = bytesPerCluster; - } + numberOfClustersIn2GB = 0x7FFFFFFFL / bytesPerCluster; - drivetype = GetDriveType (stringbaseaddress(volname)); + info->ctfreebytes = (numberOfFreeClusters <= numberOfClustersIn2GB) + ? (numberOfFreeClusters * bytesPerCluster) + : (numberOfClustersIn2GB * bytesPerCluster); - if ((drivetype == DRIVE_REMOVABLE) || (drivetype == DRIVE_CDROM)) { - info->flejectable = true; - } + info->cttotalbytes = (totalNumberOfClusters <= numberOfClustersIn2GB) + ? (totalNumberOfClusters * bytesPerCluster) + : (numberOfClustersIn2GB * bytesPerCluster); - if (drivetype == DRIVE_REMOTE) { - info->flremotevolume = true; + info->blocksize = bytesPerCluster; + } + + drivetype = GetDriveType (stringbaseaddress(volname)); + + if ((drivetype == DRIVE_REMOVABLE) || (drivetype == DRIVE_CDROM)) { + info->flejectable = true; + } + + if (drivetype == DRIVE_REMOTE) { + info->flremotevolume = true; + } + + return (true); } - return (true); - } + wsprintf (stringbaseaddress (errmsg), "Can't complete function because \"%s\" is not a valid volume name.", + stringbaseaddress (fsname (fs))); - wsprintf (stringbaseaddress (errmsg), "Can't complete function because \"%s\" is not a valid volume name.", - stringbaseaddress (fsname (fs))); + setstringlength (errmsg, strlen (stringbaseaddress (errmsg))); - setstringlength (errmsg, strlen (stringbaseaddress (errmsg))); + shellerrormessage (errmsg); - shellerrormessage (errmsg); + return (false); + + #endif + + } // filegetfsvolumeinfo - return (false); - } /*filegetfsvolumeinfo*/ +#ifdef WIN95VERSION void winsetfileinfo (WIN32_FIND_DATA * fileinfo, tyfileinfo *info) { @@ -657,103 +850,136 @@ #endif -boolean filegetinfo (const tyfilespec *fs, tyfileinfo *info) { +boolean filegetinfo (const ptrfilespec fs, tyfileinfo *info) { -#ifdef MACVERSION - /* - dmb 9/24/93: let filegetinfofrompb take care of volumes - */ + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 1993-09-24 dmb: for Mac, let filegetinfofrompb take care of volumes + // + + #ifdef MACVERSION - CInfoPBRec pb; + setfserrorparam ( fs ); + + if ( ( *fs ).path != NULL ) + return ( ! oserror ( fnfErr ) ); + + FSCatalogInfo catinfo; + FSRefParam pb; + OSErr err; + + clearbytes ( &pb, sizeof ( pb ) ); + + setfserrorparam ( fs ); // in case error message takes a filename parameter + + pb.catInfo = &catinfo; + /* + pb.outName = NULL; + pb.parentRef = NULL; + */ + pb.ref = &( *fs ).fsref; + // pb.spec = NULL; + pb.whichInfo = kFSCatInfoGettableInfo; + + err = PBGetCatalogInfoSync ( &pb ); + + if ( oserror ( err ) ) + return ( false ); + + /* + if (isvolumefilespec (pfs)) { + + return (filegetfsvolumeinfo (pfs, info)); + } + */ + + /* + if (!getmacfileinfo (fs, &pb)) + return (false); + */ + + filegetinfofrompb (&pb, info); + + #endif + + #ifdef WIN95VERSION - /* - if (isvolumefilespec (pfs)) { + HANDLE findHandle; + HANDLE fref; + WIN32_FIND_DATA fileinfo; + char fn[300]; - return (filegetfsvolumeinfo (pfs, info)); - } - */ - - if (!getmacfileinfo (fs, &pb)) - return (false); - - filegetinfofrompb (&pb, info); -#endif - -#ifdef WIN95VERSION - HANDLE findHandle; - HANDLE fref; - WIN32_FIND_DATA fileinfo; - char fn[300]; - - clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ - info->filecreator = ' '; - info->filetype = ' '; + clearbytes (info, sizeof (tyfileinfo)); /*init all fields to zero*/ + info->filecreator = ' '; + info->filetype = ' '; - if (fileisvolume (fs)) { - return (filegetfsvolumeinfo (fs, info)); - } + if (fileisvolume (fs)) { + return (filegetfsvolumeinfo (fs, info)); + } - copystring (fsname (fs), fn); - - /*if ends with \ get ride of it... and handle the root*/ + copystring (fsname (fs), fn); + + /*if ends with \ get ride of it... and handle the root*/ - cleanendoffilename (fn); + cleanendoffilename (fn); - nullterminate (fn); + nullterminate (fn); - findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); - if (findHandle == INVALID_HANDLE_VALUE) { - - winfileerror (fs); + if (findHandle == INVALID_HANDLE_VALUE) { + + winfileerror (fs); - return (false); - } + return (false); + } - winsetfileinfo (&fileinfo, info); + winsetfileinfo (&fileinfo, info); - FindClose(findHandle); + FindClose(findHandle); - //Set the file busy flag (this should be in winsetfileinfo, but we do not have the filename there) - if (info->flfolder) { - strcat (stringbaseaddress (fn), "\\*"); + //Set the file busy flag (this should be in winsetfileinfo, but we do not have the filename there) + if (info->flfolder) { + strcat (stringbaseaddress (fn), "\\*"); - info->flbusy = false; //presume empty folder (not busy) + info->flbusy = false; //presume empty folder (not busy) - findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); + findHandle = FindFirstFile (stringbaseaddress(fn), &fileinfo); - if (findHandle != INVALID_HANDLE_VALUE) { - info->flbusy = true; //Found something + if (findHandle != INVALID_HANDLE_VALUE) { + info->flbusy = true; //Found something - while ((strcmp (fileinfo.cFileName, ".") == 0) || (strcmp (fileinfo.cFileName, "..") == 0)) { - info->flbusy = false; // Just . or .. + while ((strcmp (fileinfo.cFileName, ".") == 0) || (strcmp (fileinfo.cFileName, "..") == 0)) { + info->flbusy = false; // Just . or .. - if (FindNextFile (findHandle, &fileinfo)) - info->flbusy = true; //Found something else... - else - break; //exit while loop if FindNext fails (this is normal) + if (FindNextFile (findHandle, &fileinfo)) + info->flbusy = true; //Found something else... + else + break; //exit while loop if FindNext fails (this is normal) + } + + FindClose (findHandle); } - - FindClose (findHandle); } - } - else { - fref = (Handle) CreateFile (stringbaseaddress (fn), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, NULL); + else { + fref = (Handle) CreateFile (stringbaseaddress (fn), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, NULL); - if (fref == INVALID_HANDLE_VALUE) { - info->flbusy = true; + if (fref == INVALID_HANDLE_VALUE) { + info->flbusy = true; + } + else { + info->flbusy = false; + verify (CloseHandle (fref)); + } } - else { - info->flbusy = false; - verify (CloseHandle (fref)); - } - } -#endif + #endif + return (true); - } /*filegetinfo*/ + } // filegetinfo boolean filegetvolumename (short vnum, bigstring volname) { @@ -804,7 +1030,7 @@ } /*filegetvolumename*/ -boolean fileisbusy (const tyfilespec *fs, boolean *flbusy) { +boolean fileisbusy (const ptrfilespec fs, boolean *flbusy) { /* 6/x/91 mao @@ -821,7 +1047,7 @@ } /*fileisbusy*/ -boolean filehasbundle (const tyfilespec *fs, boolean *flbundle) { +boolean filehasbundle (const ptrfilespec fs, boolean *flbundle) { /* 6/x/91 mao @@ -838,32 +1064,59 @@ } /*filehasbundle*/ -boolean filesetbundle (const tyfilespec *fs, boolean flbundle) { -#ifdef MACVERSION - /* - 8/10/92 dmb - */ +boolean filesetbundle (const ptrfilespec fs, boolean flbundle) { + + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 1992-08-10 dmb: for Mac, created + // + + #ifdef MACVERSION - CInfoPBRec pb; + FSCatalogInfo catinfo; + FSRefParam pb; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); + + if ( BitTst ( &pb.catInfo -> nodeFlags, 4 ) ) { // is directory + + if (flbundle) + + ( ( FolderInfo * ) pb.catInfo -> finderInfo ) -> finderFlags |= kHasBundle; // turn on + + else + + ( ( FolderInfo * ) pb.catInfo -> finderInfo ) -> finderFlags &= ~kHasBundle; // turn off + + } + else { + + if (flbundle) + + ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> finderFlags |= kHasBundle; // turn on + + else + + ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> finderFlags &= ~kHasBundle; // turn off + + } + + return (setmacfileinfo (fs, &pb)); + + #endif + + #ifdef WIN95VERSION - if (!getmacfileinfo (fs, &pb)) return (false); + + #endif - if (flbundle) - pb.hFileInfo.ioFlFndrInfo.fdFlags |= kHasBundle; /*turn on*/ - else - pb.hFileInfo.ioFlFndrInfo.fdFlags &= ~kHasBundle; /*turn off*/ - - return (setmacfileinfo (fs, &pb)); -#endif + } // filesetbundle -#ifdef WIN95VERSION - return (false); -#endif - } /*filesetbundle*/ - -boolean fileisalias (const tyfilespec *fs, boolean *flalias) { +boolean fileisalias (const ptrfilespec fs, boolean *flalias) { /* 6/x/91 mao @@ -880,7 +1133,7 @@ } /*fileisalias*/ -boolean fileisvisible (const tyfilespec *fs, boolean *flvisible) { +boolean fileisvisible (const ptrfilespec fs, boolean *flvisible) { /* 6/9/92 dmb @@ -897,55 +1150,67 @@ } /*fileisvisible*/ -boolean filesetvisible (const tyfilespec *fs, boolean flvisible) { -#ifdef MACVERSION - /* - 6/9/92 dmb - */ +boolean filesetvisible (const ptrfilespec fs, boolean flvisible) { + + // + // 2006-06-13 creedon: for Mac, FSRef-ized + // + // 6/9/92 dmb: for Mac, created + // - CInfoPBRec pb; + #ifdef MACVERSION - if (!getmacfileinfo (fs, &pb)) - return (false); + OSErr err; + + if ( flvisible ) { + + err = FSClearInvisible ( &( *fs ).fsref ); + + if ( err != noErr ) + return ( true ); + } + else { + err = FSSetInvisible ( &( *fs ).fsref ); + + if ( err != noErr ) + return ( true ); + } + + touchparentfolder (fs); + + #endif + + #ifdef WIN95VERSION - if (flvisible) - pb.hFileInfo.ioFlFndrInfo.fdFlags &= ~kIsInvisible; /*turn off*/ - else - pb.hFileInfo.ioFlFndrInfo.fdFlags |= kIsInvisible; /*turn on*/ - - if (!setmacfileinfo (fs, &pb)) - return (false); - - touchparentfolder (fs); -#endif - -#ifdef WIN95VERSION - tyfileinfo info; - DWORD attr; - - if (!filegetinfo (fs, &info)) - return (false); + tyfileinfo info; + DWORD attr; + + if (!filegetinfo (fs, &info)) + return (false); - if (info.flinvisible == flvisible) /*check if we need to do anything first*/ - { - attr = GetFileAttributes (stringbaseaddress (fsname (fs))); + if (info.flinvisible == flvisible) // check if we need to do anything first + { + attr = GetFileAttributes (stringbaseaddress (fsname (fs))); - if (attr == 0xFFFFFFFF) - return (false); + if (attr == 0xFFFFFFFF) + return (false); - attr = attr & (~FILE_ATTRIBUTE_HIDDEN); + attr = attr & (~FILE_ATTRIBUTE_HIDDEN); - if (! flvisible) - attr = attr | FILE_ATTRIBUTE_HIDDEN; + if (! flvisible) + attr = attr | FILE_ATTRIBUTE_HIDDEN; - return(SetFileAttributes (stringbaseaddress (fsname (fs)), attr)); - } -#endif + return(SetFileAttributes (stringbaseaddress (fsname (fs)), attr)); + } + + #endif + return (true); - } /*filesetvisible*/ + + } // filesetvisible -boolean getfiletype (const tyfilespec *fs, OSType *type) { +boolean getfiletype (const ptrfilespec fs, OSType *type) { tyfileinfo info; @@ -960,7 +1225,7 @@ } /*getfiletype*/ -boolean getfilecreator (const tyfilespec *fs, OSType *creator) { +boolean getfilecreator (const ptrfilespec fs, OSType *creator) { tyfileinfo info; @@ -975,7 +1240,7 @@ } /*getfilecreator*/ -boolean filesize (const tyfilespec *fs, long *size) { +boolean filesize (const ptrfilespec fs, long *size) { tyfileinfo info; @@ -988,12 +1253,18 @@ } /*filesize*/ -boolean fileisfolder (const tyfilespec *fs, boolean *flfolder) { +boolean fileisfolder (const ptrfilespec fs, boolean *flfolder) { + + // + // 2006-06-19 creedon: Mac OS X bundles/packages are not considered folders + // tyfileinfo info; #ifdef WIN95VERSION - /* special case the root directory on Windows */ + + // special case the root directory on Windows + char fn[300]; copystring (fsname (fs), fn); @@ -1010,64 +1281,98 @@ } } } - #endif if (!filegetinfo (fs, &info)) return (false); - + *flfolder = info.flfolder; - return (true); - } /*fileisfolder*/ + #ifdef MACVERSION + + // Mac OS X bundles/packages are not considered folders + + boolean flisapplication, flisbundle; + + LSIsApplication ( &( *fs ).fsref, &flisapplication, &flisbundle ); - -boolean fileisvolume (const tyfilespec *fs) { -#ifdef MACVERSION - if (isemptystring ((*fs).name)) - return (false); + if ( flisapplication || flisbundle ) + *flfolder = false; + + #endif - return ((*fs).parID == fsRtParID); -#endif + return ( true ); + + } // fileisfolder -#ifdef WIN95VERSION - bigstring bsvol; - short drivenum; - DWORD drivemap, drivemask; - copystring (fsname(fs), bsvol); +boolean fileisvolume (const ptrfilespec fs) { - switch (stringlength (bsvol)) { + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + + #ifdef MACVERSION + + bigstring bsname; - case 3: - if (getstringcharacter(bsvol, 2) != '\\') - return (false); + getfsfile ( fs, bsname ); + + if ( isemptystring ( bsname ) ) + return ( false ); + + FSCatalogInfo catalogInfo; + OSStatus status; + + clearbytes ( &catalogInfo, longsizeof ( catalogInfo ) ); - case 2: - if (getstringcharacter(bsvol, 1) != ':') - return (false); + status = FSGetCatalogInfo ( &( *fs ).fsref, kFSCatInfoParentDirID, &catalogInfo, NULL, NULL, NULL ); + + return ( catalogInfo.parentDirID == fsRtParID ); + + #endif - if (! isalpha (getstringcharacter(bsvol, 0))) - return (false); + #ifdef WIN95VERSION + + bigstring bsvol; + short drivenum; + DWORD drivemap, drivemask; - drivenum = getlower(getstringcharacter(bsvol, 0)) - 'a'; - break; + copystring (fsname(fs), bsvol); - default: - return (false); - } + switch (stringlength (bsvol)) { + + case 3: + if (getstringcharacter(bsvol, 2) != '\\') + return (false); - drivemap = GetLogicalDrives(); - - drivemask = 1 << drivenum; + case 2: + if (getstringcharacter(bsvol, 1) != ':') + return (false); - return ((drivemap & drivemask) == drivemask); -#endif - } /*fileisvolume*/ + if (! isalpha (getstringcharacter(bsvol, 0))) + return (false); + drivenum = getlower(getstringcharacter(bsvol, 0)) - 'a'; + break; -boolean fileislocked (const tyfilespec *fs, boolean *fllocked) { + default: + return (false); + } + + drivemap = GetLogicalDrives(); + + drivemask = 1 << drivenum; + + return ((drivemap & drivemask) == drivemask); + + #endif + } // fileisvolume + + +boolean fileislocked (const ptrfilespec fs, boolean *fllocked) { + tyfileinfo info; if (!filegetinfo (fs, &info)) @@ -1079,7 +1384,7 @@ } /*fileislocked*/ -boolean getfiledates (const tyfilespec *fs, unsigned long *datecreated, unsigned long *datemodified) { +boolean getfiledates (const ptrfilespec fs, unsigned long *datecreated, unsigned long *datemodified) { tyfileinfo info; @@ -1094,121 +1399,86 @@ } /*getfiledates*/ -boolean setfiledates (const tyfilespec *fs, unsigned long datecreated, unsigned long datemodified) { -#ifdef MACVERSION - /* - 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. - */ +boolean setfiledates (const ptrfilespec fs, unsigned long datecreated, unsigned long datemodified) { + + // + // 2006-06-25 creedon: for Mac, work with UTC + // + // 1991-06 mao: modified to work with new getmacilfeinfo/setmacfileinfo. + // + + #ifdef MACVERSION + + CFAbsoluteTime oCFTime; + FSCatalogInfo catinfo; + FSRefParam pb; + OSStatus status; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); - CInfoPBRec pb; - - if (!getmacfileinfo (fs, &pb)) - return (false); - - if (foldertest (&pb)) { + status = UCConvertSecondsToCFAbsoluteTime ( datecreated, &oCFTime ); - pb.dirInfo.ioDrCrDat = datecreated; + status = UCConvertCFAbsoluteTimeToUTCDateTime ( oCFTime, &pb.catInfo -> createDate ); - pb.dirInfo.ioDrMdDat = datemodified; - } - else { + status = UCConvertSecondsToCFAbsoluteTime ( datemodified, &oCFTime ); - pb.hFileInfo.ioFlCrDat = datecreated; + status = UCConvertCFAbsoluteTimeToUTCDateTime ( oCFTime, &pb.catInfo -> contentModDate ); + + return ( setmacfileinfo ( fs, &pb ) ); + + #endif - pb.hFileInfo.ioFlMdDat = datemodified; - } + #ifdef WIN95VERSION - return (setmacfileinfo (fs, &pb)); -#endif + HANDLE h; + FILETIME modtime, createtime, temp; + char fn[300]; + DWORD err; + boolean fl; -#ifdef WIN95VERSION - HANDLE h; - FILETIME modtime, createtime, temp; - char fn[300]; - DWORD err; - boolean fl; + secondstofiletime (datecreated, &temp); + LocalFileTimeToFileTime (&temp, &createtime); - secondstofiletime (datecreated, &temp); - LocalFileTimeToFileTime (&temp, &createtime); + secondstofiletime (datemodified, &temp); + LocalFileTimeToFileTime (&temp, &modtime); - secondstofiletime (datemodified, &temp); - LocalFileTimeToFileTime (&temp, &modtime); - - copystring (fsname (fs), fn); - - nullterminate (fn); - - h = CreateFile (stringbaseaddress(fn), GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (h == INVALID_HANDLE_VALUE) { + copystring (fsname (fs), fn); - winfileerror (fs); + nullterminate (fn); + + h = CreateFile (stringbaseaddress(fn), GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - return (false); - } + if (h == INVALID_HANDLE_VALUE) { + + winfileerror (fs); + return (false); + } - //We do not alter the accessed time. - fl = SetFileTime (h, &createtime, NULL, &modtime); - if (!fl) - err = GetLastError(); + //We do not alter the accessed time. + fl = SetFileTime (h, &createtime, NULL, &modtime); - verify (CloseHandle (h)); - - if (fl) - return (true); + if (!fl) + err = GetLastError(); - oserror(err); - return (false); -#endif - } /*setfiledates*/ + verify (CloseHandle (h)); + + if (fl) + return (true); - -#ifdef MACVERSION -boolean getfilepos (const tyfilespec *fs, Point *pt) { - - /* - mao 6/x/91: modified to work with new getmacilfeinfo/setmacfileinfo. - */ - - CInfoPBRec pb; - - if (!getmacfileinfo (fs, &pb)) + oserror(err); return (false); - - if (foldertest (&pb)) - *pt = pb.dirInfo.ioDrUsrWds.frLocation; - else - *pt = pb.hFileInfo.ioFlFndrInfo.fdLocation; - - return (true); - } /*getfilepos*/ + + #endif + } /*setfiledates*/ -boolean setfilepos (const tyfilespec *fs, Point pt) { - /* - 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. - */ +boolean setfilecreated (const ptrfilespec fs, long when) { - CInfoPBRec pb; - - if (!getmacfileinfo (fs, &pb)) - return (false); - - if (foldertest (&pb)) - pb.dirInfo.ioDrUsrWds.frLocation = pt; - else - pb.hFileInfo.ioFlFndrInfo.fdLocation = pt; - - return (setmacfileinfo (fs, &pb)); - } /*setfilepos*/ -#endif - -boolean setfilecreated (const tyfilespec *fs, long when) { - /* 7/31/91 dmb: created */ @@ -1222,129 +1492,203 @@ } /*setfilecreated*/ -boolean setfilemodified (const tyfilespec *fs, long when) { - - /* - 7/31/91 dmb: created - */ - - unsigned long datecreated, datemodified; - - if (!getfiledates (fs, &datecreated, &datemodified)) - return (false); - - return (setfiledates (fs, datecreated, when)); - } /*setfilemodified*/ +#ifdef WIN95VERSION + boolean setfilemodified (const ptrfilespec fs, long when) { + + /* + 7/31/91 dmb: created + */ + + unsigned long datecreated, datemodified; + + if (!getfiledates (fs, &datecreated, &datemodified)) + return (false); + + return (setfiledates (fs, datecreated, when)); + } /*setfilemodified*/ -#ifdef MACVERSION -boolean setfiletype (const tyfilespec *fs, OSType filetype) { +#endif // WIN95VERSION - /* - 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. - */ - - CInfoPBRec pb; - - if (!getmacfileinfo (fs, &pb)) - return (false); - - if (foldertest (&pb)) - return (false); - - pb.hFileInfo.ioFlFndrInfo.fdType = filetype; - - return (setmacfileinfo (fs, &pb)); - } /*setfiletype*/ +#ifdef MACVERSION -boolean setfilecreator (const tyfilespec *fs, OSType filecreator) { - - /* - 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. Also, makes sure - folders aren't operated on - */ - - CInfoPBRec pb; - - if (!getmacfileinfo (fs, &pb)) - return (false); + boolean getfilepos (const ptrfilespec fs, Point *pt) { - if (foldertest (&pb)) - return (false); - - pb.hFileInfo.ioFlFndrInfo.fdCreator = filecreator; - - return (setmacfileinfo (fs, &pb)); - } /*setfilecreator*/ -#endif + // + // 2006-06-25 creedon: FSRef-ized + // + // 1991-06 mao: modified to work with new getmacilfeinfo/setmacfileinfo. + // + + FSCatalogInfo catinfo; + FSRefParam pb; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); + + if (foldertest (&pb)) + *pt = ( ( FolderInfo * ) pb.catInfo -> finderInfo ) -> location; + else + *pt = ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> location; + + return (true); + } /*getfilepos*/ -#ifdef MACVERSION -static boolean copyfork (hdlfilenum fsource, hdlfilenum fdest, Handle hbuffer) { - - /* - copy either the data fork or resource fork of the indicated file. - - return true iff the file copy was successful. - - 5/19/92 dmb: call langbackgroundtask when a script is running to make it more - likely that we'll yield the processor to another app. also, only allow - background tasks if fork is larger than a single buffer. note that if a script - is copying a bunch of files in a loop, the interpreter is already allowing - backgrounding between files. - */ - register long buffersize = GetHandleSize (hbuffer); - long ctbytes; - register OSErr errcode; + boolean setfilepos (const ptrfilespec fs, Point pt) { + + // + // 2006-06-25 creedon: FSRef-ized + // + // 1991-06 mao: modified to work with new getmacilfeinfo/setmacfileinfo. + // + + FSCatalogInfo catinfo; + FSRefParam pb; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); + + if (foldertest (&pb)) + ( ( FolderInfo * ) pb.catInfo -> finderInfo ) -> location = pt; + else + ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> location = pt; + + return (setmacfileinfo (fs, &pb)); + } /*setfilepos*/ + - SetFPos (fsource, fsFromStart, 0L); - - SetFPos (fdest, fsFromStart, 0L); - - while (true) { + boolean setfilemodified (const ptrfilespec fs, const long when) { - ctbytes = buffersize; + /* + 7/31/91 dmb: created + */ - HLock (hbuffer); + unsigned long datecreated, datemodified; - errcode = FSRead (fsource, &ctbytes, *hbuffer); + if (!getfiledates (fs, &datecreated, &datemodified)) + return (false); - HUnlock (hbuffer); + return (setfiledates (fs, datecreated, when)); + } /*setfilemodified*/ + + + boolean setfiletype (const ptrfilespec fs, OSType filetype) { - if ((errcode != noErr) && (errcode != eofErr)) { - - oserror (errcode); - + /* + 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. + */ + + FSCatalogInfo catinfo; + FSRefParam pb; + + // clearbytes ( &pb, sizeof ( pb ) ); + // clearbytes ( &catinfo, sizeof ( catinfo ) ); + + // pb.catInfo = &catinfo; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); + + if (foldertest (&pb)) return (false); - } - - if (ctbytes == 0) /*last read got no bytes*/ - return (true); - HLock (hbuffer); + ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> fileType = filetype; - errcode = FSWrite (fdest, &ctbytes, *hbuffer); + return (setmacfileinfo (fs, &pb)); + } /*setfiletype*/ + + + boolean setfilecreator (const ptrfilespec fs, OSType filecreator) { - HUnlock (hbuffer); + /* + 6/x/91 mao: modified to work with new getmacilfeinfo/setmacfileinfo. Also, makes sure + folders aren't operated on + */ - if (oserror (errcode)) + FSCatalogInfo catinfo; + FSRefParam pb; + + if ( ! getmacfileinfo ( fs, &pb, &catinfo ) ) + return ( false ); + + if (foldertest (&pb)) return (false); - if (ctbytes < buffersize) /*copy of fork is finished*/ - return (true); + ( ( FileInfo * ) pb.catInfo -> finderInfo ) -> fileCreator = filecreator; - if (flscriptrunning) - langbackgroundtask (false); - else - shellbackgroundtask (); /*give background processes a chance*/ + return (setmacfileinfo (fs, &pb)); + } /*setfilecreator*/ + + + /* + static boolean copyfork (hdlfilenum fsource, hdlfilenum fdest, Handle hbuffer) { - filebeachball (); /*roll the beachball cursor if there is one*/ - } /*while*/ - } /*copyfork*/ + // + copy either the data fork or resource fork of the indicated file. + + return true iff the file copy was successful. + + 5/19/92 dmb: call langbackgroundtask when a script is running to make it more + likely that we'll yield the processor to another app. also, only allow + background tasks if fork is larger than a single buffer. note that if a script + is copying a bunch of files in a loop, the interpreter is already allowing + backgrounding between files. + // + register long buffersize = GetHandleSize (hbuffer); + long ctbytes; + register OSErr errcode; + + SetFPos (fsource, fsFromStart, 0L); + + SetFPos (fdest, fsFromStart, 0L); + + while (true) { + + ctbytes = buffersize; + + HLock (hbuffer); + + errcode = FSRead (fsource, &ctbytes, *hbuffer); + + HUnlock (hbuffer); + + if ((errcode != noErr) && (errcode != eofErr)) { + + oserror (errcode); + + return (false); + } + + if (ctbytes == 0) // last read got no bytes + return (true); + + HLock (hbuffer); + + errcode = FSWrite (fdest, &ctbytes, *hbuffer); + + HUnlock (hbuffer); + + if (oserror (errcode)) + return (false); + + if (ctbytes < buffersize) // copy of fork is finished + return (true); + + if (flscriptrunning) + langbackgroundtask (false); + else + shellbackgroundtask (); // give background processes a chance + + filebeachball (); // roll the beachball cursor if there is one + } // while + } // copyfork + */ + +#endif // MACVERSION -#endif boolean largefilebuffer (Handle *hbuffer) { @@ -1412,337 +1756,144 @@ #ifdef MACVERSION -static pascal OSErr FSpCreateMinimum (const FSSpec *fs) +extern OSStatus LSIsApplication( const FSRef *inRef, Boolean *outIsApplication, + Boolean *outIsBundled ) { - HParamBlockRec pb; - - pb.fileParam.ioNamePtr = (StringPtr)(*fs).name; - - pb.fileParam.ioVRefNum = (*fs).vRefNum; - - pb.ioParam.ioVersNum = 0; - - pb.fileParam.ioDirID = (*fs).parID; - - return (PBHCreateSync (&pb)); - } /*FSpCreateMinimum*/ + LSItemInfoRecord info; + OSStatus err = LSCopyItemInfoForRef( inRef, kLSRequestBasicFlagsOnly, + &info ); + + if ( err == noErr ) + { + *outIsApplication = ( kLSItemInfoIsApplication &info.flags ) != 0; + *outIsBundled = ( kLSItemInfoIsPackage &info.flags ) != 0; + } + return( err ); +} + // + // ConvertCStringToHFSUniStr is from HelloWorldTool.c of FSCopyObject with no changes, I didn't want to include + // HelloWorldTool.c in this project because there is a whole bunch of code we don't need + // -static pascal OSErr FSpOpenAware (const tyfilespec *fs, boolean flresource, short denyModes, hdlfilenum *refNum) { - - /* - 3.0.2 dmb: customized version of HOpenAware from MoreFiles 1.1 - */ - - HParamBlockRec pb; - OSErr err; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize = sizeof (GetVolParmsInfoBuffer); - - pb.ioParam.ioNamePtr = (StringPtr) (*fs).name; - pb.ioParam.ioVRefNum = (*fs).vRefNum; - pb.ioParam.ioVersNum = 0; - pb.ioParam.ioMisc = nil; - - /* - get volume attributes - this preflighting is needed because Foreign File Access based file systems don't - return the correct error result to the OpenDeny call - */ - pb.ioParam.ioBuffer = (Ptr) &volParmsInfo; - pb.ioParam.ioReqCount = infoSize; - - err = PBHGetVolParmsSync (&pb); - - pb.fileParam.ioDirID = (*fs).parID; - - /* - err = HGetVolParms ((StringPtr) (*fs).name, (*fs).vRefNum, &volParmsInfo, &infoSize); - */ - - if (err == noErr) { - - /* if volume supports OpenDeny, use it and return */ - if (hasOpenDeny (volParmsInfo)) { - - pb.accessParam.ioDenyModes = denyModes; - - if (flresource) - err = PBHOpenRFDenySync (&pb); + #define kCouldNotCreateCFString 4 + #define kCouldNotGetStringData 5 + + static OSErr ConvertCStringToHFSUniStr(const char* cStr, HFSUniStr255 *uniStr) + { + OSErr err = noErr; + CFStringRef tmpStringRef = CFStringCreateWithCString( kCFAllocatorDefault, cStr, kCFStringEncodingMacRoman ); + if( tmpStringRef != NULL ) + { + if( CFStringGetCString( tmpStringRef, (char*)uniStr->unicode, sizeof(uniStr->unicode), kCFStringEncodingUnicode ) ) + uniStr->length = CFStringGetLength( tmpStringRef ); else - err = PBHOpenDenySync (&pb); - - *refNum = pb.ioParam.ioRefNum; - - return (err); - } + err = kCouldNotGetStringData; + + CFRelease( tmpStringRef ); } - else - if (err != paramErr) /* paramErr is OK, it just means this volume doesn't support GetVolParms */ - return (err); - - /* - OpenDeny isn't supported, so try File Manager Open functions - Set File Manager permissions to closest thing possible - */ - pb.ioParam.ioPermssn = ((denyModes == dmWr) || (denyModes == dmRdWr)) ? (fsRdWrShPerm) : (denyModes % 4); - - if (flresource) - err = PBHOpenRFSync (&pb); - - else { + else + err = kCouldNotCreateCFString; - err = PBHOpenDFSync (&pb); /* Try OpenDF */ - - if (err == paramErr) - err = PBHOpenSync (&pb); /* OpenDF not supported, so try Open */ - } - - *refNum = pb.ioParam.ioRefNum; - - return (err); - } /*FSpOpenAware*/ + return err; + } +#endif -static boolean copyfileattrs (const tyfilespec *fsource, const tyfilespec *fdest, boolean flcopylockbit) { +boolean copyfile ( const ptrfilespec fsource, const ptrfilespec fdest, boolean fldata, boolean flresources ) { + + // + // create a copy of the indicated file in the destination folder or volume, with the indicated name. + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + // combined the two definitions (Mac and Win) of this function into one deleted old code, see + // revision 1329 use FSCopyObject code + // + // 5.0.1 dmb: for Windows, if the file exists, overwrite it. + // - CInfoPBRec pb; - OSErr err; - boolean flfolder; + #ifdef MACVERSION - pb.hFileInfo.ioVRefNum = (*fsource).vRefNum; - pb.hFileInfo.ioDirID = (*fsource).parID; - pb.hFileInfo.ioNamePtr = (StringPtr) (*fsource).name; - pb.hFileInfo.ioFDirIndex = 0; - - err = PBGetCatInfoSync(&pb); - - if (err == noErr) { + bigstring bs; + boolean flsourcefolder; + HFSUniStr255 name; - flfolder = (pb.hFileInfo.ioFlAttrib & 0x10); + if ( ! fileisfolder ( fsource, &flsourcefolder ) ) + return ( false ); - pb.hFileInfo.ioVRefNum = (*fdest).vRefNum; - pb.hFileInfo.ioDirID = (*fdest).parID; - pb.hFileInfo.ioNamePtr = (StringPtr) (*fdest).name; + if ( flsourcefolder ) { - /* don't copy the hasBeenInited bit */ - pb.hFileInfo.ioFlFndrInfo.fdFlags = (pb.hFileInfo.ioFlFndrInfo.fdFlags & 0xfeff); - - err = PBSetCatInfoSync(&pb); - - if ((err == noErr) && (flcopylockbit) && (pb.hFileInfo.ioFlAttrib & 0x01)) { - - err = PBHSetFLockSync ((HParmBlkPtr) &pb); - - if ((err != noErr) && (flfolder)) - err = noErr; /* ignore lock errors if destination is directory */ + setfserrorparam ( fdest ); // in case error message takes a filename parameter + + if ( ! newfolder ( fdest ) ) + return ( false ); + + return ( true ); } - } - - return (err); - } /*copyfileattrs*/ - - -boolean copyfile (const tyfilespec *fsource, const tyfilespec *fdest, boolean fldata, boolean flresources) { - - /* - create a copy of the indicated file in the destination volume, with the indicated - name. - - we allocate a good-sized buffer in the heap, then open and copy the data fork then - open and copy the resource fork of the source file. - - return true if the operation was successful, false otherwise. - - 7/27/90 DW: add fldata, flresources -- allows selective copying of the two - forks of each file. we assume one of these two booleans is true. - - 3/16/92 dmb: maintain all public Finder flags, not just creator/type & dates - - 3.0.2 dmb: use CreateMinimum and do things in special order for drop-box copies. - For details, see MoreFiles:FileCopy.c on the Reference Library CD. note that - there are more details handled by the sample code that we're ignoring here. one - is using CopyFile if src and dst are on the same server and the server supports - that function. another is to open forks with deny modes set. maybe next time... - also, we now handle folders, so file.copy can retain folder attributes. - */ - - Handle hbuffer = nil; - short sourcefnum = 0, sourcernum = 0; - short destfnum = 0, destrnum = 0; - boolean fldestcreated = false; - boolean flsourcefolder, fldestfolder; - - if (!fileisfolder (fsource, &flsourcefolder)) - return (false); - - if (flsourcefolder) - fldata = flresources = false; - - else { + + getfsfile ( fdest, bs ); - if (!largefilebuffer (&hbuffer)) - return (false); - } - - if (fldata) { + convertpstring ( bs ); - if (oserror (FSpOpenAware (fsource, false, dmRdDenyWr, &sourcefnum))) - goto error; - } - - if (flresources) { + if ( oserror ( ConvertCStringToHFSUniStr ( bs , &name ) ) ) + return ( false ); - if (oserror (FSpOpenAware (fsource, true, dmRdDenyWr, &sourcernum))) - goto error; - } - - if (fileexists (fdest, &fldestfolder)) { /*file exists, delete it*/ - - if (!deletefile (fdest)) - goto error; - } - - setfserrorparam (fdest); /*in case error message takes a filename parameter*/ - - if (flsourcefolder) { - - if (!newfolder (fdest... [truncated message content] |
|
From: <cre...@us...> - 2006-06-25 20:38:57
|
Revision: 1419 Author: creecode Date: 2006-06-25 13:38:54 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1419&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/filepath.c Modified: Frontier/branches/FSRef_Migration/Common/source/filepath.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/filepath.c 2006-06-25 20:06:03 UTC (rev 1418) +++ Frontier/branches/FSRef_Migration/Common/source/filepath.c 2006-06-25 20:38:54 UTC (rev 1419) @@ -33,7 +33,8 @@ #include "strings.h" #include "ops.h" #include "file.h" -#include "launch.h" /* 2005-07-18 creedon */ +#include "launch.h" // 2005-07-18 creedon +#include "MoreFilesX.h" // 2006-05-31 creedon #define flaux false /*if true, we're running under the A/UX operating system*/ @@ -41,61 +42,63 @@ #ifdef MACVERSION -static FSSpec fsdefault = {0}; /*we maintain our own default directory*/ + static tyfilespec fsdefault; // we maintain our own default directory -boolean directorytopath (long DirID, short vnum, bigstring path) { + +boolean directorytopath ( const ptrfilespec fs, bigstring path ) { + + // + // 2006-06-06 creedon: FSRef-ized + // another way might be to use FSRefMakePath and then push insert the volume name on it + // + + CFMutableStringRef ioPath = CFStringCreateMutable ( NULL, 0 ); + FSCatalogInfo catalogInfo; + FSRef localRef = ( *fs ).fsref; + HFSUniStr255 names [ 100 ]; + int i, n; + OSStatus status = noErr; + UniChar inSepChar = ':'; - CInfoPBRec block; - bigstring bsdirectory; - OSErr errcode; - - setemptystring (path); - - clearbytes (&block, longsizeof (block)); - - block.dirInfo.ioNamePtr = bsdirectory; - - block.dirInfo.ioDrParID = DirID; - - do { - block.dirInfo.ioVRefNum = vnum; + clearbytes ( &catalogInfo, longsizeof ( catalogInfo ) ); + + for ( n = 0 ; status == noErr && catalogInfo.nodeID != fsRtDirID && n < 100 ; n++ ) + status = FSGetCatalogInfo ( &localRef, kFSCatInfoNodeID, &catalogInfo, &names [ n ], NULL, &localRef ); + + if ( status != noErr ) + return ( false ); - block.dirInfo.ioFDirIndex = -1; + for ( i = n - 1; i >= 0; --i ) { + CFStringAppendCharacters ( ioPath, names [ i ].unicode, names [ i ].length ); + + // if ( i > 0 ) - block.dirInfo.ioDrDirID = block.dirInfo.ioDrParID; - - errcode = PBGetCatInfoSync (&block); - - if (errcode != noErr) - return (false); - - if (flaux) { - if (bsdirectory[1] != '/') - if (!pushchar ('/', bsdirectory)) - return (false); - } - else - if (!pushchar (':', bsdirectory)) - return (false); - - if (!pushstring (path, bsdirectory)) - return (false); - - copystring (bsdirectory, path); - } while (block.dirInfo.ioDrDirID != fsRtDirID); + CFStringAppendCharacters ( ioPath, &inSepChar, 1 ); + } - return (true); - } /*directorytopath*/ + return ( CFStringGetPascalString ( ioPath, path, 256, kCFStringEncodingMacRoman ) ); + } // directorytopath + #endif -boolean filegetdefaultpath (tyfilespec *fs) { + +boolean filegetdefaultpath ( ptrfilespec fs ) { + + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // #ifdef MACVERSION - return (!oserror (FSMakeFSSpec (fsdefault.vRefNum, fsdefault.parID, nil, fs))); + + *fs = fsdefault; + + return ( true ); + #endif #ifdef WIN95VERSION + DWORD sz; sz = GetCurrentDirectory (257, stringbaseaddress (fsname (fs))); @@ -112,41 +115,29 @@ setstringlength(fsname (fs), sz + 1); return (true); + #endif } /*filegetdefaultpath*/ -boolean filesetdefaultpath (const tyfilespec *fs) { +boolean filesetdefaultpath ( const ptrfilespec fs ) { + + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // #ifdef MACVERSION - CInfoPBRec pb; + + setfserrorparam ( fs ); - clearbytes (&fsdefault, longsizeof (fsdefault)); + fsdefault = *fs; - if (isemptystring ((*fs).name)) - return (true); + return (true); - setoserrorparam ((ptrstring) (*fs).name); - - clearbytes (&pb, longsizeof (pb)); - - pb.dirInfo.ioNamePtr = (StringPtr) (*fs).name; - - pb.dirInfo.ioVRefNum = (*fs).vRefNum; - - pb.dirInfo.ioDrDirID = (*fs).parID; - - if (oserror (PBGetCatInfoSync (&pb))) - return (false); - - fsdefault.vRefNum = pb.dirInfo.ioVRefNum; - - fsdefault.parID = pb.dirInfo.ioDrDirID; - - return (true); #endif #ifdef WIN95VERSION + if (isemptystring (fsname (fs))) return (true); @@ -158,55 +149,85 @@ } return (true); + #endif - } /*filesetdefaultpath*/ + + } // filesetdefaultpath -boolean filespectopath (const tyfilespec *fs, bigstring bspath) { +boolean filespectopath (const ptrfilespec fs, bigstring bspath) { - /* - 6/28/91 dmb: when you resolve an alias of a volume, the fsspec has a - parent dirid of 1. we catch this as a special case here, and return - the empty string as the path + // + // 2006-06-24 creedon: for Mac, FSRef-ized + // + // 2.1a7 dmb: if it's a null filespec, return the empty string + // + // 1991-12-17 dmb: don't check for folderness if file doesn't exist-- we dont want to generate any errors here + // + // 1991-10-14 dmb: make sure folder paths end in : + // + // 1991-06-28 dmb: when you resolve an alias of a volume, the fsspec has a parent dirid of 1. we catch this as a + // special case here, and return the empty string as the path + // - 10/14/91 dmb: make sure folder paths end in : + #ifdef MACVERSION - 12/17/91 dmb: don't check for folderness if file doesn't exist-- we - dont want to generate any errors here - - 2.1a7 dmb: if it's a null filespec, return the empty string - */ - - #ifdef MACVERSION boolean flfolder; + FSCatalogInfo catalogInfo; + tyfilespec fsp, fst = *fs; + HFSUniStr255 outName; + OSErr err; - if ((*fs).parID == fsRtParID) { /*it's a volume*/ + ( void ) extendfilespec ( &fst, &fst ); + + err = FSGetCatalogInfo ( &fst.fsref, kFSCatInfoParentDirID | kFSCatInfoVolume, &catalogInfo, &outName, NULL, + &fsp.fsref ); + + if ( catalogInfo.parentDirID == fsRtParID ) { // it's a volume + + HFSUniStr255ToStr255 ( &outName, bspath ); + + pushchar ( ':', bspath ); - copystring ((ptrstring) (*fs).name, bspath); - - pushchar (':', bspath); - - return (true); + return ( true ); } - setemptystring (bspath); + setemptystring ( bspath ); - if (((*fs).parID == 0) && ((*fs).vRefNum == 0) && (isemptystring ((*fs).name))) + if ( ! FSRefValid ( &fst.fsref ) ) // need to check for noErr here? return (true); - if (!directorytopath ((*fs).parID, (*fs).vRefNum, bspath)) + if ( ! directorytopath ( &fsp, bspath ) ) return (false); + + bigstring bs; + + HFSUniStr255ToStr255 ( &outName, bs ); - pushstring ((ptrstring) (*fs).name, bspath); + pushstring ( bs, bspath ); - if (fileexists (fs, &flfolder)) - if (flfolder) - assurelastchariscolon (bspath); + if ( fst.path != NULL ) { + + pushchar ( ':', bspath ); + + CFStringToStr255 ( fst.path, bs ); + + pushstring ( bs, bspath ); + + return ( true ); + + } + + if ( fileexists ( &fst, &flfolder ) ) + if ( flfolder ) + assurelastchariscolon ( bspath ); return (true); + #endif #ifdef WIN95VERSION + // 5.0d12 dmb: use GetFullPath to clean up 8.3 names char * fileptr; @@ -219,76 +240,164 @@ nullterminate (bspath); return (true); + #endif - } /*filespectopath*/ + + } // filespectopath -boolean pathtofilespec (bigstring bspath, tyfilespec *fs) { +boolean pathtofilespec ( bigstring bspath, ptrfilespec fs ) { - /* - 7/5/91 dmb: use FSMakeFSSpec if it's available. since it only returns - noErr if the file exists, and we want to handle non-existant files, we - don't give up right away. + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 5.0d8 dmb: clear fs first thing + // + // 2.1b2 dmb: use new fsdefault for building filespec. note that if bspath isn't a partial path, the vref and dirid will be + // ignored. + // + // 2.1b2 dmb: added special case for empty string. also, added drive number interpretation here. + // + // 1993-06-11 dmb: if FSMakeFSSpec returns fnfErr, the spec is cool (but file doesn't exist) + // + // 1991-012-17 dmb: dont append path to default directory if it's a full path + // + // 1991-07-05 dmb: use FSMakeFSSpec if it's available. since it only returns noErr if the file exists, and we want to handle + // non-existant files, we don't give up right away. + // - 12/17/91 dmb: dont append path to default directory if it's a full path + clearbytes ( fs, sizeof ( *fs ) ); + + if ( isemptystring ( bspath ) ) + return ( true ); + + #ifdef MACVERSION - 6/11/93 dmb: if FSMakeFSSpec returns fnfErr, the spec is cool (but file - doesn't exist) - - 2.1b2 dmb: added special case for empty string. also, added drive number - interpretation here. - - 2.1b2 dmb: use new fsdefault for building filespec. note that if bspath - isn't a partial path, the vref and dirid will be ignored. - */ - - bigstring bsfolder; - #ifdef MACVERSION - OSErr errcode; - short ix = 1; - #endif + bigstring bs, bspathtmp; + FSRef fsr; + OSStatus status; + + copystring ( bspath, bspathtmp ); - clearbytes (fs, sizeof (tyfilespec)); // 5,0d8 dmb + cleanendoffilename ( bspathtmp ); + + /* try as full path */ { + + bigstring bsfullpath; + + copystring ( bspathtmp, bsfullpath ); + + insertstring ( BIGSTRING ( "\x09" ":Volumes:" ), bsfullpath ); // this is a funky syntax but we don't want to + // convert to slashes until the last moment, so + // we can resuse - if (isemptystring (bspath)) - return (true); + copystring ( bsfullpath, bs); + + stringreplaceall ( ':', '/', bs ); + + convertpstring ( bs ); + + status = FSPathMakeRef ( bs, &fsr, NULL ); + + if ( status == noErr ) { + + HFSUniStr255 name; - #ifdef MACVERSION - errcode = FSMakeFSSpec (fsdefault.vRefNum, fsdefault.parID, bspath, fs); + status = FSGetCatalogInfo ( &fsr, kFSCatInfoNone, NULL, &name, NULL, &fsr ); + + ( *fs ).fsref = fsr; + + ( *fs ).path = CFStringCreateWithCharacters ( kCFAllocatorDefault, name.unicode, name.length ); + + return ( true ); + + } + + /* emulate behaviour of FSSpec */ { + + folderfrompath ( bsfullpath, bs ); + + stringreplaceall ( ':', '/', bs ); + + convertpstring ( bs ); + + status = FSPathMakeRef ( bs, &fsr, NULL ); + + if ( status == noErr ) { + + /* bail if fsr is Volumes directory */ { + + FSRef volumesfsref; + + status = FSPathMakeRef ( "/Volumes", &volumesfsref, NULL ); + + if ( FSCompareFSRefs ( &fsr, &volumesfsref ) != noErr ) { + + filefrompath ( bsfullpath, bs ); + + ( *fs ).fsref = fsr; + + ( *fs ).path = CFStringCreateWithPascalString ( kCFAllocatorDefault, bs, + kCFStringEncodingMacRoman ); + + return ( true ); + + } // if + } // bail + } // if + } // emulate FSSpec + } // full path + + /* try as partial path */ { - //for some reason if there is a trailing : you get a dirNFErr and it doesn't work - //This little hack saves us. It still is a fnfErr, but it works. - #if TARGET_API_MAC_CARBON - if(errcode == dirNFErr) - { - poptrailingchars(bspath, ':'); - errcode = FSMakeFSSpec (fsdefault.vRefNum, fsdefault.parID, bspath, fs); - } - #endif - if ((errcode == noErr) || (errcode == fnfErr)) - return (true); + bigstring bspartialpath; + tyfilespec fst; + + copystring ( bspathtmp, bspartialpath ); + + if ( bspartialpath [ 1 ] != chpathseparator ) + insertchar ( chpathseparator, bspartialpath ); - if (scanstring (':', bspath, &ix) && (ix > 1)) { /*includes a colon, not the first thing*/ + ( void ) extendfilespec ( &fsdefault, &fst ); - short drivenum; + status = FSRefMakePath ( &fst.fsref, ( UInt8 * ) bs, 256 ); // bs is now a c string - midstring (bspath, 1, ix - 1, bsfolder); /*pull out volume name*/ + convertcstring ( bs ); // bs is now a bigstring - if (isallnumeric (bsfolder) && stringtoshort (bsfolder, &drivenum)) { /*it's a number*/ + insertstring ( bs, bspartialpath ); + + copystring ( bspartialpath, bs ); + + stringreplaceall ( ':', '/', bs ); + + convertpstring ( bs ); // bs is now a c string + + status = FSPathMakeRef ( bs, &fsr, NULL ); + + if ( status == noErr ) { + + HFSUniStr255 name; + + status = FSGetCatalogInfo ( &fsr, kFSCatInfoNone, NULL, &name, NULL, &fsr ); + + ( *fs ).fsref = fsr; - midstring (bspath, ix, stringlength (bspath) - ix + 1, bsfolder); + ( *fs ).path = CFStringCreateWithCharacters ( kCFAllocatorDefault, name.unicode, name.length ); + + return ( true ); - errcode = FSMakeFSSpec (drivenum, 0, bsfolder, fs); + } - if ((errcode == noErr) || (errcode == fnfErr)) - return (true); - } - } + } - return (false); + return ( false ); + #endif #ifdef WIN95VERSION + + bigstring bsfolder; + copystring (bspath, fsname (fs)); folderfrompath (bspath, bsfolder); @@ -305,42 +414,40 @@ return (true); #endif - } /*pathtofilespec*/ + } // pathtofilespec -boolean setfsfile (tyfilespec *fs, bigstring bsfile) { +boolean setfsfile ( ptrfilespec fs, bigstring bsfile ) { - /* - 2004-10-26 aradke: Since the getmacfileinfo/foldertest gymnastics do not - seem to fit any particular purpose and since none of our callers - seem to rely it since they usually pass in a file rather than a directory, - I commented it out. - - The only time we get called with a directory is apparently by - shellopendefaultfile on startup in the Carbon/Mach-O build. - getapplicationfilespec returns a directory in that case and - the code below somehow screwed up when called to set the - filename to Frontier.root so that it wouldn't be found. - */ + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 2004-10-26 aradke: Since the getmacfileinfo/foldertest gymnastics do not seem to fit any particular purpose and since + // none of our callers seem to rely it since they usually pass in a file rather than a directory, I + // commented it out. + // + // The only time we get called with a directory is apparently by shellopendefaultfile on startup in the + // Carbon/Mach-O build. getapplicationfilespec returns a directory in that case and the code below + // somehow screwed up when called to set the filename to Frontier.root so that it wouldn't be found. + // #ifdef MACVERSION - /* - CInfoPBRec pb; - - if (getmacfileinfo (fs, &pb) && foldertest (&pb)) { - FSMakeFSSpec ((*fs).vRefNum, pb.dirInfo.ioDrDirID, bsfile, fs); - - return (false); - } - */ + HFSUniStr255 name; + OSErr err; - copystring (bsfile, (*fs).name); + bigstringToHFSUniStr255 ( bsfile, &name ); + + err = FSGetCatalogInfo ( &( *fs ).fsref, kFSCatInfoNone, NULL, NULL, NULL, &( *fs ).fsref ); + + err = FSMakeFSRefUnicode ( &( *fs ).fsref, name.length, name.unicode, kTextEncodingUnknown, &( *fs ).fsref ); - return (true); + return ( true ); + #endif #ifdef WIN95VERSION + bigstring bsfolder; folderfrompath (fsname (fs), bsfolder); @@ -352,68 +459,98 @@ nullterminate (fsname (fs)); return (true); + #endif - } /*setfsfile*/ + + } // setfsfile -boolean getfsfile (const tyfilespec *fs, bigstring bsfile) { +boolean getfsfile (const ptrfilespec fs, bigstring bsfile) { + + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + + #ifdef MACVERSION - /* - 5.0b9 dmb: we're needing this in a few places. better late - than never - */ + if ( ( *fs ).path != NULL ) { + + if ( CFStringToStr255 ( ( *fs ).path, bsfile ) ) + return ( true ); + } + else { + FSRefGetNameStr255 ( &( *fs ).fsref, bsfile ); + } - #ifdef WIN95VERSION - bigstring bspath; - - filespectopath (fs, bspath); + if (stringlength ( bsfile ) > 0) + return (true); + + long vnum; - filefrompath (bspath, bsfile); + getfsvolume ( fs, &vnum ); + + return ( filegetvolumename ( vnum, bsfile ) ); + + #endif - return (true); - #endif + #ifdef WIN95VERSION - #ifdef MACVERSION - copystring (fsname (fs), bsfile); + lastword ((ptrstring) fs -> fullSpecifier, '\\', bsfile); return (true); + #endif - } /*getfsfile*/ + } // getfsfile -boolean getfsvolume (const tyfilespec *fs, long *vnum) { +boolean getfsvolume (const ptrfilespec fs, long *vnum) { - /* - 5.1.5b11 dmb: get the volume that is actually specified in the fspec. + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 5.1.5b11 dmb: get the volume that is actually specified in the fspec. + // + // don't expand partial paths using the default directory. + // - don't expand partial paths using the default directory. - */ - - #ifdef WIN95VERSION - return (fileparsevolname ((ptrstring) fsname (fs), vnum, nil)); - #endif + #ifdef MACVERSION - #ifdef MACVERSION - HVolumeParam pb; + FSCatalogInfo catalogInfo; + OSErr err = FSGetCatalogInfo ( &fs->fsref, kFSCatInfoVolume, &catalogInfo, NULL, NULL, NULL ); - *vnum = (*fs).vRefNum; + if ( catalogInfo.volume == 0 ) + return ( false ); - if (*vnum == 0) - return (false); + *vnum = catalogInfo.volume; + + return ( err == noErr ); - clearbytes (&pb, sizeof (pb)); /*init all fields to zero*/ + #endif + + #ifdef WIN95VERSION + + return (fileparsevolname ((ptrstring) fsname (fs), vnum, nil)); - pb.ioVRefNum = *vnum; - - return (PBHGetVInfoSync ((HParmBlkPtr) &pb) == noErr); #endif - } /*getfsvolume*/ + + } /* getfsvolume */ void initfsdefault (void) { + + // + // 2006-06-18 creedon: FSRef-ized + // + // 2005-07-18 creedon, karstenw: created + // + #ifdef MACVERSION - /* 2005-07-18 creedon, karstenw */ - getapplicationfilespec (nil, &fsdefault); + + getapplicationfilespec ( nil, &fsdefault ); + + getfilespecparent ( &fsdefault ); + #endif + } /* initfsdefault */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-25 20:06:08
|
Revision: 1418 Author: creecode Date: 2006-06-25 13:06:03 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1418&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/source/fileverbs.c Frontier/branches/FSRef_Migration/Common/source/findinfile.c Frontier/branches/FSRef_Migration/Common/source/icon.c Modified: Frontier/branches/FSRef_Migration/Common/source/fileverbs.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-06-25 19:05:17 UTC (rev 1417) +++ Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-06-25 20:06:03 UTC (rev 1418) @@ -50,7 +50,10 @@ #ifdef MACVERSION + + #include "MoreFilesX.h" #define chpathseparator ':' + #endif #ifdef WIN95VERSION @@ -85,7 +88,7 @@ setfilecreatorfunc, - fileisfolderfunc, + fileisfolderfunc, fileisvolumefunc, @@ -101,11 +104,11 @@ filecopyresourceforkfunc, - filedeletefunc, + filedeletefunc, filerenamefunc, - fileexistsfunc, + fileexistsfunc, filesizefunc, @@ -119,17 +122,13 @@ folderfrompathfunc, - /* - getprogrampathfunc, - */ - getsystempathfunc, getspecialpathfunc, newfunc, - newfolderfunc, + newfolderfunc, newaliasfunc, @@ -363,7 +362,7 @@ #endif -static boolean getpathvalue (hdltreenode hparam1, short pnum, tyfilespec *fspath) { +static boolean getpathvalue (hdltreenode hparam1, short pnum, ptrfilespec fspath) { /* get a path parameter for the parameter list. @@ -413,24 +412,24 @@ } /*getpathvalue*/ -static boolean getvolumevalue (hdltreenode hparam1, short pnum, tyfilespec *fsvol) { +static boolean getvolumevalue (hdltreenode hparam1, short pnum, ptrfilespec fsvol) { - /* - get a volume path parameter for the parameter list. + // + // get a volume path parameter for the parameter list. + // + // make sure that a colon is included so a volume name isn't interpreted as + // a partial path + // + // 2.1b11 dmb: ooops, we were copying bsvol into fsvol.name, potentially + // overflowing the str64. fileparsevolname now returns the vol + // name. note that if the caller needs to distinguish between + // volumes and non-volumes, it can't call us. + // + // 2.1b8 dmb: don't use pathtofilespec to convert the volume name, because + // FSMakeFSSpec will prompt the user to insert the disk if the + // volume has been ejected - make sure that a colon is included so a volume name isn't interpreted - as a partial path - 2.1b8 dmb: don't use pathtofilespec to convert the volume name, - because FSMakeFSSpec will prompt the user to insert the disk if - the volume has been ejected - - 2.1b11 dmb: ooops, we were copying bsvol into fsvol.name, potentially - overflowing the str64. fileparsevolname now returns the vol name. note - that if the caller needs to distinguish between volumes and non-volumes, - it can't call us. - */ - bigstring bsvol; tyvaluerecord v; @@ -439,15 +438,11 @@ switch (v.valuetype) { - case stringvaluetype:/*already a string, easy case*/ + case stringvaluetype: // already a string, easy case pullstringvalue (&v, bsvol); - #ifdef NEWFILESPECTYPE - if (!fileparsevolname (bsvol, &(*fsvol).volumeID, (*fsvol).fullSpecifier)) { - #else - if (!fileparsevolname (bsvol, &(*fsvol).vRefNum, (*fsvol).name)) { - #endif + if ( ! fileparsevolname ( bsvol, fsvol ) ) { setoserrorparam (bsvol); @@ -455,21 +450,18 @@ return (false); } - #ifdef MACVERSION - (*fsvol).parID = fsRtParID; - #endif - - /* old code for string paths, pre-filespecs - if (!stringfindchar (chpathseparator, bsvol)) - pushchar (chpathseparator, bsvol); - if (!pathtofilespec (bsvol, fsvol)) { - setoserrorparam (bsvol); - oserror (errorVolume); - return (false); - } - */ + /* + is this needed any more, FSRef migration? + + #ifdef MACVERSION + + (*fsvol).parID = fsRtParID; + + #endif + */ + break; default: @@ -484,41 +476,51 @@ } return (true); - } /*getvolumevalue*/ + } // getvolumevalue static boolean copyfileverb (boolean fldata, boolean flresources, hdltreenode hparam1, tyvaluerecord *v) { + + // + // 2006-06-18 creedon: for Mac, FSRef-ize + // tyfilespec fs1, fs2; - if (!getpathvalue (hparam1, 1, &fs1)) /*fs1 holds the source path*/ + if (!getpathvalue (hparam1, 1, &fs1)) // fs1 holds the source path return (false); flnextparamislast = true; - if (!getpathvalue (hparam1, 2, &fs2)) /*fs2 holds the dest path*/ + if (!getpathvalue (hparam1, 2, &fs2)) // fs2 holds the dest path return (false); - if (equalfilespecs (&fs1, &fs2)) /*easy case making a copy of itself*/ + if (equalfilespecs (&fs1, &fs2)) // easy case making a copy of itself (*v).data.flvalue = true; - else - (*v).data.flvalue = copyfile (&fs1, &fs2, fldata, flresources); + else { + ( void ) extendfilespec ( &fs1, &fs1 ); + + (*v).data.flvalue = copyfile ( &fs1, &fs2, fldata, flresources ); + + } + return (true); - } /*copyfileverb*/ + + } // copyfileverb static boolean filefrompathverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - /* - 2.1b2 dmb: do string manipulation if given a string, but otherwise - work with filespecs. less critical than with folderfrompath, but might - avoid full path string overflow + // + // 2006-06-19 creedon: for Mac, FSRef-ized + // + // 2.1b3 dmb: be sure to add colon to name of folder even when filespec is being used. + // + // 2.1b2 dmb: do string manipulation if given a string, but otherwise work with filespecs. less critical than with + // folderfrompath, but might avoid full path string overflow + // - 2.1b3 dmb: be sure to add colon to name of folder even when filespec is - being used. - */ - tyvaluerecord v; tyfilespec fs; bigstring bs; @@ -539,43 +541,44 @@ if (flfolder) setstringlength (bs, stringlength (bs) - 1); - filefrompath (bs, bs); /*bs now holds the filename*/ + filefrompath (bs, bs); // bs now holds the filename break; default: - if (!coercetofilespec (&v)) - return (false); - - #if TARGET_API_MAC_CARBON == 1 - - fs.vRefNum = (**v.data.filespecvalue).vRefNum; - fs.parID = (**v.data.filespecvalue).parID; - - copystring ((**v.data.filespecvalue).name, fs.name); - - #else - - fs = **v.data.filespecvalue; + if ( ! coercetofilespec ( &v ) ) + return ( false ); + fs = **v.data.filespecvalue; + + #ifdef MACVERSION + + ( void ) extendfilespec ( &fs, &fs ); + + if ( fs.path == NULL ) + FSRefGetNameStr255 ( &fs.fsref, bs ); + else + CFStringToStr255 ( fs.path, bs ); + #endif - #ifdef NEWFILESPECTYPE - copystring (fs.fullSpecifier, bs); - #else - copystring (fs.name, bs); - #endif - /* - if (!fileexists (&fs, &flfolder) || !fileisfolder (&fs, &flfolder)) - flfolder = false; - */ - fileexists (&fs, &flfolder); /*don't care about return, just flfolder value*/ - #ifdef WIN95VERSION - if (endswithpathsep (bs)) - setstringlength (bs, stringlength (bs) - 1); + #ifdef WIN95VERSION + + copystring (fs.fullSpecifier, bs); + + #endif + + fileexists (&fs, &flfolder); // don't care about return, just flfolder value + + #ifdef WIN95VERSION + + if (endswithpathsep (bs)) + setstringlength (bs, stringlength (bs) - 1); - filefrompath (bs, bs); - #endif + filefrompath (bs, bs); + + #endif + break; } @@ -583,16 +586,17 @@ pushchar (chpathseparator, bs); return (setstringvalue (bs, vreturned)); - } /*filefrompathverb*/ + } // filefrompathverb static boolean folderfrompathverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - /* - 2.1b2 dmb: do string manipulation if given a string, but otherwise - work with filespecs. in addition to avoiding string overflow, this - preserves ability to distinguish between identically-named volumes - */ + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + // 2.1b2 dmb: do string manipulation if given a string, but otherwise work with filespecs. in addition to avoiding string + // overflow, this preserves ability to distinguish between identically-named volumes + // tyvaluerecord v; @@ -602,13 +606,16 @@ return (false); #ifdef WIN95VERSION - if (!coercetostring (&v)) - return (false); + + if (!coercetostring (&v)) + return (false); + #endif switch (v.valuetype) { case stringvaluetype: { + bigstring bs; pullstringvalue (&v, bs); @@ -621,36 +628,34 @@ } default: { - #ifdef MACVERSION - tyfilespec fs; + + #ifdef MACVERSION - if (!coercetofilespec (&v)) - return (false); - - #if TARGET_API_MAC_CARBON == 1 - - fs.vRefNum = (**v.data.filespecvalue).vRefNum; + tyfilespec fs; - fs.parID = (**v.data.filespecvalue).parID; + if (!coercetofilespec (&v)) + return (false); - copystring ((**v.data.filespecvalue).name, fs.name); + fs = **v.data.filespecvalue; + + ( void ) extendfilespec ( &fs, &fs ); + + if (!getfileparentfolder (&fs, &fs)) + return (false); + + getfilespecparent ( &fs ); + + return (setfilespecvalue (&fs, vreturned)); + + #else - #else + return (false); - fs = **v.data.filespecvalue; - #endif - - if (!getfileparentfolder (&fs, &fs)) - return (false); - - return (setfilespecvalue (&fs, vreturned)); - #else - return (false); - #endif } } - } /*folderfrompathverb*/ + + } // folderfrompathverb static boolean gettypelistvalue (hdltreenode hparam1, short pnum, tysftypelist *filetypes, ptrsftypelist *x) { @@ -717,19 +722,21 @@ static boolean filedialogverb (tysfverb sfverb, hdltreenode hparam1, tyvaluerecord *vreturned) { - /* - put up one of the "standard file" dialogs. if sfverb is sfputfileverb we use the "put" dialog, otherwise the "get" dialog. + // + // put up one of the "standard file" dialogs. if sfverb is sfputfileverb we use the "put" dialog, otherwise the "get" dialog. + // + // we take at least one parameter -- the name of a variable to receive the full path specified by the user. + // + // if it's the getfile dialog, we take a second parameter -- it indicates the type of the file. + // + // 2006-06-24 creedon: FSRef-ized + // + // 1991-12-27 dmb: in all cases, check the current value of the filename variable, and pass it on to sf dialog so it can + // potentially set default directory. + // + // 2005-10-06 creedon: added creator parameter + // - we take at least one parameter -- the name of a variable to receive the full path specified by the user. - - if it's the getfile dialog, we take a second parameter -- it indicates the - type of the file. - - 2005-10-06 creedon: added creator parameter - - 12/27/91 dmb: in all cases, check the current value of the filename variable, and pass it on to sf dialog so it can potentially set default directory. - */ - bigstring bsprompt; bigstring bsvarname; tyfilespec fs; @@ -748,10 +755,10 @@ if (sfverb != sfgetfileverb) flnextparamislast = true; - if (!getvarparam (hparam1, 2, &htable, bsvarname)) /*returned filename holder*/ + if (!getvarparam (hparam1, 2, &htable, bsvarname)) // returned filename holder return (false); - if (sfverb == sfgetfileverb) { /* get extra parameters for get file dialog, indicating file type(s) and file creator */ + if (sfverb == sfgetfileverb) { // get extra parameters for get file dialog, indicating file type(s) and file creator short ctconsumed = 3; short ctpositional = 3; @@ -773,10 +780,10 @@ clearbytes (&fs, sizeof (fs)); - /* - if (idstringvalue (htable, bsvarname, bsfname)) - filecheckdefaultpath (bsfname); - */ + // + // if (idstringvalue (htable, bsvarname, bsfname)) + // filecheckdefaultpath (bsfname); + // if (hashtablelookup (htable, bsvarname, &val, &hnode)) { @@ -792,9 +799,14 @@ } if (sfverb == sfputfileverb) { - lastword (fsname(&fs), '.', bsext); + + bigstring bs; + + getfsfile ( &fs, bs ); + + lastword ( bs, '.', bsext); - if (!((stringlength (fsname(&fs)) == stringlength (bsext)) || (stringlength (bsext) > 4))) { /* extension */ + if ( ! ( ( stringlength ( bs ) == stringlength ( bsext ) ) || ( stringlength ( bsext ) > 4 ) ) ) { // extension stringtoostype (bsext, &ostype); filetypes.cttypes = 1; filetypes.types [0] = ostype; @@ -804,9 +816,11 @@ setbooleanvalue (false, vreturned); - if (!sfdialog (sfverb, bsprompt, typelist, &fs, oscreator)) /*user hit cancel*/ + if (!sfdialog (sfverb, bsprompt, typelist, &fs, oscreator)) // user hit cancel return (true); + getfilespecparent ( &fs ); + if (!setfilespecvalue (&fs, &val)) return (false); @@ -821,10 +835,11 @@ exemptfromtmpstack (&val); - (*vreturned).data.flvalue = true; /*the user did select a file*/ + (*vreturned).data.flvalue = true; // the user did select a file return (true); - } /*filedialogverb*/ + + } // filedialogverb static boolean getstringorintvalue (hdltreenode hfirst, short pnum, boolean flstring, short *intval, bigstring bsval) { @@ -918,9 +933,11 @@ static boolean putresourceverb (hdltreenode hparam1, boolean flnamed, tyvaluerecord *v) { - /* - 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile - */ + // + // 2006-06-17 creedon: FSRef-ized + // + // 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile + // tyfilespec fs; OSType type, bintype; @@ -951,13 +968,16 @@ if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val)) return (false); + + ( void ) extendfilespec ( &fs, &fs ); forktype = val.data.intvalue; (*v).data.flvalue = saveresourcehandle (&fs, type, id, bs, hbinary, forktype); return (true); - } /*putresourceverb*/ + + } // putresourceverb static boolean countrestypesverb (hdltreenode hparam1, tyvaluerecord *v) { @@ -1890,6 +1910,10 @@ static boolean getlabelverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; bigstring bslabel; @@ -1898,14 +1922,21 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + if (!getfilelabel (&fs, bslabel)) setemptystring (bslabel); return (setstringvalue (bslabel, v)); - } /*getlabelverb*/ + + } // getlabelverb static boolean setlabelverb (hdltreenode hparam1, tyvaluerecord *v) { + + // + // 2006-06-18 creedon: FSRef-ized + // tyfilespec fs; bigstring bslabel; @@ -1918,15 +1949,20 @@ if (!getstringvalue (hparam1, 2, bslabel)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + return (setbooleanvalue (setfilelabel (&fs, bslabel), v)); - } /*setlabelverb*/ + + } // setlabelverb static boolean getlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - 2006-04-24 creedon: created, cribbed from getlabelverb function - */ + // + // 2006-06-18 creedon: FSRef-ized + // + // 2006-04-24 creedon: created, cribbed from getlabelverb function + // tyfilespec fs; short ixlabel; @@ -1936,18 +1972,23 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + if (!getfilelabelindex (&fs, &ixlabel)) return (false); return (setintvalue (ixlabel, v)); - } /* getlabelindexverb */ + + } // getlabelindexverb static boolean setlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - 2006-04-24 creedon: created, cribbed from setlabelverb function - */ + // + // 2006-06-18 creedon: FSRef-ized + // + // 2006-04-24 creedon: created, cribbed from setlabelverb function + // tyfilespec fs; short index; @@ -1960,8 +2001,11 @@ if (!getintvalue (hparam1, 2, &index)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + return (setbooleanvalue (setfilelabelindex (&fs, index, true), v)); - } /* setlabelindexverb */ + + } // setlabelindexverb static boolean getlabelnamesverb (hdltreenode hparam1, tyvaluerecord *v) { @@ -2024,193 +2068,193 @@ #ifdef WIN95VERSION -boolean filegetprogramversion (bigstring bsversion) { - - return (getstringlist (defaultlistnumber, programversion, bsversion)); - } /*filegetprogramversion*/ + boolean filegetprogramversion (bigstring bsversion) { + + return (getstringlist (defaultlistnumber, programversion, bsversion)); + } /*filegetprogramversion*/ -static boolean getshortversionverb (hdltreenode hparam1, tyvaluerecord *v) { - - /* - file.getversion (path): string; return the version number as - a string, e.g. "1.0b2". - */ - - tyfilespec fs; - DWORD dummyhandle; - bigstring bs; - DWORD buflen; - char * buf; - VS_FIXEDFILEINFO * ffi; - char * info; - boolean flffi; - - flnextparamislast = true; - - if (!getpathvalue (hparam1, 1, &fs)) - return (false); - - nullterminate (fsname(&fs)); + static boolean getshortversionverb (hdltreenode hparam1, tyvaluerecord *v) { + + /* + file.getversion (path): string; return the version number as + a string, e.g. "1.0b2". + */ + + tyfilespec fs; + DWORD dummyhandle; + bigstring bs; + DWORD buflen; + char * buf; + VS_FIXEDFILEINFO * ffi; + char * info; + boolean flffi; + + flnextparamislast = true; + + if (!getpathvalue (hparam1, 1, &fs)) + return (false); + + nullterminate (fsname(&fs)); - setemptystring (bs); + setemptystring (bs); - buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); + buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); - if (buflen > 0) { - buf = (char *) LocalAlloc (LPTR, buflen); - - if (buf != NULL) { - if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { - buflen = sizeof(VS_FIXEDFILEINFO); + if (buflen > 0) { + buf = (char *) LocalAlloc (LPTR, buflen); + + if (buf != NULL) { + if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { + buflen = sizeof(VS_FIXEDFILEINFO); - flffi = VerQueryValue (buf, "\\", &ffi, &buflen); + flffi = VerQueryValue (buf, "\\", &ffi, &buflen); - if (flffi) - flffi = buflen > 0; + if (flffi) + flffi = buflen > 0; - buflen = 0; + buflen = 0; - VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileVersion", &info, &buflen); - - if (buflen == 0) { - VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileVersion", &info, &buflen); + VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileVersion", &info, &buflen); + + if (buflen == 0) { + VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileVersion", &info, &buflen); + } + + if (buflen != 0) + copyctopstring (info, bs); + else if (flffi) { + wsprintf (stringbaseaddress (bs), "%d.%d.%d.%d", HIWORD(ffi->dwFileVersionMS), + LOWORD(ffi->dwFileVersionMS), HIWORD(ffi->dwFileVersionLS), LOWORD(ffi->dwFileVersionLS)); + setstringlength (bs, strlen(stringbaseaddress(bs))); + } } - if (buflen != 0) - copyctopstring (info, bs); - else if (flffi) { - wsprintf (stringbaseaddress (bs), "%d.%d.%d.%d", HIWORD(ffi->dwFileVersionMS), - LOWORD(ffi->dwFileVersionMS), HIWORD(ffi->dwFileVersionLS), LOWORD(ffi->dwFileVersionLS)); - setstringlength (bs, strlen(stringbaseaddress(bs))); - } + LocalFree (buf); } - - LocalFree (buf); } - } - return (setstringvalue (bs, v)); - } /*getshortversionverb*/ + return (setstringvalue (bs, v)); + } /*getshortversionverb*/ -static boolean getlongversionverb (hdltreenode hparam1, tyvaluerecord *v) { + static boolean getlongversionverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - file.getfullversion (path): string; return the long version string - "1.0b2 \xA9 Copyright 1991 UserLand Software.". need definitions above, - which don't appear in the Think C headers anywhere - */ - - tyfilespec fs; - DWORD dummyhandle; - bigstring bs, bs2; - DWORD buflen; - char * buf; - VS_FIXEDFILEINFO * ffi; - char * info; - - flnextparamislast = true; - - if (!getpathvalue (hparam1, 1, &fs)) - return (false); - - nullterminate (fsname(&fs)); + /* + file.getfullversion (path): string; return the long version string + "1.0b2 \xA9 Copyright 1991 UserLand Software.". need definitions above, + which don't appear in the Think C headers anywhere + */ + + tyfilespec fs; + DWORD dummyhandle; + bigstring bs, bs2; + DWORD buflen; + char * buf; + VS_FIXEDFILEINFO * ffi; + char * info; + + flnextparamislast = true; + + if (!getpathvalue (hparam1, 1, &fs)) + return (false); + + nullterminate (fsname(&fs)); - setemptystring (bs); - setemptystring (bs2); + setemptystring (bs); + setemptystring (bs2); - buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); + buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); - if (buflen > 0) { - buf = (char *) LocalAlloc (LPTR, buflen); - - if (buf != NULL) { - if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { - buflen = sizeof(VS_FIXEDFILEINFO); - VerQueryValue (buf, "\\", &ffi, &buflen); + if (buflen > 0) { + buf = (char *) LocalAlloc (LPTR, buflen); + + if (buf != NULL) { + if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { + buflen = sizeof(VS_FIXEDFILEINFO); + VerQueryValue (buf, "\\", &ffi, &buflen); - VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileVersion", &info, &buflen); - - if (buflen == 0) { - VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileVersion", &info, &buflen); - } + VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileVersion", &info, &buflen); + + if (buflen == 0) { + VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileVersion", &info, &buflen); + } - if (buflen != 0) - copyctopstring (info, bs); + if (buflen != 0) + copyctopstring (info, bs); - VerQueryValue (buf, "\\StringFileInfo\\040904E4\\LegalCopyright", &info, &buflen); - - if (buflen == 0) { - VerQueryValue (buf, "\\StringFileInfo\\040904B0\\LegalCopyright", &info, &buflen); - } + VerQueryValue (buf, "\\StringFileInfo\\040904E4\\LegalCopyright", &info, &buflen); + + if (buflen == 0) { + VerQueryValue (buf, "\\StringFileInfo\\040904B0\\LegalCopyright", &info, &buflen); + } - if (buflen != 0) - copyctopstring (info, bs2); + if (buflen != 0) + copyctopstring (info, bs2); - if (stringlength(bs) > 0) - pushspace (bs); + if (stringlength(bs) > 0) + pushspace (bs); - pushstring (bs2, bs); + pushstring (bs2, bs); + } + + LocalFree (buf); } - - LocalFree (buf); } - } - return (setstringvalue (bs, v)); - } /*getlongversionverb*/ + return (setstringvalue (bs, v)); + } /*getlongversionverb*/ -static boolean getcommentverb (hdltreenode hparam1, tyvaluerecord *v) { - - /* - file.getversion (path): string; return the version number as - a string, e.g. "1.0b2". - */ - - tyfilespec fs; - DWORD dummyhandle; - bigstring bs; - DWORD buflen; - char * buf; - VS_FIXEDFILEINFO * ffi; - char * info; - - flnextparamislast = true; - - if (!getpathvalue (hparam1, 1, &fs)) - return (false); - - nullterminate (fsname(&fs)); + static boolean getcommentverb (hdltreenode hparam1, tyvaluerecord *v) { + + /* + file.getversion (path): string; return the version number as + a string, e.g. "1.0b2". + */ + + tyfilespec fs; + DWORD dummyhandle; + bigstring bs; + DWORD buflen; + char * buf; + VS_FIXEDFILEINFO * ffi; + char * info; + + flnextparamislast = true; + + if (!getpathvalue (hparam1, 1, &fs)) + return (false); + + nullterminate (fsname(&fs)); - setemptystring (bs); + setemptystring (bs); - buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); + buflen = GetFileVersionInfoSize (stringbaseaddress(fsname(&fs)), &dummyhandle); - if (buflen > 0) { - buf = (char *) LocalAlloc (LPTR, buflen); - - if (buf != NULL) { - if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { - buflen = sizeof(VS_FIXEDFILEINFO); - VerQueryValue (buf, "\\", &ffi, &buflen); + if (buflen > 0) { + buf = (char *) LocalAlloc (LPTR, buflen); + + if (buf != NULL) { + if (GetFileVersionInfo (stringbaseaddress(fsname(&fs)), dummyhandle, buflen, buf)) { + buflen = sizeof(VS_FIXEDFILEINFO); + VerQueryValue (buf, "\\", &ffi, &buflen); - VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileDescription", &info, &buflen); - - if (buflen == 0) { - VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileDescription", &info, &buflen); + VerQueryValue (buf, "\\StringFileInfo\\040904E4\\FileDescription", &info, &buflen); + + if (buflen == 0) { + VerQueryValue (buf, "\\StringFileInfo\\040904B0\\FileDescription", &info, &buflen); + } + + if (buflen != 0) + copyctopstring (info, bs); } - if (buflen != 0) - copyctopstring (info, bs); + LocalFree (buf); } - - LocalFree (buf); } - } - return (setstringvalue (bs, v)); - } /*getcommentverb*/ + return (setstringvalue (bs, v)); + } /*getcommentverb*/ #endif @@ -2266,9 +2310,11 @@ static boolean openfileverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - 5.0.1 dmb: removed incorrect case for W95 - */ + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 5.0.1 dmb: removed incorrect case for W95 + // tyfilespec fs; @@ -2276,45 +2322,65 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); - + + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fifopenfile (&fs, (long) currentprocess); return (true); - } /*openfileverb*/ + } // openfileverb + static boolean closefileverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-17 creedon: for Mac, FSRef-ized + // + tyfilespec fs; flnextparamislast = true; if (!getpathvalue (hparam1, 1, &fs)) return (false); - + + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fifclosefile (&fs); return (true); - } /*closefileverb*/ + + } // closefileverb static boolean endoffileverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; flnextparamislast = true; if (!getpathvalue (hparam1, 1, &fs)) return (false); + + ( void ) extendfilespec ( &fs, &fs ); (*v).data.flvalue = fifendoffile (&fs); return (true); - } /*endoffileverb*/ + } // endoffileverb static boolean setendoffileverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; long eof; @@ -2326,14 +2392,20 @@ if (!getlongvalue (hparam1, 2, &eof)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fifsetendoffile (&fs, eof); return (true); - } /*endoffileverb*/ + } // endoffileverb static boolean getendoffileverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; long eof; @@ -2342,15 +2414,22 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + if (!fifgetendoffile (&fs, &eof)) return (false); return (setlongvalue (eof, v)); - } /*endoffileverb*/ + + } // endoffileverb static boolean setpositionverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; long pos; @@ -2362,14 +2441,21 @@ if (!getlongvalue (hparam1, 2, &pos)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fifsetposition (&fs, pos); return (true); - } /*positionverb*/ + } // positionverb + static boolean getpositionverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; long pos; @@ -2378,15 +2464,22 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + if (!fifgetposition (&fs, &pos)) return (false); return (setlongvalue (pos, v)); - } /*positionverb*/ + } // positionverb + static boolean readlineverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; Handle linestring; @@ -2395,14 +2488,21 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + fifreadline (&fs, &linestring); return (setheapvalue (linestring, stringvaluetype, v)); - } /*readlineverb*/ + } // readlineverb + static boolean writelineverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + tyfilespec fs; Handle linestring; @@ -2414,30 +2514,35 @@ if (!gettextvalue (hparam1, 2, &linestring)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fifwriteline (&fs, linestring); return (true); - } /*writelineverb*/ + + } // writelineverb static boolean readwholefileverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - Read the whole file into memory and return the data to the caller. - - 2006-04-11 aradke: Kernelized file.readWholeFile. Obsolete script code follows: - - on readWholeFile (f) { - \xAB10/31/97 at 1:02:04 PM by DW -- moved from toys.readWholeFile - local (s); - file.open (f); - s = file.read (f, infinity); - file.close (f); - return (s)} - - This kernel implementation is much more efficient than file.read because - it pre-allocates a handle large enough for the whole file. - */ + // + // Read the whole file into memory and return the data to the caller. + // + // 2006-06-18 creedon: FSRef-ized + // + // 2006-04-11 aradke: Kernelized file.readWholeFile. Obsolete script code follows: + // + // on readWholeFile (f) { + // \xAB10/31/97 at 1:02:04 PM by DW -- moved from toys.readWholeFile + // local (s); + // file.open (f); + // s = file.read (f, infinity); + // file.close (f); + // return (s)} + // + // This kernel implementation is much more efficient than file.read because it pre-allocates a handle + // large enough for the whole file. + // tyfilespec fs; Handle x; @@ -2447,7 +2552,9 @@ if (!getpathvalue (hparam1, 1, &fs)) return (false); - + + ( void ) extendfilespec ( &fs, &fs ); + if (!fifopenfile (&fs, (long) currentprocess)) return (false); @@ -2455,16 +2562,21 @@ disablelangerror (); - (void) fifclosefile (&fs); /* ignore return value, we got what we wanted */ + (void) fifclosefile (&fs); // ignore return value, we got what we wanted enablelangerror (); return (fl && setbinaryvalue (x, '\?\?\?\?', v)); - } /*readwholefileverb*/ + + } // readwholefileverb static boolean readverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: FSRef-ized + // + tyfilespec fs; Handle x; long ctbytes; @@ -2477,10 +2589,12 @@ if (!getlongvalue (hparam1, 2, &ctbytes)) return (false); + ( void ) extendfilespec ( &fs, &fs ); + if (!fifreadhandle (&fs, ctbytes, &x)) return (true); - if ((ctbytes < longinfinity) && (ctbytes != gethandlesize (x))) { /*ran out of data*/ + if ((ctbytes < longinfinity) && (ctbytes != gethandlesize (x))) { // ran out of data disposehandle (x); @@ -2488,17 +2602,19 @@ } return (setbinaryvalue (x, '\?\?\?\?', v)); - } /*readverb*/ + + } // readverb static boolean writeverb (hdltreenode hparam1, tyvaluerecord *v) { - /* - 5.0.2b17 dmb: use new getreadonlytextvalue - */ + // + // 2006-06-18 creedon: FSRef-ized + // + // 5.0.2b17 dmb: use new getreadonlytextvalue + // tyfilespec fs; - //tyvaluerecord val; Handle hdata; if (!getpathvalue (hparam1, 1, &fs)) @@ -2506,22 +2622,16 @@ flnextparamislast = true; - /* - if (!getbinaryparam (hparam1, 2, &val)) + if (!getreadonlytextvalue (hparam1, 2, &hdata)) return (false); - if (!coercetostring (&val)) - return (false); + ( void ) extendfilespec ( &fs, &fs ); - (*v).data.flvalue = fifwritehandle (&fs, (Handle) val.data.stringvalue); - */ - if (!getreadonlytextvalue (hparam1, 2, &hdata)) - return (false); - (*v).data.flvalue = fifwritehandle (&fs, hdata); return (true); - } /*writeverb*/ + + } // writeverb #if 0 @@ -2570,6 +2680,10 @@ static boolean comparefilesverb (hdltreenode hparam1, tyvaluerecord *v) { + // + // 2006-06-18 creedon: for Mac, FSRef-ized + // + tyfilespec fs1, fs2; if (!getpathvalue (hparam1, 1, &fs1)) @@ -2580,182 +2694,245 @@ if (!getpathvalue (hparam1, 2, &fs2)) return (false); + ( void ) extendfilespec ( &fs1, &fs1 ); + ( void ) extendfilespec ( &fs2, &fs2 ); + (*v).data.flvalue = fifcomparefiles (&fs1, &fs2); return (true); - } /*comparefilesverb*/ + } // comparefilesverb + /*end of new verbs added by DW, 7/27/91*/ -#ifdef MACVERSION -static boolean newaliasverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - - /* - 6/2/92 dmb: make sure that destination path doesn't end in a colon; - otherwise pathtofilespec will fail - */ - - tyfilespec fs, fsalias; - - if (!langcanusealiases ()) - return (false); - - if (!getpathvalue (hparam1, 1, &fs)) /*bs holds the source file's path*/ - return (false); - - flnextparamislast = true; - - if (!getpathvalue (hparam1, 2, &fsalias)) /*bsalias holds the new alias's path*/ - return (false); - - if (!surefile (&fs)) /*make sure source file exists*/ - return (false); - - setoserrorparam ((ptrstring) fsalias.name); /*assume error will relate to new file*/ - - setbooleanvalue (MakeAliasFile (&fs, &fsalias), vreturned); - - return (true); - } /*newaliasverb*/ +static boolean filedeleteverb ( hdltreenode hp1, tyvaluerecord *vreturned ) { -static boolean followaliasverb (hdltreenode hparam1, tyvaluerecord *vreturned) { + // + // 2006-06-23 creedon: FSRef-ized + // + // created, factored from filefunctionvalue function + // - /* - 1/29/92 dmb: a kernel version of what used to be implemented in glue. - there a difference in the functionality as coded here: ResolveAliasFile - is being asked to follow chains of aliases; it will follow an alias to an alias - to the original. to match the original version & documentation, if the original - file is not an alias, the empty string is returned. - also, we need to Gestalt aliases... - */ + tyfilespec fs, fst; - bigstring bs; - FSSpec fs; - boolean flfolder; - Boolean flaliasfolder, flwasalias; - OSErr errcode; - - if (!langcanusealiases ()) - return (false); - flnextparamislast = true; - if (!getpathvalue (hparam1, 1, &fs)) /*bs holds the file path*/ - return (false); + if ( ! getfilespecvalue ( hp1, 1, &fs ) ) + return ( FALSE ); + + if ( ! extendfilespec ( &fs, &fst ) ) + return ( FALSE ); - if (!fileexists (&fs, &flfolder)) { /*make sure original*/ + if ( ! deletefile ( &fst ) ) + return ( FALSE ); + + return ( setbooleanvalue ( TRUE, vreturned ) ); - setoserrorparam (bs); + } // filedeleteverb + + +#ifdef MACVERSION + + static boolean newaliasverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - oserror (errorFileNotFound); /*file not found*/ + // + // 2006-06-18 creedon: FSRef-ized + // + // 1992-06-02 dmb: make sure that destination path doesn't end in a colon; otherwise pathtofilespec will fail + // - return (false); - } - - errcode = ResolveAliasFile (&fs, true, &flaliasfolder, &flwasalias); - - switch (errcode) { + boolean fl = FALSE; + tyfilespec fs, fsalias; - case errorNone: - if (flwasalias) - return (setfilespecvalue (&fs, vreturned)); - else - setemptystring (bs); + if (!langcanusealiases ()) + return (false); + + if (!getpathvalue (hparam1, 1, &fs)) // bs holds the source file's path + return (false); + + flnextparamislast = true; + + if (!getpathvalue (hparam1, 2, &fsalias)) // bsalias holds the new alias's path + return (false); - break; + ( void ) extendfilespec ( &fs, &fs ); - case errorFileNotFound: - setemptystring (bs); + // make sure source file exists, this may be redundant, could return on extend failure or call FSRefValid + + if (!surefile (&fs)) + return (false); + + setfserrorparam ( &fsalias ); // assume error will relate to new file + + if ( fsalias.path == NULL ) + return ( false ); + + /* coerce fsalias to FSSpec */ { + + FSCatalogInfo catinfo; + FSSpec fst, fsaliast; - break; + FSGetCatalogInfo ( &fs.fsref, kFSCatInfoNone, NULL, NULL, &fst, NULL ); + + FSGetCatalogInfo ( &fsalias.fsref, kFSCatInfoVolume | kFSCatInfoNodeID, &catinfo, NULL, NULL, NULL ); + + fsaliast.vRefNum = catinfo.volume; + fsaliast.parID = catinfo.nodeID; + + CFStringToStr255 ( fsalias.path, fsaliast.name ); + + fl = MakeAliasFile ( &fst, &fsaliast ); + + } - case userCanceledErr: + setbooleanvalue ( fl, vreturned ); + + return (true); + + } // newaliasverb + + + static boolean followaliasverb (hdltreenode hparam1, tyvaluerecord *vreturned) { + + // + // 2006-06-18 creedon: FSRef-ized + // + // 1992-01-29 dmb: a kernel version of what used to be implemented in glue. there a difference in the functionality + // as coded here: ResolveAliasFile is being asked to follow chains of aliases; it will follow an alias to an alias to the + // original. to match the original version & documentation, if the original file is not an alias, the empty string is + // returned. also, we need to Gestalt aliases... + // + + bigstring bs; + tyfilespec fs; + boolean flfolder; + Boolean flaliasfolder, flwasalias; + OSErr errcode; + + if (!langcanusealiases ()) return (false); - default: - oserror (errcode); + flnextparamislast = true; + + if (!getpathvalue (hparam1, 1, &fs)) // fs holds the file path + return (false); + + ( void ) extendfilespec ( &fs, &fs ); + if (!fileexists (&fs, &flfolder)) { // make sure original + + setfserrorparam ( &fs ); + + oserror (errorFileNotFound); // file not found + return (false); - } - - return (setstringvalue (bs, vreturned)); - } /*followaliasverb*/ -#endif + } + + errcode = FSResolveAliasFile ( &fs.fsref, true, &flaliasfolder, &flwasalias ); + + switch (errcode) { + + case errorNone: + if (flwasalias) { + + getfilespecparent ( &fs ); + + return (setfilespecvalue ( &fs, vreturned)); + } + else + setemptystring (bs); + + break; + + case errorFileNotFound: + setemptystring (bs); + + break; + + case userCanceledErr: + return (false); + + default: + oserror (errcode); + + return (false); + } + + return (setstringvalue (bs, vreturned)); + + } // followaliasverb + - -#ifdef MACVERSION -boolean filelaunchanythingverb (hdltreenode hparam1, tyvaluerecord *vreturned) { - - /* - 6/1/92 dmb: generate oserror if System7Open fails - */ - - tyfilespec fs; - - #ifdef flsystem6 - - if (!langcanuseappleevents ()) - return (false); - - #endif - - flnextparamislast = true; - - if (!getpathvalue (hparam1, 1, &fs)) /*bs holds the file's path*/ - return (false); - - setoserrorparam (fs.name); - - if (oserror (System7Open (fs))) - return (false); - - return (setbooleanvalue (true, vreturned)); - } /*filelaunchanythingverb*/ + boolean filelaunchanythingverb (hdltreenode hparam1, tyvaluerecord *vreturned) { + + /* + 6/1/92 dmb: generate oserror if System7Open fails + */ + + tyfilespec fs; + + flnextparamislast = true; + + if (!getpathvalue (hparam1, 1, &fs)) // fs holds the file's path + return (false); + + setfserrorparam ( &fs ); + + if ( oserror ( System7Open ( &fs ) ) ) + return ( false ); + + return (setbooleanvalue (true, vreturned)); + } /*filelaunchanythingverb*/ + #endif static boolean filefunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) { - /* - bridges file.c with the language. the name of the verb is bs, its first parameter - is hparam1, and we return a value in vreturned. + // + // bridges file.c with the language. the name of the verb is bs, its first + // parameter is hparam1, and we return a value in vreturned. + // + // we use a limited number of support routines from lang.c to get parameters + // and to return values. + // + // return false only if the error is serious enough to halt the running of + // the script that called us, otherwise error values are returned through + // the valuerecord, which is available to the script. + // + // if we return false, we try to provide a descriptive error message in the + // returned string bserror. + // + // 2006-06-25 creedon: FSRef-ized + // + // 2006-04-11 aradke: added readwholefilefunc + // + // 5.0.2b16 dmb: added getpathcharfunc + // + // 2.1b12 dmb: if mountservervolumefunc's volumepath is improperly formed, + // generate informative message instead of failing silently + // + // 2.1b2 dmb: use filespecs everywhere. added volumeblocksize verb + // + // 1992-09-30 dmb: call new langcheckstackspace; most file functions chew + // up a good bit + // + // 1992-09-26 dmb: use one bigstring instead of two for filefrompath and + // folderfrompath. also, dont allow getfullfilepath to + // generate an error in folderfrompath + // + // 1992-08-25 dmb: made newfunc delete existing file, so glue isn't necessary + // + // 1992-06-09 dmb: added file.isvisible, file.setvisible + // + // 1992-06-02 dmb: made filefrompath work as documented so that glue isn't needed + // + // 1992-02-13 dmb: re-hooked up hasbundle verb + // + // 1991-10-15: file.setpath, file.folderfrompath now handle partial paths corectly + // - we use a limited number of support routines from lang.c to get parameters and - to return values. - - return false only if the error is serious enough to halt the running of the script - that called us, otherwise error values are returned through the valuerecord, which - is available to the script. - - if we return false, we try to provide a descriptive error message in the - returned string bserror. - - 10/15/91: file.setpath, file.folderfrompath now handle partial paths corectly - - 2/13/92 dmb: re-hooked up hasbundle verb - - 6/2/92 dmb: made filefrompath work as documented so that glue isn't needed - - 6/9/92 dmb: added file.isvisible, file.setvisible - - 8/25/92 dmb: made newfunc delete existing file, so glue isn't necessary - - 9/26/92 dmb: use one bigstring instead of two for filefrompath and folderfrompath. - also, dont allow getfullfilepath to generate an error in folderfrompath - - 9/30/92 dmb: call new langcheckstackspace; most file functions chew up a good bit - - 2.1b2 dmb: use filespecs everywhere. added volumeblocksize verb - - 2.1b12 dmb: if mountservervolumefunc's volumepath is improperly formed, generate - informative message instead of failing silently - - 5.0.2b16 dmb: added getpathcharfunc - - 2006-04-11 aradke: added readwholefilefunc - */ - register hdltreenode hp1 = hparam1; register tyvaluerecord *v = vreturned; @@ -2767,8 +2944,9 @@ switch (token) { case filecreatedfunc: { + + unsigned long datecreated, datetoss; - unsigned long datecreated, datetoss; boolean fl; tyfilespec fs; @@ -2776,6 +2954,8 @@ if (!getpathvalue (hp1, 1, &fs)) /*fs holds the file path*/ break; + + ( void ) extendfilespec ( &fs, &fs ); if (fileisvolume (&fs)) fl = volumecreated (&fs, &datecreated); @@ -2798,6 +2978,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!getfiledates (&fs, &datetoss, &datemodified)) break; @@ -2813,7 +2995,9 @@ if (!getpathvalue (hp1, 1, &fs)) break; - + + ( void ) extendfilespec ( &fs, &fs ); + if (!getfiletype (&fs, &type)) break; @@ -2830,6 +3014,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!getfilecreator (&fs, &creator)) break; @@ -2883,6 +3069,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + + ( void ) extendfilespec ( &fs, &fs ); if (!fileisfolder (&fs, &(*v).data.flvalue)) break; @@ -2898,12 +3086,15 @@ if (!getpathvalue (hp1, 1, &fs)) /*was getvolumevalue*/ break; + ( void ) extendfilespec ( &fs, &fs ); + (*v).data.flvalue = fileisvolume (&fs); return (true); } case fileislockedfunc: { + boolean fl; tyfilespec fs; @@ -2912,6 +3103,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (fileisvolume (&fs)) fl = isvolumelocked (&fs, &(*v).data.flvalue); else @@ -2921,6 +3114,7 @@ break; return (true); + } case fileisbusyfunc: { @@ -2979,6 +3173,7 @@ } case fileisaliasfunc: { + tyfilespec fs; flnextparamislast = true; @@ -2986,6 +3181,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!fileisalias (&fs, &(*v).data.flvalue)) break; @@ -2999,6 +3196,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + + ( void ) extendfilespec ( &fs, &fs ); if (!fileisvisible (&fs, &(*v).data.flvalue)) break; @@ -3017,6 +3216,8 @@ if (!getbooleanvalue (hp1, 2, &flvisible)) break; + + ( void ) extendfilespec ( &fs, &fs ); if (!filesetvisible (&fs, flvisible)) break; @@ -3035,6 +3236,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!filesize (&fs, &size)) break; @@ -3042,6 +3245,7 @@ } case filelockfunc: { + tyfilespec fs; boolean fl; @@ -3050,6 +3254,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (fileisvolume (&fs)) fl = lockvolume (&fs, true); else @@ -3061,9 +3267,11 @@ (*v).data.flvalue = true; return (true); + } case fileunlockfunc: { + tyfilespec fs; boolean fl; @@ -3072,6 +3280,8 @@ if (!getpathvalue (hp1, 1, &fs)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (fileisvolume (&fs)) fl = lockvolume (&fs, false); else @@ -3083,6 +3293,7 @@ (*v).data.flvalue = true; return (true); + } case filefullpathfunc: { @@ -3107,21 +3318,8 @@ case filecopyresourceforkfunc: return (copyfileverb (false, true, hp1, v)); - case filedeletefunc: { - tyfilespec fs; - - flnextparamislast = true; - - if (!getpathvalue (hp1, 1, &fs)) - break; - - if (!deletefile (&fs)) - break; - - (*v).data.flvalue = true; - - return (true); - } + case filedeletefunc: + return ( filedeleteverb ( hp1, v ) ); case fileexistsfunc: { boolean fl; @@ -3135,6 +3333,8 @@ fl = getpathvalue (hp1, 1, &fs); + fl = fl && extendfilespec ( &fs, &fs ); + enablelangerror (); (*v).data.flvalue = fl && fileexists (&fs, &flfolder); @@ -3148,7 +3348,7 @@ case filegetpathfunc: { tyfilespec fs; - if (!langcheckparamcount (hp1, 0)) /*no parameters expected*/ + if (!langcheckparamcount (hp1, 0)) // no parameters expected break; if (!filegetdefaultpath (&fs)) @@ -3158,6 +3358,7 @@ } case filesetpathfunc: { + tyfilespec fs; flnextparamislast = true; @@ -3171,29 +3372,49 @@ (*v).data.flvalue = true; return (true); + } case newfunc: { + tyfilespec fs; - boolean flfolder; flnextparamislast = true; - if (!getpathvalue (hp1, 1, &fs)) + if ( ! getfilespecvalue ( hp1, 1, &fs ) ) break; - if (fileexists (&fs, &flfolder)) { /*8/25/92 dmb*/ - - if (!deletefile (&fs)) + #ifdef MACVERSION + + tyfilespec fst; + + if ( extendfilespec ( &fs, &fst ) ) + if ( ! deletefile ( &fst ) ) break; - } - if (!newfile (&fs, '\?\?\?\?', '\?\?\?\?')) + #endif // MACVERSION + + #ifdef WIN95VERSION + + boolean flfolder; + + if (fileexists (&fs, &flfolder)) { // 8/25/92 dmb + + if (!deletefile (&fs)) + break; + } + + #endif // WIN95VERSION + + if ( ! newfile ( &fs, '\?\?\?\?', '\?\?\?\?') ) break; (*v).data.flvalue = true; return (true); + + // return ( filenewverb ( hp1, v ) ); + } case newfolderfunc: { @@ -3584,12 +3805,14 @@ if (!getpathvalue (hp1, 1, &fs)) break; - + flnextparamislast = true; if (!getostypevalue (hp1, 2, &type)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!setfiletype (&fs, type)) break; @@ -3610,6 +3833,8 @@ if (!getostypevalue (hp1, 2, &creator)) break; + ( void ) extendfilespec ( &fs, &fs ); + if (!setfilecreator (&fs, creator)) break; @@ -3618,13 +3843,13 @@ return (true); } - case getlabelindexfunc: /* 2006-04-24 creedon */ + case getlabelindexfunc: // 2006-04-24 creedon return (getlabelindexverb (hp1, v)); - case setlabelindexfunc: /* 2006-04-24 creedon */ + case setlabelindexfunc: // 2006-04-24 creedon return (setlabelindexverb (hp1, v)); - case getlabelnamesfunc: /* 2006-04-24 creedon */ + case getlabelnamesfunc: // 2006-04-24 creedon return (getlabelnamesverb (hp1, v)); #endif @@ -3633,32 +3858,34 @@ case getsystempathfunc: { - byte bsvol [258]; /*2*/ - byte bsfolder [258]; /*6*/ - tyfilespec fs; + + byte bsvol [258]; // 2 + byte bsfolder [258]; // 6 + tyfilespec fs = { { { 0 } }, 0 }; if (!langcheckparamcount (hp1, 0)) /*no parameters expected*/ break; #ifdef flsystem6 + filegetpath (filegetsystemvnum (), bs); + return (setstringvalue (bs, v)); + #else setemptystring (bsvol); #ifdef MACVERSION - #if TARGET_API_MAC_CARBON == 1 - ostypetostring ('pref', bsfolder); - #else - ostypetostring ('macs', bsfolder); - #endif + ostypetostring ('pref', bsfolder); #endif #ifdef WIN95VERSION + copyctopstring ("SYSTEM", bsfolder); + #endif if (!getspecialfolderpath (bsvol, bsfolder, false, &fs)) @@ -3672,7 +3899,7 @@ case getspecialpathfunc: { bigstring bsvol, bsfolder; - tyfilespec fs; + tyfilespec fs = { { { 0 } }, 0 }; boolean flcreate; if (!getstringvalue (hp1, 1, bsvol)) @@ -3695,7 +3922,7 @@ case getmp3infofunc: { long seconds, bitrate, frequency, offset; - tyfilespec fs; + tyfilespec fs = { { { 0 } }, 0 }; boolean fl, flvariablebitrate; if (!langcheckparamcount (hparam1, 6)) /*preflight before changing values*/ @@ -3733,7 +3960,8 @@ return (true); } - case readwholefilefunc: /* 2006-04-11 aradke */ + case readwholefilefunc: // 2006-04-11 aradke + return (readwholefileverb (hparam1, v)); #ifdef WIN95VERSION @@ -3770,60 +3998,66 @@ setbooleanvalue (false, v); /*by default, rez functions return false*/ switch (token) { -#ifdef MACVERSION - case rezgetresourcefunc: - return (getresourceverb (hp1, false, v)); - - case rezputresourcefunc: - return (putresourceverb (hp1, false, v)); - - case rezgetnamedresourcefunc: - return (getresourceverb (hp1, true, v)); - - case rezputnamedresourcefunc: - return (putresourceverb (hp1, true, v)); - - case rezcountrestypesfunc: - return (countrestypesverb (hp1, v)); - - case rezgetnthrestypefunc: - return (getnthrestypeverb (hp1, v)); - - case rezcountresourcesfunc: - return (countresourcesverb (hp1, v)); - - case rezgetnthresourcefunc: - return (getnthresourceverb (hp1, v)); - - case rezgetnthresinfofunc: - return (getnthresinfoverb (hp1, v)); - - case rezresourceexistsfunc: - return (resourceexistsverb (hp1, false, v)); - - case reznamedresourceexistsfunc: - return (resourceexistsverb (hp1, true, v)); - - case rezdeleteresourcefunc: - return (deleteresourceverb (hp1, false, v)); - - case rezdeletenamedresourcefunc: - return (deleteresourceverb (hp1, true, v)); - - case rezgetresourceattrsfunc: - return (getresourceattrsverb (hp1, false, v)); - - case rezsetresourceattrsfunc: - return (setresourceattrsverb (hp1, false, v)); -#endif + + #ifdef MACVERSION + + case rezgetresourcefunc: + return (getresourceverb (hp1, false, v)); + + case rezputresourcefunc: + return (putresourceverb (hp1, false, v)); + + case rezgetnamedresourcefunc: + return (getresourceverb (hp1, true, v)); + + case rezputnamedresourcefunc: + return (putresourceverb (hp1, true, v)); + + case rezcountrestypesfunc: + return (countrestypesverb (hp1, v)); + + case rezgetnthrestypefunc: + return (getnthrestypeverb (hp1, v)); + + case rezcountresourcesfunc: + return (countresourcesverb (hp1, v)); + + case rezgetnthresourcefunc: + return (getnthresourceverb (hp1, v)); + + case rezgetnthresinfofunc: + return (getnthresinfoverb (hp1, v)); + + case rezresourceexistsfunc: + return (resourceexistsverb (hp1, false, v)); + + case reznamedresourceexistsfunc: + return (resourceexistsverb (hp1, true, v)); + + case rezdeleteresourcefunc: + return (deleteresourceverb (hp1, false, v)); + + case rezdeletenamedresourcefunc: + return (deleteresourceverb (hp1, true, v)); + + case rezgetresourceattrsfunc: + return (getresourceattrsverb (hp1, false, v)); + + case rezsetresourceattrsfunc: + return (setresourceattrsverb (hp1, false, v)); + + #endif + default: getstringlist (langerrorlist, unimplementedverberror, bserror); break; - } /*switch*/ + + } // switch return (false); - } /*rezfunctionvalue*/ + + } // rezfunctionvalue boolean fileinitverbs (void) { Modified: Frontier/branches/FSRef_Migration/Common/source/findinfile.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/findinfile.c 2006-06-25 19:05:17 UTC (rev 1417) +++ Frontier/branches/FSRef_Migration/Common/source/findinfile.c 2006-06-25 20:06:03 UTC (rev 1418) @@ -109,7 +109,7 @@ } /*lowercasehandle*/ -static boolean findopenfile (const tyfilespec *fs, hdlopenfile *hfile, hdlopenfile *hprev) { +static boolean findopenfile (const ptrfilespec fs, hdlopenfile *hfile, hdlopenfile *hprev) { register hdlopenfile x = hfirstfile; @@ -136,7 +136,7 @@ } /*findopenfile*/ -static void fifopenfileerror (const tyfilespec *fs) { +static void fifopenfileerror (const ptrfilespec fs) { /* 5.0.1 dmb: new, additional error reporting @@ -151,7 +151,7 @@ #if 0 -static OSErr openforkperm (const tyfilespec *fs, boolean flresource, short perm, hdlfilenum *fnum) { +static OSErr openforkperm (const ptrfilespec fs, boolean flresource, short perm, hdlfilenum *fnum) { OSErr errcode; @@ -164,23 +164,25 @@ } /*openforkperm*/ #endif -static boolean fileopener (const tyfilespec *fs, hdlopenfile *hfile, hdlfilenum *fnum) { +static boolean fileopener (const ptrfilespec fs, hdlopenfile *hfile, hdlfilenum *fnum) { - /* - 2/13/92 dmb: changed fldontclose logic to something that actually works; - we no longer ignore opWrErr errors. instead, we try to open read/write, - but settle for read only. + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // + // 2.1b6 dmb: generate an oserror when a file can't be opened + // + // 1993-01-25 dmb: instead of using fldontclose boolean, we return the hdlopenfile + // if found. the new filecloser uses this to restore things properly + // + // 1992-02-13 dmb: changed fldontclose logic to something that actually works; + // we no longer ignore opWrErr errors. instead, we try to open read/write, + // but settle for read only. + // - 1/25/93 dmb: instead of using fldontclose boolean, we return the hdlopenfile - if found. the new filecloser uses this to restore things properly - - 2.1b6 dmb: generate an oserror when a file can't be opened - */ - boolean fl; hdlopenfile hprev; - if (findopenfile (fs, hfile, &hprev)) { /*file was already opened by us*/ + if (findopenfile (fs, hfile, &hprev)) { // file was already opened by us register hdlopenfile hf = *hfile; long position; @@ -205,14 +207,20 @@ if (!fl) fl = openfile (fs, fnum, true); -#ifdef NEWFILESPECTYPE - setoserrorparam ((ptrstring) (*fs).fullSpecifier); -#else - setoserrorparam ((ptrstring) (*fs).name); -#endif + #ifdef MACVERSION + setfserrorparam ( fs ); + + #endif + + #ifdef WIN95VERSIOBN + + setoserrorparam ((ptrstring) (*fs).fullSpecifier); + + #endif + return (fl); - } /*fileopener*/ + } // fileopener static boolean fileloadbuffer (hdlopenfile hf) { @@ -251,7 +259,7 @@ } /*filecloser*/ -boolean fiffindinfile (const tyfilespec *fs, bigstring pattern, long *idx) { +boolean fiffindinfile (const ptrfilespec fs, bigstring pattern, long *idx) { /* search for the indicated pattern in the file. return the index that the @@ -379,7 +387,7 @@ } /*fiffindinfile*/ -boolean fifcomparefiles (const tyfilespec *fs1, const tyfilespec *fs2) { +boolean fifcomparefiles (const ptrfilespec fs1, const ptrfilespec fs2) { /* compare the two files byte-by-byte and return true if they are exactly @@ -466,7 +474,7 @@ } /*fifcomparefiles*/ -boolean fifcharcounter (const tyfilespec *fs, char chlookfor, long *count) { +boolean fifcharcounter (const ptrfilespec fs, char chlookfor, long *count) { /* searches the indicated file for the character. count returns with the number @@ -539,7 +547,7 @@ } /*fifcharcounter*/ -boolean fifclosefile (const tyfilespec *fs) { +boolean fifclosefile (const ptrfilespec fs) { /* close the file indicated by fs. deallocate the record and buffer. close @@ -597,7 +605,7 @@ } /*fifcloseallfiles*/ -boolean fifopenfile (const tyfilespec *fs, long refcon) { +boolean fifopenfile (const ptrfilespec fs, long refcon) { /* open the indicated file, allocating a record and linking it into the list. @@ -660,7 +668,7 @@ } /*fifopenfile*/ -boolean fifendoffile (const tyfilespec *fs) { +boolean fifendoffile (const ptrfilespec fs) { /* return true if there's no more info in the file to be read. @@ -675,7 +683,7 @@ } /*fifendoffile*/ -static boolean fifread (const tyfilespec *fs, byte eolmarker, long ctmax, Handle *hdata) { +static boolean fifread (const ptrfilespec fs, byte eolmarker, long ctmax, Handle *hdata) { /* read a chunk of data from the indicated file to a maximum of ctmax bytes. @@ -832,7 +840,7 @@ -boolean fifreadline (const tyfilespec *fs, Handle *linestring) { +boolean fifreadline (const ptrfilespec fs, Handle *linestring) { /* read a line of text from the indicated file. @@ -842,7 +850,7 @@ } /*fifreadline*/ -boolean fifreadhandle (const tyfilespec *fs, long ctbytes, Handle *x) { +boolean fifreadhandle (const ptrfilespec fs, long ctbytes, Handle *x) { /* read a chunk of data from the indicated file. @@ -852,7 +860,7 @@ } /*fifreadhandle*/ -boolean fifreadfile (const tyfilespec *fs, Handle *x) { +boolean fifreadfile (const ptrfilespec fs, Handle *x) { /* read the whole file into memory and return the data to the caller. @@ -900,7 +908,7 @@ } /*fifreadfile*/ -boolean fifwritehandle (const tyfilespec *fs, Handle x) { +boolean fifwritehandle (const ptrfilespec fs, Handle x) { /* write some data at the end of the indicated file. it may be slow, but it's @@ -931,7 +939,7 @@ } /*fifwritehandle*/ -boolean fifwriteline (const tyfilespec *fs, Handle linestring) { +boolean fifwriteline (const ptrfilespec fs, Handle linestring) { /* write a line at the end of the indicated file. @@ -951,7 +959,7 @@ } /*fifwriteline*/ -boolean fifsetposition (con... [truncated message content] |
|
From: <cre...@us...> - 2006-06-25 19:05:20
|
Revision: 1417 Author: creecode Date: 2006-06-25 12:05:17 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1417&view=rev Log Message: ----------- removed trailing space after MACVERSION Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/headers/frontierconfig.h Modified: Frontier/branches/FSRef_Migration/Common/headers/frontierconfig.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/frontierconfig.h 2006-06-25 19:02:32 UTC (rev 1416) +++ Frontier/branches/FSRef_Migration/Common/headers/frontierconfig.h 2006-06-25 19:05:17 UTC (rev 1417) @@ -27,7 +27,7 @@ #define configinclude /*so other includes can tell if we've been loaded*/ -#ifdef MACVERSION +#ifdef MACVERSION #include <standard.h> #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <cre...@us...> - 2006-06-25 19:02:40
|
Revision: 1416 Author: creecode Date: 2006-06-25 12:02:32 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1416&view=rev Log Message: ----------- FSRef-ized Modified Paths: -------------- Frontier/branches/FSRef_Migration/Common/UserLandIACToolkit/landsystem7.c Frontier/branches/FSRef_Migration/Common/headers/lang.h Frontier/branches/FSRef_Migration/Common/headers/langexternal.h Frontier/branches/FSRef_Migration/Common/source/langdll.c Frontier/branches/FSRef_Migration/Common/source/langevaluate.c Frontier/branches/FSRef_Migration/Common/source/langexternal.c Frontier/branches/FSRef_Migration/Common/source/langvalue.c Modified: Frontier/branches/FSRef_Migration/Common/UserLandIACToolkit/landsystem7.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/UserLandIACToolkit/landsystem7.c 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/UserLandIACToolkit/landsystem7.c 2006-06-25 19:02:32 UTC (rev 1416) @@ -176,140 +176,6 @@ */ -#if TARGET_API_MAC_OS8 - -static void MakePascalStringWLen (StringPtr theDest, int theDestLen, char *theSrc, int theSrcLen) { - - /* - 10/22/91 dmb: imported this code from Leonard Rosenthal. Reformmatted - somewhat, but left variable names as he had them. comments are his. - - Given a C string, put it into a pascal storage area. We also make - sure that the length of the pascal string isn't too long (the caller - specifiys the longest length possible). We are passed in the length - of the C string... This makes our life simpler... - */ - - theDest [0] = theSrcLen > theDestLen ? theDestLen : theSrcLen; - - BlockMove (theSrc, &(theDest[1]), theDest [0]); - } /*MakePascalStringWLen*/ - - -static OSErr HCProgramToPortAndLoc (char *theName, short len, LocationNameRec *theLoc, PortInfoRec *thePort) { - - /* - 10/22/91 dmb: imported this code from Leonard Rosenthal. Reformmatted - somewhat, but left variable names as he had them. comments are his. - - Convert a Hypercard program name (<zone>:<mac>:<program>) to a port. - If that program has more than one port open, we take the first port - we find! - */ - - char *appleZone = 0; - char *macName = 0; - char *progName = 0; - char *theLastChar = 0; - PPCPortRec thePortSearchSpec; - IPCListPortsPBRec thePBRec; - int theErr; - - /* - Assemble a location. This is a bit of a pain, as we must - carefully unpack the incomming string... - */ - - /* - First job -- find the end of the incomming string so we don't - run off into memory... - */ - - theLastChar = theName; - - appleZone = theName; /* First thing there... */ - - while (--len >= 0) { - - if (*theLastChar == ':') { - - if (!macName) { - - macName = theLastChar + 1; - } - else if (!progName) { - - progName = theLastChar + 1; - } - } - - theLastChar++; - } - - /* - Right, make sure that we got everything... - */ - - if ((progName == 0) || (macName == 0)) - return (1); /* Random error... */ - - /* - Next, assemble a port record that we can use to specify what - the hell we are looking for... Use a roman script (sorry, guys), - match only names that have our program, and match all types. - That way we will get the first type. - */ - - thePortSearchSpec.nameScript = smRoman; - - thePortSearchSpec.portKindSelector = ppcByString; - - MakePascalStringWLen ((StringPtr) thePortSearchSpec.name, 32, progName, (Size)(theLastChar - progName)); - - MakePascalStringWLen ((StringPtr) thePortSearchSpec.u.portTypeStr, 32, "=", 1); - - /* - Next job is to fill in the location record that the guy passed - in. The objString is the mac we wish to connect to. The zone - is the apple zone. We let the type be random... so we set it - to PPCToolBox as defined by IM VI 6 7-23. - */ - - theLoc -> locationKindSelector = ppcNBPLocation; - - /*bundle*/ { - - register EntityName *theE = &(theLoc -> u.nbpEntity); - - MakePascalStringWLen ((StringPtr) &(theE -> objStr), 32, macName, (int) (progName - macName - 1)); - - MakePascalStringWLen ((StringPtr) &(theE -> typeStr), 32, "PPCToolBox", 10); - - MakePascalStringWLen ((StringPtr) &(theE -> zoneStr), 32, appleZone, (macName - appleZone - 1)); - } - - /* - Right. Finally, we fill in the parameter block we are to pass - to IPCListPorts. - */ - - thePBRec.startIndex = 0; - thePBRec.requestCount = 1; - thePBRec.portName = &thePortSearchSpec; - thePBRec.locationName = theLoc; - thePBRec.bufferPtr = thePort; - - /* - Call the damm routine and try to get the stupid port back! - */ - theErr = IPCListPortsSync (&thePBRec); - - return (theErr); - } /*HCProgramToPortAndLoc*/ - -#endif - - static boolean isthisprocess (ProcessSerialNumber *targetPSN) { register OSErr err; @@ -329,105 +195,25 @@ static boolean landchecksameprocess (tynetworkaddress *adr) { -#if TARGET_API_MAC_CARBON == 1 + # pragma unused (adr) -#endif + /* 3/9/92 dmb: if GetProcessSerialNumberFromPortName returns an error, leave flsendingtoself false, but return true. adr may be a valid port that doesn't have a psn */ - #if TARGET_API_MAC_CARBON == 1 //what the hell do I do here? - return true; - #else + return ( true ); - register OSErr err; - ProcessSerialNumber targetPSN; - - if (!(*adr).target.location.locationKindSelector) { /*might be sending to ourself*/ - - err = GetProcessSerialNumberFromPortName (&(*adr).target.name, &targetPSN); - - if (err == noErr) - return (isthisprocess (&targetPSN)); - } - return (false); - #endif } /*landchecksameprocess*/ -#if TARGET_API_MAC_OS8 - -static boolean goodstring32 (byte s32 []) { - - register byte *s = s32; - register short len = *s; - - if ((len == 0) || (len > 32)) - return (false); - - while (--len >= 0) { - - if ((*++s) < ' ') /*non-printing character*/ - return (false); - } - - return (true); - } /*goodstring32*/ - - pascal boolean landstring2networkaddress (ConstStr255Param bsadr, tynetworkaddress *adr) { - - /* - 10/27/91 dmb: even when HCProgramToPortAndLoc's IPCListPorts call returns noErr, - the network address may be invalid. so a reality check is done on the port name - to attempt to verify that something has actually been found - */ - - register hdllandglobals hg = landgetglobals (); - LocationNameRec loc; - PortInfoRec port; - register OSErr err; - - if ((**hg).transport == macsystem6) /*can't call do networks on System 6*/ - return (false); - - err = HCProgramToPortAndLoc ((char *) bsadr + 1, stringlength (bsadr), &loc, &port); - - if (err != noErr) { - - landseterror (err); - - return (false); - } - - if (!goodstring32 (port.name.name)) { /*make sure it actually found something*/ - - landseterror (noResponseErr); - - return (false); - } - - (*adr).target.sessionID = 0; - - (*adr).target.location = loc; - - (*adr).target.name = port.name; - - /* - return (landchecksameprocess (adr)); - */ - - return (true); - } /*landstring2networkaddress*/ -#else - -pascal boolean landstring2networkaddress (ConstStr255Param bsadr, tynetworkaddress *adr) { #pragma unused (bsadr, adr) /* 2004-10-21 aradke: Can't do this on Carbon, send back a bogus error. @@ -438,63 +224,11 @@ return (false); } /*landstring2networkaddress*/ -#endif - -#if !TARGET_API_MAC_CARBON - //Code change by Timothy Paustian Friday, July 21, 2000 10:40:43 PM - //we don't do anything on Carbon because we can't use this anyway. - -static pascal Boolean landbrowserfilter (LocationNamePtr ln, PortInfoPtr port) { -#pragma unused (ln) - - register hdllandglobals hg; - register tyapplicationid id; - long type; - - #ifdef flcomponent - long curA5 = SetUpAppA5 (); - #endif - - hg = landgetglobals (); - - id = (**hg).macnetglobals.idforbrowser; - - #ifdef flcomponent - RestoreA5 (curA5); - #endif - - if (id == 0) /*no filtering, everything qualifies*/ - return (true); - - if ((*port).name.portKindSelector != ppcByString) /*MacDTS magic*/ - return (false); - - BlockMove ((*port).name.u.portTypeStr + 1, (Ptr) &type, 4); /*MacDTS magic*/ - - return (type == id); - } /*landbrowserfilter*/ - - - #if !TARGET_RT_MAC_CFM - - #define landbrowserfilterUPP (&landbrowserfilter) - - #else - - static RoutineDescriptor landbrowserfilterDesc = BUILD_ROUTINE_DESCRIPTOR (uppPPCFilterProcInfo, landbrowserfilter); - - #define landbrowserfilterUPP (&landbrowserfilterDesc) - - #endif - -#endif - - pascal boolean landbrowsenetworkapps (ConstStr255Param bsprompt, tynetworkaddress *adr, tyapplicationid id) { -#if TARGET_API_MAC_CARBON + # pragma unused (bsprompt, adr, id) -#endif + /* 7/15/91 DW: return false on system 6. @@ -503,65 +237,7 @@ 6/8/92 dmb: use landseterror to communicate error code to caller */ - #if !TARGET_API_MAC_CARBON - register hdllandglobals hg = landgetglobals (); - register OSErr err; - register boolean senddirect = false; - LocationNameRec loc; - PortInfoRec port; - PPCFilterUPP filter = landbrowserfilterUPP; - long appA5; - - if ((**hg).transport == macsystem6) /*can't call PPCBrowser on System 6*/ - return (false); - - (**hg).macnetglobals.idforbrowser = id; /*for communication with landbrowserfilter*/ - - shellactivate (); - - loc = (*adr).target.location; - - port.name = (*adr).target.name; - - #ifdef flcomponent - - appA5 = SetUpCurA5 (); /*for system*/ - - #endif - - err = PPCBrowser ( - - bsprompt, (ConstStr255Param) nil, true, &loc, &port, filter, nil); - - #ifdef flcomponent - - RestoreA5 (appA5); - - #endif - - if (err != noErr) { /*user cancelled the browser*/ - - landseterror (err); - - return (false); - } - - (**hg).macnetglobals.flhavebrowsed = true; /*default to the same port next time*/ - - (*adr).target.sessionID = 0; - - (*adr).target.location = loc; - - (*adr).target.name = port.name; - - /* - return (landchecksameprocess (adr)); - */ - - return (true); - #else return false; - #endif } /*landbrowsenetworkapps*/ Modified: Frontier/branches/FSRef_Migration/Common/headers/lang.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/lang.h 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/headers/lang.h 2006-06-25 19:02:32 UTC (rev 1416) @@ -1107,7 +1107,7 @@ extern boolean setdoublevalue (double, tyvaluerecord *); -extern boolean setfilespecvalue (tyfilespec *, tyvaluerecord *); +extern boolean setfilespecvalue (ptrfilespec, tyvaluerecord *); extern boolean setexternalvalue (Handle, tyvaluerecord *); @@ -1268,7 +1268,7 @@ extern boolean getostypevalue (hdltreenode, short, OSType *); -extern boolean getfilespecvalue (hdltreenode, short, tyfilespec *); +extern boolean getfilespecvalue ( hdltreenode, short, ptrfilespec ); extern boolean getpointvalue (hdltreenode, short, Point *); Modified: Frontier/branches/FSRef_Migration/Common/headers/langexternal.h =================================================================== --- Frontier/branches/FSRef_Migration/Common/headers/langexternal.h 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/headers/langexternal.h 2006-06-25 19:02:32 UTC (rev 1416) @@ -245,7 +245,7 @@ extern boolean langexternalzoom (tyvaluerecord, hdlhashtable, bigstring); -extern boolean langexternalzoomfilewindow (const tyvaluerecord *, tyfilespec *, boolean); +extern boolean langexternalzoomfilewindow (const tyvaluerecord *, ptrfilespec, boolean); extern boolean langexternalwindowopen (tyvaluerecord, hdlwindowinfo *); Modified: Frontier/branches/FSRef_Migration/Common/source/langdll.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/langdll.c 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/source/langdll.c 2006-06-25 19:02:32 UTC (rev 1416) @@ -29,7 +29,10 @@ #include "standard.h" #ifdef MACVERSION -#include "langxcmd.h" + + #include "langxcmd.h" + #include "MoreFilesX.h" + #endif #include "memory.h" @@ -1000,9 +1003,11 @@ static boolean locateprocinfo (tydllinfohandle hdll, bigstring bsprocname, typrocinfohandle *hprocinfoptr) { - /* - Look up the proc name in the hash table of procs - */ + // + // Look up the proc name in the hash table of procs + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // typrocinfohandle hnomad; tyfilespec fs = (**hdll).fs; @@ -1024,12 +1029,16 @@ } hnomad = (**hnomad).hashlink; - }/*while*/ + } // while - lang2paramerror (cantfindprocinfofunctionerror, bsprocname, fsname (&fs)); + bigstring bs; + + getfsfile ( &fs, bs ); + + lang2paramerror (cantfindprocinfofunctionerror, bsprocname, bs ); return (false); - } /*locateprocinfo*/ + } // locateprocinfo static void freeprocinfobuckets (tydllinfohandle hdll) { @@ -1100,18 +1109,24 @@ static boolean loadprocinforesource (tydllinfohandle hdll) { - /* - Platoform-specific code for loading the library's ProcInfo resource - - Caller is responsible for setting langerror - */ + // + // Platoform-specific code for loading the library's ProcInfo resource + // + // Caller is responsible for setting langerror + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // #ifdef MACVERSION + tyfilespec fs = (**hdll).fs; short resfile; Handle hRes; + HFSUniStr255 resourceforkname; + + FSGetResourceForkName ( &resourceforkname ); - resfile = FSpOpenResFile (&fs, fsRdPerm); + FSOpenFork ( &fs.fsref, resourceforkname.length, resourceforkname.unicode, fsRdWrPerm, &resfile ); if (ResError() == noErr) { @@ -1128,11 +1143,14 @@ (**hdll).resdata = *hRes; } - CloseResFile (resfile); + FSCloseFork ( resfile ); + } + #endif #ifdef WIN95VERSION + HRSRC frh; HGLOBAL rh; @@ -1152,7 +1170,7 @@ #endif return ((**hdll).hres != NULL); - } /*loadprocinforesource*/ + } // loadprocinforesource static void unloadprocinforesource (tydllinfohandle hdll) { @@ -1215,7 +1233,9 @@ "I Counter ;Count the next number\0", "\0\0" END - + + 2006-06-25 creedon: for Mac, FSRef-ized + */ typrocinfohandle hprocinfo; @@ -1232,12 +1252,18 @@ if (!loadprocinforesource (hdll)) { tyfilespec fs = (**hdll).fs; + bigstring bs; + getfsfile ( &fs, bs ); + if (bsprocname != nil) - lang2paramerror (cantfindprocinfoerror, bsprocname, fsname (&fs)); + + lang2paramerror (cantfindprocinfoerror, bsprocname, bs); + else - langparamerror (cantfindprocinfoloaderror, fsname (&fs)); + langparamerror (cantfindprocinfoloaderror, bs ); + return (false); } @@ -1380,7 +1406,7 @@ } /*removelibrary*/ -static tydllinfohandle getlibrary (const tyfilespec *fs) { +static tydllinfohandle getlibrary (const ptrfilespec fs) { /* Search linked list of stay-resident libraries for one with the given file path @@ -1401,7 +1427,7 @@ } /*getlibrary*/ -static tydllinfohandle newlibrary (const tyfilespec *fs) { +static tydllinfohandle newlibrary (const ptrfilespec fs) { /* Allocate and clear a handle for the library @@ -1441,70 +1467,84 @@ static boolean openlibrary (tydllinfohandle hdll) { - /* - Platform-specific code for loading the library code into memory - */ + // + // Platform-specific code for loading the library code into memory + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // tyfilespec fs = (**hdll).fs; -#ifdef WIN95VERSION - - bigstring fn; - - #if (FRONTIERCOM == 1) - filefrompath ((ptrstring) fsname (&fs), fn); - - nullterminate(fn); - - if (stricmp (stringbaseaddress(fn), "COMDLL.DLL") == 0) { - - (**hdll).hdllsyshandle = (tydllsyshandle) COMStartup(); /*** FIXME: make sure we deal properly with the COM DLL ***/ + #ifdef WIN95VERSION + + bigstring fn; + + #if (FRONTIERCOM == 1) + filefrompath ((ptrstring) fsname (&fs), fn); + + nullterminate(fn); + + if (stricmp (stringbaseaddress(fn), "COMDLL.DLL") == 0) { - return ((**hdll).hdllsyshandle != nil); - } - #endif - - copystring (fsname (&fs), fn); + (**hdll).hdllsyshandle = (tydllsyshandle) COMStartup(); /*** FIXME: make sure we deal properly with the COM DLL ***/ + + return ((**hdll).hdllsyshandle != nil); + } + #endif - nullterminate(fn); - - (**hdll).hdllsyshandle = LoadLibrary (stringbaseaddress(fn)); - -#endif - -#ifdef MACVERSION - - long response; - OSErr err; - CFragConnectionID connID; - Ptr mainAddr; - Str255 errName; + copystring (fsname (&fs), fn); + + nullterminate(fn); - err = Gestalt (gestaltCFMAttr, &response); /* make sure we have the Code Fragment Manager (CFM) */ + (**hdll).hdllsyshandle = LoadLibrary (stringbaseaddress(fn)); - if ((err != noErr) || (response & (1 << gestaltCFMPresent)) == 0) - goto exit; + #endif - err = GetDiskFragment (&fs, 0, kCFragGoesToEOF, fsname (&fs), kReferenceCFrag, &connID, &mainAddr, errName); + #ifdef MACVERSION - if (err != noErr) - goto exit; + long response; + OSErr err; + CFragConnectionID connID; + Ptr mainAddr; + Str255 errName; - (**hdll).hdllsyshandle = connID; - -exit: - -#endif + err = Gestalt (gestaltCFMAttr, &response); /* make sure we have the Code Fragment Manager (CFM) */ + + if ((err != noErr) || (response & (1 << gestaltCFMPresent)) == 0) + goto exit; + + bigstring bs; + FSSpec fst; + + getfsfile ( &fs, bs ); + + FSRefMakeFSSpec ( &fs.fsref, &fst ); + + err = GetDiskFragment (&fst, 0, kCFragGoesToEOF, bs, kReferenceCFrag, &connID, &mainAddr, errName); + + if (err != noErr) + goto exit; + + (**hdll).hdllsyshandle = connID; + exit: + + #endif + if ((**hdll).hdllsyshandle == NULL) { - lang2paramerror (cantconnecttodllerror, bsfunctionname, fsname (&fs)); + bigstring bs; + getfsfile ( &fs, bs ); + + lang2paramerror (cantconnecttodllerror, bsfunctionname, bs ); + return (false); } return (true); - } /*openlibrary*/ + + } // openlibrary static void closelibrary (tydllinfohandle hdll) { @@ -1538,7 +1578,7 @@ } /*closelibrary*/ -static tydllinfohandle loadlibrary (const tyfilespec *fs) { +static tydllinfohandle loadlibrary (const ptrfilespec fs) { /* Load the library into memory and prepare it for use @@ -1713,32 +1753,38 @@ static boolean callprocwithparams (tydllinfohandle hdll, typrocinfohandle hprocinfo, tydllparamblock *params, tyvaluerecord *vreturned) { - /* - Call the library proc with the given set of parameters + // + // Call the library proc with the given set of parameters + // + // If the proc address hasn't been looked up yet, we do so now and save it for later + // + // After completing the call, we set up the result value or the error message + // + // 2006-06-25 creedon: for Mac, FSRef-ized + // - If the proc address hasn't been looked up yet, we do so now and save it for later - - After completing the call, we set up the result value or the error message - */ - boolean fl = false; - lockhandle ((Handle) hprocinfo); /* just to be sure our data doesn't move around */ + lockhandle ((Handle) hprocinfo); // just to be sure our data doesn't move around - /* If procaddress is undefined, look it up now and save it for future reference */ + // If procaddress is undefined, look it up now and save it for future reference if ((**hprocinfo).procaddress == nil) if (!lookupprocaddress (hdll, hprocinfo)) { + bigstring bs; + tyfilespec fs = (**hdll).fs; - lang2paramerror (cantfinddllfunctionerror, (**hprocinfo).bsprocname, fsname (&fs)); + getfsfile ( &fs, bs ); + + lang2paramerror (cantfinddllfunctionerror, (**hprocinfo).bsprocname, bs ); goto exit; } - /* Now release the thread globals, call the library proc, and grab the thread globals again */ + // Now release the thread globals, call the library proc, and grab the thread globals again releasethreadglobals (); @@ -1754,7 +1800,7 @@ grabthreadglobals (); - /* Set up the return value of the call or the error message */ + // Set up the return value of the call or the error message if (fl) { @@ -1788,7 +1834,8 @@ unlockhandle ((Handle) hprocinfo); return (fl); - } /*callprocwithparams*/ + + } // callprocwithparams static boolean callproc (hdltreenode hparam1, tydllinfohandle hdll, typrocinfohandle hprocinfo, tyvaluerecord *vreturned) { @@ -1855,7 +1902,7 @@ } /*callstayresident*/ -static boolean callvolatile (hdltreenode hparam1, const tyfilespec *fs, bigstring bsprocname, tyvaluerecord *vreturned) { +static boolean callvolatile (hdltreenode hparam1, const ptrfilespec fs, bigstring bsprocname, tyvaluerecord *vreturned) { /* Load the library just for this call, get the procinfo, make the call, and unload the library @@ -1901,7 +1948,7 @@ } /*callvolatile*/ -static boolean islibraryloaded (const tyfilespec *fs) { +static boolean islibraryloaded (const ptrfilespec fs) { /* Implements the dll.isloaded kernel verb @@ -1913,7 +1960,7 @@ } /*islibraryloaded*/ -static boolean dodllload (const tyfilespec *fs, tydllinfohandle *hdllptr) { +static boolean dodllload (const ptrfilespec fs, tydllinfohandle *hdllptr) { /* Implements dll.load kernel verb @@ -1948,7 +1995,7 @@ } /*dodllload*/ -static boolean dodllunload (const tyfilespec *fs) { +static boolean dodllunload (const ptrfilespec fs) { /* Implements dll.unload kernel verb @@ -1971,7 +2018,7 @@ } /*dodllunload*/ -static boolean dodllcall (hdltreenode hparam1, const tyfilespec *fs, bigstring bsprocname, tyvaluerecord *vreturned) { +static boolean dodllcall (hdltreenode hparam1, const ptrfilespec fs, bigstring bsprocname, tyvaluerecord *vreturned) { /* Implements the dll.call kernel verb @@ -2067,7 +2114,7 @@ //Changed to Opaque call for Carbon //I have to ask andre how to handle this stuff, this looks like plug in stuff. //This routine -static boolean getprocinfo (const tyfilespec *fs, bigstring bsprocname, tydllmoduleinfo *info) { +static boolean getprocinfo (const ptrfilespec fs, bigstring bsprocname, tydllmoduleinfo *info) { /* 5.0.2 dmb: added fs parameter for errror reporting @@ -2146,7 +2193,7 @@ } /*getprocinfo*/ -static boolean islibraryloaded (const tyfilespec *fs, Handle * hModule) { +static boolean islibraryloaded (const ptrfilespec fs, Handle * hModule) { #ifdef WIN95VERSION bigstring fn; @@ -2186,7 +2233,7 @@ } /*islibraryloaded*/ -static Handle doloadlibrary (const tyfilespec *fs, boolean flforce) { +static Handle doloadlibrary (const ptrfilespec fs, boolean flforce) { Handle hModule = NULL; @@ -2267,7 +2314,7 @@ } /*dofreelibrary*/ -static boolean loaddllmodule (const tyfilespec *fs, bigstring bsprocname, tydllmoduleinfo *info) { +static boolean loaddllmodule (const ptrfilespec fs, bigstring bsprocname, tydllmoduleinfo *info) { boolean fl = false; #ifdef WIN95VERSION Modified: Frontier/branches/FSRef_Migration/Common/source/langevaluate.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/langevaluate.c 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/source/langevaluate.c 2006-06-25 19:02:32 UTC (rev 1416) @@ -41,6 +41,12 @@ #include "osacomponent.h" #endif +#ifdef MACVERSION + + #include "MoreFilesX.h" + +#endif + #define fltryerrorstackcode false @@ -518,31 +524,41 @@ #endif static boolean fileloopguts (hdltreenode htree, ptrfilespec fsfolder, bigstring bsidentifier, long ctlevels, tyvaluerecord *valtree) { - /* - the core of fileloop evaluation, now recursive. + + // + // the core of fileloop evaluation, now recursive. + // + // if ctlevels is -1, do one level and process folders just like files. + // + // if ctlevels is not -1, only process files, and recurse for folders to the specified depth + // + // 2006-06-25 creedon: for Mac, minimally FSRef-ized + // + // 1992-10-08 dmb: break & return must kick out of all levels of recursion (whew!) + // - if ctlevels is -1, do one level and process folders just like files. - - if ctlevels is not -1, only process files, and recurse for folders - to the specified depth - - 10/8/92 dmb: break & return must kick out of all levels of recursion (whew!) - */ - register hdltreenode h = htree; register boolean fl; tyvaluerecord val; - tyfilespec fs; + tyfilespec fs = { { { 0 } }, 0 }; boolean flfolder; Handle hfileloop; + + + #ifdef MACVERSION -#ifdef MACVERSION - if (isemptystring ((*fsfolder).name)) /*loop over mounted volumes*/ - fl = diskinitloop (nil, &hfileloop); - else -#endif - fl = fileinitloop (fsfolder, nil, &hfileloop); + FSSpec fsfoldert; + FSRefMakeFSSpec ( &( *fsfolder ).fsref, &fsfoldert ); + + if ( isemptystring ( fsfoldert.name ) ) /*loop over mounted volumes*/ + fl = diskinitloop (nil, &hfileloop); + else + + #endif + + fl = fileinitloop (fsfolder, nil, &hfileloop); + if (!fl) return (false); @@ -632,19 +648,8 @@ assert (!leakingmemory (&val)); - #if TARGET_API_MAC_CARBON == 1 /*PBS 10/03/01: fix crashing bug copying filespecs*/ - - fsfolder.vRefNum = (**val.data.filespecvalue).vRefNum; - fsfolder.parID = (**val.data.filespecvalue).parID; - - copystring ((**val.data.filespecvalue).name, fsfolder.name); - - #else - fsfolder = **val.data.filespecvalue; - #endif - if (!langgetidentifier ((**h).param1, bsidentifier)) return (false); Modified: Frontier/branches/FSRef_Migration/Common/source/langexternal.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/langexternal.c 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/source/langexternal.c 2006-06-25 19:02:32 UTC (rev 1416) @@ -524,9 +524,11 @@ boolean langexternalregisterwindow (hdlexternalvariable hv) { - /* - 5.1.5b10 dmb: even if windowgetpath fails, the fspec has the (unsaved) default name - */ + // + // 2006-06-25 creedon: replace copystring with getfsfile + // + // 5.1.5b10 dmb: even if windowgetpath fails, the fspec has the (unsaved) default name + // hdlwindowinfo hinfo; WindowPtr w; @@ -549,7 +551,7 @@ windowgetfspec (w, &fs); - copystring (fsname (&fs), bsname); + getfsfile ( &fs, bsname); //shellgetwindowtitle (hinfo, bsname); } @@ -562,9 +564,11 @@ boolean langexternalunregisterwindow (hdlwindowinfo hinfo) { - /* - 5.1.5b10 dmb: even if windowgetpath fails, the fspec has the (unsaved) default name - */ + // + // 2006-06-25 creedon: replace copystring with getfsfile + // + // 5.1.5b10 dmb: even if windowgetpath fails, the fspec has the (unsaved) default name + // tyfilespec fs; bigstring bsname; @@ -580,7 +584,7 @@ windowgetfspec (w, &fs); - copystring (fsname (&fs), bsname); + getfsfile ( &fs, bsname ); //shellgetwindowtitle (hinfo, bsname); } @@ -1884,7 +1888,7 @@ } /*langexternalgetexternalparam*/ -static boolean langexternaledit (hdlexternalvariable hv, hdlwindowinfo hparent, tyfilespec *fs, bigstring bstitle, const Rect *rzoom) { +static boolean langexternaledit (hdlexternalvariable hv, hdlwindowinfo hparent, ptrfilespec fs, bigstring bstitle, const Rect *rzoom) { /* 6.16.97 dmb: the guts of langexternalzoom[from|filewindow] @@ -2113,7 +2117,7 @@ } /*langexternalzoom*/ -boolean langexternalzoomfilewindow (const tyvaluerecord *val, tyfilespec *fs, boolean flhidden) { +boolean langexternalzoomfilewindow (const tyvaluerecord *val, ptrfilespec fs, boolean flhidden) { /* create and open a new window containing the file-based external value in val. Modified: Frontier/branches/FSRef_Migration/Common/source/langvalue.c =================================================================== --- Frontier/branches/FSRef_Migration/Common/source/langvalue.c 2006-06-25 09:25:52 UTC (rev 1415) +++ Frontier/branches/FSRef_Migration/Common/source/langvalue.c 2006-06-25 19:02:32 UTC (rev 1416) @@ -5188,7 +5188,7 @@ } /*getostypevalue*/ -boolean getfilespecvalue ( hdltreenode hfirst, short pnum, tyfilespec *fsval ) { +boolean getfilespecvalue ( hdltreenode hfirst, short pnum, ptrfilespec fsval ) { tyvaluerecord val; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |