gallium: Implement debug_get_num_option.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Tue, 10 Jun 2008 14:22:12 +0000 (23:22 +0900)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Thu, 12 Jun 2008 01:56:04 +0000 (10:56 +0900)
For numeric options.

src/gallium/auxiliary/util/p_debug.c
src/gallium/include/pipe/p_debug.h

index d1dfc377f8599c650657f1c89e27aeb539c56919..a0ffb024e42abdec93064ed7b485b4c7198633e8 100644 (file)
@@ -230,8 +230,34 @@ debug_get_bool_option(const char *name, boolean dfault)
 long
 debug_get_num_option(const char *name, long dfault)
 {
-   /* FIXME */
-   return dfault;
+   long result;
+   const char *str;
+   
+   str = debug_get_option(name, NULL);
+   if(!str)
+      result = dfault;
+   else {
+      long sign;
+      char c;
+      c = *str++;
+      if(c == '-') {
+        sign = -1;
+        c = *str++;
+      } 
+      else {
+        sign = 1;
+      }
+      result = 0;
+      while('0' <= c && c <= '9') {
+        result = result*10 + (c - '0');
+        c = *str++;
+      }
+      result *= sign;
+   }
+   
+   debug_printf("%s: %s = %li\n", __FUNCTION__, name, result);
+
+   return result;
 }
 
 
index 05eca7520126b635908346df470f1e6f046cb568..9011557006d70eb68d046afb25af1e9f557529b4 100644 (file)
@@ -289,7 +289,7 @@ boolean
 debug_get_bool_option(const char *name, boolean dfault);
 
 long
-debug_get_unsigned_option(const char *name, long dfault);
+debug_get_num_option(const char *name, long dfault);
 
 unsigned long
 debug_get_flags_option(const char *name,