# Char\_casecmp in dir.c

**URL:** <https://www.ruby-forum.com/t/char-casecmp-in-dir-c/144372>\
**Category:** Development\
**Created:** [July 29, 2008, 4:28am UTC](https://www.ruby-forum.com/t/char-casecmp-in-dir-c/144372 "2008-07-29T04:28:41Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [July 29, 2008, 4:28am UTC](https://www.ruby-forum.com/t/char-casecmp-in-dir-c/144372/1 "2008-07-29T04:28:41Z")

</div>

dir.c e$B$Ne(B char\_casecmp e$B$G!"e(B

static int  
char\_casecmp(const char \*p1, const char \*p2, rb\_encoding \*enc, const int  
nocase)  
{  
const char \*p1end, \*p2end;  
int c1, c2;

```
if (!*p1) return *p1;
if (!*p2) return -*p2;

```

…

e$B$H$$$&$H$3$m$N!"e(B

```
if (!*p2) return -*p2;

```

e$B$O4qL/$J5$$,$7$^$9!#e(B

return -\*p2 e$B$,F0:n$9$k$N$Oe(B !\*p2 e$B$N$H$-!"$9$J$o$Ae(B \*p2 == 0  
e$B$Ne(B  
e$B$H$-$G$9$,!"$=$&$9$k$He(B -\*p2 e$B$O\>o$Ke(B 0  
e$B$K$J$j$^$9!#$=$l$J$N$Ke(B  
e$B$o$6$o$6IiId9f$r$D$1$F$"$k$C$F$N$O$I$&$$$&0U?^$J$s$G$7$g$&e(B?

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [July 30, 2008, 3:50am UTC](https://www.ruby-forum.com/t/char-casecmp-in-dir-c/144372/2 "2008-07-30T03:50:15Z")

</div>

At Tue, 29 Jul 2008 11:27:52 +0900,  
e$B@.@%$G$9!#e(B

Tanaka A. wrote:

> ```
> if (!*p2) return -*p2;
> 
> ```
> 
> ## e$B$o$6$o$6IiId9f$r$D$1$F$"$k$C$F$N$O$I$&$$$&0U?^$J$s$G$7$g$&e(B?

return \*p1 e$B$He(B return -\*p2 e$B$,5U$@$C$?$N$GD\>$7$^$7$?!#e(B
