X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=flower%2Flibc-extension.cc;h=efa544be6364b45fdd610a7c37a9308f58457d20;hb=91e7cbaa6e54e004365d28e0f10c9362a7f13320;hp=7903dd230b01ee93429d74d90757f3ab7f47a3c1;hpb=0ba6b09d5fa86ccb3650888f0e92ddc8cc915007;p=lilypond.git diff --git a/flower/libc-extension.cc b/flower/libc-extension.cc index 7903dd230b..efa544be63 100644 --- a/flower/libc-extension.cc +++ b/flower/libc-extension.cc @@ -4,40 +4,57 @@ source file of the flowerlib - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2005 Han-Wen Nienhuys Jan Nieuwenhuizen */ -#include -#include -#include #include "libc-extension.hh" -/* - urg: why soo wierd? - */ +#include +#include +#include +#include + char* -strnlwr (char* start_l ,int n) +strnlwr (char* start ,int n) { - char * p = start_l + n; - while (--p >= start_l) + char * p = start + n; + while (--p >= start) { *p = tolower (*p); /* a macro on some compilers */ } - return start_l; + return start; } char* -strnupr (char* start_l, int n) +strnupr (char* start, int n) { - char * p = start_l + n; - while (--p >= start_l) + char * p = start + n; + while (--p >= start) { *p = toupper (*p); /* a macro on some compilers */ } - return start_l; + return start; } +/* + There are some strange problems with round() on early glibcs. + */ +double +my_round (double x) +{ + return floor (x -0.5)+ 1.0 ; +} + +#ifndef isinf +#if !HAVE_ISINF +int +isinf (double x) +{ + return x && ( x == x/ 2) ; +} +#endif +#endif #if !HAVE_MEMMEM @@ -58,13 +75,13 @@ _memmem (Byte const *haystack, int haystack_len, is the spice of life */ while (haystack < end_haystack) { - Byte const *subneedle_l = needle; - Byte const *subhaystack_l = haystack; - while (subneedle_l < end_needle) - if (*subneedle_l++ != *subhaystack_l++) + Byte const *subneedle = needle; + Byte const *subhaystack = haystack; + while (subneedle < end_needle) + if (*subneedle++ != *subhaystack++) goto next; - // completed the needle. Gotcha. + /* Completed the needle. Gotcha. */ return (Byte *) haystack; next: haystack++; @@ -76,9 +93,9 @@ void * memmem (void const *haystack, int haystack_len, void const *needle,int needle_len) { - Byte const* haystack_byte_c_l = haystack; - Byte const* needle_byte_c_l = needle; - return _memmem (haystack_byte_c_l, haystack_len, needle_byte_c_l, needle_len); + Byte const* haystack_byte_c = (Byte const*)haystack; + Byte const* needle_byte_c = (Byte const*)needle; + return _memmem (haystack_byte_c, haystack_len, needle_byte_c, needle_len); } #endif @@ -106,18 +123,18 @@ my_swap (T &t1, T &t2, T &tmp) } Byte* -strrev (Byte* byte_l, int length_i) +strrev (Byte* byte, int length_i) { Byte tmp_byte; - Byte* left_l = byte_l; - Byte* right_l = byte_l + length_i; + Byte* left = byte; + Byte* right = byte + length_i; - while (right_l > left_l) + while (right > left) { - my_swap (*right_l-- , *left_l++ , tmp_byte); + my_swap (*right-- , *left++ , tmp_byte); } - return byte_l; + return byte; } #if ! HAVE_SNPRINTF @@ -140,4 +157,3 @@ vsnprintf (char *str, size_t, char const *format, va_list args) return i; } #endif -