ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/fputword.c
Revision: 3.11
Committed: Sat Aug 3 15:32:59 2024 UTC (8 months, 4 weeks ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 3.10: +2 -2 lines
Log Message:
feat: Added quoting of empty words

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id: fputword.c,v 3.10 2020/11/13 01:06:14 greg Exp $";
3 #endif
4 /*
5 * Write word to stream, quoting as necessary
6 *
7 * External symbols declared in rtio.h
8 */
9
10 #include "copyright.h"
11
12 #include <ctype.h>
13
14 #include "rtio.h"
15
16 void
17 fputword(s, fp) /* put (quoted) word to file stream */
18 char *s;
19 FILE *fp;
20 {
21 int hasspace = 0;
22 int quote = 0;
23 register char *cp;
24 /* check if quoting needed */
25 for (cp = s; *cp; cp++)
26 if (isspace(*cp))
27 hasspace++;
28 else if ((cp > s) & (*cp == '"') && cp[1])
29 quote = '\'';
30 else if ((cp > s) & (*cp == '\'') && cp[1])
31 quote = '"';
32
33 if (!*s | hasspace | quote) { /* output with quotes */
34 if (!quote) quote = '"';
35 fputc(quote, fp);
36 fputs(s, fp);
37 fputc(quote, fp);
38 } else /* output sans quotes */
39 fputs(s, fp);
40 }