]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/libc-extension.cc
*** empty log message ***
[lilypond.git] / flower / libc-extension.cc
index a06704b1823d9c7f5dfb3dfc523f747e93b20955..efa544be6364b45fdd610a7c37a9308f58457d20 100644 (file)
@@ -4,40 +4,57 @@
 
   source file of the flowerlib
 
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
          Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
 #include "libc-extension.hh"
 
-/*
-  urg: why soo wierd?
- */
+#include <cmath>
+#include <cstdio>
+#include <cstring>
+#include <cctype>
+
 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 = (Byte const*)haystack;
-  Byte const* needle_byte_c_l = (Byte const*)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
-