@@ -97,7 +97,7 @@ int _DecodeQP( const CHAR_TYPE* pS, const int nLen, char* pDst )
97
97
98
98
while ( pr < pS + nLen ){
99
99
/* =XX の形式でない部分をデコード */
100
- if ( sizeof (CHAR_TYPE) == 2 ){
100
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
101
101
if ( *pr != L' =' ){
102
102
*pw = static_cast <char >( *pr );
103
103
pw += 1 ;
@@ -221,7 +221,7 @@ int _DecodeBase64( const CHAR_TYPE *pSrc, const int nSrcLen, char *pDest )
221
221
int i = 0 ;
222
222
bool bret;
223
223
for ( ; i < nsrclen; i++ ){
224
- if ( sizeof (CHAR_TYPE) == 2 ){
224
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
225
225
bret = ( pSrc[nsrclen-1 -i] == L' =' );
226
226
}else {
227
227
bret = ( pSrc[nsrclen-1 -i] == ' =' );
@@ -415,7 +415,7 @@ bool CheckUUHeader( const CHAR_TYPE *pSrc, const int nLen, WCHAR *pszFilename )
415
415
// 先頭の空白・改行文字をスキップ
416
416
for ( nstartidx = 0 ; nstartidx < nLen; ++nstartidx ){
417
417
CHAR_TYPE c = pSrc[nstartidx];
418
- if ( sizeof (CHAR_TYPE) == 2 ){
418
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
419
419
if ( c != L' \r ' && c != L' \n ' && c != L' ' && c != L' \t ' ){
420
420
break ;
421
421
}
@@ -439,13 +439,13 @@ bool CheckUUHeader( const CHAR_TYPE *pSrc, const int nLen, WCHAR *pszFilename )
439
439
// error.
440
440
return false ;
441
441
}
442
- if ( sizeof (CHAR_TYPE) == 2 ){
442
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
443
443
if ( wcsncmp_literal (pwstart, L" begin" ) != 0 ){
444
444
// error.
445
445
return false ;
446
446
}
447
447
}else {
448
- if ( strncmp_literal (reinterpret_cast < const char *>( pwstart) , " begin" ) != 0 ){
448
+ if ( strncmp_literal (pwstart, " begin" ) != 0 ){
449
449
// error.
450
450
return false ;
451
451
}
@@ -459,7 +459,7 @@ bool CheckUUHeader( const CHAR_TYPE *pSrc, const int nLen, WCHAR *pszFilename )
459
459
return false ;
460
460
}
461
461
for ( int i = 0 ; i < nwlen; i++ ){
462
- if ( sizeof (CHAR_TYPE) == 2 ){
462
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
463
463
// WCHAR の場合の処理
464
464
if ( !iswdigit (pwstart[i]) || (pwstart[i] == L' 8' || pwstart[i] == L' 9' ) ){
465
465
// error.
@@ -480,7 +480,7 @@ bool CheckUUHeader( const CHAR_TYPE *pSrc, const int nLen, WCHAR *pszFilename )
480
480
// 末尾の空白・改行文字をスキップ
481
481
for ( ; nwlen > 0 ; --nwlen ){
482
482
CHAR_TYPE c = pwstart[nwlen-1 ];
483
- if ( sizeof (CHAR_TYPE) == 2 ){
483
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
484
484
if ( !WCODE::IsLineDelimiterBasic (c) && c != L' ' && c != L' \t ' ){
485
485
break ;
486
486
}
@@ -521,7 +521,7 @@ bool CheckUUFooter( const CHAR_TYPE *pS, const int nLen )
521
521
// 先頭の改行・空白文字をスキップ
522
522
for ( nstartidx = 0 ; nstartidx < nLen; ++nstartidx ){
523
523
CHAR_TYPE c = pS[nstartidx];
524
- if ( sizeof (CHAR_TYPE) == 2 ){
524
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
525
525
// WCHAR の場合の処理
526
526
if ( c != L' \r ' && c != L' \n ' && c != L' ' && c != L' \t ' ){
527
527
break ;
@@ -541,13 +541,13 @@ bool CheckUUFooter( const CHAR_TYPE *pS, const int nLen )
541
541
if ( nsrclen < 3 ){
542
542
return false ;
543
543
}
544
- if ( sizeof (CHAR_TYPE) == 2 ){
544
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
545
545
if ( wcsncmp_literal (&pS[nstartidx], L" end" ) != 0 ){
546
546
// error.
547
547
return false ;
548
548
}
549
549
}else {
550
- if ( strncmp_literal (reinterpret_cast < const char *>( &pS[nstartidx]) , " end" ) != 0 ){
550
+ if ( strncmp_literal (&pS[nstartidx], " end" ) != 0 ){
551
551
// error.
552
552
return false ;
553
553
}
@@ -557,7 +557,7 @@ bool CheckUUFooter( const CHAR_TYPE *pS, const int nLen )
557
557
// end の後が空白文字ばかりであることを確認
558
558
for ( ; i < nsrclen; ++i ){
559
559
CHAR_TYPE c = psrc[i];
560
- if ( sizeof (CHAR_TYPE) == 2 ){
560
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
561
561
// WCHAR の場合の処理
562
562
if ( !WCODE::IsLineDelimiterBasic (c) && c != L' ' && c != L' \t ' ){
563
563
return false ;
@@ -613,8 +613,8 @@ int _DecodeMimeHeader( const CHAR_TYPE* pSrc, const int nSrcLen, CMemory* pcMem_
613
613
614
614
if ( pSrc+14 < pSrc+nSrcLen ){
615
615
// JIS の場合
616
- if ( sizeof (CHAR_TYPE) == 2 ){
617
- ncmpresult = wcsnicmp_literal ( reinterpret_cast < const wchar_t *>( &pSrc[0 ]) , L" =?ISO-2022-JP?" );
616
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
617
+ ncmpresult = wcsnicmp_literal ( &pSrc[0 ], L" =?ISO-2022-JP?" );
618
618
}else {
619
619
ncmpresult = strnicmp_literal ( &pSrc[0 ], " =?ISO-2022-JP?" );
620
620
}
@@ -626,8 +626,8 @@ int _DecodeMimeHeader( const CHAR_TYPE* pSrc, const int nSrcLen, CMemory* pcMem_
626
626
}
627
627
if ( pSrc+8 < pSrc+nSrcLen ){
628
628
// UTF-8 の場合
629
- if ( sizeof (CHAR_TYPE) == 2 ){
630
- ncmpresult = wcsnicmp_literal ( reinterpret_cast < const wchar_t *>( &pSrc[0 ]) , L" =?UTF-8?" );
629
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
630
+ ncmpresult = wcsnicmp_literal ( &pSrc[0 ], L" =?UTF-8?" );
631
631
}else {
632
632
ncmpresult = strnicmp_literal ( &pSrc[0 ], " =?UTF-8?" );
633
633
}
@@ -660,9 +660,9 @@ finish_first_detect:;
660
660
pcMem_alt->SetRawData ( " " , 0 );
661
661
return 0 ;
662
662
}
663
- if ( sizeof (CHAR_TYPE) == 2 ){
664
- ncmpresult1 = wcsnicmp_literal ( reinterpret_cast < const wchar_t *>( &pSrc[nLen_part1]) , L" B?" );
665
- ncmpresult2 = wcsnicmp_literal ( reinterpret_cast < const wchar_t *>( &pSrc[nLen_part1]) , L" Q?" );
663
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
664
+ ncmpresult1 = wcsnicmp_literal ( &pSrc[nLen_part1], L" B?" );
665
+ ncmpresult2 = wcsnicmp_literal ( &pSrc[nLen_part1], L" Q?" );
666
666
}else {
667
667
ncmpresult1 = strnicmp_literal ( &pSrc[nLen_part1], " B?" );
668
668
ncmpresult2 = strnicmp_literal ( &pSrc[nLen_part1], " Q?" );
@@ -684,8 +684,8 @@ finish_first_detect:;
684
684
pr_base = pSrc + nLen_part1 + nLen_part2;
685
685
pr = pSrc + nLen_part1 + nLen_part2;
686
686
for ( ; pr < pSrc+nSrcLen-1 ; ++pr ){
687
- if ( sizeof (CHAR_TYPE) == 2 ){
688
- ncmpresult = wcsncmp_literal ( reinterpret_cast < const wchar_t *>(pr) , L" ?=" );
687
+ if constexpr ( sizeof (CHAR_TYPE) == 2 ){
688
+ ncmpresult = wcsncmp_literal ( pr , L" ?=" );
689
689
}else {
690
690
ncmpresult = strncmp_literal ( pr, " ?=" );
691
691
}
0 commit comments