1/*	$NetBSD: comment.c,v 1.2 2022/10/08 16:12:44 christos Exp $	*/
2
3#include <stdio.h>
4
5void    copy_comment()
6{
7    int     c;
8
9    while ((c = getchar()) != EOF) {
10	if (c == '*') {
11	    if ((c = getchar()) == '/') {
12		putchar('\n');
13		return;
14	    }
15	    if (c != EOF)
16		ungetc(c, stdin);
17	    putchar('*');
18	} else {
19	    putchar(c);
20	}
21    }
22}
23
24void    skip_string(int quote)
25{
26    int     c;
27
28    while ((c = getchar()) != EOF) {
29	if (c == quote) {
30	    return;
31	} else if (c == '\\') {
32	    getchar();
33	}
34    }
35}
36
37int     main()
38{
39    int     c;
40
41    while ((c = getchar()) != EOF) {
42	switch (c) {
43	case '/':
44	    if ((c = getchar()) == '*') {
45		copy_comment();
46	    } else if (c == '/') {
47		while ((c = getchar()) != EOF) {
48		    putchar(c);
49		    if (c == '\n')
50			break;
51		}
52	    } else {
53		if (c != EOF)
54		    ungetc(c, stdin);
55	    }
56	    break;
57	case '"':
58	case '\'':
59	    skip_string(c);
60	    break;
61	case '\\':
62	    (void) getchar();
63	    break;
64	default:
65	    break;
66	}
67    }
68}
69