]> git.mxchange.org Git - flightgear.git/commitdiff
Processed through the format-o-matic.
authorcurt <curt>
Mon, 9 Mar 1998 22:11:00 +0000 (22:11 +0000)
committercurt <curt>
Mon, 9 Mar 1998 22:11:00 +0000 (22:11 +0000)
Main/fg_debug.c
Main/fg_debug.h

index a6a5ca8663299781f345c603ff29af6a9936950f..7da257fd59120e3d14ed27e3abedb03ee65b84f3 100644 (file)
@@ -1,4 +1,5 @@
-/**************************************************************************
+/* -*- Mode: C++ -*-
+ *
  * fg_debug.c -- Flight Gear debug utility functions
  *
  * Written by Paul Bleisch, started January 1998. 
@@ -23,6 +24,7 @@
  * (Log is kept at end of this file)
  **************************************************************************/
 
+
 #include <string.h>
 #include <stdio.h>
 #include <stdarg.h>
@@ -31,6 +33,7 @@
 #include <Include/cmdargs.h> // Line to command line arguments
 #include <Main/fg_debug.h>
 
+
 static int             fg_DebugSem      = 1;
 fgDebugClass           fg_DebugClass    = FG_ALL;  // Need visibility for
 fgDebugPriority        fg_DebugPriority = FG_INFO; // command line processing.
@@ -52,217 +55,213 @@ FILE *fg_DebugOutput = NULL;  // Visibility needed for command line processor.
 /* Used for convienence initialization from env variables.
  */
 static struct {
-  char *str;
-  fgDebugClass dbg_class;
+    char *str;
+    fgDebugClass dbg_class;
 } fg_DebugClasses[] = {
-  { "FG_NONE",    0x00000000 },
-  { "FG_TERRAIN", 0x00000001 },
-  { "FG_ASTRO",   0x00000002 },
-  { "FG_FLIGHT",  0x00000004 },
-  { "FG_INPUT",   0x00000008 },
-  { "FG_GL",      0x00000010 },
-  { "FG_VIEW",    0x00000020 },
-  { "FG_COCKPIT", 0x00000040 },
-  { "FG_GENERAL", 0x00000080 },
-  { "FG_MATH",    0x00000100 },
-  { "FG_EVENT",   0x00000200 },
-  { "FG_AIRCRAFT",0x00000400 },
-
-  /* Do not edit below here, last entry should be null */
-  { "FG_ALL",     0xFFFFFFFF },
-  { NULL, 0 } };
+    { "FG_NONE",    0x00000000 },
+    { "FG_TERRAIN", 0x00000001 },
+    { "FG_ASTRO",   0x00000002 },
+    { "FG_FLIGHT",  0x00000004 },
+    { "FG_INPUT",   0x00000008 },
+    { "FG_GL",      0x00000010 },
+    { "FG_VIEW",    0x00000020 },
+    { "FG_COCKPIT", 0x00000040 },
+    { "FG_GENERAL", 0x00000080 },
+    { "FG_MATH",    0x00000100 },
+    { "FG_EVENT",   0x00000200 },
+    { "FG_AIRCRAFT",0x00000400 },
+
+    /* Do not edit below here, last entry should be null */
+    { "FG_ALL",     0xFFFFFFFF },
+    { NULL, 0 } 
+};
 
 static fgDebugClass fgDebugStrToClass( char *str );
 
 
 /* fgInitDebug =============================================================*/
-void fgInitDebug( void )
-{
-  char *pszClass, *pszPrio, *pszFile;
+void fgInitDebug( void ) {
+    char *pszClass, *pszPrio, *pszFile;
 
-  // Support for log file/alt debug output via command line, environment or
-  // reasonable default.
+    // Support for log file/alt debug output via command line, environment or
+    // reasonable default.
 
-  if( strlen( logArgbuf ) > 3) {   // First check for command line option
-    fg_DebugOutput = fopen(logArgbuf, "a+" );  // Assumed that we will append.
+    if( strlen( logArgbuf ) > 3) {   // First check for command line option
+       // Assumed that we will append.
+       fg_DebugOutput = fopen(logArgbuf, "a+" );
     }
 
-  if( !fg_DebugOutput ) {          // If not set on command line, environment?
-    pszFile = getenv( "FG_DEBUGFILE" );
-    if( pszFile ) {          // There is such an environmental variable.
-      fg_DebugOutput = fopen( pszFile, "a+" );
-      }
+    if( !fg_DebugOutput ) {          // If not set on command line, environment?
+       pszFile = getenv( "FG_DEBUGFILE" );
+       if( pszFile ) {          // There is such an environmental variable.
+           fg_DebugOutput = fopen( pszFile, "a+" );
+       }
     }
 
-  if( !fg_DebugOutput ) {         // If neither command line nor environment
-    fg_DebugOutput = stderr;      // then we use the fallback position
-    }                       
-
-  FG_GRABDEBUGSEM;
-  fg_DebugSem = fg_DebugSem;  /* shut up GCC */
-
-  // Test command line option overridge of debug priority. If the value
-  // is in range (properly optioned) the we will override both defaults
-  // and the environmental value.
-
-  if ((priorityArgValue >= FG_BULK) && (priorityArgValue <= FG_ABORT)) {
-    fg_DebugPriority = priorityArgValue;
+    if( !fg_DebugOutput ) {         // If neither command line nor environment
+       fg_DebugOutput = stderr;      // then we use the fallback position
     }
-  else {  // Either not set or out of range. We will not warn the user.
-    pszPrio = getenv( "FG_DEBUGPRIORITY" );
-    if( pszPrio ) {
-      fg_DebugPriority = atoi( pszPrio );
-      fprintf( stderr,
-           "fg_debug.c: Environment overrides default debug priority (%d)\n",
-           fg_DebugPriority );
-      }
+    
+    FG_GRABDEBUGSEM;
+    fg_DebugSem = fg_DebugSem;  /* shut up GCC */
+
+    // Test command line option overridge of debug priority. If the value
+    // is in range (properly optioned) the we will override both defaults
+    // and the environmental value.
+
+    if ((priorityArgValue >= FG_BULK) && (priorityArgValue <= FG_ABORT)) {
+       fg_DebugPriority = priorityArgValue;
+    } else {  // Either not set or out of range. We will not warn the user.
+       pszPrio = getenv( "FG_DEBUGPRIORITY" );
+       if( pszPrio ) {
+           fg_DebugPriority = atoi( pszPrio );
+           fprintf( stderr,
+                    "fg_debug.c: Environment overrides default debug priority (%d)\n",
+                    fg_DebugPriority );
+       }
     }
 
 
-  if ((debugArgValue >= FG_ALL) && (debugArgValue < FG_UNDEFD)) {
-    fg_DebugPriority = priorityArgValue;
-    }
-  else {  // Either not set or out of range. We will not warn the user.
-    pszClass = getenv( "FG_DEBUGCLASS" );
-    if( pszClass ) {
-      fg_DebugClass = fgDebugStrToClass( pszClass );
-      fprintf( stderr,
-            "fg_debug.c: Environment overrides default debug class (0x%08X)\n",
-                 fg_DebugClass );
-      }
+    if ((debugArgValue >= FG_ALL) && (debugArgValue < FG_UNDEFD)) {
+       fg_DebugPriority = priorityArgValue;
+    } else {  // Either not set or out of range. We will not warn the user.
+       pszClass = getenv( "FG_DEBUGCLASS" );
+       if( pszClass ) {
+           fg_DebugClass = fgDebugStrToClass( pszClass );
+           fprintf( stderr,
+                    "fg_debug.c: Environment overrides default debug class (0x%08X)\n",
+                    fg_DebugClass );
+       }
     }
 
-  FG_RELEASEDEBUGSEM;
+    FG_RELEASEDEBUGSEM;
 }
 
 /* fgDebugStrToClass ======================================================*/
-fgDebugClass fgDebugStrToClass( char *str )
-{
-  char *hex = "0123456789ABCDEF";
-  char *hexl = "0123456789abcdef";
-  char *pt, *p, *ph, ps = 1;
-  unsigned int val = 0, i;
+fgDebugClass fgDebugStrToClass( char *str ) {
+    char *hex = "0123456789ABCDEF";
+    char *hexl = "0123456789abcdef";
+    char *pt, *p, *ph, ps = 1;
+    unsigned int val = 0, i;
   
-  if( str == NULL ) {
-    return 0;
-  }
-
-  /* Check for 0xXXXXXX notation */
-  if( (p = strstr( str, "0x")) ) {
-    p++; p++;
-    while (*p) {
-      if( (ph = strchr(hex,*p)) || (ph = strchr(hexl,*p)) ){
-       val <<= 4;
-       val += ph-hex;
-       p++;
-      }
-      else {
-       /* fprintf( stderr, "Error in hex string '%s'\n", str ); 
-        */
-       return FG_NONE;
-      }
+    if( str == NULL ) {
+       return 0;
     }
-  }
-  else {
-    /* Must be in string format */
-    p = str;
-    ps = 1;
-    while( ps ) {
-      while( *p && (*p==' ' || *p=='\t') ) p++; /* remove whitespace */
-      pt = p; /* mark token */
-      while( *p && (*p!='|') ) p++; /* find OR or EOS */
-      ps = *p; /* save value at p so we can attempt to be bounds safe */
-      *p++ = 0; /* terminate token */
-      /* determine value for token */
-      i=0; 
-      while( fg_DebugClasses[i].str && 
-            strncmp( fg_DebugClasses[i].str, pt, strlen(fg_DebugClasses[i].str)) ) i++;
-      if( fg_DebugClasses[i].str == NULL ) {
-       fprintf( stderr, "fg_debug.c: Could not find message class '%s'\n", pt ); 
-      } else {
-       val |= fg_DebugClasses[i].dbg_class;
-      }
+
+    /* Check for 0xXXXXXX notation */
+    if( (p = strstr( str, "0x")) ) {
+       p++; p++;
+       while (*p) {
+           if( (ph = strchr(hex,*p)) || (ph = strchr(hexl,*p)) ){
+               val <<= 4;
+               val += ph-hex;
+               p++;
+           } else {
+               // fprintf( stderr, "Error in hex string '%s'\n", str ); 
+               return FG_NONE;
+           }
+       }
+    } else {
+       /* Must be in string format */
+       p = str;
+       ps = 1;
+       while( ps ) {
+           while( *p && (*p==' ' || *p=='\t') ) p++; /* remove whitespace */
+           pt = p; /* mark token */
+           while( *p && (*p!='|') ) p++; /* find OR or EOS */
+           ps = *p; /* save value at p so we can attempt to be bounds safe */
+           *p++ = 0; /* terminate token */
+           /* determine value for token */
+           i=0; 
+           while( fg_DebugClasses[i].str && 
+                  strncmp( fg_DebugClasses[i].str, pt, 
+                           strlen(fg_DebugClasses[i].str)) ) i++;
+           if( fg_DebugClasses[i].str == NULL ) {
+               fprintf( stderr,
+                        "fg_debug.c: Could not find message class '%s'\n",
+                        pt ); 
+           } else {
+               val |= fg_DebugClasses[i].dbg_class;
+           }
+       }
     }
-  }
-  return (fgDebugClass)val;
+    return (fgDebugClass)val;
 }
 
 
 /* fgSetDebugOutput =======================================================*/
-void fgSetDebugOutput( FILE *out )
-{
-  FG_GRABDEBUGSEM;
-  fflush( fg_DebugOutput );
-  fg_DebugOutput = out;
-  FG_RELEASEDEBUGSEM;
+void fgSetDebugOutput( FILE *out ) {
+    FG_GRABDEBUGSEM;
+    fflush( fg_DebugOutput );
+    fg_DebugOutput = out;
+    FG_RELEASEDEBUGSEM;
 }
 
 
 /* fgSetDebugLevels =======================================================*/
-void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio )
-{
-  FG_GRABDEBUGSEM;
-  fg_DebugClass = dbg_class;
-  fg_DebugPriority = prio;
-  FG_RELEASEDEBUGSEM;
+void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio ) {
+    FG_GRABDEBUGSEM;
+    fg_DebugClass = dbg_class;
+    fg_DebugPriority = prio;
+    FG_RELEASEDEBUGSEM;
 }
 
 
 /* fgRegisterDebugCallback ================================================*/
-fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback )
-{
-  fgDebugCallback old;
-  FG_GRABDEBUGSEM;
-  old = fg_DebugCallback;
-  fg_DebugCallback = callback;
-  FG_RELEASEDEBUGSEM;
-  return old;
+fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback ) {
+    fgDebugCallback old;
+    FG_GRABDEBUGSEM;
+    old = fg_DebugCallback;
+    fg_DebugCallback = callback;
+    FG_RELEASEDEBUGSEM;
+    return old;
 }
 
 
 /* fgPrintf ===============================================================*/
-int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... )
-{
-  char szOut[1024+1];
-  va_list ap;
-  int ret = 0;
-
-  // If no action to take, then don't bother with the semaphore activity
-  // Slight speed benefit.
-
-  if( !(dbg_class & fg_DebugClass) || (prio < fg_DebugPriority) ) {
-    return ret;        // Its zero anyway. But we might think about changing
-                       // it upon some error condition?
-  }
-
-  FG_GRABDEBUGSEM;
-
-  /* ret = vsprintf( szOut, fmt, (&fmt+1)); (but it didn't work, thus ... */
-  va_start (ap, fmt);
-  ret = vsprintf( szOut, fmt, ap);
-  va_end (ap);
-
-  if( fg_DebugCallback!=NULL && fg_DebugCallback(dbg_class, prio, szOut) ) {
-    FG_RELEASEDEBUGSEM;
-    return ret;
-  }
-  else {
-    fprintf( fg_DebugOutput, szOut );
-    FG_RELEASEDEBUGSEM;
-    if( prio == FG_EXIT ) {
-      exit(0);
+int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... ) {
+    char szOut[1024+1];
+    va_list ap;
+    int ret = 0;
+
+    // If no action to take, then don't bother with the semaphore
+    // activity Slight speed benefit.
+
+    if( !(dbg_class & fg_DebugClass) || (prio < fg_DebugPriority) ) {
+       // Its zero anyway. But we might think about changing
+       // it upon some error condition?
+       return ret;
     }
-    else if( prio == FG_ABORT ) {
-      abort();
+
+    FG_GRABDEBUGSEM;
+
+    /* ret = vsprintf( szOut, fmt, (&fmt+1)); (but it didn't work, thus ... */
+    va_start (ap, fmt);
+    ret = vsprintf( szOut, fmt, ap);
+    va_end (ap);
+
+    if( fg_DebugCallback!=NULL && fg_DebugCallback(dbg_class, prio, szOut) ) {
+       FG_RELEASEDEBUGSEM;
+       return ret;
+    } else {
+       fprintf( fg_DebugOutput, szOut );
+       FG_RELEASEDEBUGSEM;
+       if( prio == FG_EXIT ) {
+           exit(0);
+       } else if( prio == FG_ABORT ) {
+           abort();
+       }
     }
-  }
-  return ret;  
-} 
+    return ret;  
+}
 
 
 /* $Log$
-/* Revision 1.7  1998/02/16 13:39:43  curt
-/* Miscellaneous weekend tweaks.  Fixed? a cache problem that caused whole
-/* tiles to occasionally be missing.
+/* Revision 1.8  1998/03/09 22:11:00  curt
+/* Processed through the format-o-matic.
 /*
+ * Revision 1.7  1998/02/16 13:39:43  curt
+ * Miscellaneous weekend tweaks.  Fixed? a cache problem that caused whole
+ * tiles to occasionally be missing.
+ *
  */
index 4aa9026136b23fb61de711dce04772ad81d73c66..612d77772a01457f648dfea626d2c9ee737eeaac 100644 (file)
@@ -1,4 +1,5 @@
-/**************************************************************************
+/* -*- Mode: C++ -*-
+ *
  * fg_debug.h -- Flight Gear debug utility functions
  *
  * Written by Paul Bleisch, started January 1998. 
 
 #include <stdio.h>
 
-/* NB:  To add a dbg_class, add it here, and add it to the structure
-   in fg_debug.c
-*/
-typedef enum{
-  FG_NONE    = 0x00000000,
-
-  FG_TERRAIN = 0x00000001,
-  FG_ASTRO   = 0x00000002,
-  FG_FLIGHT  = 0x00000004,
-  FG_INPUT   = 0x00000008,
-  FG_GL      = 0x00000010,
-  FG_VIEW    = 0x00000020,
-  FG_COCKPIT = 0x00000040,
-  FG_GENERAL = 0x00000080,
-  FG_MATH    = 0x00000100,
-  FG_EVENT   = 0x00000200,
-  FG_AIRCRAFT= 0x00000400,
-  FG_UNDEFD  = 0x00001000, // For range checking
-
-  FG_ALL     = 0xFFFFFFFFL  // -1!
-  } fgDebugClass;
-
-/* NB:  To add a priority, add it here.
-*/
+/* NB: To add a dbg_class, add it here, and add it to the structure in
+   fg_debug.c */
+typedef enum {
+    FG_NONE    = 0x00000000,
+
+    FG_TERRAIN = 0x00000001,
+    FG_ASTRO   = 0x00000002,
+    FG_FLIGHT  = 0x00000004,
+    FG_INPUT   = 0x00000008,
+    FG_GL      = 0x00000010,
+    FG_VIEW    = 0x00000020,
+    FG_COCKPIT = 0x00000040,
+    FG_GENERAL = 0x00000080,
+    FG_MATH    = 0x00000100,
+    FG_EVENT   = 0x00000200,
+    FG_AIRCRAFT= 0x00000400,
+    FG_UNDEFD  = 0x00001000, // For range checking
+
+    FG_ALL     = 0xFFFFFFFFL  // -1!
+} fgDebugClass;
+
+/* NB: To add a priority, add it here. */
 typedef enum  {
-  FG_BULK,         /* For frequent messages */
-  FG_DEBUG,        /* Less frequent debug type messages */
-  FG_INFO,          /* Informatory messages */
-  FG_WARN,         /* Possible impending problem */
-  FG_ALERT,         /* Very possible impending problem */
-  FG_EXIT,          /* Problem (no core) */
-  FG_ABORT          /* Abandon ship (core) */
+    FG_BULK,       /* For frequent messages */
+    FG_DEBUG,      /* Less frequent debug type messages */
+    FG_INFO,          /* Informatory messages */
+    FG_WARN,       /* Possible impending problem */
+    FG_ALERT,         /* Very possible impending problem */
+    FG_EXIT,          /* Problem (no core) */
+    FG_ABORT          /* Abandon ship (core) */
 } fgDebugPriority;
 
+
 /* Initialize the debuggin stuff. */
 void fgInitDebug( void );
 
+
 /* fgPrintf
 
    Expects:
@@ -130,6 +131,7 @@ void fgSetDebugOutput( FILE *out );
 typedef int (*fgDebugCallback)( int DebugClass, int DebugPriority, char *outstr);
 fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback );
 
+
 // Leave these alone. Access intended for fg_debug and command line processing.
 //
 extern fgDebugClass    fg_DebugClass;