File: Warning.c

package info (click to toggle)
gridengine 6.2-4
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 51,532 kB
  • ctags: 51,172
  • sloc: ansic: 418,155; java: 37,080; sh: 22,593; jsp: 7,699; makefile: 5,292; csh: 4,244; xml: 2,901; cpp: 2,086; perl: 1,895; tcl: 1,188; lisp: 669; ruby: 642; yacc: 393; lex: 266
file content (106 lines) | stat: -rw-r--r-- 2,572 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* 
 * Motif Tools Library, Version 3.1
 * $Id$
 * 
 * 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$
 * 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 <Xmt/Xmt.h>

#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);
}