/* * Motif Tools Library, Version 3.1 * $Id: Warning.c,v 1.1.1.1 2001/07/18 11:06:03 root Exp $ * * Written by David Flanagan. * Copyright (c) 1992-2001 by David Flanagan. * All Rights Reserved. See the file COPYRIGHT for details. * This is open source software. See the file LICENSE for details. * There is no warranty for this software. See NO_WARRANTY for details. * * $Log: Warning.c,v $ * Revision 1.1.1.1 2001/07/18 11:06:03 root * Initial checkin. * * Revision 1.2 2001/06/12 16:25:28 andre * *** empty log message *** * * */ #include #if NeedFunctionPrototypes static void PrintMsg(String name, String type, String default_msg, Boolean error, va_list var) #else static void PrintMsg(name, type, default_msg, error, var) String name, type, default_msg; Boolean error; va_list var; #endif { String *params; Cardinal num_params; register char *c; register int i; int len; String msg; /* * The number of arguments should equal the number of '%' * characters in the default string that are not followed * by another % character. */ for(num_params = 0, c = default_msg; *c != '\0'; c++) if ((*c == '%') && (*(c+1) != '\0') && (*(c+1) != '%')) num_params++; /* add one for the procedure name */ num_params++; /* * allocate space for the params, * and initialize the array from the name and arglist */ params = (String *)XtMalloc(num_params * sizeof(String)); params[0] = name; for(i=1; i < num_params; i++) params[i] = va_arg(var, String); /* * prepend "%s: " to the default message. */ len = strlen(default_msg) + 5; msg = XtMalloc(len); (void) strcpy(msg, "%s: "); (void) strcpy(&msg[4], default_msg); if (error) XtErrorMsg(name, type, "XmtError", msg, params, &num_params); else XtWarningMsg(name, type, "XmtWarning", msg, params, &num_params); XtFree((char *)params); XtFree(msg); } #if NeedVarargsPrototypes void XmtErrorMsg(String name, String type, String default_msg, ...) #else void XmtErrorMsg(name, type, default_msg, va_alist) String name, type, default_msg; va_dcl #endif { va_list var; Va_start(var, default_msg); PrintMsg(name, type, default_msg, True, var); va_end(var); } #if NeedVarargsPrototypes void XmtWarningMsg(String name, String type, String default_msg, ...) #else void XmtWarningMsg(name, type, default_msg, va_alist) String name, type, default_msg; va_dcl #endif { va_list var; Va_start(var, default_msg); PrintMsg(name, type, default_msg, False, var); va_end(var); }