| | 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 | |
| | 154 | bool 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 | |
| | 175 | bool 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); |
| | 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 | |
| | 501 | newtRef 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 | |
| | 524 | newtRef 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 | } |