X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Flib.c;h=d0c6de6de0051dcaa9d8c53bbf5bf0527842bbb4;hb=5cab4c07bc13888dc7956194ef9595508072a4eb;hp=cab5ea8ed5f3df9f65f4fab023f5fca0e2749e9b;hpb=a3228edcd7ab931cd433537f51b0359b67a8fe2a;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/lib.c b/KernelLand/Kernel/lib.c index cab5ea8e..d0c6de6d 100644 --- a/KernelLand/Kernel/lib.c +++ b/KernelLand/Kernel/lib.c @@ -124,7 +124,7 @@ int strpos8(const char *str, Uint32 Search) { // ASCII Range if(Search < 128) { - if(str[pos] == Search) return pos; + if(str[pos] == (char)Search) return pos; continue; } if(*(Uint8*)(str+pos) < 128) continue; @@ -180,7 +180,7 @@ int ReadUTF8(const Uint8 *str, Uint32 *Val) } // Four Byte - if( (*str & 0xF1) == 0xF0 ) { + if( (*str & 0xF8) == 0xF0 ) { outval = (*str & 0x07) << 18; // Upper 3 Bits str ++; if( (*str & 0xC0) != 0x80) return 2; // Validity check @@ -287,23 +287,23 @@ Sint64 timestamp(int sec, int min, int hrs, int day, int month, int year) return stamp * 1000; } +static Sint64 DivMod64(Sint64 N, Sint64 D, Sint64 *R); + +static Sint64 DivMod64(Sint64 N, Sint64 D, Sint64 *R) +{ + int sign = (N < 0) != (D < 0); + if(N < 0) N = -N; + if(D < 0) D = -D; + if(sign) + return -DivMod64U(N, D, (Uint64*)R); + else + return DivMod64U(N, D, (Uint64*)R); +} + void format_date(tTime TS, int *year, int *month, int *day, int *hrs, int *mins, int *sec, int *ms) { int is_leap = 0, i; - auto Sint64 DivMod64(Sint64 N, Sint64 D, Sint64 *R); - - Sint64 DivMod64(Sint64 N, Sint64 D, Sint64 *R) - { - int sign = (N < 0) != (D < 0); - if(N < 0) N = -N; - if(D < 0) D = -D; - if(sign) - return -DivMod64U(N, D, (Uint64*)R); - else - return DivMod64U(N, D, (Uint64*)R); - } - // Get time // TODO: Leap-seconds? { @@ -387,7 +387,7 @@ int ModUtil_SetIdent(char *Dest, const char *Value) int Hex(char *Dest, size_t Size, const Uint8 *SourceData) { - int i; + size_t i; for( i = 0; i < Size; i ++ ) { sprintf(Dest + i*2, "%02x", SourceData[i]); @@ -400,8 +400,7 @@ int Hex(char *Dest, size_t Size, const Uint8 *SourceData) */ int UnHex(Uint8 *Dest, size_t DestSize, const char *SourceString) { - int i; - + size_t i; for( i = 0; i < DestSize*2; i += 2 ) { Uint8 val = 0; @@ -441,4 +440,3 @@ Uint64 SwapEndian64(Uint64 Val) { return SwapEndian32(Val >> 32) | ((Uint64)SwapEndian32(Val) << 32); } -