1 /***********************************************************************
2 * *
3 * This software is part of the ast package *
4 * Copyright (c) 1986-2011 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Eclipse Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
8 * *
9 * A copy of the License is available at *
10 * http://www.eclipse.org/org/documents/epl-v10.html *
11 * (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research *
15 * Florham Park NJ *
16 * *
17 * Glenn Fowler <gsf@research.att.com> *
18 * *
19 ***********************************************************************/
20 #pragma prototyped
21 /*
22 * Glenn Fowler
23 * AT&T Research
24 *
25 * common preprocessor pragma handler
26 */
27
28 #include "pplib.h"
29
30 void
pppragma(char * directive,char * pass,char * name,char * value,int newline)31 pppragma(char* directive, char* pass, char* name, char* value, int newline)
32 {
33 register int sep = 0;
34
35 ppsync();
36 if (directive)
37 {
38 ppprintf("#%s", directive);
39 sep = 1;
40 }
41 if (pass)
42 {
43 if (sep)
44 {
45 sep = 0;
46 ppprintf(" ");
47 }
48 ppprintf("%s:", pass);
49 }
50 if (name)
51 {
52 if (sep)
53 ppprintf(" ");
54 else
55 sep = 1;
56 ppprintf("%s", name);
57 }
58 if (value)
59 {
60 if (sep || pass)
61 ppprintf(" ");
62 ppprintf("%s", value);
63 }
64 if (newline)
65 ppprintf("\n");
66 }
67