Changeset 58


Ignore:
Timestamp:
06/10/06 23:42:24 (6 years ago)
Author:
gnue
Message:

add BeginsWith, EndsWith global function

Location:
NEWT0/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEWT0/trunk/newt.xcodeproj/gnue.mode1

    r56 r58  
    186186    <array/> 
    187187    <key>OpenEditors</key> 
    188     <array/> 
     188    <array> 
     189        <dict> 
     190            <key>Content</key> 
     191            <dict> 
     192                <key>PBXProjectModuleGUID</key> 
     193                <string>F599F1DD0A3B10C900F0D5D3</string> 
     194                <key>PBXProjectModuleLabel</key> 
     195                <string>version.h</string> 
     196                <key>PBXSplitModuleInNavigatorKey</key> 
     197                <dict> 
     198                    <key>Split0</key> 
     199                    <dict> 
     200                        <key>PBXProjectModuleGUID</key> 
     201                        <string>F599F1DE0A3B10C900F0D5D3</string> 
     202                        <key>PBXProjectModuleLabel</key> 
     203                        <string>version.h</string> 
     204                        <key>_historyCapacity</key> 
     205                        <integer>0</integer> 
     206                        <key>bookmark</key> 
     207                        <string>F599F1E00A3B10C900F0D5D3</string> 
     208                        <key>history</key> 
     209                        <array> 
     210                            <string>F599F1DF0A3B10C900F0D5D3</string> 
     211                        </array> 
     212                    </dict> 
     213                    <key>SplitCount</key> 
     214                    <string>1</string> 
     215                </dict> 
     216                <key>StatusBarVisibility</key> 
     217                <true/> 
     218            </dict> 
     219            <key>Geometry</key> 
     220            <dict> 
     221                <key>Frame</key> 
     222                <string>{{0, 20}, {750, 461}}</string> 
     223                <key>PBXModuleWindowStatusBarHidden2</key> 
     224                <false/> 
     225                <key>RubberWindowFrame</key> 
     226                <string>377 210 750 502 0 0 1280 778 </string> 
     227            </dict> 
     228        </dict> 
     229    </array> 
    189230    <key>PerspectiveWidths</key> 
    190231    <array> 
     
    270311                            <array> 
    271312                                <array> 
     313                                    <integer>51</integer> 
     314                                    <integer>1</integer> 
    272315                                    <integer>0</integer> 
    273316                                </array> 
    274317                            </array> 
    275318                            <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> 
    276                             <string>{{0, 0}, {186, 506}}</string> 
     319                            <string>{{0, 633}, {186, 506}}</string> 
    277320                        </dict> 
    278321                        <key>PBXTopSmartGroupGIDs</key> 
     
    293336                        </array> 
    294337                        <key>RubberWindowFrame</key> 
    295                         <string>320 151 815 565 0 0 1280 778 </string> 
     338                        <string>358 204 815 565 0 0 1280 778 </string> 
    296339                    </dict> 
    297340                    <key>Module</key> 
     
    304347                    <array> 
    305348                        <dict> 
    306                             <key>BecomeActive</key> 
    307                             <true/> 
    308349                            <key>ContentConfiguration</key> 
    309350                            <dict> 
     
    323364                                        <integer>0</integer> 
    324365                                        <key>bookmark</key> 
    325                                         <string>F50150770A3B0A2600FF1743</string> 
     366                                        <string>F599F1DC0A3B10C900F0D5D3</string> 
    326367                                        <key>history</key> 
    327368                                        <array> 
    328369                                            <string>F55232C10A3B0312008E979A</string> 
    329                                             <string>F5BB62D00A3B098C001F0D4F</string> 
     370                                            <string>F50150770A3B0A2600FF1743</string> 
    330371                                        </array> 
    331372                                        <key>prevStack</key> 
     
    345386                                <string>{{0, 0}, {607, 363}}</string> 
    346387                                <key>RubberWindowFrame</key> 
    347                                 <string>320 151 815 565 0 0 1280 778 </string> 
     388                                <string>358 204 815 565 0 0 1280 778 </string> 
    348389                            </dict> 
    349390                            <key>Module</key> 
     
    353394                        </dict> 
    354395                        <dict> 
     396                            <key>BecomeActive</key> 
     397                            <true/> 
    355398                            <key>ContentConfiguration</key> 
    356399                            <dict> 
     
    365408                                <string>{{0, 368}, {607, 156}}</string> 
    366409                                <key>RubberWindowFrame</key> 
    367                                 <string>320 151 815 565 0 0 1280 778 </string> 
     410                                <string>358 204 815 565 0 0 1280 778 </string> 
    368411                            </dict> 
    369412                            <key>Module</key> 
     
    389432            <key>TableOfContents</key> 
    390433            <array> 
    391                 <string>F50150780A3B0A2600FF1743</string> 
     434                <string>F599F1D20A3B101D00F0D5D3</string> 
    392435                <string>1CE0B1FE06471DED0097A5F4</string> 
    393                 <string>F50150790A3B0A2600FF1743</string> 
     436                <string>F599F1D30A3B101D00F0D5D3</string> 
    394437                <string>1CE0B20306471E060097A5F4</string> 
    395438                <string>1CE0B20506471E060097A5F4</string> 
     
    525568    <key>WindowOrderList</key> 
    526569    <array> 
     570        <string>1C0AD2B3069F1EA900FABCE6</string> 
     571        <string>F5AE5683082409020043A79D</string> 
     572        <string>F599F1DD0A3B10C900F0D5D3</string> 
    527573        <string>/Users/gnue/Desktop/NEWT0/newt.xcodeproj</string> 
    528574    </array> 
    529575    <key>WindowString</key> 
    530     <string>320 151 815 565 0 0 1280 778 </string> 
     576    <string>358 204 815 565 0 0 1280 778 </string> 
    531577    <key>WindowTools</key> 
    532578    <array> 
     
    544590                    <array> 
    545591                        <dict> 
    546                             <key>BecomeActive</key> 
    547                             <true/> 
    548592                            <key>ContentConfiguration</key> 
    549593                            <dict> 
     
    551595                                <string>1CD0528F0623707200166675</string> 
    552596                                <key>PBXProjectModuleLabel</key> 
    553                                 <string>NewtIO.c</string> 
     597                                <string></string> 
    554598                                <key>StatusBarVisibility</key> 
    555599                                <true/> 
     
    607651            <array> 
    608652                <string>F5AE5683082409020043A79D</string> 
    609                 <string>F55232B20A3B02F5008E979A</string> 
     653                <string>F599F1CE0A3B101B00F0D5D3</string> 
    610654                <string>1CD0528F0623707200166675</string> 
    611655                <string>XCMainBuildResultsModuleGUID</string> 
     
    618662            <string>F5AE5683082409020043A79D</string> 
    619663            <key>WindowToolIsVisible</key> 
    620             <true/> 
     664            <false/> 
    621665        </dict> 
    622666        <dict> 
     
    954998            <array> 
    955999                <string>1C0AD2B3069F1EA900FABCE6</string> 
    956                 <string>F55232B30A3B02F5008E979A</string> 
     1000                <string>F599F1CF0A3B101B00F0D5D3</string> 
    9571001                <string>1CD0528B0623707200166675</string> 
    958                 <string>F55232B40A3B02F5008E979A</string> 
     1002                <string>F599F1D00A3B101B00F0D5D3</string> 
    9591003            </array> 
    9601004            <key>ToolbarConfiguration</key> 
  • NEWT0/trunk/newt.xcodeproj/gnue.pbxuser

    r56 r58  
    151151                ); 
    152152            }; 
    153             PBXPerProjectTemplateStateSaveDate = 171641315; 
     153            PBXPerProjectTemplateStateSaveDate = 171642897; 
    154154            PBXPrepackagedSmartGroups_v2 = ( 
    155155                { 
     
    830830                RubberWindowFrame = "374 174 745 468 0 0 1024 746 "; 
    831831            }; 
    832             PBXWorkspaceStateSaveDate = 171641315; 
     832            PBXWorkspaceStateSaveDate = 171642897; 
    833833        }; 
    834834        perUserProjectItems = { 
     
    836836            F55232C10A3B0312008E979A /* PBXTextBookmark */ = F55232C10A3B0312008E979A /* PBXTextBookmark */; 
    837837            F55232C20A3B0312008E979A /* PBXTextBookmark */ = F55232C20A3B0312008E979A /* PBXTextBookmark */; 
    838             F5BB62D00A3B098C001F0D4F /* PBXTextBookmark */ = F5BB62D00A3B098C001F0D4F /* PBXTextBookmark */; 
     838            F599F1DC0A3B10C900F0D5D3 /* PBXTextBookmark */ = F599F1DC0A3B10C900F0D5D3 /* PBXTextBookmark */; 
     839            F599F1DF0A3B10C900F0D5D3 /* PBXTextBookmark */ = F599F1DF0A3B10C900F0D5D3 /* PBXTextBookmark */; 
     840            F599F1E00A3B10C900F0D5D3 /* PBXTextBookmark */ = F599F1E00A3B10C900F0D5D3 /* PBXTextBookmark */; 
    839841        }; 
    840842        sourceControlManager = F5AFECA0055CDC00002C8506 /* Source Control */; 
     
    10301032            sepNavWindowFrame = "{{530, 48}, {750, 558}}"; 
    10311033        }; 
     1034    }; 
     1035    F599F1DC0A3B10C900F0D5D3 /* PBXTextBookmark */ = { 
     1036        isa = PBXTextBookmark; 
     1037        fRef = F53BCC6C0670CDBD0013103E /* NewtIO.c */; 
     1038        name = "NewtIO.c: cbreak_and_noecho"; 
     1039        rLen = 0; 
     1040        rLoc = 672; 
     1041        rType = 0; 
     1042        vrLen = 472; 
     1043        vrLoc = 489; 
     1044    }; 
     1045    F599F1DF0A3B10C900F0D5D3 /* PBXTextBookmark */ = { 
     1046        isa = PBXTextBookmark; 
     1047        fRef = F5E14ADB057984FA009742A2 /* version.h */; 
     1048        name = "version.h: NEWT_BUILD"; 
     1049        rLen = 0; 
     1050        rLoc = 528; 
     1051        rType = 0; 
     1052        vrLen = 983; 
     1053        vrLoc = 0; 
     1054    }; 
     1055    F599F1E00A3B10C900F0D5D3 /* PBXTextBookmark */ = { 
     1056        isa = PBXTextBookmark; 
     1057        fRef = F5E14ADB057984FA009742A2 /* version.h */; 
     1058        name = "version.h: NEWT_BUILD"; 
     1059        rLen = 0; 
     1060        rLoc = 528; 
     1061        rType = 0; 
     1062        vrLen = 983; 
     1063        vrLoc = 0; 
    10321064    }; 
    10331065    F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = { 
     
    12691301        indexTemplatePath = ""; 
    12701302    }; 
    1271     F5BB62D00A3B098C001F0D4F /* PBXTextBookmark */ = { 
    1272         isa = PBXTextBookmark; 
    1273         fRef = F53BCC6C0670CDBD0013103E /* NewtIO.c */; 
    1274         name = "NewtIO.c: cbreak_and_noecho"; 
    1275         rLen = 0; 
    1276         rLoc = 672; 
    1277         rType = 0; 
    1278         vrLen = 472; 
    1279         vrLoc = 489; 
    1280     }; 
    12811303    F5DE1345082AD4A500BB42A5 /* config.h */ = { 
    12821304        uiCtxt = { 
     
    12971319    F5E14ADB057984FA009742A2 /* version.h */ = { 
    12981320        uiCtxt = { 
    1299             sepNavIntBoundsRect = "{{0, 0}, {566, 725}}"; 
    1300             sepNavSelRange = "{284, 0}"; 
    1301             sepNavVisRect = "{{0, 2}, {566, 331}}"; 
     1321            sepNavIntBoundsRect = "{{0, 0}, {711, 725}}"; 
     1322            sepNavSelRange = "{528, 0}"; 
     1323            sepNavVisRect = "{{0, 2}, {711, 429}}"; 
    13021324            sepNavWindowFrame = "{{377, 154}, {750, 558}}"; 
    13031325        }; 
  • NEWT0/trunk/newt.xcodeproj/project.pbxproj

    r56 r58  
    7171 
    7272/* Begin PBXFileReference section */ 
    73         8DD76FB20486AB0100D96B5E /* newt */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = newt; sourceTree = BUILT_PRODUCTS_DIR; }; 
     73        8DD76FB20486AB0100D96B5E /* newt */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = newt; sourceTree = BUILT_PRODUCTS_DIR; }; 
    7474        F503AC6A0851DFD9009BA497 /* endian_utils.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = endian_utils.c; sourceTree = "<group>"; }; 
    7575        F503AC6B0851DFD9009BA497 /* endian_utils.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = endian_utils.h; sourceTree = "<group>"; }; 
  • NEWT0/trunk/src/newt_core/NewtStr.c

    r5 r58  
    1919/* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
    2020static newtRef  NewtParamStr(char * baseStr, size_t baseStrLen, newtRefArg paramStrArray, bool ifthen); 
    21  
     21static bool     NewtBeginsWith(const char * str, const char * sub); 
     22static bool     NewtEndsWith(const char * str, const char * sub); 
    2223 
    2324 
     
    145146 
    146147    return dstStr; 
     148} 
     149 
     150 
     151/*------------------------------------------------------------------------*/ 
     152/** •¶Žš—ñ‚Ì‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é 
     153 * 
     154 * @param str       [in] •¶Žš—ñ 
     155 * @param sub       [in] •”•ª•¶Žš—ñ 
     156 * 
     157 * @retval          true    ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é 
     158 * @retval          false   ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚µ‚È‚¢ 
     159 */ 
     160 
     161bool NewtBeginsWith(const char * str, const char * sub) 
     162{ 
     163    int32_t len; 
     164    int32_t sublen; 
     165 
     166    len = strlen(str); 
     167    sublen = strlen(sub); 
     168 
     169    if (len < sublen) 
     170        return false; 
     171    else 
     172        return (strncasecmp(str, sub, sublen) == 0); 
     173} 
     174 
     175 
     176/*------------------------------------------------------------------------*/ 
     177/** •¶Žš—ñ‚̍Ōã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é 
     178 * 
     179 * @param str       [in] •¶Žš—ñ 
     180 * @param sub       [in] •”•ª•¶Žš—ñ 
     181 * 
     182 * @retval          true    ÅŒã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é 
     183 * @retval          false   ÅŒã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚µ‚È‚¢ 
     184 */ 
     185 
     186bool NewtEndsWith(const char * str, const char * sub) 
     187{ 
     188    int32_t st; 
     189 
     190    st = strlen(str) - strlen(sub); 
     191 
     192    if (st < 0) 
     193        return false; 
     194    else 
     195        return (strcasecmp(str + st, sub) == 0); 
    147196} 
    148197 
     
    459508    return theResult; 
    460509} 
     510 
     511 
     512/*------------------------------------------------------------------------*/ 
     513/** •¶Žš—ñ‚Ì‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é 
     514 * 
     515 * @param rcvr      [in] ƒŒƒV[ƒo 
     516 * @param str       [in] •¶Žš—ñ 
     517 * @param sub       [in] •”•ª•¶Žš—ñ 
     518 * 
     519 * @retval          TRUE    ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é 
     520 * @retval          NIL     ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚µ‚È‚¢ 
     521 */ 
     522 
     523newtRef NsBeginsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub) 
     524{ 
     525    bool    result; 
     526 
     527    if (! NewtRefIsString(str)) 
     528        return NewtThrow(kNErrNotAString, str); 
     529 
     530    if (! NewtRefIsString(sub)) 
     531        return NewtThrow(kNErrNotAString, sub); 
     532 
     533    result = NewtBeginsWith(NewtRefToString(str), NewtRefToString(sub)); 
     534 
     535    return NewtMakeBoolean(result); 
     536} 
     537 
     538 
     539/*------------------------------------------------------------------------*/ 
     540/** •¶Žš—ñ‚̍Ōã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é 
     541 * 
     542 * @param rcvr      [in] ƒŒƒV[ƒo 
     543 * @param str       [in] •¶Žš—ñ 
     544 * @param sub       [in] •”•ª•¶Žš—ñ 
     545 * 
     546 * @retval          TRUE    ÅŒã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é 
     547 * @retval          NIL     ÅŒã”ö‚ª•”•ª•¶Žš—ñ‚ƈê’v‚µ‚È‚¢ 
     548 */ 
     549 
     550newtRef NsEndsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub) 
     551{ 
     552    bool    result; 
     553 
     554    if (! NewtRefIsString(str)) 
     555        return NewtThrow(kNErrNotAString, str); 
     556 
     557    if (! NewtRefIsString(sub)) 
     558        return NewtThrow(kNErrNotAString, sub); 
     559 
     560    result = NewtEndsWith(NewtRefToString(str), NewtRefToString(sub)); 
     561 
     562    return NewtMakeBoolean(result); 
     563} 
  • NEWT0/trunk/src/newt_core/NewtVM.c

    r45 r58  
    34713471    NewtDefGlobalFunc(NSSYM(StrEqual),      NsStrEqual,         2, "StrEqual(a, b)"); 
    34723472    NewtDefGlobalFunc(NSSYM(StrExactCompare),NsStrExactCompare, 2, "StrExactCompare(a, b)"); 
     3473    NewtDefGlobalFunc(NSSYM(BeginsWith),    NsBeginsWith,       2, "BeginsWith(str, sub)"); 
     3474    NewtDefGlobalFunc(NSSYM(EndsWith),      NsEndsWith,         2, "EndsWith(str, sub)"); 
    34733475    NewtDefGlobalFunc(NSSYM(SPrintObject),  NsSPrintObject,     1, "SPrintObject(obj)"); 
    34743476    NewtDefGlobalFunc(NSSYM(SymbolCompareLex),  NsSymbolCompareLex, 2, "SymbolCompareLex(symbol1, symbol2)"); 
  • NEWT0/trunk/src/newt_core/incs/NewtStr.h

    r1 r58  
    4242newtRef     NsStrEqual(newtRefArg rcvr, newtRefArg a, newtRefArg b); 
    4343newtRef     NsStrExactCompare(newtRefArg rcvr, newtRefArg a, newtRefArg b); 
     44newtRef     NsBeginsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub); 
     45newtRef     NsEndsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub); 
    4446 
    4547newtRef     NsSPrintObject(newtRefArg rcvr, newtRefArg r); 
  • NEWT0/trunk/src/version.h

    r47 r58  
    1919#define NEWT_VERSION    "0.1.1"                                 ///< ƒo[ƒWƒ‡ƒ“ 
    2020#define NEWT_COPYRIGHT  "Copyright (C) 2003-2005 Makoto Nukui"  ///< ƒRƒs[ƒ‰ƒCƒg 
    21 #define NEWT_BUILD      "2005-11-28-1"                          ///< ƒrƒ‹ƒh”ԍ† 
     21#define NEWT_BUILD      "2006-06-10-2"                          ///< ƒrƒ‹ƒh”ԍ† 
    2222#define NEWT_PARAMS     "[switches] [--] [programfile]"         ///< ˆø” 
    2323 
Note: See TracChangeset for help on using the changeset viewer.