Changeset 137 for trunk/launch


Ignore:
Timestamp:
04/11/03 23:44:21 (17 years ago)
Author:
Nicholas Riley
Message:

VERSION: Updated for 1.0b3.

main.c: Work around CFBundle bug to report bundle identifiers and
versions from resource forks of unpackaged Carbon applications and
Classic applications [based on code from Lloyd Dupont]. Updated for
1.0b3.

README: Updated for 1.0b3.

Location:
trunk/launch/launch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/launch/launch/README

    r127 r137  
    1 launch 1.0b2 [9 March 2003]
     1launch 1.0b3 [xx April 2003]
    22============
    33
     
    225225---------------
    226226
     2271.0b3 - xx April 2003
     228 - work around CFBundle bug to report bundle identifiers and versions
     229   from resource forks of unpackaged Carbon applications and Classic
     230   applications [Lloyd Dupont]
    2272311.0b2 - 9 March 2003
    228232 - fixed install instructions to create /usr/local/bin if needed
  • trunk/launch/launch/VERSION

    r127 r137  
    1 1.0b2
     11.0b3
  • trunk/launch/launch/launch.pbproj/nicholas.pbxuser

    r127 r137  
    1616                );
    1717                perUserDictionary = {
    18                         PBXPerProjectTemplateStateSaveDate = 67910254;
     18                        PBXPerProjectTemplateStateSaveDate = 71736398;
    1919                        PBXWorkspaceContents = (
    2020                                {
     
    2323                                                        Split0 = {
    2424                                                                NavContent0 = {
    25                                                                         bookmark = E10E71F8040C3A7B00050002;
     25                                                                        bookmark = E17A87E30446BD4A00050002;
    2626                                                                        history = (
    2727                                                                                E190CFFE03AAD96100AEFBE0,
     
    3939                                                                                E190D01D03ABB17800AEFBE0,
    4040                                                                                E190D01E03ABB17800AEFBE0,
    41                                                                                 E190D01F03ABB17800AEFBE0,
    42                                                                                 E190D02003ABB17800AEFBE0,
    43                                                                                 E190D02103ABB17800AEFBE0,
    44                                                                                 E190D02203ABB17800AEFBE0,
    4541                                                                                E190D02303ABB17800AEFBE0,
    46                                                                                 E18D1CC5040C2AFC00050002,
    47                                                                                 E18D1CC6040C2AFC00050002,
    48                                                                                 E18D1CCB040C2AFC00050002,
    49                                                                         );
    50                                                                         nextStack = (
    51                                                                                 E18D1CCA040C2AFC00050002,
     42                                                                                E17A87CF0446BD4A00050002,
     43                                                                                E17A87D00446BD4A00050002,
     44                                                                                E17A87D10446BD4A00050002,
     45                                                                                E17A87D20446BD4A00050002,
     46                                                                                E17A87D30446BD4A00050002,
     47                                                                                E17A87D40446BD4A00050002,
     48                                                                                E17A87D50446BD4A00050002,
     49                                                                                E17A87D60446BD4A00050002,
     50                                                                                E17A87D70446BD4A00050002,
     51                                                                                E17A87D80446BD4A00050002,
     52                                                                                E17A87D90446BD4A00050002,
     53                                                                                E17A87DA0446BD4A00050002,
     54                                                                                E17A87DB0446BD4A00050002,
     55                                                                                E17A87DC0446BD4A00050002,
     56                                                                                E17A87DD0446BD4A00050002,
     57                                                                                E17A87DE0446BD4A00050002,
    5258                                                                        );
    5359                                                                        prevStack = (
     
    6571                                                                                E18D1CC8040C2AFC00050002,
    6672                                                                                E18D1CC9040C2AFC00050002,
     73                                                                                E17A87DF0446BD4A00050002,
     74                                                                                E17A87E00446BD4A00050002,
     75                                                                                E17A87E10446BD4A00050002,
     76                                                                                E17A87E20446BD4A00050002,
    6777                                                                        );
    6878                                                                };
    6979                                                                NavCount = 1;
    7080                                                                NavGeometry0 = {
    71                                                                         Frame = "{{0, 0}, {717, 554}}";
     81                                                                        Frame = "{{0, 0}, {683, 704}}";
    7282                                                                        NavBarVisible = YES;
    7383                                                                };
     
    104114                                                        Split0 = {
    105115                                                                NavContent0 = {
    106                                                                         bookmark = E10E71F9040C3A7B00050002;
     116                                                                        bookmark = E17A87E50446BD4A00050002;
    107117                                                                        history = (
    108                                                                                 E18D1CCD040C2AFC00050002,
     118                                                                                E17A87E40446BD4A00050002,
    109119                                                                        );
    110120                                                                };
     
    144154                        PBXWorkspaceGeometries = (
    145155                                {
    146                                         ContentSize = "{1001, 577}";
     156                                        ContentSize = "{967, 727}";
    147157                                        LeftSlideOut = {
    148158                                                ActiveTab = 0;
    149159                                                ActiveTabName = PBXGroupTreeModule;
    150160                                                Collapsed = NO;
    151                                                 Frame = "{{0, 23}, {1001, 554}}";
     161                                                Frame = "{{0, 23}, {967, 704}}";
    152162                                                Split0 = {
    153163                                                        Collapsed = NO;
    154                                                         Frame = "{{284, 0}, {717, 554}}";
     164                                                        Frame = "{{284, 0}, {683, 704}}";
    155165                                                        Split0 = {
    156                                                                 Frame = "{{0, 0}, {717, 554}}";
     166                                                                Frame = "{{0, 0}, {683, 704}}";
    157167                                                        };
    158168                                                        SplitCount = 1;
     
    216226                                                SplitCount = 1;
    217227                                                Tab0 = {
    218                                                         Frame = "{{0, 0}, {260, 554}}";
     228                                                        Frame = "{{0, 0}, {260, 704}}";
    219229                                                        GroupTreeTableConfiguration = (
    220230                                                                TargetStatusColumn,
     
    269279                                        Template = 64ABBB4501FA494900185B06;
    270280                                        ToolbarVisible = YES;
    271                                         WindowLocation = "{254, 56}";
     281                                        WindowLocation = "{303, 43}";
    272282                                },
    273283                                {
     
    397407                                        Template = F5314676015831810DCA290F;
    398408                                        ToolbarVisible = YES;
    399                                         WindowLocation = "{523, 122}";
     409                                        WindowLocation = "{328, 75}";
    400410                                },
    401411                        );
    402                         PBXWorkspaceStateSaveDate = 67910254;
     412                        PBXWorkspaceStateSaveDate = 71736398;
    403413                };
    404414                perUserProjectItems = {
    405                         E10E71F8040C3A7B00050002 = E10E71F8040C3A7B00050002;
    406                         E10E71F9040C3A7B00050002 = E10E71F9040C3A7B00050002;
    407415                        E16C83C603F7980800050002 = E16C83C603F7980800050002;
    408                         E18D1CC5040C2AFC00050002 = E18D1CC5040C2AFC00050002;
    409                         E18D1CC6040C2AFC00050002 = E18D1CC6040C2AFC00050002;
     416                        E17A87CF0446BD4A00050002 = E17A87CF0446BD4A00050002;
     417                        E17A87D00446BD4A00050002 = E17A87D00446BD4A00050002;
     418                        E17A87D10446BD4A00050002 = E17A87D10446BD4A00050002;
     419                        E17A87D20446BD4A00050002 = E17A87D20446BD4A00050002;
     420                        E17A87D30446BD4A00050002 = E17A87D30446BD4A00050002;
     421                        E17A87D40446BD4A00050002 = E17A87D40446BD4A00050002;
     422                        E17A87D50446BD4A00050002 = E17A87D50446BD4A00050002;
     423                        E17A87D60446BD4A00050002 = E17A87D60446BD4A00050002;
     424                        E17A87D70446BD4A00050002 = E17A87D70446BD4A00050002;
     425                        E17A87D80446BD4A00050002 = E17A87D80446BD4A00050002;
     426                        E17A87D90446BD4A00050002 = E17A87D90446BD4A00050002;
     427                        E17A87DA0446BD4A00050002 = E17A87DA0446BD4A00050002;
     428                        E17A87DB0446BD4A00050002 = E17A87DB0446BD4A00050002;
     429                        E17A87DC0446BD4A00050002 = E17A87DC0446BD4A00050002;
     430                        E17A87DD0446BD4A00050002 = E17A87DD0446BD4A00050002;
     431                        E17A87DE0446BD4A00050002 = E17A87DE0446BD4A00050002;
     432                        E17A87DF0446BD4A00050002 = E17A87DF0446BD4A00050002;
     433                        E17A87E00446BD4A00050002 = E17A87E00446BD4A00050002;
     434                        E17A87E10446BD4A00050002 = E17A87E10446BD4A00050002;
     435                        E17A87E20446BD4A00050002 = E17A87E20446BD4A00050002;
     436                        E17A87E30446BD4A00050002 = E17A87E30446BD4A00050002;
     437                        E17A87E40446BD4A00050002 = E17A87E40446BD4A00050002;
     438                        E17A87E50446BD4A00050002 = E17A87E50446BD4A00050002;
    410439                        E18D1CC8040C2AFC00050002 = E18D1CC8040C2AFC00050002;
    411440                        E18D1CC9040C2AFC00050002 = E18D1CC9040C2AFC00050002;
    412                         E18D1CCA040C2AFC00050002 = E18D1CCA040C2AFC00050002;
    413                         E18D1CCB040C2AFC00050002 = E18D1CCB040C2AFC00050002;
    414                         E18D1CCD040C2AFC00050002 = E18D1CCD040C2AFC00050002;
    415441                        E190CFFE03AAD96100AEFBE0 = E190CFFE03AAD96100AEFBE0;
    416442                        E190CFFF03AAD96100AEFBE0 = E190CFFF03AAD96100AEFBE0;
     
    433459                        E190D01D03ABB17800AEFBE0 = E190D01D03ABB17800AEFBE0;
    434460                        E190D01E03ABB17800AEFBE0 = E190D01E03ABB17800AEFBE0;
    435                         E190D01F03ABB17800AEFBE0 = E190D01F03ABB17800AEFBE0;
    436                         E190D02003ABB17800AEFBE0 = E190D02003ABB17800AEFBE0;
    437                         E190D02103ABB17800AEFBE0 = E190D02103ABB17800AEFBE0;
    438                         E190D02203ABB17800AEFBE0 = E190D02203ABB17800AEFBE0;
    439461                        E190D02303ABB17800AEFBE0 = E190D02303ABB17800AEFBE0;
    440462                        E190D02603ABB17800AEFBE0 = E190D02603ABB17800AEFBE0;
     
    460482                );
    461483        };
    462         E10E71F8040C3A7B00050002 = {
    463                 fRef = 08FB7796FE84155DC02AAC07;
    464                 isa = PBXTextBookmark;
    465                 name = "main.c: printInfoFromURL";
    466                 rLen = 0;
    467                 rLoc = 27571;
    468                 rType = 0;
    469                 vrLen = 1918;
    470                 vrLoc = 26343;
    471         };
    472         E10E71F9040C3A7B00050002 = {
    473                 fRef = 08FB7796FE84155DC02AAC07;
    474                 isa = PBXTextBookmark;
    475                 name = "main.c: appVersion";
    476                 rLen = 0;
    477                 rLoc = 27268;
    478                 rType = 0;
    479                 vrLen = 395;
    480                 vrLoc = 26939;
    481         };
    482484        E16C83C603F7980800050002 = {
    483485                fRef = F5C0CA9501B5740C01AEEDB1;
     
    490492                vrLoc = 0;
    491493        };
    492         E18D1CC5040C2AFC00050002 = {
     494        E17A87CF0446BD4A00050002 = {
     495                fRef = E17A87E80446BD4A00050002;
     496                glyphRangeLength = 375;
     497                glyphRangeLocation = 1432;
     498                isa = PBXDocBookmark;
     499                name = "Miscellaneou17456789101112.html: FSRef newRef...";
     500        };
     501        E17A87D00446BD4A00050002 = {
     502                fRef = E17A87EA0446BD4A00050002;
     503                isa = PBXTextBookmark;
     504                name = "CFURL.h: 282";
     505                rLen = 58;
     506                rLoc = 13157;
     507                rType = 0;
     508                vrLen = 1459;
     509                vrLoc = 11853;
     510        };
     511        E17A87D10446BD4A00050002 = {
     512                fRef = E17A87EB0446BD4A00050002;
     513                glyphRangeLength = 2251;
     514                glyphRangeLocation = 6098;
     515                isa = PBXDocBookmark;
     516                name = "Reading_Reso__Into_Memory.html: Handle GetRe...";
     517        };
     518        E17A87D20446BD4A00050002 = {
     519                fRef = E17A87E90446BD4A00050002;
     520                isa = PBXTextBookmark;
     521                name = "Resources.h: 345";
     522                rLen = 12;
     523                rLoc = 9749;
     524                rType = 0;
     525                vrLen = 1176;
     526                vrLoc = 9312;
     527        };
     528        E17A87D30446BD4A00050002 = {
     529                fRef = E17A87EC0446BD4A00050002;
     530                isa = PBXTextBookmark;
     531                name = "memory: 1";
     532                rLen = 0;
     533                rLoc = 0;
     534                rType = 0;
     535                vrLen = 2067;
     536                vrLoc = 0;
     537        };
     538        E17A87D40446BD4A00050002 = {
     539                fRef = E17A87ED0446BD4A00050002;
     540                isa = PBXTextBookmark;
     541                name = "CFData.h: 21";
     542                rLen = 0;
     543                rLoc = 395;
     544                rType = 0;
     545                vrLen = 1169;
     546                vrLoc = 0;
     547        };
     548        E17A87D50446BD4A00050002 = {
     549                fRef = E17A87EE0446BD4A00050002;
     550                isa = PBXTextBookmark;
     551                name = "CFBase.h: 125";
     552                rLen = 0;
     553                rLoc = 3306;
     554                rType = 0;
     555                vrLen = 1468;
     556                vrLoc = 4163;
     557        };
     558        E17A87D60446BD4A00050002 = {
     559                fRef = E17A87EF0446BD4A00050002;
     560                isa = PBXTextBookmark;
     561                name = "CFDictionary.h: 516";
     562                rLen = 76;
     563                rLoc = 25628;
     564                rType = 0;
     565                vrLen = 2298;
     566                vrLoc = 24570;
     567        };
     568        E17A87D70446BD4A00050002 = {
     569                fRef = E17A87F00446BD4A00050002;
     570                isa = PBXTextBookmark;
     571                name = "CFPropertyList.h: 19";
     572                rLen = 0;
     573                rLoc = 449;
     574                rType = 0;
     575                vrLen = 1661;
     576                vrLoc = 0;
     577        };
     578        E17A87D80446BD4A00050002 = {
     579                fRef = E17A87F10446BD4A00050002;
     580                isa = PBXTextBookmark;
     581                name = "CFBundle.h: 99";
     582                rLen = 0;
     583                rLoc = 3680;
     584                rType = 0;
     585                vrLen = 1808;
     586                vrLoc = 1718;
     587        };
     588        E17A87D90446BD4A00050002 = {
     589                fRef = E17A87F20446BD4A00050002;
     590                isa = PBXTextBookmark;
     591                name = "MacMemory.h: 815";
     592                rLen = 105;
     593                rLoc = 21843;
     594                rType = 0;
     595                vrLen = 1330;
     596                vrLoc = 21226;
     597        };
     598        E17A87DA0446BD4A00050002 = {
     599                fRef = E17A87E60446BD4A00050002;
     600                isa = PBXTextBookmark;
     601                name = "CFString.h: 143";
     602                rLen = 116;
     603                rLoc = 6615;
     604                rType = 0;
     605                vrLen = 2410;
     606                vrLoc = 5535;
     607        };
     608        E17A87DB0446BD4A00050002 = {
     609                fRef = E17A87E70446BD4A00050002;
     610                isa = PBXTextBookmark;
     611                name = "MacTypes.h: 568";
     612                rLen = 59;
     613                rLoc = 23905;
     614                rType = 0;
     615                vrLen = 2364;
     616                vrLoc = 22870;
     617        };
     618        E17A87DC0446BD4A00050002 = {
    493619                fRef = F5C0CA9501B5740C01AEEDB1;
    494620                isa = PBXTextBookmark;
    495                 name = "README: 229";
    496                 rLen = 0;
    497                 rLoc = 7863;
    498                 rType = 0;
    499                 vrLen = 1350;
    500                 vrLoc = 7479;
    501         };
    502         E18D1CC6040C2AFC00050002 = {
    503                 fRef = E18D1CD0040C2AFC00050002;
    504                 isa = PBXTextBookmark;
    505                 name = "CFBundle.h: 102";
    506                 rLen = 53;
    507                 rLoc = 3697;
    508                 rType = 0;
    509                 vrLen = 1174;
    510                 vrLoc = 3020;
     621                name = "README: 227";
     622                rLen = 0;
     623                rLoc = 7729;
     624                rType = 0;
     625                vrLen = 1764;
     626                vrLoc = 7580;
     627        };
     628        E17A87DD0446BD4A00050002 = {
     629                fRef = F574340B01B8A47B01AEEDB1;
     630                isa = PBXTextBookmark;
     631                name = "VERSION: 1";
     632                rLen = 0;
     633                rLoc = 3;
     634                rType = 0;
     635                vrLen = 3;
     636                vrLoc = 0;
     637        };
     638        E17A87DE0446BD4A00050002 = {
     639                fRef = 08FB7796FE84155DC02AAC07;
     640                isa = PBXTextBookmark;
     641                name = "main.c: printInfoFromURL";
     642                rLen = 0;
     643                rLoc = 27861;
     644                rType = 0;
     645                vrLen = 3053;
     646                vrLoc = 26387;
     647        };
     648        E17A87DF0446BD4A00050002 = {
     649                fRef = 08FB7796FE84155DC02AAC07;
     650                isa = PBXTextBookmark;
     651                name = "main.c: printInfoFromURL";
     652                rLen = 0;
     653                rLoc = 29655;
     654                rType = 0;
     655                vrLen = 1523;
     656                vrLoc = 26297;
     657        };
     658        E17A87E00446BD4A00050002 = {
     659                fRef = F5C0CA9501B5740C01AEEDB1;
     660                isa = PBXTextBookmark;
     661                name = "README: 228";
     662                rLen = 0;
     663                rLoc = 7899;
     664                rType = 0;
     665                vrLen = 1387;
     666                vrLoc = 7538;
     667        };
     668        E17A87E10446BD4A00050002 = {
     669                fRef = 08FB7796FE84155DC02AAC07;
     670                isa = PBXTextBookmark;
     671                name = "main.c: printInfoFromURL";
     672                rLen = 0;
     673                rLoc = 27861;
     674                rType = 0;
     675                vrLen = 3053;
     676                vrLoc = 26387;
     677        };
     678        E17A87E20446BD4A00050002 = {
     679                fRef = F574340B01B8A47B01AEEDB1;
     680                isa = PBXTextBookmark;
     681                name = "VERSION: 1";
     682                rLen = 0;
     683                rLoc = 3;
     684                rType = 0;
     685                vrLen = 3;
     686                vrLoc = 0;
     687        };
     688        E17A87E30446BD4A00050002 = {
     689                fRef = 08FB7796FE84155DC02AAC07;
     690                isa = PBXTextBookmark;
     691                name = "main.c: osstatusstr";
     692                rLen = 0;
     693                rLoc = 6606;
     694                rType = 0;
     695                vrLen = 2056;
     696                vrLoc = 286;
     697        };
     698        E17A87E40446BD4A00050002 = {
     699                fRef = 08FB7796FE84155DC02AAC07;
     700                isa = PBXTextBookmark;
     701                rLen = 0;
     702                rLoc = 715;
     703                rType = 1;
     704        };
     705        E17A87E50446BD4A00050002 = {
     706                fRef = 08FB7796FE84155DC02AAC07;
     707                isa = PBXTextBookmark;
     708                name = "main.c: printInfoFromURL";
     709                rLen = 0;
     710                rLoc = 29672;
     711                rType = 0;
     712                vrLen = 419;
     713                vrLoc = 26900;
     714        };
     715        E17A87E60446BD4A00050002 = {
     716                isa = PBXFileReference;
     717                name = CFString.h;
     718                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFString.h;
     719                refType = 0;
     720        };
     721        E17A87E70446BD4A00050002 = {
     722                isa = PBXFileReference;
     723                name = MacTypes.h;
     724                path = /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacTypes.h;
     725                refType = 0;
     726        };
     727        E17A87E80446BD4A00050002 = {
     728                isa = PBXFileReference;
     729                name = Miscellaneou17456789101112.html;
     730                path = /Developer/Documentation/Carbon/Files/ResourceManager/Resource_Manager/Functions/Miscellaneou17456789101112.html;
     731                refType = 0;
     732        };
     733        E17A87E90446BD4A00050002 = {
     734                isa = PBXFileReference;
     735                name = Resources.h;
     736                path = /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/Resources.h;
     737                refType = 0;
     738        };
     739        E17A87EA0446BD4A00050002 = {
     740                isa = PBXFileReference;
     741                name = CFURL.h;
     742                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFURL.h;
     743                refType = 0;
     744        };
     745        E17A87EB0446BD4A00050002 = {
     746                isa = PBXFileReference;
     747                name = Reading_Reso__Into_Memory.html;
     748                path = /Developer/Documentation/Carbon/Files/ResourceManager/Resource_Manager/Functions/Reading_Reso__Into_Memory.html;
     749                refType = 0;
     750        };
     751        E17A87EC0446BD4A00050002 = {
     752                isa = PBXFileReference;
     753                name = memory;
     754                path = "/usr/include/gcc/darwin/3.1/g++-v3/memory";
     755                refType = 0;
     756        };
     757        E17A87ED0446BD4A00050002 = {
     758                isa = PBXFileReference;
     759                name = CFData.h;
     760                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFData.h;
     761                refType = 0;
     762        };
     763        E17A87EE0446BD4A00050002 = {
     764                isa = PBXFileReference;
     765                name = CFBase.h;
     766                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFBase.h;
     767                refType = 0;
     768        };
     769        E17A87EF0446BD4A00050002 = {
     770                isa = PBXFileReference;
     771                name = CFDictionary.h;
     772                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFDictionary.h;
     773                refType = 0;
     774        };
     775        E17A87F00446BD4A00050002 = {
     776                isa = PBXFileReference;
     777                name = CFPropertyList.h;
     778                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFPropertyList.h;
     779                refType = 0;
     780        };
     781        E17A87F10446BD4A00050002 = {
     782                isa = PBXFileReference;
     783                name = CFBundle.h;
     784                path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFBundle.h;
     785                refType = 0;
     786        };
     787        E17A87F20446BD4A00050002 = {
     788                isa = PBXFileReference;
     789                name = MacMemory.h;
     790                path = /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacMemory.h;
     791                refType = 0;
    511792        };
    512793        E18D1CC8040C2AFC00050002 = {
     
    515796                name = "README: 236";
    516797                rLen = 0;
    517                 rLoc = 8165;
     798                rLoc = 8342;
    518799                rType = 0;
    519800                vrLen = 1380;
     
    530811                vrLoc = 3020;
    531812        };
    532         E18D1CCA040C2AFC00050002 = {
    533                 fRef = E18D1CCE040C2AFC00050002;
    534                 isa = PBXTextBookmark;
    535                 name = "CFBundle.h: 102";
    536                 rLen = 53;
    537                 rLoc = 3697;
    538                 rType = 0;
    539                 vrLen = 1174;
    540                 vrLoc = 3020;
    541         };
    542         E18D1CCB040C2AFC00050002 = {
    543                 fRef = 08FB7796FE84155DC02AAC07;
    544                 isa = PBXTextBookmark;
    545                 name = "main.c: printInfoFromURL";
    546                 rLen = 0;
    547                 rLoc = 27571;
    548                 rType = 0;
    549                 vrLen = 2023;
    550                 vrLoc = 26186;
    551         };
    552         E18D1CCD040C2AFC00050002 = {
    553                 fRef = 08FB7796FE84155DC02AAC07;
    554                 isa = PBXTextBookmark;
    555                 name = "main.c: appVersion";
    556                 rLen = 0;
    557                 rLoc = 27268;
    558                 rType = 0;
    559                 vrLen = 403;
    560                 vrLoc = 27119;
    561         };
    562         E18D1CCE040C2AFC00050002 = {
    563                 isa = PBXFileReference;
    564                 name = CFBundle.h;
    565                 path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFBundle.h;
    566                 refType = 0;
    567         };
    568813        E18D1CCF040C2AFC00050002 = {
    569                 isa = PBXFileReference;
    570                 name = CFBundle.h;
    571                 path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFBundle.h;
    572                 refType = 0;
    573         };
    574         E18D1CD0040C2AFC00050002 = {
    575814                isa = PBXFileReference;
    576815                name = CFBundle.h;
     
    590829                name = "handle URL/file arguments";
    591830                rLen = 0;
    592                 rLoc = 17799;
     831                rLoc = 17797;
    593832                rType = 0;
    594833                vrLen = 1773;
     
    756995                vrLoc = 2846;
    757996        };
    758         E190D01F03ABB17800AEFBE0 = {
    759                 fRef = F574340B01B8A47B01AEEDB1;
    760                 isa = PBXTextBookmark;
    761                 name = "VERSION: 1";
    762                 rLen = 0;
    763                 rLoc = 5;
    764                 rType = 0;
    765                 vrLen = 5;
    766                 vrLoc = 0;
    767         };
    768         E190D02003ABB17800AEFBE0 = {
    769                 fRef = E190D03703ABB17800AEFBE0;
    770                 isa = PBXTextBookmark;
    771                 name = "CFBase.h: 1";
    772                 rLen = 0;
    773                 rLoc = 0;
    774                 rType = 0;
    775                 vrLen = 1128;
    776                 vrLoc = 0;
    777         };
    778         E190D02103ABB17800AEFBE0 = {
    779                 fRef = E190D03B03ABB17800AEFBE0;
    780                 isa = PBXTextBookmark;
    781                 name = "CFString.h: 198";
    782                 rLen = 25;
    783                 rLoc = 9326;
    784                 rType = 0;
    785                 vrLen = 1770;
    786                 vrLoc = 8490;
    787         };
    788         E190D02203ABB17800AEFBE0 = {
    789                 fRef = E190D03C03ABB17800AEFBE0;
    790                 isa = PBXTextBookmark;
    791                 name = "CFURL.h: 51";
    792                 rLen = 0;
    793                 rLoc = 2112;
    794                 rType = 0;
    795                 vrLen = 1754;
    796                 vrLoc = 1462;
    797         };
    798997        E190D02303ABB17800AEFBE0 = {
    799998                fRef = E190D03D03ABB17800AEFBE0;
     
    8821081                refType = 0;
    8831082        };
    884         E190D03703ABB17800AEFBE0 = {
    885                 isa = PBXFileReference;
    886                 name = CFBase.h;
    887                 path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFBase.h;
    888                 refType = 0;
    889         };
    8901083        E190D03803ABB17800AEFBE0 = {
    8911084                isa = PBXFileReference;
     
    9041097                name = Files.h;
    9051098                path = /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/Files.h;
    906                 refType = 0;
    907         };
    908         E190D03B03ABB17800AEFBE0 = {
    909                 isa = PBXFileReference;
    910                 name = CFString.h;
    911                 path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFString.h;
    912                 refType = 0;
    913         };
    914         E190D03C03ABB17800AEFBE0 = {
    915                 isa = PBXFileReference;
    916                 name = CFURL.h;
    917                 path = /System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFURL.h;
    9181099                refType = 0;
    9191100        };
  • trunk/launch/launch/main.c

    r127 r137  
    5656const char *APP_NAME;
    5757
    58 #define VERSION "1.0b2"
     58#define VERSION "1.0b3"
    5959
    6060#define STRBUF_LEN 1024
     
    665665            strncpy(tmpBuffer, (char *)&info.creator, 4); printf("\tcreator: '%s'\n", tmpBuffer);
    666666        }
    667         if (info.flags & kLSItemInfoIsPackage ||
    668                 info.flags & kLSItemInfoIsApplication && info.flags & kLSItemInfoIsNativeApp) {
     667        if (info.flags & kLSItemInfoIsPackage || info.flags & kLSItemInfoIsApplication) {
    669668                // a package, or possibly a native app with a 'plst' resource
    670669            CFBundleRef bundle = CFBundleCreate(NULL, url);
    671             CFStringRef bundleID;
    672             if (bundle == NULL) { // OS X bug causes this to fail when it shouldn't, so just note it, don't die
    673                 if (info.flags & kLSItemInfoIsApplication) printf("\t[can't access CFBundle for application]\n");
     670            CFStringRef bundleID = NULL;
     671            CFStringRef appVersion = NULL;
     672            UInt32 intVersion = 0;
     673            if (bundle == NULL && (info.flags & kLSItemInfoIsApplication)) {
     674                FSRef fsr;
     675                if (info.flags & kLSItemInfoIsPackage || !CFURLGetFSRef(url, &fsr)) {
     676                    printf("\t[can't access CFBundle for application]\n");
     677                } else { // OS X bug causes this to fail when it shouldn't, so fake it
     678                    SInt16 resFork = FSOpenResFile(&fsr, fsRdPerm);
     679                    OSStatus err = ResError();
     680                    if (err != noErr) {
     681                        printf("\t[can't open resource fork: %s]\n", osstatusstr(err));
     682                    } else {
     683                        Handle h = Get1Resource('plst', 0);
     684                        if ( (err = ResError()) != noErr || h == NULL) {
     685                            if (err != noErr && err != resNotFound) osstatusexit(err, "unable to read 'plst' 0 resource");
     686                        } else {
     687                            CFDataRef plstData = CFDataCreate(NULL, *h, GetHandleSize(h));
     688                            CFStringRef error;
     689                            CFPropertyListRef infoPlist = CFPropertyListCreateFromXMLData(NULL, plstData, kCFPropertyListImmutable, &error);
     690                            if (infoPlist == NULL) {
     691                                CFStringGetCString(error, tmpBuffer, STRBUF_LEN, CFStringGetSystemEncoding());
     692                                printf("\t['plst' 0 resource invalid: %s]\n", tmpBuffer);
     693                                CFRelease(error);
     694                            } else {
     695                                // mimic CFBundle logic below
     696                                bundleID = CFDictionaryGetValue(infoPlist, kCFBundleIdentifierKey);
     697                                if (bundleID != NULL) CFRetain(bundleID);
     698                                CFStringRef appVersion = CFDictionaryGetValue(infoPlist, CFSTR("CFBundleShortVersionString"));
     699                                if (appVersion == NULL)
     700                                    appVersion = CFDictionaryGetValue(infoPlist, kCFBundleVersionKey);
     701                                if (appVersion != NULL) CFRetain(appVersion);
     702                                CFRelease(infoPlist);
     703                            }
     704                        }
     705                        VersRecHndl vers = (VersRecHndl)Get1Resource('vers', 1);
     706                        if ( (err = ResError()) != noErr || vers == NULL) {
     707                            if (err != noErr && err != resNotFound) osstatusexit(err, "unable to read 'vers' 1 resource");
     708                        } else {
     709                            if (appVersion == NULL) { // prefer 'plst' version
     710                                appVersion = CFStringCreateWithPascalString(NULL, vers[0]->shortVersion, CFStringGetSystemEncoding()); // XXX use country code instead?
     711                            }
     712                            intVersion = ((NumVersionVariant)vers[0]->numericVersion).whole;
     713                        }
     714                        CloseResFile(resFork);
     715                    }
     716                }
    674717            } else {
    675718                bundleID = CFBundleGetIdentifier(bundle);
    676                 if (bundleID != NULL) {
    677                     CFStringGetCString(bundleID, tmpBuffer, STRBUF_LEN, CFStringGetSystemEncoding());
    678                     printf("\tbundle ID: %s\n", tmpBuffer);
    679                 }
     719                if (bundleID != NULL) CFRetain(bundleID);
    680720                // prefer a short version string, e.g. "1.0 Beta" instead of "51" for Safari
    681721                CFStringRef appVersion = CFBundleGetValueForInfoDictionaryKey(bundle, CFSTR("CFBundleShortVersionString"));
    682722                if (appVersion == NULL)
    683723                    appVersion = CFBundleGetValueForInfoDictionaryKey(bundle, kCFBundleVersionKey);
    684                 if (appVersion != NULL) {
    685                     UInt32 intVersion = CFBundleGetVersionNumber(bundle);
    686                     CFStringGetCString(appVersion, tmpBuffer, STRBUF_LEN, CFStringGetSystemEncoding());
    687                     printf("\tversion: %s", tmpBuffer);
    688                     if (intVersion != 0) printf(" [0x%lx = %lu]", intVersion, intVersion);
    689                     putchar('\n');
    690                 }
     724                if (appVersion != NULL)
     725                    intVersion = CFBundleGetVersionNumber(bundle);
    691726                CFRelease(bundle);
     727            }
     728            if (bundleID != NULL) {
     729                CFStringGetCString(bundleID, tmpBuffer, STRBUF_LEN, CFStringGetSystemEncoding());
     730                printf("\tbundle ID: %s\n", tmpBuffer);
     731                CFRelease(bundleID);
     732            }
     733            if (appVersion != NULL) {
     734                CFStringGetCString(appVersion, tmpBuffer, STRBUF_LEN, CFStringGetSystemEncoding());
     735                printf("\tversion: %s", tmpBuffer);
     736                if (intVersion != 0) printf(" [0x%lx = %lu]", intVersion, intVersion);
     737                putchar('\n');
     738                CFRelease(appVersion);
    692739            }
    693740        }
Note: See TracChangeset for help on using the changeset viewer.