Changeset 375 for trunk/ICeCoffEE


Ignore:
Timestamp:
02/10/08 06:02:25 (17 years ago)
Author:
Nicholas Riley
Message:

ICeCoffEE.[hm]: Restore ICCF_CheckRange, moved in [322], as we don't
want the range limited in TestParser.

ICeCoffEEParser.m: Remove ICCF_CheckRange. Comment out expandFront
URL/parens stuff; it's as yet untested. Handle {...} in URLs. Don't
assert when )/} is last character in string. Fix indentation.

ICeCoffEE.xcodeproj: Link TestParser to Cocoa normally. Remove
obsolete build settings.

TestParser.m: Stub out ICCF_CheckRange. Test beginning with
one-character ranges all the way through the string. Output summary
stats at end.

Location:
trunk/ICeCoffEE/ICeCoffEE
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.h

    r322 r375  
    2626iccfURLAction ICCF_KeyboardAction(NSEvent *e);
    2727
     28// throws an exception if the URL range is nonexistent or too big
     29void ICCF_CheckRange(NSRange range);
     30
    2831// calls ICCF_DoURLAction
    2932// returns YES unless the user cancelled
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.m

    r322 r375  
    6161    action.launchInBackground = (modifierFlags & NSShiftKeyMask) != 0;
    6262    return action;
     63}
     64
     65// RFC-ordained max URL length, just to avoid passing IC/LS multi-megabyte documents
     66#if ICCF_DEBUG
     67static const long ICCF_MAX_URL_LEN = 120; // XXX change later
     68#else
     69static const long ICCF_MAX_URL_LEN = 1024;
     70#endif
     71
     72void ICCF_CheckRange(NSRange range) {
     73    NSCAssert(range.length > 0, ICCF_LocalizedString(@"No URL is selected"));
     74    NSCAssert1(range.length <= ICCF_MAX_URL_LEN, ICCF_LocalizedString(@"The potential URL is longer than %lu characters"), ICCF_MAX_URL_LEN);
    6375}
    6476
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.xcodeproj/nicholas.mode2v3

    r373 r375  
    201201                        <dict>
    202202                                <key>PBXProjectModuleGUID</key>
    203                                 <string>E15464590D5EB73F00C836EC</string>
    204                                 <key>PBXProjectModuleLabel</key>
    205                                 <string>urls.plist</string>
    206                                 <key>PBXSplitModuleInNavigatorKey</key>
    207                                 <dict>
    208                                         <key>Split0</key>
    209                                         <dict>
    210                                                 <key>PBXProjectModuleGUID</key>
    211                                                 <string>E154645A0D5EB73F00C836EC</string>
    212                                                 <key>PBXProjectModuleLabel</key>
    213                                                 <string>urls.plist</string>
    214                                                 <key>_historyCapacity</key>
    215                                                 <integer>0</integer>
    216                                                 <key>bookmark</key>
    217                                                 <string>E154646D0D5EB8FF00C836EC</string>
    218                                                 <key>history</key>
    219                                                 <array>
    220                                                         <string>E15464550D5EB72500C836EC</string>
    221                                                 </array>
    222                                         </dict>
    223                                         <key>SplitCount</key>
    224                                         <string>1</string>
    225                                 </dict>
    226                                 <key>StatusBarVisibility</key>
    227                                 <false/>
    228                         </dict>
    229                         <key>Geometry</key>
    230                         <dict>
    231                                 <key>Frame</key>
    232                                 <string>{{0, -1}, {772, 796}}</string>
    233                                 <key>PBXModuleWindowStatusBarHidden2</key>
    234                                 <true/>
    235                                 <key>RubberWindowFrame</key>
    236                                 <string>18 -575 772 816 0 0 1920 1178 </string>
    237                         </dict>
    238                 </dict>
    239                 <dict>
    240                         <key>Content</key>
    241                         <dict>
    242                                 <key>PBXProjectModuleGUID</key>
    243                                 <string>E154646E0D5EB8FF00C836EC</string>
    244                                 <key>PBXProjectModuleLabel</key>
    245                                 <string>TestParser.m - SCM</string>
    246                                 <key>PBXSplitModuleInNavigatorKey</key>
    247                                 <dict>
    248                                         <key>Split0</key>
    249                                         <dict>
    250                                                 <key>PBXProjectModuleGUID</key>
    251                                                 <string>E154646F0D5EB8FF00C836EC</string>
    252                                                 <key>PBXProjectModuleLabel</key>
    253                                                 <string>TestParser.m - SCM</string>
    254                                                 <key>_historyCapacity</key>
    255                                                 <integer>0</integer>
    256                                                 <key>bookmark</key>
    257                                                 <string>E15464710D5EB8FF00C836EC</string>
    258                                                 <key>history</key>
    259                                                 <array>
    260                                                         <string>E15464700D5EB8FF00C836EC</string>
    261                                                 </array>
    262                                         </dict>
    263                                         <key>SplitCount</key>
    264                                         <string>1</string>
    265                                 </dict>
    266                                 <key>StatusBarVisibility</key>
    267                                 <false/>
    268                         </dict>
    269                         <key>Geometry</key>
    270                         <dict>
    271                                 <key>Frame</key>
    272                                 <string>{{0, -1}, {1164, 866}}</string>
    273                                 <key>PBXModuleWindowStatusBarHidden2</key>
    274                                 <true/>
    275                                 <key>RubberWindowFrame</key>
    276                                 <string>121 292 1164 886 0 0 1920 1178 </string>
    277                         </dict>
    278                 </dict>
    279                 <dict>
    280                         <key>Content</key>
    281                         <dict>
    282                                 <key>PBXProjectModuleGUID</key>
    283203                                <string>E154645C0D5EB73F00C836EC</string>
    284204                                <key>PBXProjectModuleLabel</key>
     
    295215                                                <integer>0</integer>
    296216                                                <key>bookmark</key>
    297                                                 <string>E15464730D5EB8FF00C836EC</string>
     217                                                <string>E15465140D5ECA7400C836EC</string>
    298218                                                <key>history</key>
    299219                                                <array>
    300                                                         <string>E154645E0D5EB73F00C836EC</string>
     220                                                        <string>E15465010D5EC80700C836EC</string>
    301221                                                </array>
    302222                                        </dict>
     
    321241                        <dict>
    322242                                <key>PBXProjectModuleGUID</key>
     243                                <string>E15464590D5EB73F00C836EC</string>
     244                                <key>PBXProjectModuleLabel</key>
     245                                <string>urls.plist</string>
     246                                <key>PBXSplitModuleInNavigatorKey</key>
     247                                <dict>
     248                                        <key>Split0</key>
     249                                        <dict>
     250                                                <key>PBXProjectModuleGUID</key>
     251                                                <string>E154645A0D5EB73F00C836EC</string>
     252                                                <key>PBXProjectModuleLabel</key>
     253                                                <string>urls.plist</string>
     254                                                <key>_historyCapacity</key>
     255                                                <integer>0</integer>
     256                                                <key>bookmark</key>
     257                                                <string>E15465150D5ECA7400C836EC</string>
     258                                                <key>history</key>
     259                                                <array>
     260                                                        <string>E15464550D5EB72500C836EC</string>
     261                                                </array>
     262                                        </dict>
     263                                        <key>SplitCount</key>
     264                                        <string>1</string>
     265                                </dict>
     266                                <key>StatusBarVisibility</key>
     267                                <false/>
     268                        </dict>
     269                        <key>Geometry</key>
     270                        <dict>
     271                                <key>Frame</key>
     272                                <string>{{0, -1}, {772, 796}}</string>
     273                                <key>PBXModuleWindowStatusBarHidden2</key>
     274                                <true/>
     275                                <key>RubberWindowFrame</key>
     276                                <string>51 15 772 816 0 0 1920 1178 </string>
     277                        </dict>
     278                </dict>
     279                <dict>
     280                        <key>Content</key>
     281                        <dict>
     282                                <key>PBXProjectModuleGUID</key>
    323283                                <string>E15464560D5EB73F00C836EC</string>
    324284                                <key>PBXProjectModuleLabel</key>
     
    335295                                                <integer>0</integer>
    336296                                                <key>bookmark</key>
    337                                                 <string>E15464740D5EB8FF00C836EC</string>
     297                                                <string>E15465160D5ECA7400C836EC</string>
    338298                                                <key>history</key>
    339299                                                <array>
    340                                                         <string>E15464530D5EB71D00C836EC</string>
     300                                                        <string>E15464F60D5EC7A300C836EC</string>
    341301                                                </array>
    342302                                        </dict>
     
    357317                        </dict>
    358318                </dict>
     319                <dict>
     320                        <key>Content</key>
     321                        <dict>
     322                                <key>PBXProjectModuleGUID</key>
     323                                <string>E15464F80D5EC7A300C836EC</string>
     324                                <key>PBXProjectModuleLabel</key>
     325                                <string>ICeCoffEE.h</string>
     326                                <key>PBXSplitModuleInNavigatorKey</key>
     327                                <dict>
     328                                        <key>Split0</key>
     329                                        <dict>
     330                                                <key>PBXProjectModuleGUID</key>
     331                                                <string>E15464F90D5EC7A300C836EC</string>
     332                                                <key>PBXProjectModuleLabel</key>
     333                                                <string>ICeCoffEE.h</string>
     334                                                <key>_historyCapacity</key>
     335                                                <integer>0</integer>
     336                                                <key>bookmark</key>
     337                                                <string>E15465170D5ECA7400C836EC</string>
     338                                                <key>history</key>
     339                                                <array>
     340                                                        <string>E15464F00D5EC77900C836EC</string>
     341                                                </array>
     342                                        </dict>
     343                                        <key>SplitCount</key>
     344                                        <string>1</string>
     345                                </dict>
     346                                <key>StatusBarVisibility</key>
     347                                <false/>
     348                        </dict>
     349                        <key>Geometry</key>
     350                        <dict>
     351                                <key>Frame</key>
     352                                <string>{{0, -1}, {813, 726}}</string>
     353                                <key>PBXModuleWindowStatusBarHidden2</key>
     354                                <true/>
     355                                <key>RubberWindowFrame</key>
     356                                <string>21 33 813 746 0 0 1920 1178 </string>
     357                        </dict>
     358                </dict>
    359359        </array>
    360360        <key>PerspectiveWidths</key>
     
    389389                                        <array>
    390390                                                <dict>
     391                                                        <key>BecomeActive</key>
     392                                                        <true/>
    391393                                                        <key>ContentConfiguration</key>
    392394                                                        <dict>
     
    429431                                                                        <array>
    430432                                                                                <array>
     433                                                                                        <integer>43</integer>
     434                                                                                        <integer>42</integer>
    431435                                                                                        <integer>0</integer>
    432436                                                                                </array>
    433437                                                                        </array>
    434438                                                                        <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
    435                                                                         <string>{{0, 0}, {298, 621}}</string>
     439                                                                        <string>{{0, 501}, {298, 621}}</string>
    436440                                                                </dict>
    437441                                                                <key>PBXTopSmartGroupGIDs</key>
     
    451455                                                                        <real>276</real>
    452456                                                                </array>
     457                                                                <key>RubberWindowFrame</key>
     458                                                                <string>1594 468 315 707 0 0 1920 1178 </string>
    453459                                                        </dict>
    454460                                                        <key>Module</key>
     
    456462                                                </dict>
    457463                                                <dict>
    458                                                         <key>BecomeActive</key>
    459                                                         <true/>
    460464                                                        <key>ContentConfiguration</key>
    461465                                                        <dict>
     
    487491                                                                        <array>
    488492                                                                                <string>1C37FBAC04509CD000000102</string>
     493                                                                                <string>E154648E0D5EBC2400C836EC</string>
     494                                                                                <string>E154648F0D5EBC2400C836EC</string>
    489495                                                                                <string>E15463EA0D5E9A3400C836EC</string>
    490496                                                                                <string>E15463EB0D5E9A3400C836EC</string>
     497                                                                                <string>E15464900D5EBC2400C836EC</string>
    491498                                                                                <string>1C37FAAC04509CD000000102</string>
    492499                                                                        </array>
     
    494501                                                                        <array>
    495502                                                                                <array>
     503                                                                                        <integer>13</integer>
    496504                                                                                        <integer>0</integer>
    497505                                                                                </array>
     
    514522                                                                        <real>298</real>
    515523                                                                </array>
    516                                                                 <key>RubberWindowFrame</key>
    517                                                                 <string>1594 468 315 707 0 0 1920 1178 </string>
    518524                                                        </dict>
    519525                                                        <key>Module</key>
     
    628634        <key>WindowOrderList</key>
    629635        <array>
    630                 <string>E15464670D5EB85000C836EC</string>
     636                <string>E15465180D5ECA7400C836EC</string>
     637                <string>E15464F20D5EC7A300C836EC</string>
     638                <string>E15464EC0D5EC56400C836EC</string>
     639                <string>1C335F2C07B51CD20023D4EE</string>
    631640                <string>E15464250D5E9F1000C836EC</string>
    632641                <string>E15464280D5E9F1000C836EC</string>
     
    634643                <string>E154642A0D5E9F1000C836EC</string>
    635644                <string>1C530D5B069F1CE1000CFCEE</string>
     645                <string>1C530D57069F1CE1000CFCEE</string>
     646                <string>E15464F80D5EC7A300C836EC</string>
    636647                <string>1C530D54069F1CE1000CFCEE</string>
    637                 <string>1C530D57069F1CE1000CFCEE</string>
    638648                <string>1C530D52069F1CE1000CFCEE</string>
     649                <string>/Users/nicholas/Documents/Development/ICeCoffEE/ICeCoffEE/ICeCoffEE.xcodeproj</string>
     650                <string>E15464670D5EB85000C836EC</string>
    639651                <string>E15464560D5EB73F00C836EC</string>
     652                <string>E15464590D5EB73F00C836EC</string>
    640653                <string>E154645C0D5EB73F00C836EC</string>
    641                 <string>E154646E0D5EB8FF00C836EC</string>
    642                 <string>E15464590D5EB73F00C836EC</string>
    643                 <string>/Users/nicholas/Documents/Development/ICeCoffEE/ICeCoffEE/ICeCoffEE.xcodeproj</string>
    644654        </array>
    645655        <key>WindowString</key>
     
    722732                                                                </array>
    723733                                                                <key>RubberWindowFrame</key>
    724                                                                 <string>423 589 744 409 0 0 1680 1028 </string>
     734                                                                <string>531 731 744 409 0 0 1920 1178 </string>
    725735                                                        </dict>
    726736                                                        <key>Module</key>
     
    730740                                                </dict>
    731741                                                <dict>
    732                                                         <key>BecomeActive</key>
    733                                                         <true/>
    734742                                                        <key>ContentConfiguration</key>
    735743                                                        <dict>
     
    744752                                                                <string>{{267, 0}, {477, 368}}</string>
    745753                                                                <key>RubberWindowFrame</key>
    746                                                                 <string>423 589 744 409 0 0 1680 1028 </string>
     754                                                                <string>531 731 744 409 0 0 1920 1178 </string>
    747755                                                        </dict>
    748756                                                        <key>Module</key>
     
    768776                        <array>
    769777                                <string>1C335F2C07B51CD20023D4EE</string>
    770                                 <string>1C335F2D07B51CD20023D4EE</string>
    771                                 <string>1C335F2E07B51CD20023D4EE</string>
     778                                <string>E15464950D5EBD0200C836EC</string>
    772779                                <string>1CE0B1FE06471DED0097A5F4</string>
    773780                                <string>1CA1AED706398EBD00589147</string>
     
    776783                        <string>xcode.toolbar.config.defaultV3</string>
    777784                        <key>WindowString</key>
    778                         <string>423 589 744 409 0 0 1680 1028 </string>
     785                        <string>531 731 744 409 0 0 1920 1178 </string>
    779786                        <key>WindowToolGUID</key>
    780787                        <string>1C335F2C07B51CD20023D4EE</string>
    781788                        <key>WindowToolIsVisible</key>
    782                         <true/>
     789                        <false/>
    783790                </dict>
    784791                <dict>
     
    875882                        <string>1C530D52069F1CE1000CFCEE</string>
    876883                        <key>WindowToolIsVisible</key>
    877                         <false/>
     884                        <true/>
    878885                </dict>
    879886                <dict>
     
    958965                                                                        <string>{{361, 0}, {446, 278}}</string>
    959966                                                                        <key>RubberWindowFrame</key>
    960                                                                         <string>295 237 807 570 0 0 1920 1178 </string>
     967                                                                        <string>825 127 807 570 0 0 1920 1178 </string>
    961968                                                                </dict>
    962969                                                                <key>RubberWindowFrame</key>
    963                                                                 <string>295 237 807 570 0 0 1920 1178 </string>
     970                                                                <string>825 127 807 570 0 0 1920 1178 </string>
    964971                                                        </dict>
    965972                                                        <key>Module</key>
     
    9951002                        <string>xcode.toolbar.config.debugV3</string>
    9961003                        <key>WindowString</key>
    997                         <string>295 237 807 570 0 0 1920 1178 </string>
     1004                        <string>825 127 807 570 0 0 1920 1178 </string>
    9981005                        <key>WindowToolGUID</key>
    9991006                        <string>1C530D54069F1CE1000CFCEE</string>
    10001007                        <key>WindowToolIsVisible</key>
    1001                         <false/>
     1008                        <true/>
    10021009                </dict>
    10031010                <dict>
     
    12981305                        <string>E15464670D5EB85000C836EC</string>
    12991306                        <key>WindowToolIsVisible</key>
    1300                         <false/>
     1307                        <true/>
    13011308                </dict>
    13021309                <dict>
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.xcodeproj/nicholas.pbxuser

    r373 r375  
    101101                                PBXFileTableDataSourceColumnWidthsKey = (
    102102                                        20,
    103                                         359.8799,
    104                                         202.2085,
     103                                        359,
     104                                        69,
    105105                                );
    106106                                PBXFileTableDataSourceColumnsKey = (
     
    127127                                PBXFileTableDataSourceColumnWidthsKey = (
    128128                                        20,
    129                                         314,
     129                                        237,
    130130                                        20,
    131131                                        49,
     
    792792                        E15464730D5EB8FF00C836EC /* PBXTextBookmark */ = E15464730D5EB8FF00C836EC /* PBXTextBookmark */;
    793793                        E15464740D5EB8FF00C836EC /* PBXTextBookmark */ = E15464740D5EB8FF00C836EC /* PBXTextBookmark */;
     794                        E154647C0D5EBA5F00C836EC /* PBXTextBookmark */ = E154647C0D5EBA5F00C836EC /* PBXTextBookmark */;
     795                        E154647D0D5EBA5F00C836EC /* PBXTextBookmark */ = E154647D0D5EBA5F00C836EC /* PBXTextBookmark */;
     796                        E154647E0D5EBA5F00C836EC /* PBXTextBookmark */ = E154647E0D5EBA5F00C836EC /* PBXTextBookmark */;
     797                        E154647F0D5EBB7600C836EC /* PBXTextBookmark */ = E154647F0D5EBB7600C836EC /* PBXTextBookmark */;
     798                        E15464800D5EBB7600C836EC /* PBXTextBookmark */ = E15464800D5EBB7600C836EC /* PBXTextBookmark */;
     799                        E15464810D5EBB7600C836EC /* PBXTextBookmark */ = E15464810D5EBB7600C836EC /* PBXTextBookmark */;
     800                        E15464910D5EBC2400C836EC /* PBXTextBookmark */ = E15464910D5EBC2400C836EC /* PBXTextBookmark */;
     801                        E15464920D5EBC2400C836EC /* PBXTextBookmark */ = E15464920D5EBC2400C836EC /* PBXTextBookmark */;
     802                        E15464930D5EBC2400C836EC /* PBXTextBookmark */ = E15464930D5EBC2400C836EC /* PBXTextBookmark */;
     803                        E15464960D5EBDEA00C836EC /* PBXTextBookmark */ = E15464960D5EBDEA00C836EC /* PBXTextBookmark */;
     804                        E15464970D5EBDEA00C836EC /* PBXTextBookmark */ = E15464970D5EBDEA00C836EC /* PBXTextBookmark */;
     805                        E15464980D5EBDEA00C836EC /* PBXTextBookmark */ = E15464980D5EBDEA00C836EC /* PBXTextBookmark */;
     806                        E154649A0D5EBE0800C836EC /* PBXTextBookmark */ = E154649A0D5EBE0800C836EC /* PBXTextBookmark */;
     807                        E154649B0D5EBE0800C836EC /* PBXTextBookmark */ = E154649B0D5EBE0800C836EC /* PBXTextBookmark */;
     808                        E154649C0D5EBE0800C836EC /* PBXTextBookmark */ = E154649C0D5EBE0800C836EC /* PBXTextBookmark */;
     809                        E154649F0D5EBE3B00C836EC /* PBXTextBookmark */ = E154649F0D5EBE3B00C836EC /* PBXTextBookmark */;
     810                        E15464A00D5EBE3B00C836EC /* PBXTextBookmark */ = E15464A00D5EBE3B00C836EC /* PBXTextBookmark */;
     811                        E15464A10D5EBE3B00C836EC /* PBXTextBookmark */ = E15464A10D5EBE3B00C836EC /* PBXTextBookmark */;
     812                        E15464A20D5EBE5300C836EC /* PBXTextBookmark */ = E15464A20D5EBE5300C836EC /* PBXTextBookmark */;
     813                        E15464A30D5EBE5300C836EC /* PBXTextBookmark */ = E15464A30D5EBE5300C836EC /* PBXTextBookmark */;
     814                        E15464A40D5EBE5300C836EC /* PBXTextBookmark */ = E15464A40D5EBE5300C836EC /* PBXTextBookmark */;
     815                        E15464A60D5EBE6900C836EC /* PBXTextBookmark */ = E15464A60D5EBE6900C836EC /* PBXTextBookmark */;
     816                        E15464A70D5EBE6900C836EC /* PBXTextBookmark */ = E15464A70D5EBE6900C836EC /* PBXTextBookmark */;
     817                        E15464A80D5EBE6900C836EC /* PBXTextBookmark */ = E15464A80D5EBE6900C836EC /* PBXTextBookmark */;
     818                        E15464AB0D5EBFEA00C836EC /* PBXTextBookmark */ = E15464AB0D5EBFEA00C836EC /* PBXTextBookmark */;
     819                        E15464AC0D5EBFEA00C836EC /* PBXTextBookmark */ = E15464AC0D5EBFEA00C836EC /* PBXTextBookmark */;
     820                        E15464AD0D5EBFEA00C836EC /* PBXTextBookmark */ = E15464AD0D5EBFEA00C836EC /* PBXTextBookmark */;
     821                        E15464AF0D5EC16300C836EC /* PBXTextBookmark */ = E15464AF0D5EC16300C836EC /* PBXTextBookmark */;
     822                        E15464B00D5EC16300C836EC /* PBXTextBookmark */ = E15464B00D5EC16300C836EC /* PBXTextBookmark */;
     823                        E15464B10D5EC16300C836EC /* PBXTextBookmark */ = E15464B10D5EC16300C836EC /* PBXTextBookmark */;
     824                        E15464B20D5EC19200C836EC /* PBXTextBookmark */ = E15464B20D5EC19200C836EC /* PBXTextBookmark */;
     825                        E15464B30D5EC19200C836EC /* PBXTextBookmark */ = E15464B30D5EC19200C836EC /* PBXTextBookmark */;
     826                        E15464B40D5EC19200C836EC /* PBXTextBookmark */ = E15464B40D5EC19200C836EC /* PBXTextBookmark */;
     827                        E15464B60D5EC19700C836EC /* PBXTextBookmark */ = E15464B60D5EC19700C836EC /* PBXTextBookmark */;
     828                        E15464B70D5EC19700C836EC /* PBXTextBookmark */ = E15464B70D5EC19700C836EC /* PBXTextBookmark */;
     829                        E15464B80D5EC19700C836EC /* PBXTextBookmark */ = E15464B80D5EC19700C836EC /* PBXTextBookmark */;
     830                        E15464BA0D5EC1B900C836EC /* PBXTextBookmark */ = E15464BA0D5EC1B900C836EC /* PBXTextBookmark */;
     831                        E15464BB0D5EC1B900C836EC /* PBXTextBookmark */ = E15464BB0D5EC1B900C836EC /* PBXTextBookmark */;
     832                        E15464BC0D5EC1B900C836EC /* PBXTextBookmark */ = E15464BC0D5EC1B900C836EC /* PBXTextBookmark */;
     833                        E15464BD0D5EC22C00C836EC /* PBXTextBookmark */ = E15464BD0D5EC22C00C836EC /* PBXTextBookmark */;
     834                        E15464BE0D5EC22C00C836EC /* PBXTextBookmark */ = E15464BE0D5EC22C00C836EC /* PBXTextBookmark */;
     835                        E15464BF0D5EC22C00C836EC /* PBXTextBookmark */ = E15464BF0D5EC22C00C836EC /* PBXTextBookmark */;
     836                        E15464C20D5EC23900C836EC /* PBXTextBookmark */ = E15464C20D5EC23900C836EC /* PBXTextBookmark */;
     837                        E15464C30D5EC23900C836EC /* PBXTextBookmark */ = E15464C30D5EC23900C836EC /* PBXTextBookmark */;
     838                        E15464C40D5EC23900C836EC /* PBXTextBookmark */ = E15464C40D5EC23900C836EC /* PBXTextBookmark */;
     839                        E15464C60D5EC23D00C836EC /* PBXTextBookmark */ = E15464C60D5EC23D00C836EC /* PBXTextBookmark */;
     840                        E15464C70D5EC23D00C836EC /* PBXTextBookmark */ = E15464C70D5EC23D00C836EC /* PBXTextBookmark */;
     841                        E15464C80D5EC23D00C836EC /* PBXTextBookmark */ = E15464C80D5EC23D00C836EC /* PBXTextBookmark */;
     842                        E15464CA0D5EC24F00C836EC /* PBXTextBookmark */ = E15464CA0D5EC24F00C836EC /* PBXTextBookmark */;
     843                        E15464CB0D5EC24F00C836EC /* PBXTextBookmark */ = E15464CB0D5EC24F00C836EC /* PBXTextBookmark */;
     844                        E15464CC0D5EC24F00C836EC /* PBXTextBookmark */ = E15464CC0D5EC24F00C836EC /* PBXTextBookmark */;
     845                        E15464CD0D5EC25F00C836EC /* PBXTextBookmark */ = E15464CD0D5EC25F00C836EC /* PBXTextBookmark */;
     846                        E15464CE0D5EC25F00C836EC /* PBXTextBookmark */ = E15464CE0D5EC25F00C836EC /* PBXTextBookmark */;
     847                        E15464CF0D5EC25F00C836EC /* PBXTextBookmark */ = E15464CF0D5EC25F00C836EC /* PBXTextBookmark */;
     848                        E15464D20D5EC2B500C836EC /* PBXTextBookmark */ = E15464D20D5EC2B500C836EC /* PBXTextBookmark */;
     849                        E15464D30D5EC2B500C836EC /* PBXTextBookmark */ = E15464D30D5EC2B500C836EC /* PBXTextBookmark */;
     850                        E15464D40D5EC2B500C836EC /* PBXTextBookmark */ = E15464D40D5EC2B500C836EC /* PBXTextBookmark */;
     851                        E15464D70D5EC3E400C836EC /* PBXTextBookmark */ = E15464D70D5EC3E400C836EC /* PBXTextBookmark */;
     852                        E15464D80D5EC3E400C836EC /* PBXTextBookmark */ = E15464D80D5EC3E400C836EC /* PBXTextBookmark */;
     853                        E15464D90D5EC3E400C836EC /* PBXTextBookmark */ = E15464D90D5EC3E400C836EC /* PBXTextBookmark */;
     854                        E15464DA0D5EC3E400C836EC /* PBXTextBookmark */ = E15464DA0D5EC3E400C836EC /* PBXTextBookmark */;
     855                        E15464DB0D5EC3E400C836EC /* PBXTextBookmark */ = E15464DB0D5EC3E400C836EC /* PBXTextBookmark */;
     856                        E15464DE0D5EC40400C836EC /* PBXTextBookmark */ = E15464DE0D5EC40400C836EC /* PBXTextBookmark */;
     857                        E15464DF0D5EC40400C836EC /* PBXTextBookmark */ = E15464DF0D5EC40400C836EC /* PBXTextBookmark */;
     858                        E15464E00D5EC40400C836EC /* PBXTextBookmark */ = E15464E00D5EC40400C836EC /* PBXTextBookmark */;
     859                        E15464E20D5EC43000C836EC /* PBXTextBookmark */ = E15464E20D5EC43000C836EC /* PBXTextBookmark */;
     860                        E15464E30D5EC43000C836EC /* PBXTextBookmark */ = E15464E30D5EC43000C836EC /* PBXTextBookmark */;
     861                        E15464E40D5EC43000C836EC /* PBXTextBookmark */ = E15464E40D5EC43000C836EC /* PBXTextBookmark */;
     862                        E15464E80D5EC56400C836EC /* PBXTextBookmark */ = E15464E80D5EC56400C836EC /* PBXTextBookmark */;
     863                        E15464E90D5EC56400C836EC /* PBXTextBookmark */ = E15464E90D5EC56400C836EC /* PBXTextBookmark */;
     864                        E15464EA0D5EC56400C836EC /* PBXTextBookmark */ = E15464EA0D5EC56400C836EC /* PBXTextBookmark */;
     865                        E15464EB0D5EC56400C836EC /* PBXTextBookmark */ = E15464EB0D5EC56400C836EC /* PBXTextBookmark */;
     866                        E15464F00D5EC77900C836EC /* PBXBookmark */ = E15464F00D5EC77900C836EC /* PBXBookmark */;
     867                        E15464F40D5EC7A300C836EC /* PBXTextBookmark */ = E15464F40D5EC7A300C836EC /* PBXTextBookmark */;
     868                        E15464F50D5EC7A300C836EC /* PBXTextBookmark */ = E15464F50D5EC7A300C836EC /* PBXTextBookmark */;
     869                        E15464F60D5EC7A300C836EC /* PBXTextBookmark */ = E15464F60D5EC7A300C836EC /* PBXTextBookmark */;
     870                        E15464F70D5EC7A300C836EC /* PBXTextBookmark */ = E15464F70D5EC7A300C836EC /* PBXTextBookmark */;
     871                        E15464FA0D5EC7A300C836EC /* PBXTextBookmark */ = E15464FA0D5EC7A300C836EC /* PBXTextBookmark */;
     872                        E15464FB0D5EC7A300C836EC /* PBXTextBookmark */ = E15464FB0D5EC7A300C836EC /* PBXTextBookmark */;
     873                        E15464FC0D5EC7A300C836EC /* PBXTextBookmark */ = E15464FC0D5EC7A300C836EC /* PBXTextBookmark */;
     874                        E15465010D5EC80700C836EC /* PBXTextBookmark */ = E15465010D5EC80700C836EC /* PBXTextBookmark */;
     875                        E15465020D5EC80700C836EC /* PBXTextBookmark */ = E15465020D5EC80700C836EC /* PBXTextBookmark */;
     876                        E15465030D5EC80700C836EC /* PBXTextBookmark */ = E15465030D5EC80700C836EC /* PBXTextBookmark */;
     877                        E15465040D5EC80700C836EC /* PBXTextBookmark */ = E15465040D5EC80700C836EC /* PBXTextBookmark */;
     878                        E15465050D5EC80700C836EC /* PBXTextBookmark */ = E15465050D5EC80700C836EC /* PBXTextBookmark */;
     879                        E15465060D5EC80700C836EC /* PBXTextBookmark */ = E15465060D5EC80700C836EC /* PBXTextBookmark */;
     880                        E15465090D5EC8F500C836EC /* PBXTextBookmark */ = E15465090D5EC8F500C836EC /* PBXTextBookmark */;
     881                        E154650A0D5EC8F500C836EC /* PBXTextBookmark */ = E154650A0D5EC8F500C836EC /* PBXTextBookmark */;
     882                        E154650B0D5EC8F500C836EC /* PBXTextBookmark */ = E154650B0D5EC8F500C836EC /* PBXTextBookmark */;
     883                        E154650C0D5EC8F500C836EC /* PBXTextBookmark */ = E154650C0D5EC8F500C836EC /* PBXTextBookmark */;
     884                        E154650D0D5EC8F500C836EC /* PBXTextBookmark */ = E154650D0D5EC8F500C836EC /* PBXTextBookmark */;
     885                        E15465140D5ECA7400C836EC /* PBXTextBookmark */ = E15465140D5ECA7400C836EC /* PBXTextBookmark */;
     886                        E15465150D5ECA7400C836EC /* PBXTextBookmark */ = E15465150D5ECA7400C836EC /* PBXTextBookmark */;
     887                        E15465160D5ECA7400C836EC /* PBXTextBookmark */ = E15465160D5ECA7400C836EC /* PBXTextBookmark */;
     888                        E15465170D5ECA7400C836EC /* PBXTextBookmark */ = E15465170D5ECA7400C836EC /* PBXTextBookmark */;
    794889                        E1887EC50C6F975A00F6CE00 = E1887EC50C6F975A00F6CE00 /* PBXTextBookmark */;
    795890                        E1887EC60C6F975A00F6CE00 = E1887EC60C6F975A00F6CE00 /* PBXTextBookmark */;
     
    10371132                ignoreCount = 0;
    10381133                location = Foundation;
    1039                 modificationTime = 224311242.256122;
     1134                modificationTime = 224314422.459999;
    10401135                state = 0;
    10411136                symbolName = "-[NSException raise]";
     
    10511146                hitCount = 0;
    10521147                ignoreCount = 0;
    1053                 modificationTime = 224311242.010979;
     1148                modificationTime = 224314422.314183;
    10541149                state = 2;
    10551150                symbolName = _NSAutoreleaseNoPool;
     
    10911186                hitCount = 0;
    10921187                ignoreCount = 0;
    1093                 modificationTime = 224311242.011198;
     1188                modificationTime = 224314422.314388;
    10941189                state = 2;
    10951190                symbolName = "-[NSObject setSelInProgress:]";
     
    11061201                ignoreCount = 0;
    11071202                location = "";
    1108                 modificationTime = 224311242.011413;
     1203                modificationTime = 224314422.314587;
    11091204                state = 2;
    11101205                symbolName = "-[TermView setSelInProgress:]";
     
    11201215                hitCount = 0;
    11211216                ignoreCount = 0;
    1122                 modificationTime = 224311242.011625;
     1217                modificationTime = 224314422.31479;
    11231218                state = 2;
    11241219                symbolName = "-[NSWindow sendEvent:]";
     
    11351230                ignoreCount = 0;
    11361231                location = AppKit;
    1137                 modificationTime = 224311242.011842;
     1232                modificationTime = 224314422.314994;
    11381233                state = 2;
    11391234                symbolName = "-[_NSThemeWidget mouseDown:]";
     
    11501245                ignoreCount = 0;
    11511246                location = "";
    1152                 modificationTime = 224311242.012053;
     1247                modificationTime = 224314422.315313;
    11531248                state = 2;
    11541249                symbolName = "-[NSControl mouseDown:]+32";
     
    11641259                hitCount = 0;
    11651260                ignoreCount = 0;
    1166                 modificationTime = 224311242.012268;
     1261                modificationTime = 224314422.315516;
    11671262                state = 2;
    11681263                symbolName = 0x937da530;
     
    11791274                ignoreCount = 0;
    11801275                location = "";
    1181                 modificationTime = 224311242.012492;
     1276                modificationTime = 224314422.315722;
    11821277                state = 2;
    11831278                symbolName = "-[NSControl mouseDown:]+160";
     
    12791374        E14343B303DB4CF200050002 /* ICeCoffEE.h */ = {
    12801375                uiCtxt = {
    1281                         sepNavIntBoundsRect = "{{0, 0}, {813, 517}}";
    1282                         sepNavSelRange = "{500, 20}";
     1376                        sepNavIntBoundsRect = "{{0, 0}, {754, 687}}";
     1377                        sepNavSelRange = "{1327, 0}";
     1378                        sepNavVisRange = "{0, 1871}";
    12831379                        sepNavVisRect = "{{0, 0}, {813, 376}}";
    12841380                        sepNavWindowFrame = "{{21, 33}, {813, 746}}";
     
    12871383        E14343B403DB4CF200050002 /* ICeCoffEE.m */ = {
    12881384                uiCtxt = {
    1289                         sepNavIntBoundsRect = "{{0, 0}, {787, 5192}}";
    1290                         sepNavSelRange = "{331, 9}";
    1291                         sepNavVisRange = "{0, 796}";
     1385                        sepNavIntBoundsRect = "{{0, 0}, {754, 5533}}";
     1386                        sepNavSelRange = "{2466, 38}";
     1387                        sepNavVisRange = "{1567, 2284}";
    12921388                        sepNavVisRect = "{{0, 2112}, {774, 708}}";
    1293                         sepNavWindowFrame = "{{291, 130}, {813, 746}}";
     1389                        sepNavWindowFrame = "{{836, 127}, {813, 746}}";
    12941390                };
    12951391        };
     
    13371433        E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */ = {
    13381434                uiCtxt = {
    1339                         sepNavIntBoundsRect = "{{0, 0}, {727, 2387}}";
    1340                         sepNavSelRange = "{7306, 0}";
    1341                         sepNavVisRange = "{4946, 3549}";
     1435                        sepNavIntBoundsRect = "{{0, 0}, {727, 2420}}";
     1436                        sepNavSelRange = "{3893, 0}";
     1437                        sepNavVisRange = "{1920, 2850}";
    13421438                        sepNavVisRect = "{{0, 110}, {733, 778}}";
    13431439                        sepNavWindowFrame = "{{526, 80}, {772, 816}}";
     
    13571453                );
    13581454                autoAttachOnCrash = 1;
    1359                 breakpointsEnabled = 0;
     1455                breakpointsEnabled = 1;
    13601456                configStateDict = {
    13611457                        "PBXLSLaunchAction-0" = {
     
    13931489                uiCtxt = {
    13941490                        sepNavIntBoundsRect = "{{0, 0}, {713, 1210}}";
    1395                         sepNavSelRange = "{2360, 0}";
    1396                         sepNavVisRange = "{1136, 1855}";
     1491                        sepNavSelRange = "{222, 0}";
     1492                        sepNavVisRange = "{0, 2049}";
    13971493                        sepNavVisRect = "{{0, 154}, {733, 778}}";
    13981494                        sepNavWindowFrame = "{{835, 79}, {772, 816}}";
     
    14011497        E14E2BC20C2CC28500AC18D0 /* urls.plist */ = {
    14021498                uiCtxt = {
    1403                         sepNavIntBoundsRect = "{{0, 0}, {713, 803}}";
    1404                         sepNavSelRange = "{1022, 0}";
    1405                         sepNavVisRange = "{0, 1543}";
     1499                        sepNavIntBoundsRect = "{{0, 0}, {713, 858}}";
     1500                        sepNavSelRange = "{1441, 0}";
     1501                        sepNavVisRange = "{0, 1603}";
    14061502                        sepNavVisRect = "{{0, 0}, {733, 778}}";
    14071503                        sepNavWindowFrame = "{{913, 67}, {772, 816}}";
     
    14331529                name = "ICeCoffEEParser.m: ICCF_icInst";
    14341530                rLen = 0;
    1435                 rLoc = 2840;
     1531                rLoc = 2374;
    14361532                rType = 0;
    14371533                vrLen = 2802;
     
    14431539                name = "ICeCoffEEParser.m: 70";
    14441540                rLen = 0;
    1445                 rLoc = 2839;
     1541                rLoc = 2373;
    14461542                rType = 0;
    14471543                vrLen = 2519;
     
    17361832                name = "ICeCoffEEParser.m: 34";
    17371833                rLen = 0;
    1738                 rLoc = 1199;
     1834                rLoc = 733;
    17391835                rType = 0;
    17401836                vrLen = 2514;
     
    17971893                name = "TestParser.m: 85";
    17981894                rLen = 0;
    1799                 rLoc = 2545;
     1895                rLoc = 2613;
    18001896                rType = 0;
    18011897                vrLen = 2285;
     
    18171913                name = "ICeCoffEEParser.m: 191";
    18181914                rLen = 0;
    1819                 rLoc = 8352;
     1915                rLoc = 7917;
    18201916                rType = 0;
    18211917                vrLen = 867;
     
    18271923                name = "ICeCoffEEParser.m: 190";
    18281924                rLen = 0;
    1829                 rLoc = 8351;
     1925                rLoc = 7917;
    18301926                rType = 0;
    18311927                vrLen = 2908;
     
    19132009                comments = "error: invalid initializer";
    19142010                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
    1915                 rLen = 1;
    1916                 rLoc = 74;
     2011                rLen = 0;
     2012                rLoc = 76;
    19172013                rType = 1;
    19182014        };
     
    19222018                name = "TestParser.m: 39";
    19232019                rLen = 0;
    1924                 rLoc = 1090;
     2020                rLoc = 1130;
    19252021                rType = 0;
    19262022                vrLen = 2209;
     
    19422038                name = "ICeCoffEEParser.m: 190";
    19432039                rLen = 0;
    1944                 rLoc = 8351;
     2040                rLoc = 7917;
    19452041                rType = 0;
    19462042                vrLen = 2995;
     
    19922088                name = "TestParser.m: 50";
    19932089                rLen = 0;
    1994                 rLoc = 1324;
     2090                rLoc = 1364;
    19952091                rType = 0;
    19962092                vrLen = 2006;
     
    20122108                name = "ICeCoffEEParser.m: 190";
    20132109                rLen = 0;
    2014                 rLoc = 8351;
     2110                rLoc = 7917;
    20152111                rType = 0;
    20162112                vrLen = 2995;
     
    20622158                name = "TestParser.m: 103";
    20632159                rLen = 0;
    2064                 rLoc = 2938;
     2160                rLoc = 3063;
    20652161                rType = 0;
    20662162                vrLen = 1995;
     
    20822178                name = "ICeCoffEEParser.m: 190";
    20832179                rLen = 0;
    2084                 rLoc = 8351;
     2180                rLoc = 7917;
    20852181                rType = 0;
    20862182                vrLen = 2995;
     
    21322228                name = "ICeCoffEEParser.m: 190";
    21332229                rLen = 0;
    2134                 rLoc = 8351;
     2230                rLoc = 7917;
    21352231                rType = 0;
    21362232                vrLen = 2995;
     
    21522248                name = "TestParser.m: 103";
    21532249                rLen = 0;
    2154                 rLoc = 2938;
     2250                rLoc = 3063;
    21552251                rType = 0;
    21562252                vrLen = 1995;
     
    22302326                name = "ICeCoffEEParser.m: 178";
    22312327                rLen = 0;
    2232                 rLoc = 7758;
     2328                rLoc = 7182;
    22332329                rType = 0;
    22342330                vrLen = 3062;
     
    22542350                name = "TestParser.m: 79";
    22552351                rLen = 0;
    2256                 rLoc = 2360;
     2352                rLoc = 2433;
    22572353                rType = 0;
    22582354                vrLen = 2028;
     
    22642360                name = "ICeCoffEEParser.m: 178";
    22652361                rLen = 0;
    2266                 rLoc = 7758;
     2362                rLoc = 7182;
    22672363                rType = 0;
    22682364                vrLen = 3413;
     
    22842380                name = "TestParser.m: 79";
    22852381                rLen = 0;
    2286                 rLoc = 2360;
     2382                rLoc = 2433;
    22872383                rType = 0;
    22882384                vrLen = 1855;
     
    23172413                name = "TestParser.m: 79";
    23182414                rLen = 0;
    2319                 rLoc = 2360;
     2415                rLoc = 2433;
    23202416                rType = 0;
    23212417                vrLen = 1855;
     
    23272423                name = "ICeCoffEEParser.m: 170";
    23282424                rLen = 0;
    2329                 rLoc = 7306;
     2425                rLoc = 6742;
    23302426                rType = 0;
    23312427                vrLen = 3549;
    23322428                vrLoc = 4946;
     2429        };
     2430        E154647C0D5EBA5F00C836EC /* PBXTextBookmark */ = {
     2431                isa = PBXTextBookmark;
     2432                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2433                name = "ICeCoffEEParser.m: 171";
     2434                rLen = 0;
     2435                rLoc = 6743;
     2436                rType = 0;
     2437                vrLen = 3438;
     2438                vrLoc = 4946;
     2439        };
     2440        E154647D0D5EBA5F00C836EC /* PBXTextBookmark */ = {
     2441                isa = PBXTextBookmark;
     2442                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2443                name = "TestParser.m: 84";
     2444                rLen = 0;
     2445                rLoc = 2625;
     2446                rType = 0;
     2447                vrLen = 1855;
     2448                vrLoc = 1136;
     2449        };
     2450        E154647E0D5EBA5F00C836EC /* PBXTextBookmark */ = {
     2451                isa = PBXTextBookmark;
     2452                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2453                name = "urls.plist: 31";
     2454                rLen = 0;
     2455                rLoc = 1022;
     2456                rType = 0;
     2457                vrLen = 1543;
     2458                vrLoc = 0;
     2459        };
     2460        E154647F0D5EBB7600C836EC /* PBXTextBookmark */ = {
     2461                isa = PBXTextBookmark;
     2462                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2463                name = "TestParser.m: 106";
     2464                rLen = 0;
     2465                rLoc = 3126;
     2466                rType = 0;
     2467                vrLen = 1968;
     2468                vrLoc = 1046;
     2469        };
     2470        E15464800D5EBB7600C836EC /* PBXTextBookmark */ = {
     2471                isa = PBXTextBookmark;
     2472                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2473                name = "ICeCoffEEParser.m: 152";
     2474                rLen = 0;
     2475                rLoc = 5914;
     2476                rType = 0;
     2477                vrLen = 3438;
     2478                vrLoc = 4946;
     2479        };
     2480        E15464810D5EBB7600C836EC /* PBXTextBookmark */ = {
     2481                isa = PBXTextBookmark;
     2482                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2483                name = "urls.plist: 31";
     2484                rLen = 0;
     2485                rLoc = 1022;
     2486                rType = 0;
     2487                vrLen = 1543;
     2488                vrLoc = 0;
     2489        };
     2490        E15464910D5EBC2400C836EC /* PBXTextBookmark */ = {
     2491                isa = PBXTextBookmark;
     2492                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2493                name = "TestParser.m: 74";
     2494                rLen = 0;
     2495                rLoc = 2319;
     2496                rType = 0;
     2497                vrLen = 1968;
     2498                vrLoc = 1046;
     2499        };
     2500        E15464920D5EBC2400C836EC /* PBXTextBookmark */ = {
     2501                isa = PBXTextBookmark;
     2502                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2503                name = "ICeCoffEEParser.m: 152";
     2504                rLen = 0;
     2505                rLoc = 5914;
     2506                rType = 0;
     2507                vrLen = 3438;
     2508                vrLoc = 4946;
     2509        };
     2510        E15464930D5EBC2400C836EC /* PBXTextBookmark */ = {
     2511                isa = PBXTextBookmark;
     2512                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2513                name = "urls.plist: 31";
     2514                rLen = 0;
     2515                rLoc = 1022;
     2516                rType = 0;
     2517                vrLen = 1543;
     2518                vrLoc = 0;
     2519        };
     2520        E15464960D5EBDEA00C836EC /* PBXTextBookmark */ = {
     2521                isa = PBXTextBookmark;
     2522                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2523                name = "TestParser.m: 69";
     2524                rLen = 0;
     2525                rLoc = 2181;
     2526                rType = 0;
     2527                vrLen = 2077;
     2528                vrLoc = 1046;
     2529        };
     2530        E15464970D5EBDEA00C836EC /* PBXTextBookmark */ = {
     2531                isa = PBXTextBookmark;
     2532                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2533                name = "ICeCoffEEParser.m: 132";
     2534                rLen = 0;
     2535                rLoc = 4669;
     2536                rType = 0;
     2537                vrLen = 3495;
     2538                vrLoc = 4947;
     2539        };
     2540        E15464980D5EBDEA00C836EC /* PBXTextBookmark */ = {
     2541                isa = PBXTextBookmark;
     2542                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2543                name = "urls.plist: 31";
     2544                rLen = 0;
     2545                rLoc = 1022;
     2546                rType = 0;
     2547                vrLen = 1543;
     2548                vrLoc = 0;
     2549        };
     2550        E154649A0D5EBE0800C836EC /* PBXTextBookmark */ = {
     2551                isa = PBXTextBookmark;
     2552                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2553                name = "TestParser.m: 68";
     2554                rLen = 0;
     2555                rLoc = 2049;
     2556                rType = 0;
     2557                vrLen = 2101;
     2558                vrLoc = 1046;
     2559        };
     2560        E154649B0D5EBE0800C836EC /* PBXTextBookmark */ = {
     2561                isa = PBXTextBookmark;
     2562                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2563                name = "ICeCoffEEParser.m: 132";
     2564                rLen = 0;
     2565                rLoc = 4669;
     2566                rType = 0;
     2567                vrLen = 3495;
     2568                vrLoc = 4947;
     2569        };
     2570        E154649C0D5EBE0800C836EC /* PBXTextBookmark */ = {
     2571                isa = PBXTextBookmark;
     2572                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2573                name = "urls.plist: 31";
     2574                rLen = 0;
     2575                rLoc = 1022;
     2576                rType = 0;
     2577                vrLen = 1543;
     2578                vrLoc = 0;
     2579        };
     2580        E154649F0D5EBE3B00C836EC /* PBXTextBookmark */ = {
     2581                isa = PBXTextBookmark;
     2582                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2583                name = "TestParser.m: 74";
     2584                rLen = 6;
     2585                rLoc = 2314;
     2586                rType = 0;
     2587                vrLen = 2049;
     2588                vrLoc = 1046;
     2589        };
     2590        E15464A00D5EBE3B00C836EC /* PBXTextBookmark */ = {
     2591                isa = PBXTextBookmark;
     2592                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2593                name = "ICeCoffEEParser.m: 132";
     2594                rLen = 0;
     2595                rLoc = 4669;
     2596                rType = 0;
     2597                vrLen = 3495;
     2598                vrLoc = 4947;
     2599        };
     2600        E15464A10D5EBE3B00C836EC /* PBXTextBookmark */ = {
     2601                isa = PBXTextBookmark;
     2602                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2603                name = "urls.plist: 31";
     2604                rLen = 0;
     2605                rLoc = 1022;
     2606                rType = 0;
     2607                vrLen = 1543;
     2608                vrLoc = 0;
     2609        };
     2610        E15464A20D5EBE5300C836EC /* PBXTextBookmark */ = {
     2611                isa = PBXTextBookmark;
     2612                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2613                name = "TestParser.m: 102";
     2614                rLen = 0;
     2615                rLoc = 3049;
     2616                rType = 0;
     2617                vrLen = 2048;
     2618                vrLoc = 1046;
     2619        };
     2620        E15464A30D5EBE5300C836EC /* PBXTextBookmark */ = {
     2621                isa = PBXTextBookmark;
     2622                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2623                name = "ICeCoffEEParser.m: 132";
     2624                rLen = 0;
     2625                rLoc = 4669;
     2626                rType = 0;
     2627                vrLen = 3495;
     2628                vrLoc = 4947;
     2629        };
     2630        E15464A40D5EBE5300C836EC /* PBXTextBookmark */ = {
     2631                isa = PBXTextBookmark;
     2632                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2633                name = "urls.plist: 31";
     2634                rLen = 0;
     2635                rLoc = 1022;
     2636                rType = 0;
     2637                vrLen = 1543;
     2638                vrLoc = 0;
     2639        };
     2640        E15464A60D5EBE6900C836EC /* PBXTextBookmark */ = {
     2641                isa = PBXTextBookmark;
     2642                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2643                name = "TestParser.m: 102";
     2644                rLen = 0;
     2645                rLoc = 3061;
     2646                rType = 0;
     2647                vrLen = 2045;
     2648                vrLoc = 1046;
     2649        };
     2650        E15464A70D5EBE6900C836EC /* PBXTextBookmark */ = {
     2651                isa = PBXTextBookmark;
     2652                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2653                name = "ICeCoffEEParser.m: 132";
     2654                rLen = 0;
     2655                rLoc = 4669;
     2656                rType = 0;
     2657                vrLen = 3495;
     2658                vrLoc = 4947;
     2659        };
     2660        E15464A80D5EBE6900C836EC /* PBXTextBookmark */ = {
     2661                isa = PBXTextBookmark;
     2662                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2663                name = "urls.plist: 31";
     2664                rLen = 0;
     2665                rLoc = 1022;
     2666                rType = 0;
     2667                vrLen = 1543;
     2668                vrLoc = 0;
     2669        };
     2670        E15464AB0D5EBFEA00C836EC /* PBXTextBookmark */ = {
     2671                isa = PBXTextBookmark;
     2672                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2673                name = "ICeCoffEEParser.m: 193";
     2674                rLen = 0;
     2675                rLoc = 8189;
     2676                rType = 0;
     2677                vrLen = 3502;
     2678                vrLoc = 4947;
     2679        };
     2680        E15464AC0D5EBFEA00C836EC /* PBXTextBookmark */ = {
     2681                isa = PBXTextBookmark;
     2682                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2683                name = "urls.plist: 31";
     2684                rLen = 0;
     2685                rLoc = 1022;
     2686                rType = 0;
     2687                vrLen = 1543;
     2688                vrLoc = 0;
     2689        };
     2690        E15464AD0D5EBFEA00C836EC /* PBXTextBookmark */ = {
     2691                isa = PBXTextBookmark;
     2692                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2693                name = "TestParser.m: 102";
     2694                rLen = 0;
     2695                rLoc = 3061;
     2696                rType = 0;
     2697                vrLen = 2045;
     2698                vrLoc = 1046;
     2699        };
     2700        E15464AF0D5EC16300C836EC /* PBXTextBookmark */ = {
     2701                isa = PBXTextBookmark;
     2702                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2703                name = "TestParser.m: 102";
     2704                rLen = 0;
     2705                rLoc = 3061;
     2706                rType = 0;
     2707                vrLen = 2045;
     2708                vrLoc = 1046;
     2709        };
     2710        E15464B00D5EC16300C836EC /* PBXTextBookmark */ = {
     2711                isa = PBXTextBookmark;
     2712                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2713                name = "ICeCoffEEParser.m: 193";
     2714                rLen = 0;
     2715                rLoc = 8189;
     2716                rType = 0;
     2717                vrLen = 3496;
     2718                vrLoc = 4947;
     2719        };
     2720        E15464B10D5EC16300C836EC /* PBXTextBookmark */ = {
     2721                isa = PBXTextBookmark;
     2722                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2723                name = "urls.plist: 31";
     2724                rLen = 0;
     2725                rLoc = 1022;
     2726                rType = 0;
     2727                vrLen = 1543;
     2728                vrLoc = 0;
     2729        };
     2730        E15464B20D5EC19200C836EC /* PBXTextBookmark */ = {
     2731                isa = PBXTextBookmark;
     2732                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2733                name = "ICeCoffEEParser.m: 190";
     2734                rLen = 0;
     2735                rLoc = 7917;
     2736                rType = 0;
     2737                vrLen = 3496;
     2738                vrLoc = 4947;
     2739        };
     2740        E15464B30D5EC19200C836EC /* PBXTextBookmark */ = {
     2741                isa = PBXTextBookmark;
     2742                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2743                name = "TestParser.m: 102";
     2744                rLen = 0;
     2745                rLoc = 3061;
     2746                rType = 0;
     2747                vrLen = 2045;
     2748                vrLoc = 1046;
     2749        };
     2750        E15464B40D5EC19200C836EC /* PBXTextBookmark */ = {
     2751                isa = PBXTextBookmark;
     2752                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2753                name = "urls.plist: 31";
     2754                rLen = 0;
     2755                rLoc = 1022;
     2756                rType = 0;
     2757                vrLen = 1543;
     2758                vrLoc = 0;
     2759        };
     2760        E15464B60D5EC19700C836EC /* PBXTextBookmark */ = {
     2761                isa = PBXTextBookmark;
     2762                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2763                name = "ICeCoffEEParser.m: 190";
     2764                rLen = 0;
     2765                rLoc = 7917;
     2766                rType = 0;
     2767                vrLen = 3496;
     2768                vrLoc = 4947;
     2769        };
     2770        E15464B70D5EC19700C836EC /* PBXTextBookmark */ = {
     2771                isa = PBXTextBookmark;
     2772                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2773                name = "TestParser.m: 102";
     2774                rLen = 0;
     2775                rLoc = 3061;
     2776                rType = 0;
     2777                vrLen = 2045;
     2778                vrLoc = 1046;
     2779        };
     2780        E15464B80D5EC19700C836EC /* PBXTextBookmark */ = {
     2781                isa = PBXTextBookmark;
     2782                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2783                name = "urls.plist: 31";
     2784                rLen = 0;
     2785                rLoc = 1022;
     2786                rType = 0;
     2787                vrLen = 1543;
     2788                vrLoc = 0;
     2789        };
     2790        E15464BA0D5EC1B900C836EC /* PBXTextBookmark */ = {
     2791                isa = PBXTextBookmark;
     2792                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2793                name = "ICeCoffEEParser.m: 190";
     2794                rLen = 0;
     2795                rLoc = 7917;
     2796                rType = 0;
     2797                vrLen = 3496;
     2798                vrLoc = 4947;
     2799        };
     2800        E15464BB0D5EC1B900C836EC /* PBXTextBookmark */ = {
     2801                isa = PBXTextBookmark;
     2802                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2803                name = "TestParser.m: 102";
     2804                rLen = 0;
     2805                rLoc = 3061;
     2806                rType = 0;
     2807                vrLen = 2045;
     2808                vrLoc = 1046;
     2809        };
     2810        E15464BC0D5EC1B900C836EC /* PBXTextBookmark */ = {
     2811                isa = PBXTextBookmark;
     2812                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2813                name = "urls.plist: 31";
     2814                rLen = 0;
     2815                rLoc = 1022;
     2816                rType = 0;
     2817                vrLen = 1543;
     2818                vrLoc = 0;
     2819        };
     2820        E15464BD0D5EC22C00C836EC /* PBXTextBookmark */ = {
     2821                isa = PBXTextBookmark;
     2822                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2823                name = "ICeCoffEEParser.m: 193";
     2824                rLen = 0;
     2825                rLoc = 7917;
     2826                rType = 0;
     2827                vrLen = 3539;
     2828                vrLoc = 4947;
     2829        };
     2830        E15464BE0D5EC22C00C836EC /* PBXTextBookmark */ = {
     2831                isa = PBXTextBookmark;
     2832                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2833                name = "TestParser.m: 102";
     2834                rLen = 0;
     2835                rLoc = 3061;
     2836                rType = 0;
     2837                vrLen = 2045;
     2838                vrLoc = 1046;
     2839        };
     2840        E15464BF0D5EC22C00C836EC /* PBXTextBookmark */ = {
     2841                isa = PBXTextBookmark;
     2842                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2843                name = "urls.plist: 31";
     2844                rLen = 0;
     2845                rLoc = 1022;
     2846                rType = 0;
     2847                vrLen = 1543;
     2848                vrLoc = 0;
     2849        };
     2850        E15464C20D5EC23900C836EC /* PBXTextBookmark */ = {
     2851                isa = PBXTextBookmark;
     2852                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2853                name = "TestParser.m: 102";
     2854                rLen = 0;
     2855                rLoc = 3061;
     2856                rType = 0;
     2857                vrLen = 2045;
     2858                vrLoc = 1046;
     2859        };
     2860        E15464C30D5EC23900C836EC /* PBXTextBookmark */ = {
     2861                isa = PBXTextBookmark;
     2862                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2863                name = "ICeCoffEEParser.m: 191";
     2864                rLen = 0;
     2865                rLoc = 7917;
     2866                rType = 0;
     2867                vrLen = 3524;
     2868                vrLoc = 4947;
     2869        };
     2870        E15464C40D5EC23900C836EC /* PBXTextBookmark */ = {
     2871                isa = PBXTextBookmark;
     2872                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2873                name = "urls.plist: 31";
     2874                rLen = 0;
     2875                rLoc = 1022;
     2876                rType = 0;
     2877                vrLen = 1543;
     2878                vrLoc = 0;
     2879        };
     2880        E15464C60D5EC23D00C836EC /* PBXTextBookmark */ = {
     2881                isa = PBXTextBookmark;
     2882                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2883                name = "ICeCoffEEParser.m: 191";
     2884                rLen = 0;
     2885                rLoc = 7917;
     2886                rType = 0;
     2887                vrLen = 3524;
     2888                vrLoc = 4947;
     2889        };
     2890        E15464C70D5EC23D00C836EC /* PBXTextBookmark */ = {
     2891                isa = PBXTextBookmark;
     2892                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2893                name = "TestParser.m: 102";
     2894                rLen = 0;
     2895                rLoc = 3061;
     2896                rType = 0;
     2897                vrLen = 2045;
     2898                vrLoc = 1046;
     2899        };
     2900        E15464C80D5EC23D00C836EC /* PBXTextBookmark */ = {
     2901                isa = PBXTextBookmark;
     2902                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2903                name = "urls.plist: 31";
     2904                rLen = 0;
     2905                rLoc = 1022;
     2906                rType = 0;
     2907                vrLen = 1543;
     2908                vrLoc = 0;
     2909        };
     2910        E15464CA0D5EC24F00C836EC /* PBXTextBookmark */ = {
     2911                isa = PBXTextBookmark;
     2912                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2913                name = "ICeCoffEEParser.m: 190";
     2914                rLen = 0;
     2915                rLoc = 7916;
     2916                rType = 0;
     2917                vrLen = 3582;
     2918                vrLoc = 4947;
     2919        };
     2920        E15464CB0D5EC24F00C836EC /* PBXTextBookmark */ = {
     2921                isa = PBXTextBookmark;
     2922                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2923                name = "TestParser.m: 102";
     2924                rLen = 0;
     2925                rLoc = 3061;
     2926                rType = 0;
     2927                vrLen = 2045;
     2928                vrLoc = 1046;
     2929        };
     2930        E15464CC0D5EC24F00C836EC /* PBXTextBookmark */ = {
     2931                isa = PBXTextBookmark;
     2932                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2933                name = "urls.plist: 31";
     2934                rLen = 0;
     2935                rLoc = 1022;
     2936                rType = 0;
     2937                vrLen = 1543;
     2938                vrLoc = 0;
     2939        };
     2940        E15464CD0D5EC25F00C836EC /* PBXTextBookmark */ = {
     2941                isa = PBXTextBookmark;
     2942                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2943                name = "ICeCoffEEParser.m: 191";
     2944                rLen = 0;
     2945                rLoc = 7917;
     2946                rType = 0;
     2947                vrLen = 3524;
     2948                vrLoc = 4947;
     2949        };
     2950        E15464CE0D5EC25F00C836EC /* PBXTextBookmark */ = {
     2951                isa = PBXTextBookmark;
     2952                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2953                name = "TestParser.m: 102";
     2954                rLen = 0;
     2955                rLoc = 3061;
     2956                rType = 0;
     2957                vrLen = 2045;
     2958                vrLoc = 1046;
     2959        };
     2960        E15464CF0D5EC25F00C836EC /* PBXTextBookmark */ = {
     2961                isa = PBXTextBookmark;
     2962                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2963                name = "urls.plist: 31";
     2964                rLen = 0;
     2965                rLoc = 1022;
     2966                rType = 0;
     2967                vrLen = 1543;
     2968                vrLoc = 0;
     2969        };
     2970        E15464D20D5EC2B500C836EC /* PBXTextBookmark */ = {
     2971                isa = PBXTextBookmark;
     2972                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     2973                name = "TestParser.m: 79";
     2974                rLen = 0;
     2975                rLoc = 2320;
     2976                rType = 0;
     2977                vrLen = 2045;
     2978                vrLoc = 1046;
     2979        };
     2980        E15464D30D5EC2B500C836EC /* PBXTextBookmark */ = {
     2981                isa = PBXTextBookmark;
     2982                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     2983                name = "urls.plist: 31";
     2984                rLen = 0;
     2985                rLoc = 1022;
     2986                rType = 0;
     2987                vrLen = 1543;
     2988                vrLoc = 0;
     2989        };
     2990        E15464D40D5EC2B500C836EC /* PBXTextBookmark */ = {
     2991                isa = PBXTextBookmark;
     2992                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     2993                name = "ICeCoffEEParser.m: 191";
     2994                rLen = 0;
     2995                rLoc = 7917;
     2996                rType = 0;
     2997                vrLen = 3524;
     2998                vrLoc = 4947;
     2999        };
     3000        E15464D70D5EC3E400C836EC /* PBXTextBookmark */ = {
     3001                isa = PBXTextBookmark;
     3002                fRef = E1887ECD0C6F975A00F6CE00 /* NSString.h */;
     3003                rLen = 1;
     3004                rLoc = 62;
     3005                rType = 1;
     3006        };
     3007        E15464D80D5EC3E400C836EC /* PBXTextBookmark */ = {
     3008                isa = PBXTextBookmark;
     3009                fRef = E1887ECD0C6F975A00F6CE00 /* NSString.h */;
     3010                name = "NSString.h: 89";
     3011                rLen = 0;
     3012                rLoc = 3515;
     3013                rType = 0;
     3014                vrLen = 3430;
     3015                vrLoc = 2117;
     3016        };
     3017        E15464D90D5EC3E400C836EC /* PBXTextBookmark */ = {
     3018                isa = PBXTextBookmark;
     3019                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3020                name = "ICeCoffEEParser.m: 189";
     3021                rLen = 0;
     3022                rLoc = 7695;
     3023                rType = 0;
     3024                vrLen = 3366;
     3025                vrLoc = 5395;
     3026        };
     3027        E15464DA0D5EC3E400C836EC /* PBXTextBookmark */ = {
     3028                isa = PBXTextBookmark;
     3029                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3030                name = "TestParser.m: 83";
     3031                rLen = 0;
     3032                rLoc = 2619;
     3033                rType = 0;
     3034                vrLen = 2045;
     3035                vrLoc = 1046;
     3036        };
     3037        E15464DB0D5EC3E400C836EC /* PBXTextBookmark */ = {
     3038                isa = PBXTextBookmark;
     3039                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3040                name = "urls.plist: 31";
     3041                rLen = 0;
     3042                rLoc = 1022;
     3043                rType = 0;
     3044                vrLen = 1543;
     3045                vrLoc = 0;
     3046        };
     3047        E15464DE0D5EC40400C836EC /* PBXTextBookmark */ = {
     3048                isa = PBXTextBookmark;
     3049                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3050                name = "ICeCoffEEParser.m: 188";
     3051                rLen = 0;
     3052                rLoc = 7643;
     3053                rType = 0;
     3054                vrLen = 3296;
     3055                vrLoc = 5497;
     3056        };
     3057        E15464DF0D5EC40400C836EC /* PBXTextBookmark */ = {
     3058                isa = PBXTextBookmark;
     3059                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3060                name = "TestParser.m: 83";
     3061                rLen = 0;
     3062                rLoc = 2619;
     3063                rType = 0;
     3064                vrLen = 2045;
     3065                vrLoc = 1046;
     3066        };
     3067        E15464E00D5EC40400C836EC /* PBXTextBookmark */ = {
     3068                isa = PBXTextBookmark;
     3069                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3070                name = "urls.plist: 31";
     3071                rLen = 0;
     3072                rLoc = 1022;
     3073                rType = 0;
     3074                vrLen = 1546;
     3075                vrLoc = 2;
     3076        };
     3077        E15464E20D5EC43000C836EC /* PBXTextBookmark */ = {
     3078                isa = PBXTextBookmark;
     3079                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3080                name = "ICeCoffEEParser.m: 188";
     3081                rLen = 0;
     3082                rLoc = 7643;
     3083                rType = 0;
     3084                vrLen = 3296;
     3085                vrLoc = 5497;
     3086        };
     3087        E15464E30D5EC43000C836EC /* PBXTextBookmark */ = {
     3088                isa = PBXTextBookmark;
     3089                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3090                name = "urls.plist: 6";
     3091                rLen = 0;
     3092                rLoc = 2;
     3093                rType = 0;
     3094                vrLen = 1783;
     3095                vrLoc = 0;
     3096        };
     3097        E15464E40D5EC43000C836EC /* PBXTextBookmark */ = {
     3098                isa = PBXTextBookmark;
     3099                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3100                name = "TestParser.m: 83";
     3101                rLen = 0;
     3102                rLoc = 2619;
     3103                rType = 0;
     3104                vrLen = 2045;
     3105                vrLoc = 1046;
     3106        };
     3107        E15464E80D5EC56400C836EC /* PBXTextBookmark */ = {
     3108                isa = PBXTextBookmark;
     3109                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3110                name = "urls.plist: 71";
     3111                rLen = 0;
     3112                rLoc = 1574;
     3113                rType = 0;
     3114                vrLen = 1505;
     3115                vrLoc = 372;
     3116        };
     3117        E15464E90D5EC56400C836EC /* PBXTextBookmark */ = {
     3118                isa = PBXTextBookmark;
     3119                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3120                name = "TestParser.m: 83";
     3121                rLen = 0;
     3122                rLoc = 2619;
     3123                rType = 0;
     3124                vrLen = 2139;
     3125                vrLoc = 0;
     3126        };
     3127        E15464EA0D5EC56400C836EC /* PBXTextBookmark */ = {
     3128                isa = PBXTextBookmark;
     3129                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3130                name = "ICeCoffEEParser.m: 188";
     3131                rLen = 0;
     3132                rLoc = 7643;
     3133                rType = 0;
     3134                vrLen = 3277;
     3135                vrLoc = 5497;
     3136        };
     3137        E15464EB0D5EC56400C836EC /* PBXTextBookmark */ = {
     3138                isa = PBXTextBookmark;
     3139                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3140                name = "ICeCoffEEParser.m: 21";
     3141                rLen = 0;
     3142                rLoc = 195;
     3143                rType = 0;
     3144                vrLen = 2813;
     3145                vrLoc = 0;
     3146        };
     3147        E15464F00D5EC77900C836EC /* PBXBookmark */ = {
     3148                isa = PBXBookmark;
     3149                fRef = E14343B303DB4CF200050002 /* ICeCoffEE.h */;
     3150        };
     3151        E15464F40D5EC7A300C836EC /* PBXTextBookmark */ = {
     3152                isa = PBXTextBookmark;
     3153                fRef = E14343B403DB4CF200050002 /* ICeCoffEE.m */;
     3154                name = "ICeCoffEE.m: 65";
     3155                rLen = 116;
     3156                rLoc = 2742;
     3157                rType = 0;
     3158                vrLen = 2137;
     3159                vrLoc = 1653;
     3160        };
     3161        E15464F50D5EC7A300C836EC /* PBXTextBookmark */ = {
     3162                isa = PBXTextBookmark;
     3163                fRef = E14343B403DB4CF200050002 /* ICeCoffEE.m */;
     3164                name = "ICeCoffEE.m: 69";
     3165                rLen = 0;
     3166                rLoc = 2726;
     3167                rType = 0;
     3168                vrLen = 2262;
     3169                vrLoc = 1653;
     3170        };
     3171        E15464F60D5EC7A300C836EC /* PBXTextBookmark */ = {
     3172                isa = PBXTextBookmark;
     3173                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3174                rLen = 1;
     3175                rLoc = 66;
     3176                rType = 1;
     3177        };
     3178        E15464F70D5EC7A300C836EC /* PBXTextBookmark */ = {
     3179                isa = PBXTextBookmark;
     3180                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3181                name = "ICeCoffEEParser.m: 19";
     3182                rLen = 0;
     3183                rLoc = 195;
     3184                rType = 0;
     3185                vrLen = 2732;
     3186                vrLoc = 0;
     3187        };
     3188        E15464FA0D5EC7A300C836EC /* PBXTextBookmark */ = {
     3189                isa = PBXTextBookmark;
     3190                fRef = E14343B303DB4CF200050002 /* ICeCoffEE.h */;
     3191                name = "ICeCoffEE.h: 29";
     3192                rLen = 0;
     3193                rLoc = 1327;
     3194                rType = 0;
     3195                vrLen = 1871;
     3196                vrLoc = 0;
     3197        };
     3198        E15464FB0D5EC7A300C836EC /* PBXTextBookmark */ = {
     3199                isa = PBXTextBookmark;
     3200                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3201                name = "TestParser.m: 83";
     3202                rLen = 0;
     3203                rLoc = 2619;
     3204                rType = 0;
     3205                vrLen = 1885;
     3206                vrLoc = 1248;
     3207        };
     3208        E15464FC0D5EC7A300C836EC /* PBXTextBookmark */ = {
     3209                isa = PBXTextBookmark;
     3210                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3211                name = "urls.plist: 70";
     3212                rLen = 0;
     3213                rLoc = 1535;
     3214                rType = 0;
     3215                vrLen = 1507;
     3216                vrLoc = 372;
     3217        };
     3218        E15465010D5EC80700C836EC /* PBXTextBookmark */ = {
     3219                isa = PBXTextBookmark;
     3220                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3221                name = "TestParser.m: 83";
     3222                rLen = 0;
     3223                rLoc = 2619;
     3224                rType = 0;
     3225                vrLen = 1885;
     3226                vrLoc = 1248;
     3227        };
     3228        E15465020D5EC80700C836EC /* PBXTextBookmark */ = {
     3229                isa = PBXTextBookmark;
     3230                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3231                name = "TestParser.m: 13";
     3232                rLen = 0;
     3233                rLoc = 222;
     3234                rType = 0;
     3235                vrLen = 2049;
     3236                vrLoc = 0;
     3237        };
     3238        E15465030D5EC80700C836EC /* PBXTextBookmark */ = {
     3239                isa = PBXTextBookmark;
     3240                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3241                name = "ICeCoffEEParser.m: 12";
     3242                rLen = 0;
     3243                rLoc = 195;
     3244                rType = 0;
     3245                vrLen = 2760;
     3246                vrLoc = 0;
     3247        };
     3248        E15465040D5EC80700C836EC /* PBXTextBookmark */ = {
     3249                isa = PBXTextBookmark;
     3250                fRef = E14343B403DB4CF200050002 /* ICeCoffEE.m */;
     3251                name = "ICeCoffEE.m: 72";
     3252                rLen = 38;
     3253                rLoc = 2466;
     3254                rType = 0;
     3255                vrLen = 2284;
     3256                vrLoc = 1567;
     3257        };
     3258        E15465050D5EC80700C836EC /* PBXTextBookmark */ = {
     3259                isa = PBXTextBookmark;
     3260                fRef = E14343B303DB4CF200050002 /* ICeCoffEE.h */;
     3261                name = "ICeCoffEE.h: 29";
     3262                rLen = 0;
     3263                rLoc = 1327;
     3264                rType = 0;
     3265                vrLen = 1871;
     3266                vrLoc = 0;
     3267        };
     3268        E15465060D5EC80700C836EC /* PBXTextBookmark */ = {
     3269                isa = PBXTextBookmark;
     3270                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3271                name = "urls.plist: 70";
     3272                rLen = 0;
     3273                rLoc = 1535;
     3274                rType = 0;
     3275                vrLen = 1507;
     3276                vrLoc = 372;
     3277        };
     3278        E15465090D5EC8F500C836EC /* PBXTextBookmark */ = {
     3279                isa = PBXTextBookmark;
     3280                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3281                name = "ICeCoffEEParser.m: 95";
     3282                rLen = 0;
     3283                rLoc = 3893;
     3284                rType = 0;
     3285                vrLen = 2850;
     3286                vrLoc = 1920;
     3287        };
     3288        E154650A0D5EC8F500C836EC /* PBXTextBookmark */ = {
     3289                isa = PBXTextBookmark;
     3290                fRef = E14343B403DB4CF200050002 /* ICeCoffEE.m */;
     3291                name = "ICeCoffEE.m: 72";
     3292                rLen = 38;
     3293                rLoc = 2466;
     3294                rType = 0;
     3295                vrLen = 2284;
     3296                vrLoc = 1567;
     3297        };
     3298        E154650B0D5EC8F500C836EC /* PBXTextBookmark */ = {
     3299                isa = PBXTextBookmark;
     3300                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3301                name = "urls.plist: 2";
     3302                rLen = 0;
     3303                rLoc = 2;
     3304                rType = 0;
     3305                vrLen = 1603;
     3306                vrLoc = 0;
     3307        };
     3308        E154650C0D5EC8F500C836EC /* PBXTextBookmark */ = {
     3309                isa = PBXTextBookmark;
     3310                fRef = E14343B303DB4CF200050002 /* ICeCoffEE.h */;
     3311                name = "ICeCoffEE.h: 29";
     3312                rLen = 0;
     3313                rLoc = 1327;
     3314                rType = 0;
     3315                vrLen = 1871;
     3316                vrLoc = 0;
     3317        };
     3318        E154650D0D5EC8F500C836EC /* PBXTextBookmark */ = {
     3319                isa = PBXTextBookmark;
     3320                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3321                name = "TestParser.m: 13";
     3322                rLen = 0;
     3323                rLoc = 222;
     3324                rType = 0;
     3325                vrLen = 2049;
     3326                vrLoc = 0;
     3327        };
     3328        E15465140D5ECA7400C836EC /* PBXTextBookmark */ = {
     3329                isa = PBXTextBookmark;
     3330                fRef = E14E2B330C2CBFB200AC18D0 /* TestParser.m */;
     3331                name = "TestParser.m: 13";
     3332                rLen = 0;
     3333                rLoc = 222;
     3334                rType = 0;
     3335                vrLen = 2049;
     3336                vrLoc = 0;
     3337        };
     3338        E15465150D5ECA7400C836EC /* PBXTextBookmark */ = {
     3339                isa = PBXTextBookmark;
     3340                fRef = E14E2BC20C2CC28500AC18D0 /* urls.plist */;
     3341                name = "urls.plist: 59";
     3342                rLen = 0;
     3343                rLoc = 1441;
     3344                rType = 0;
     3345                vrLen = 1603;
     3346                vrLoc = 0;
     3347        };
     3348        E15465160D5ECA7400C836EC /* PBXTextBookmark */ = {
     3349                isa = PBXTextBookmark;
     3350                fRef = E14E2AB40C2B774800AC18D0 /* ICeCoffEEParser.m */;
     3351                name = "ICeCoffEEParser.m: 95";
     3352                rLen = 0;
     3353                rLoc = 3893;
     3354                rType = 0;
     3355                vrLen = 2850;
     3356                vrLoc = 1920;
     3357        };
     3358        E15465170D5ECA7400C836EC /* PBXTextBookmark */ = {
     3359                isa = PBXTextBookmark;
     3360                fRef = E14343B303DB4CF200050002 /* ICeCoffEE.h */;
     3361                name = "ICeCoffEE.h: 29";
     3362                rLen = 0;
     3363                rLoc = 1327;
     3364                rType = 0;
     3365                vrLen = 1871;
     3366                vrLoc = 0;
    23333367        };
    23343368        E15E6A7404188D6900050002 /* システム環境設定 */ = {
     
    25223556                name = ICCF_URLEnclosingRange;
    25233557                rLen = 22;
    2524                 rLoc = 8551;
     3558                rLoc = 9031;
    25253559                rType = 0;
    25263560                vrLen = 2918;
     
    25323566                name = "TestParser.m: 66";
    25333567                rLen = 0;
    2534                 rLoc = 2261;
     3568                rLoc = 2314;
    25353569                rType = 0;
    25363570                vrLen = 2391;
     
    25423576                name = ICStop;
    25433577                rLen = 6;
    2544                 rLoc = 2630;
     3578                rLoc = 2164;
    25453579                rType = 0;
    25463580                vrLen = 2643;
     
    26003634                path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSString.h;
    26013635                sourceTree = "<absolute>";
     3636                uiCtxt = {
     3637                        sepNavIntBoundsRect = "{{0, 0}, {1105, 3729}}";
     3638                        sepNavSelRange = "{3515, 0}";
     3639                        sepNavVisRange = "{2117, 3430}";
     3640                        sepNavWindowFrame = "{{704, 207}, {1164, 886}}";
     3641                };
    26023642        };
    26033643        E1887ECE0C6F975A00F6CE00 /* PBXTextBookmark */ = {
     
    27133753                name = "TestParser.m: 66";
    27143754                rLen = 0;
    2715                 rLoc = 2261;
     3755                rLoc = 2314;
    27163756                rType = 0;
    27173757                vrLen = 2391;
     
    27233763                name = "ICeCoffEE.m: 230";
    27243764                rLen = 0;
    2725                 rLoc = 9106;
     3765                rLoc = 9586;
    27263766                rType = 0;
    27273767                vrLen = 2918;
     
    27333773                name = ICStop;
    27343774                rLen = 6;
    2735                 rLoc = 2630;
     3775                rLoc = 2164;
    27363776                rType = 0;
    27373777                vrLen = 2643;
     
    31084148        E1CBC99803E7602700050002 /* English */ = {
    31094149                uiCtxt = {
    3110                         sepNavIntBoundsRect = "{{0, 0}, {748, 1322}}";
    3111                         sepNavSelRange = "{311, 0}";
     4150                        sepNavIntBoundsRect = "{{0, 0}, {728, 1248}}";
     4151                        sepNavSelRange = "{653, 0}";
     4152                        sepNavVisRange = "{0, 1698}";
    31124153                        sepNavVisRect = "{{0, 0}, {748, 605}}";
    31134154                        sepNavWindowFrame = "{{475, 103}, {787, 643}}";
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.xcodeproj/project.pbxproj

    r373 r375  
    4040                E14E2C3F0C2CCBEF00AC18D0 /* ICeCoffEEShared.m in Sources */ = {isa = PBXBuildFile; fileRef = E182C8F603DE817F00050002 /* ICeCoffEEShared.m */; };
    4141                E14E2D540C2CD1A000AC18D0 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E14E2D3E0C2CD1A000AC18D0 /* ApplicationServices.framework */; };
     42                E154648B0D5EBC0200C836EC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F574113202F45276011A08DB /* Cocoa.framework */; };
    4243                E170DFDF0835D6F400B484AC /* ICeCoffEETrigger.h in Headers */ = {isa = PBXBuildFile; fileRef = E170DFDD0835D6F400B484AC /* ICeCoffEETrigger.h */; };
    4344                E170DFE00835D6F400B484AC /* ICeCoffEETrigger.m in Sources */ = {isa = PBXBuildFile; fileRef = E170DFDE0835D6F400B484AC /* ICeCoffEETrigger.m */; };
     
    273274                        buildActionMask = 2147483647;
    274275                        files = (
     276                                E154648B0D5EBC0200C836EC /* Cocoa.framework in Frameworks */,
    275277                                E14E2D540C2CD1A000AC18D0 /* ApplicationServices.framework in Frameworks */,
    276278                        );
     
    877879                                COPY_PHASE_STRIP = NO;
    878880                                GCC_DYNAMIC_NO_PIC = NO;
    879                                 GCC_ENABLE_FIX_AND_CONTINUE = YES;
    880881                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
    881882                                GCC_MODEL_TUNING = G5;
     
    884885                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
    885886                                INSTALL_PATH = "$(HOME)/bin";
    886                                 OTHER_LDFLAGS = (
    887                                         "-framework",
    888                                         Foundation,
    889                                         "-framework",
    890                                         AppKit,
    891                                 );
    892                                 PREBINDING = NO;
    893887                                PRODUCT_NAME = TestParser;
    894                                 ZERO_LINK = YES;
    895888                        };
    896889                        name = Development;
     
    900893                        buildSettings = {
    901894                                COPY_PHASE_STRIP = YES;
    902                                 GCC_ENABLE_FIX_AND_CONTINUE = NO;
    903895                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
    904896                                GCC_MODEL_TUNING = G5;
     
    906898                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
    907899                                INSTALL_PATH = "$(HOME)/bin";
    908                                 OTHER_LDFLAGS = (
    909                                         "-framework",
    910                                         Foundation,
    911                                         "-framework",
    912                                         AppKit,
    913                                 );
    914                                 PREBINDING = NO;
    915900                                PRODUCT_NAME = TestParser;
    916                                 ZERO_LINK = NO;
    917901                        };
    918902                        name = Deployment;
     
    945929                                COPY_PHASE_STRIP = YES;
    946930                                FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
    947                                 GCC_C_LANGUAGE_STANDARD = c99;
    948931                                GCC_ENABLE_FIX_AND_CONTINUE = NO;
    949932                                INFOPLIST_FILE = "Info-APEManagerPrefPane.plist";
     
    969952                                );
    970953                                GCC_DYNAMIC_NO_PIC = NO;
    971                                 GCC_ENABLE_FIX_AND_CONTINUE = NO;
    972954                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
    973955                                GCC_OPTIMIZATION_LEVEL = 0;
     
    981963                                );
    982964                                WRAPPER_EXTENSION = ape;
    983                                 ZERO_LINK = NO;
    984965                        };
    985966                        name = Development;
     
    994975                                        "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks",
    995976                                );
    996                                 GCC_C_LANGUAGE_STANDARD = c99;
    997                                 GCC_ENABLE_FIX_AND_CONTINUE = NO;
    998977                                INFOPLIST_FILE = "Info-APE Module.plist";
    999978                                PRODUCT_NAME = ICeCoffEE;
     
    1004983                                );
    1005984                                WRAPPER_EXTENSION = ape;
    1006                                 ZERO_LINK = NO;
    1007985                        };
    1008986                        name = Deployment;
     
    1013991                                COPY_PHASE_STRIP = NO;
    1014992                                GCC_DYNAMIC_NO_PIC = NO;
    1015                                 GCC_ENABLE_FIX_AND_CONTINUE = YES;
    1016993                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
    1017994                                GCC_OPTIMIZATION_LEVEL = 0;
     
    1019996                                GCC_PREFIX_HEADER = ICFindFilesToRemove/ICFindFilesToRemove_Prefix.h;
    1020997                                OPTIMIZATION_CFLAGS = "-O0";
    1021                                 OTHER_CFLAGS = "";
    1022                                 OTHER_LDFLAGS = "";
    1023998                                OTHER_REZFLAGS = "";
    1024999                                PRODUCT_NAME = ICFindFilesToRemove;
    10251000                                REZ_EXECUTABLE = YES;
    1026                                 SECTORDER_FLAGS = "";
    10271001                                WARNING_CFLAGS = (
    10281002                                        "-Wmost",
     
    10301004                                        "-Wno-unknown-pragmas",
    10311005                                );
    1032                                 ZERO_LINK = NO;
    10331006                        };
    10341007                        name = Development;
     
    10381011                        buildSettings = {
    10391012                                COPY_PHASE_STRIP = YES;
    1040                                 GCC_C_LANGUAGE_STANDARD = c99;
    1041                                 GCC_ENABLE_FIX_AND_CONTINUE = NO;
    10421013                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
    10431014                                GCC_PREFIX_HEADER = ICFindFilesToRemove/ICFindFilesToRemove_Prefix.h;
    1044                                 OTHER_CFLAGS = "";
    1045                                 OTHER_LDFLAGS = "";
    10461015                                OTHER_REZFLAGS = "";
    10471016                                PRODUCT_NAME = ICFindFilesToRemove;
    10481017                                REZ_EXECUTABLE = YES;
    1049                                 SECTORDER_FLAGS = "";
    10501018                                WARNING_CFLAGS = (
    10511019                                        "-Wmost",
     
    10531021                                        "-Wno-unknown-pragmas",
    10541022                                );
    1055                                 ZERO_LINK = NO;
    10561023                        };
    10571024                        name = Deployment;
     
    10611028                        buildSettings = {
    10621029                                COPY_PHASE_STRIP = NO;
    1063                                 GCC_DYNAMIC_NO_PIC = NO;
    1064                                 GCC_ENABLE_FIX_AND_CONTINUE = YES;
    1065                                 GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
    1066                                 GCC_OPTIMIZATION_LEVEL = 0;
    1067                                 OPTIMIZATION_CFLAGS = "-O0";
    10681030                                PRODUCT_NAME = "ICeCoffEE Installer";
    10691031                                WRAPPER_EXTENSION = app;
     
    10761038                        buildSettings = {
    10771039                                COPY_PHASE_STRIP = YES;
    1078                                 GCC_C_LANGUAGE_STANDARD = c99;
    1079                                 GCC_ENABLE_FIX_AND_CONTINUE = NO;
    10801040                                PRODUCT_NAME = "ICeCoffEE Installer";
    10811041                                WRAPPER_EXTENSION = app;
     
    10951055                                MACOSX_DEPLOYMENT_TARGET = 10.4;
    10961056                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
    1097                                 ZERO_LINK = NO;
    10981057                        };
    10991058                        name = Development;
     
    11101069                                MACOSX_DEPLOYMENT_TARGET = 10.4;
    11111070                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
    1112                                 ZERO_LINK = NO;
    11131071                        };
    11141072                        name = Deployment;
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEParser.m

    r322 r375  
    99#import "ICeCoffEEParser.h"
    1010#import "ICeCoffEE.h"
    11 
    12 // RFC-ordained max URL length, just to avoid passing IC/LS multi-megabyte documents
    13 #if ICCF_DEBUG
    14 const long ICCF_MAX_URL_LEN = 120; // XXX change later
    15 #else
    16 const long ICCF_MAX_URL_LEN = 1024;
    17 #endif
    18 
    19 void ICCF_CheckRange(NSRange range) {
    20     NSCAssert(range.length > 0, ICCF_LocalizedString(@"No URL is selected"));
    21     NSCAssert1(range.length <= ICCF_MAX_URL_LEN, ICCF_LocalizedString(@"The potential URL is longer than %lu characters"), ICCF_MAX_URL_LEN);
    22 }
    2311
    2412void ICCF_Delimiters(NSCharacterSet **leftPtr, NSCharacterSet **rightPtr) {
     
    136124   
    137125expandFront:
    138         // XXX instead of 0, make this stop at the max URL length to prevent protracted searches
    139        
    140         // XXX here's how this is supposed to work:
    141         // (http://web.sabi.net/) and <http://web.sabi.net/> should work if they are the entire document, even if clicking at the end/beginning of the document, not barfing with "no URL" (correct, as now) or selecting the final >, or ) (what would happen if we remove this "add 1" accommodation).  But how about "http://web.sabi.net/(foo)"?  That should work too, as long as it's not preceded by a (.
    142         // Should probably backport to ICeCoffEETerminal, now I finally understand the method to this madness.
    143         // add 1 to range to trap delimiters that are on the edge of the selection (i.e., <...)
    144         delimiterRange = [s rangeOfCharacterFromSet: urlLeftDelimiters
    145                                             options: NSLiteralSearch | NSBackwardsSearch
    146                                               range: NSMakeRange(0, range.location + (range.location != [s length]))];
     126    // XXX instead of 0, make this stop at the max URL length to prevent protracted searches
     127   
     128    // XXX here's how this is supposed to work:
     129    // (http://web.sabi.net/) and <http://web.sabi.net/> should work if they are the entire document, even if clicking at the end/beginning of the document, not barfing with "no URL" (correct, as now) or selecting the final >, or ) (what would happen if we remove this "add 1" accommodation).  But how about "http://web.sabi.net/(foo)"?  That should work too, as long as it's not preceded by a (.
     130    // Should probably backport to ICeCoffEETerminal, now I finally understand the method to this madness.
     131    // add 1 to range to trap delimiters that are on the edge of the selection (i.e., <...)
     132    delimiterRange = [s rangeOfCharacterFromSet: urlLeftDelimiters
     133                                        options: NSLiteralSearch | NSBackwardsSearch
     134                                          range: NSMakeRange(0, range.location + (range.location != [s length]))];
    147135    if (delimiterRange.location == NSNotFound) {
    148136        // extend to beginning of string
     
    155143       
    156144        // in url/(parens)stuff, handle clicking inside or after (parens).
    157         if ([s characterAtIndex: delimiterRange.location] == '(' &&
    158             range.location > 2 /* prevent wrapping, ordinarily not necessary */) {
     145        /*if ([s characterAtIndex: delimiterRange.location] == '(' &&
     146            range.location > 2) { // prevent wrapping, ordinarily not necessary
    159147            if ([s rangeOfString: @")" options: NSLiteralSearch range: range].location != NSNotFound ||
    160148                [s rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @"/."]
     
    165153                goto expandFront;
    166154            }
    167         }        
     155        } */       
    168156    }
    169157   
     
    171159   
    172160expandBack:
    173         // XXX instead of length of string, make this stop at the max URL length to prevent protracted searches
    174         // add 1 to range to trap delimiters that are on the edge of the selection (i.e., ...>)
    175         extraLen = [s length] - range.location - range.length;
     161    // XXX instead of length of string, make this stop at the max URL length to prevent protracted searches
     162    // add 1 to range to trap delimiters that are on the edge of the selection (i.e., ...>)
     163    extraLen = [s length] - range.location - range.length;
    176164    delimiterRange = [s rangeOfCharacterFromSet: urlRightDelimiters
    177165                                        options: NSLiteralSearch
     
    185173        range.length += delimiterRange.location - range.location - range.length;
    186174       
    187         // grow URL past closing paren if we've seen an open paren
    188         if ([s characterAtIndex: delimiterRange.location] == ')' &&
    189             [s rangeOfString: @"(" options: NSLiteralSearch range: range].location != NSNotFound) {
     175        // grow URL past closing paren/brace if we've seen an open paren/brace
     176        unichar closing = [s characterAtIndex: delimiterRange.location];
     177        NSString *opening;
     178        if (closing == ')') opening = @"(";
     179        else if (closing == '}') opening = @"{";
     180        else goto checkRange;
     181        if ([s rangeOfString: opening options: NSLiteralSearch range: range].location == NSNotFound)
     182            goto checkRange;
     183       
     184        if (extraLen == 0) {
     185            range.length += 1;
     186            ICLog(@"expanding past %c, now |%@|", closing, [s substringWithRange: range]);
     187        } else {
    190188            range.length += 2;
    191             ICLog(@"expanding past ), now |%@|", [s substringWithRange: range]);
     189            ICLog(@"expanding past %c, now |%@|", closing, [s substringWithRange: range]);
    192190            goto expandBack;
    193191        }
    194192    }
    195193   
     194checkRange:
    196195    ICCF_CheckRange(range);
    197196   
  • trunk/ICeCoffEE/ICeCoffEE/TestParser.m

    r373 r375  
    1515    return [NSString stringWithFormat: @"%@ (%d)", context, (int)err];
    1616}
     17
     18void ICCF_CheckRange(NSRange range) {}
    1719
    1820void ps(NSString *format, ...) {
     
    6567        }
    6668       
    67         // XXX can't yet select by word, so just try a middle-ish character
    68         NSRange initialSelectionRange = {
    69             delimitedURIRange.location + (delimitedURIRange.length / 2),
    70             delimitedURIRange.length != 0
    71         };
    72        
    73         // XXX figure XFAIL-type error checking
    74        
    75         NSRange enclosingRange;
    76         NSString *parsedURI = nil;
    77         NSException *parseException = nil;
    78         @try {
    79             enclosingRange = ICCF_URLEnclosingRange(text, delimitedURIRange);
    80             parsedURI = [text substringWithRange: enclosingRange];
    81         } @catch (NSException *e) {
    82             parseException = e;
     69        for (unsigned startOffset = 0 ; startOffset < delimitedURIRange.length ; ++startOffset) {
     70            NSRange initialSelectionRange = {
     71                delimitedURIRange.location + startOffset,
     72                delimitedURIRange.length != 0
     73            };
     74           
     75            // XXX figure XFAIL-type error checking
     76           
     77            NSRange enclosingRange;
     78            NSString *parsedURI = nil;
     79            NSException *parseException = nil;
     80            @try {
     81                enclosingRange = ICCF_URLEnclosingRange(text, delimitedURIRange);
     82                parsedURI = [text substringWithRange: enclosingRange];
     83            } @catch (NSException *e) {
     84                parseException = e;
     85            }
     86           
     87            if ([uri isEqualToString: parsedURI]) {
     88                ++pass;
     89                continue;
     90            }
     91           
     92            ps(@"Text       %@", text);
     93            pr(@"Available ", delimitedURIRange);
     94            pr(@"Starting  ", initialSelectionRange);
     95           
     96            if (parseException != nil) {
     97                ps(@"Exception  %@", parseException);
     98            } else {
     99                pr(@"Parsed    ", enclosingRange);
     100                ps(@"Parsed     %@", parsedURI);
     101                ps(@"Desired    %@", uri);
     102            }
     103            ++fail;
     104            goto summary;
    83105        }
    84 
    85         if ([uri isEqualToString: parsedURI]) {
    86             ++pass;
    87             continue;
    88         }
    89            
    90         ps(@"Text       %@", text);
    91         pr(@"Available ", delimitedURIRange);
    92         pr(@"Starting  ", initialSelectionRange);
    93 
    94         if (parseException != nil) {
    95             ps(@"Exception  %@", parseException);
    96             continue;
    97         }
    98 
    99         pr(@"Parsed    ", enclosingRange);
    100         ps(@"Parsed     %@", parsedURI);
    101         ps(@"Desired    %@", uri);
    102         ++fail;
    103106    }
     107   
     108summary:
     109    ps(@"PASS %d FAIL %d", pass, fail);
    104110   
    105111    ICCF_StopIC();
Note: See TracChangeset for help on using the changeset viewer.