| /* |
| * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of version 2 of the GNU General Public License as |
| * published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it would be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| * |
| * Further, this software is distributed without any warranty that it is |
| * free of the rightful claim of any third person regarding infringement |
| * or the like. Any license provided herein, whether implied or |
| * otherwise, applies only to this software file. Patent licenses, if |
| * any, provided herein do not apply to combinations of this program with |
| * other software, or any other product whatsoever. |
| * |
| * You should have received a copy of the GNU General Public License along |
| * with this program; if not, write the Free Software Foundation, Inc., 59 |
| * Temple Place - Suite 330, Boston MA 02111-1307, USA. |
| * |
| * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, |
| * Mountain View, CA 94043, or: |
| * |
| * http://www.sgi.com |
| * |
| * For further information regarding this notice, see: |
| * |
| * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ |
| * |
| */ |
| /* $Id: debug.c,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */ |
| #include <stdio.h> |
| #include <string.h> |
| #include "reporter.h" |
| |
| |
| #ifdef DEBUGGING |
| int Debug[MAXDEBUG]; /* Debug level in their areas */ |
| #endif |
| |
| /* |
| * set debug areas & levels |
| * |
| * Syntax: area[,area]:level[,area[,area]:level]... |
| */ |
| int |
| set_debug(char *optarg) |
| { |
| #ifdef DEBUGGING |
| /* pointers to the debug area and level in the option's arguments */ |
| char *d_area, *d_level; |
| /* debug area and level after converted to integers */ |
| int db_area, db_level; |
| |
| d_area = optarg; |
| |
| while(*d_area) { |
| d_level= strchr(d_area,':'); |
| *d_level++ = '\0'; |
| db_level= atoi(d_level); |
| db_area=atoi(d_area); |
| |
| if(db_area > MAXDEBUG) { |
| printf("Error - Debug area %s > maximum of %d\n", d_area, |
| MAXDEBUG); |
| exit(-1); |
| } |
| |
| while(d_area != NULL) { |
| db_area = atoi(d_area); |
| printf("Debug area %d set to %d\n", db_area, db_level); |
| Debug[db_area] = db_level; |
| if((d_area = strchr(d_area, ',')) != NULL) |
| d_area++; |
| } |
| if( (d_area = strchr(d_level, ',')) == NULL ) |
| break; |
| } |
| #else |
| printf("Debugging is not enabled. -D has been ignored\n"); |
| #endif |
| |
| return 0; |
| } |