IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 17, 2004, 7:53:16 AM (22 years ago)
Author:
rhl
Message:

Updated to match APIs in include/*.h

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/archive/pslib/src/Utils/trace.c

    r569 r707  
    3434#define NO_CACHE "\a"                   // no name is cached
    3535
    36 #define UNKNOWN_LEVEL -9999             // we don't know this name's level
     36#define UNKNOWN_LEVEL -9999             // we don\'t know this name\'s level
    3737
    3838static char cachedName[CACHE_NAME_LEN + 1] = NO_CACHE; // last name looked up
     
    176176/*****************************************************************************/
    177177
    178 int psSetTraceLevel(const char *comp,   // component of interest
     178int psTraceSetLevel(const char *comp,   // component of interest
    179179                    int level)          // desired trace level
    180180{
     
    201201 * Return a trace level given a name
    202202 */
    203 static int doGetTraceLevel(const Component *comp, // end of component to search
     203static int doTraceGetLevel(const Component *comp, // end of component to search
    204204                           const char *aname) // name to find
    205205{
     
    215215    for (int i = 0; i < comp->n; i++) {
    216216        if (strcmp(comp->subcomp[i]->name, cpt0) == 0) { // a match
    217             if (rest == NULL) {         // we're there
     217            if (rest == NULL) {         // we\'re there
    218218                int level = comp->subcomp[i]->level;
    219219
    220220                return (level == UNKNOWN_LEVEL) ? comp->level : level;
    221221            } else {
    222                 return doGetTraceLevel(comp->subcomp[i], rest);
     222                return doTraceGetLevel(comp->subcomp[i], rest);
    223223            }
    224224        }
     
    230230}
    231231
    232 int psGetTraceLevel(const char *name)   // component of interest
     232int psTraceGetLevel(const char *name)   // component of interest
    233233{
    234234    if (croot == NULL) {
     
    240240    }
    241241
    242     int level = doGetTraceLevel(croot, name);
     242    int level = doTraceGetLevel(croot, name);
    243243
    244244    strncpy(cachedName, name, CACHE_NAME_LEN);
     
    252252 * Print a tree of trace levels
    253253 */
    254 static void doPrintTraceLevels(const Component *comp, int depth)
     254static void doTracePrintLevels(const Component *comp, int depth)
    255255{
    256256    if (comp->name[0] == '\0') {
     
    268268   
    269269    for (int i = 0; i < comp->n; i++) {
    270         doPrintTraceLevels(comp->subcomp[i], depth + 1);
    271     }
    272 }
    273 
    274 void psPrintTraceLevels(void)
     270       doTracePrintLevels(comp->subcomp[i], depth + 1);
     271    }
     272}
     273
     274void psTracePrintLevels(void)
    275275{
    276276    if (croot == NULL) {
     
    278278    }
    279279
    280     doPrintTraceLevels(croot, 0);
    281 }
     280    doTracePrintLevels(croot, 0);
     281}
     282
     283/*****************************************************************************/
     284/*
     285 * Change where we're writing to; close previous file descriptor
     286 * if it isn't stdout/stderr
     287 */
     288static FILE *traceFD = NULL;
     289
     290void psTraceSetDestination(FILE *fp)
     291{
     292   if (traceFD != stdout && traceFD != stderr) {
     293      fclose(traceFD);
     294   }
     295
     296   traceFD = fp;
     297}
     298
    282299
    283300/*****************************************************************************/
     
    290307               ...)                     // arguments
    291308{
    292     if (level <= highest_level && psGetTraceLevel(comp) >= level) {
     309    if (level <= highest_level && psTraceGetLevel(comp) >= level) {
     310        if (traceFD == NULL) {          // not initialised, or fopen failed
     311           traceFD = stdout;
     312        }
     313
    293314        va_list ap;
    294315        va_start(ap, level);
    295316        for (int i = 0; i < level; i++) {
    296             putchar(' ');
     317            fputc(' ', traceFD);
    297318        }
    298319        char *fmt = va_arg(ap, char *);
    299         vprintf(fmt, ap);
     320        vfprintf(traceFD, fmt, ap);
    300321        if (strchr(fmt, '\n') == NULL) {
    301             printf("\n");
     322            fputc('\n', traceFD);
    302323        }
    303324        va_end(ap);
Note: See TracChangeset for help on using the changeset viewer.