Imported Upstream version 3.11
Florian Ernst
13 years ago
47 | 47 | dist: ascii-$(VERS).tar.gz |
48 | 48 | |
49 | 49 | release: ascii-$(VERS).tar.gz ascii.html |
50 | shipper -t -m; make clean | |
50 | shipper -u -m -t; make clean |
1 | 1 | .\" Title: ascii |
2 | 2 | .\" Author: [see the "AUTHOR" section] |
3 | 3 | .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> |
4 | .\" Date: 10/19/2010 | |
5 | .\" Manual: Open Source | |
6 | .\" Source: Open Source | |
4 | .\" Date: 03/16/2011 | |
5 | .\" Manual: Development Tools | |
6 | .\" Source: ascii | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "ASCII" "1" "10/19/2010" "Open Source" "Open Source" | |
9 | .TH "ASCII" "1" "03/16/2011" "ascii" "Development Tools" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
210 | 210 | /* interpret single characters as themselves */ |
211 | 211 | if (len == 1) { |
212 | 212 | speak((unsigned int)str[0]); |
213 | return; | |
213 | /* also interpret single digits as numeric */ | |
214 | if(!line && strchr("0123456789ABCDEFabcdef",str[0])) { | |
215 | int hval; | |
216 | (void) sscanf(str, "%x", &hval); | |
217 | speak(hval); | |
218 | } return; | |
214 | 219 | } |
215 | 220 | |
216 | 221 | /* process multiple letters */ |
223 | 228 | |
224 | 229 | /* interpret ^-escapes as control-character notation */ |
225 | 230 | if (strcmp(str, "^?") == 0) |
226 | { speak((unsigned int)0x7F); return; } | |
231 | { speak((unsigned int)0x7F); return; } | |
227 | 232 | else if (str[0] == '^' && len == 2) |
228 | 233 | { speak((unsigned int)(str[1] & 0x1f)); return; } |
229 | 234 | |
232 | 237 | for (ch = 7; ch < 14; ch++) |
233 | 238 | for (ptr = &cnames[ch][1]; *ptr; ptr++) |
234 | 239 | if (**ptr == '\\' && strcmp(str, *ptr) == 0) |
235 | { speak((unsigned int)ch); return; } | |
240 | { speak((unsigned int)ch); return; } | |
236 | 241 | |
237 | 242 | /* interpret 2 and 3-character ASCII control mnemonics */ |
238 | 243 | if (len == 2 || len == 3) |
239 | 244 | { |
240 | 245 | /* first check for standard mnemonics */ |
241 | 246 | if (stricmp(str, "DEL") == 0) |
242 | { speak(0x7f); return; } | |
247 | { speak(0x7f); return; } | |
243 | 248 | if (stricmp(str, "BL") == 0) |
244 | { speak(' '); return; } | |
249 | { speak(' '); return; } | |
245 | 250 | else if (isalpha(str[0])) |
246 | 251 | for (ch = 0; ch <= 32; ch++) |
247 | 252 | if (!stricmp(str,cnames[ch][0]) || !strcmp(str,cnames[ch][1])) |
248 | { speak(ch); return; } | |
253 | { speak(ch); return; } | |
249 | 254 | } |
250 | 255 | |
251 | 256 | /* OK, now try to interpret the string as a numeric */ |
272 | 277 | else if (tolower(str[0]) == 'x') |
273 | 278 | (void) sscanf(str + 1, "%x", &hval); |
274 | 279 | else if ((len >= 2) && (len <= 3) && |
275 | (strspn(str,"0123456789ABCDEFabcdef") == (len-1)) && | |
276 | (tolower(str[len - 1]) == 'h')) | |
280 | (strspn(str,"0123456789ABCDEFabcdef") == (len-1)) && | |
281 | (tolower(str[len - 1]) == 'h')) | |
277 | 282 | (void) sscanf(str, "%x", &hval); |
278 | 283 | |
279 | 284 | /* accept 0onn, \onnn, onnn and \nnn forms for octal */ |
318 | 323 | } |
319 | 324 | |
320 | 325 | if (sscanf(str, "%d/%d", &hi, &lo) == 2) /* code table reference? */ |
321 | { speak(hi*16 + lo); return; } | |
326 | { speak(hi*16 + lo); return; } | |
322 | 327 | else if (len > 1 && isalpha(str[0])) /* try to match long names */ |
323 | 328 | { |
324 | 329 | char canbuf[BUFSIZ], *ep; |
0 | 0 | Name: ascii |
1 | Version: 3.10 | |
1 | Version: 3.11 | |
2 | 2 | Release: 1 |
3 | 3 | URL: http://www.catb.org/~esr/ascii/ |
4 | 4 | Source0: %{name}-%{version}.tar.gz |
8 | 8 | Packager: Eric S. Raymond <esr@thyrsus.com> |
9 | 9 | BuildRoot: %{_tmppath}/%{name}-root |
10 | 10 | #Keywords: ASCII |
11 | #Destinations: mailto:vanonim@bluewin.ch | |
11 | #Destinations: freshmeat, mailto:vanonim@bluewin.ch | |
12 | 12 | |
13 | 13 | %description |
14 | 14 | The ascii utility provides easy conversion between various byte |
42 | 42 | %doc README COPYING |
43 | 43 | |
44 | 44 | %changelog |
45 | * Mon Mar 15 2011 Eric S. Raymond <esr@snark.thyrsus.com> - 3.11-1 | |
46 | - Recognize single decimal or hex digits. | |
47 | - Minor bug fixes and additional character names from Debian. | |
48 | ||
45 | 49 | * Mon Oct 19 2010 Eric S. Raymond <esr@snark.thyrsus.com> - 3.10-1 |
46 | 50 | - License change to BSD. Polish code to modern fully-ANSI C. |
47 | 51 |
5 | 5 | <refmeta> |
6 | 6 | <refentrytitle>ascii</refentrytitle> |
7 | 7 | <manvolnum>1</manvolnum> |
8 | <refmiscinfo class='source'>Open Source</refmiscinfo> | |
8 | <refmiscinfo class='date'>Aug 24 1994</refmiscinfo> | |
9 | <refmiscinfo class='productname'>ascii</refmiscinfo> | |
10 | <refmiscinfo class='source'>ascii</refmiscinfo> | |
11 | <refmiscinfo class='manual'>Development Tools</refmiscinfo> | |
9 | 12 | </refmeta> |
10 | 13 | <refnamediv id='name'> |
11 | 14 | <refname>ascii</refname> |
23 | 23 | %% |
24 | 24 | Mnemonics: "BEL", |
25 | 25 | ISO names: "Bell", |
26 | C escape: "\a" | |
26 | C escape: "\\a", | |
27 | 27 | Synonyms: "Alert", |
28 | 28 | %% |
29 | 29 | Mnemonics: "BS", |
30 | 30 | ISO names: "Backspace", |
31 | 31 | C escape: "\\b", |
32 | 32 | %% |
33 | Mnemonics: "HT" "TAB", | |
34 | ISO names: "Character Tabulation", "Horizontal Tab" | |
33 | Mnemonics: "HT", "TAB", | |
34 | ISO names: "Character Tabulation", "Horizontal Tab", | |
35 | 35 | C escape: "\\t", |
36 | 36 | %% |
37 | Mnemonics: "LF" "NL", | |
37 | Mnemonics: "LF", "NL", | |
38 | 38 | ISO name: "Line Feed", "Newline", |
39 | 39 | C escape: "\\n", |
40 | 40 | %% |
233 | 233 | %% |
234 | 234 | Mnemonics: ">", |
235 | 235 | ISO names: "Greater-than sign", |
236 | Synonyms: "Right Angle", "Write To", "Into", "Toward", | |
236 | Synonyms: "Right Angle Bracket", "Write To", "Into", "Toward", | |
237 | 237 | "Out", "To", "Gozinta", "Right Funnel", |
238 | 238 | "Right Broket", "Zap", "Blow", |
239 | 239 | XML name: ">", |
326 | 326 | Mnemonics: "Z", |
327 | 327 | ISO names: "Majuscule Z", "Capital Z", "Uppercase Z", |
328 | 328 | %% |
329 | Mnemonics: "[" | |
329 | Mnemonics: "[", | |
330 | 330 | ISO names: "Left Square Bracket", |
331 | 331 | Synonyms: "Bracket", "Bra", "Square", |
332 | 332 | Comments: "# See ] for matching names.", |
438 | 438 | Mnemonics: "z", |
439 | 439 | ISO names: "Miniscule z", "Small z", "Lowercase z", |
440 | 440 | %% |
441 | Mnemonics: "{" | |
442 | ISO names: "Left Curly Bracket", | |
441 | Mnemonics: "{", | |
442 | ISO names: "Left Curly Bracket", | |
443 | 443 | Synonyms: "Left Brace", "Brace", "Open Brace", "Curly", "Leftit", "Embrace", |
444 | 444 | Comments: "# See } for matching names.", |
445 | 445 | %% |
446 | Mnemonics: "|" | |
446 | Mnemonics: "|", | |
447 | 447 | ISO names: "Vertical Line", |
448 | 448 | Synonyms: "Pipe", "Bar", "Or", "V-Bar", "Spike", "Gozinta", "Thru", |
449 | 449 | %% |
450 | Mnemonics: "}" | |
450 | Mnemonics: "}", | |
451 | 451 | ISO names: "Right Curly Bracket", |
452 | 452 | Synonyms: "Right Brace", "Unbrace", "Close Brace", |
453 | 453 | "Uncurly", "Rytit", "Bracelet", |