FFFTPのソースコードです。
修订版 | 7ce4d240fce9d30c503b308bf306201f1cc0755f (tree) |
---|---|
时间 | 2012-02-23 10:05:13 |
作者 | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Fix bugs of UTF-8 to UTF-16 API bridge.
@@ -1525,20 +1525,36 @@ static void AddDispFileList(FLISTANCHOR *Anchor, char *Name, FILETIME *Time, LON | ||
1525 | 1525 | |
1526 | 1526 | if((Sort & SORT_GET_ORD) == SORT_ASCENT) |
1527 | 1527 | { |
1528 | - if((((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1529 | - ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) < 0)) || | |
1528 | + // 読みにくいのでリファクタリング | |
1529 | +// if((((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1530 | +// ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) < 0)) || | |
1531 | +//#if defined(HAVE_TANDEM) | |
1532 | +// ((AskHostType() == HTYPE_TANDEM) && | |
1533 | +// ((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1534 | +// ((Cmp = Attr - Pos->Attr) < 0)) || | |
1535 | +//#endif | |
1536 | +// (((Sort & SORT_MASK_ORD) == SORT_SIZE) && | |
1537 | +// ((Cmp = Size - Pos->Size) < 0)) || | |
1538 | +// (((Sort & SORT_MASK_ORD) == SORT_DATE) && | |
1539 | +// ((Cmp = CompareFileTime(Time, &Pos->Time)) < 0))) | |
1540 | +// { | |
1541 | +// break; | |
1542 | +// } | |
1543 | + if(((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1544 | + ((Cmp = _mbsicmp(GetFileExt(Name), GetFileExt(Pos->File))) < 0)) | |
1545 | + break; | |
1530 | 1546 | #if defined(HAVE_TANDEM) |
1531 | - ((AskHostType() == HTYPE_TANDEM) && | |
1532 | - ((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1533 | - ((Cmp = Attr - Pos->Attr) < 0)) || | |
1547 | + if((AskHostType() == HTYPE_TANDEM) && | |
1548 | + ((Sort & SORT_MASK_ORD) == SORT_EXT) && | |
1549 | + ((Cmp = Attr - Pos->Attr) < 0)) | |
1550 | + break; | |
1534 | 1551 | #endif |
1535 | - (((Sort & SORT_MASK_ORD) == SORT_SIZE) && | |
1536 | - ((Cmp = Size - Pos->Size) < 0)) || | |
1537 | - (((Sort & SORT_MASK_ORD) == SORT_DATE) && | |
1538 | - ((Cmp = CompareFileTime(Time, &Pos->Time)) < 0))) | |
1539 | - { | |
1552 | + if(((Sort & SORT_MASK_ORD) == SORT_SIZE) && | |
1553 | + ((Cmp = Size - Pos->Size) < 0)) | |
1554 | + break; | |
1555 | + if(((Sort & SORT_MASK_ORD) == SORT_DATE) && | |
1556 | + ((Cmp = CompareFileTime(Time, &Pos->Time)) < 0)) | |
1540 | 1557 | break; |
1541 | - } | |
1542 | 1558 | |
1543 | 1559 | if(((Sort & SORT_MASK_ORD) == SORT_NAME) || (Cmp == 0)) |
1544 | 1560 | { |
@@ -427,14 +427,19 @@ DWORD GetNextCharM(LPCSTR lpString, LPCSTR* ppNext) | ||
427 | 427 | } |
428 | 428 | else |
429 | 429 | i = -1; |
430 | - lpString++; | |
431 | - while((*lpString & 0xc0) == 0x80) | |
430 | + if(*lpString != 0x00) | |
432 | 431 | { |
433 | - i--; | |
434 | - Code = Code << 6; | |
435 | - Code |= (DWORD)*lpString & 0x3f; | |
436 | 432 | lpString++; |
433 | + while((*lpString & 0xc0) == 0x80) | |
434 | + { | |
435 | + i--; | |
436 | + Code = Code << 6; | |
437 | + Code |= (DWORD)*lpString & 0x3f; | |
438 | + lpString++; | |
439 | + } | |
437 | 440 | } |
441 | + else | |
442 | + lpString++; | |
438 | 443 | if(i != 0) |
439 | 444 | Code = 0x80000000; |
440 | 445 | if(ppNext) |