PennMUSH Community

Ticket #7609: delim-chars.patch.txt

File delim-chars.patch.txt, 4.8 kB (added by Talvo, 7 months ago)

Patch for Nammy's suggestion, though I used %d0 through %d3

Line 
1 *** src/bsd.c.orig  Fri Oct  5 23:36:32 2007
2 --- src/bsd.c   Wed Apr 30 22:43:20 2008
3 ***************
4 *** 3452,3458 ****
5     /* now smash undesirable characters and truncate */
6     for (i = 0; i < DOING_LEN; i++) {
7       if ((buf[i] == '\r') || (buf[i] == '\n') ||
8 !         (buf[i] == '\t') || (buf[i] == BEEP_CHAR))
9         buf[i] = ' ';
10     }
11     buf[DOING_LEN - 1] = '\0';
12 --- 3452,3460 ----
13     /* now smash undesirable characters and truncate */
14     for (i = 0; i < DOING_LEN; i++) {
15       if ((buf[i] == '\r') || (buf[i] == '\n') ||
16 !         (buf[i] == '\t') || (buf[i] == BEEP_CHAR) ||
17 !         (buf[i] == '\34') || (buf[i] == '\35') ||
18 !         (buf[i] == '\36') || (buf[i] == '\37'))
19         buf[i] = ' ';
20     }
21     buf[DOING_LEN - 1] = '\0';
22 ***************
23 *** 3502,3508 ****
24     strncpy(poll_msg, remove_markup(message, NULL), DOING_LEN - 1);
25     for (i = 0; i < DOING_LEN; i++) {
26       if ((poll_msg[i] == '\r') || (poll_msg[i] == '\n') ||
27 !         (poll_msg[i] == '\t') || (poll_msg[i] == BEEP_CHAR))
28         poll_msg[i] = ' ';
29     }
30     poll_msg[DOING_LEN - 1] = '\0';
31 --- 3504,3512 ----
32     strncpy(poll_msg, remove_markup(message, NULL), DOING_LEN - 1);
33     for (i = 0; i < DOING_LEN; i++) {
34       if ((poll_msg[i] == '\r') || (poll_msg[i] == '\n') ||
35 !         (poll_msg[i] == '\t') || (poll_msg[i] == BEEP_CHAR) ||
36 !         (poll_msg[i] == '\34') || (poll_msg[i] == '\35') ||
37 !         (poll_msg[i] == '\36') || (poll_msg[i] == '\37'))
38         poll_msg[i] = ' ';
39     }
40     poll_msg[DOING_LEN - 1] = '\0';
41 *** src/extchat.c.orig  Fri Oct  5 23:36:32 2007
42 --- src/extchat.c   Wed Apr 30 22:45:29 2008
43 ***************
44 *** 2038,2044 ****
45     /* Stomp newlines and other weird whitespace */
46     for (scan = title; *scan; scan++) {
47       if ((isspace((unsigned char) *scan) && (*scan != ' '))
48 !         || (*scan == BEEP_CHAR)) {
49         notify(player, T("Invalid character in title."));
50         return;
51       }
52 --- 2038,2046 ----
53     /* Stomp newlines and other weird whitespace */
54     for (scan = title; *scan; scan++) {
55       if ((isspace((unsigned char) *scan) && (*scan != ' '))
56 !         || (*scan == BEEP_CHAR) || (*scan == '\34')
57 !         || (*scan == '\35') || (*scan == '\36')
58 !         || (*scan == '\37')) {
59         notify(player, T("Invalid character in title."));
60         return;
61       }
62 *** src/funstr.c.orig   Fri Oct  5 23:36:32 2007
63 --- src/funstr.c    Wed Apr 30 22:29:28 2008
64 ***************
65 *** 1442,1448 ****
66     c = parse_integer(args[0]);
67     if (c < 0 || c > UCHAR_MAX)
68       safe_str(T("#-1 THIS ISN'T UNICODE"), buff, bp);
69 !   else if (isprint(c))
70       safe_chr(c, buff, bp);
71     else
72       safe_str(T("#-1 UNPRINTABLE CHARACTER"), buff, bp);
73 --- 1442,1448 ----
74     c = parse_integer(args[0]);
75     if (c < 0 || c > UCHAR_MAX)
76       safe_str(T("#-1 THIS ISN'T UNICODE"), buff, bp);
77 !   else if (isprint(c) || (c > 27 && c < 32))
78       safe_chr(c, buff, bp);
79     else
80       safe_str(T("#-1 UNPRINTABLE CHARACTER"), buff, bp);
81 *** src/markup.c.orig   Fri Oct  5 23:36:32 2007
82 --- src/markup.c    Wed Apr 30 22:41:33 2008
83 ***************
84 *** 1864,1869 ****
85 --- 1864,1881 ----
86           for (i = 1; *(in + 1) == BEEP_CHAR && i < 5; in++, i++) ;
87           retval += safe_format(buff, bp, "[beep(%d)]", i);
88           break;
89 +       case '\34':
90 +         retval += safe_str("%d0", buff, bp);
91 +         break;
92 +       case '\35':
93 +             retval += safe_str("%d1", buff, bp);
94 +         break;
95 +       case '\36':
96 +             retval += safe_str("%d2", buff, bp);
97 +         break;
98 +       case '\37':
99 +             retval += safe_str("%d3", buff, bp);
100 +         break;
101         default:
102           if (escaped_chars[*in])
103             retval += safe_chr('\\', buff, bp);
104 *** src/notify.c.orig   Fri Oct  5 23:36:32 2007
105 --- src/notify.c    Wed Apr 30 22:20:46 2008
106 ***************
107 *** 312,317 ****
108 --- 312,321 ----
109             p++;
110           break;
111         case '\r':
112 +       case '\34':
113 +       case '\35':
114 +       case '\36':
115 +       case '\37':
116         case BEEP_CHAR:
117           break;
118         case ESC_CHAR:
119 *** src/parse.c.orig    Mon Jul  9 04:50:12 2007
120 --- src/parse.c Wed Apr 30 22:27:38 2008
121 ***************
122 *** 981,986 ****
123 --- 981,1010 ----
124               safe_str(iter_rep[inum - inum_this], buff, bp);
125             }
126             break;
127 +         case 'd':
128 +         case 'D':
129 +           nextc = **str;
130 +           if (!nextc)
131 +             goto exit_sequence;
132 +           (*str)++;
133 +           switch (nextc) {
134 +             case '0':
135 +               safe_chr('\34', buff, bp);
136 +               break;
137 +             case '1':
138 +               safe_chr('\35', buff, bp);
139 +               break;
140 +             case '2':
141 +               safe_chr('\36', buff, bp);
142 +               break;
143 +             case '3':
144 +               safe_chr('\37', buff, bp);
145 +               break;
146 +             default:
147 +               safe_str(T("#-1 ARGUMENT OUT OF RANGE"), buff, bp);
148 +               break;
149 +         }
150 +         break;
151           case 'U':
152           case 'u':
153             safe_str(global_eval_context.ucom, buff, bp);