Changeset 58

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

add BeginsWith, EndsWith global function

Location:
NEWT0/trunk
Files:
7 modified

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 
     
    142143 
    143144    return dstStr; 
     145} 
     146 
     147 
     148/*------------------------------------------------------------------------*/ 
     149/** ������O��������������������邩�`�F�b�N����* 
     150 * @param str       [in] ������ @param sub      [in] ���������� 
     151 * @retval          true    �O���������������������* @retval            false   �O��������������������Ȃ� 
     152 */ 
     153 
     154bool NewtBeginsWith(const char * str, const char * sub) 
     155{ 
     156    int32_t len; 
     157    int32_t sublen; 
     158 
     159    len = strlen(str); 
     160    sublen = strlen(sub); 
     161 
     162    if (len < sublen) 
     163        return false; 
     164    else 
     165        return (strncasecmp(str, sub, sublen) == 0); 
     166} 
     167 
     168 
     169/*------------------------------------------------------------------------*/ 
     170/** ������Ō�����������������邩�`�F�b�N����* 
     171 * @param str       [in] ������ @param sub      [in] ���������� 
     172 * @retval          true    �Ō������������������* @retval           false   �Ō�����������������Ȃ� 
     173 */ 
     174 
     175bool NewtEndsWith(const char * str, const char * sub) 
     176{ 
     177    int32_t st; 
     178 
     179    st = strlen(str) - strlen(sub); 
     180 
     181    if (st < 0) 
     182        return false; 
     183    else 
     184        return (strcasecmp(str + st, sub) == 0); 
    144185} 
    145186 
     
    449490    return theResult; 
    450491} 
     492 
     493 
     494/*------------------------------------------------------------------------*/ 
     495/** ������O��������������������邩�`�F�b�N����* 
     496 * @param rcvr      [in] ���V�[�o 
     497 * @param str       [in] ������ @param sub      [in] ���������� 
     498 * @retval          TRUE    �O���������������������* @retval            NIL     �O��������������������Ȃ� 
     499 */ 
     500 
     501newtRef NsBeginsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub) 
     502{ 
     503    bool    result; 
     504 
     505    if (! NewtRefIsString(str)) 
     506        return NewtThrow(kNErrNotAString, str); 
     507 
     508    if (! NewtRefIsString(sub)) 
     509        return NewtThrow(kNErrNotAString, sub); 
     510 
     511    result = NewtBeginsWith(NewtRefToString(str), NewtRefToString(sub)); 
     512 
     513    return NewtMakeBoolean(result); 
     514} 
     515 
     516 
     517/*------------------------------------------------------------------------*/ 
     518/** ������Ō�����������������邩�`�F�b�N����* 
     519 * @param rcvr      [in] ���V�[�o 
     520 * @param str       [in] ������ @param sub      [in] ���������� 
     521 * @retval          TRUE    �Ō������������������* @retval           NIL     �Ō�����������������Ȃ� 
     522 */ 
     523 
     524newtRef NsEndsWith(newtRefArg rcvr, newtRefArg str, newtRefArg sub) 
     525{ 
     526    bool    result; 
     527 
     528    if (! NewtRefIsString(str)) 
     529        return NewtThrow(kNErrNotAString, str); 
     530 
     531    if (! NewtRefIsString(sub)) 
     532        return NewtThrow(kNErrNotAString, sub); 
     533 
     534    result = NewtEndsWith(NewtRefToString(str), NewtRefToString(sub)); 
     535 
     536    return NewtMakeBoolean(result); 
     537} 
  • NEWT0/trunk/src/newt_core/NewtVM.c

    r45 r58  
    33983398    NewtDefGlobalFunc(NSSYM(StrEqual),      NsStrEqual,         2, "StrEqual(a, b)"); 
    33993399    NewtDefGlobalFunc(NSSYM(StrExactCompare),NsStrExactCompare, 2, "StrExactCompare(a, b)"); 
     3400    NewtDefGlobalFunc(NSSYM(BeginsWith),    NsBeginsWith,       2, "BeginsWith(str, sub)"); 
     3401    NewtDefGlobalFunc(NSSYM(EndsWith),      NsEndsWith,         2, "EndsWith(str, sub)"); 
    34003402    NewtDefGlobalFunc(NSSYM(SPrintObject),  NsSPrintObject,     1, "SPrintObject(obj)"); 
    34013403    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]"         ///< ��/// �g�p��define NEWT_USAGE      "  -t              enable trace mode\n"         \ 
    2323                        "  -l              dump lex info\n"             \