diff options
author | Eduardo Chappa <echappa@gmx.com> | 2013-02-03 00:59:38 -0700 |
---|---|---|
committer | Eduardo Chappa <echappa@gmx.com> | 2013-02-03 00:59:38 -0700 |
commit | 094ca96844842928810f14844413109fc6cdd890 (patch) | |
tree | e60efbb980f38ba9308ccb4fb2b77b87bbc115f3 /pith/escapes.c | |
download | alpine-094ca96844842928810f14844413109fc6cdd890.tar.xz |
Initial Alpine Version
Diffstat (limited to 'pith/escapes.c')
-rw-r--r-- | pith/escapes.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/pith/escapes.c b/pith/escapes.c new file mode 100644 index 00000000..f6f5c8fe --- /dev/null +++ b/pith/escapes.c @@ -0,0 +1,69 @@ +#if !defined(lint) && !defined(DOS) +static char rcsid[] = "$Id: escapes.c 761 2007-10-23 22:35:18Z hubert@u.washington.edu $"; +#endif + +/* + * ======================================================================== + * Copyright 2006 University of Washington + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * ======================================================================== + */ + +/*====================================================================== + + escapes.c + Implements known escape code matching + + ====*/ + + +#include "../pith/headers.h" +#include "../pith/escapes.h" + + + +/*------------------------------------------------------------------ + This list of known escape sequences is taken from RFC's 1486 and 1554 + and draft-apng-cc-encoding, and the X11R5 source with only a remote + understanding of what this all means... + + NOTE: if the length of these should extend beyond 4 chars, fix + MAX_ESC_LEN in filter.c + ----*/ +#ifdef _WINDOWS +static char *known_escapes[] = { + "(B", "(J", "$@", "$B", /* RFC 1468 */ + "(H", + NULL}; +#else +static char *known_escapes[] = { + "(B", "(J", "$@", "$B", /* RFC 1468 */ + "(H", + "$A", "$(C", "$(D", ".A", ".F", /* added by RFC 1554 */ + "$)C", "$)A", "$*E", "$*X", /* those in apng-draft */ + "$+G", "$+H", "$+I", "$+J", "$+K", + "$+L", "$+M", + ")I", "-A", "-B", "-C", "-D", /* codes form X11R5 source */ + "-F", "-G", "-H", "-L", "-M", + "-$(A", "$(B", "$)B", "$)D", + NULL}; +#endif + + +int +match_escapes(char *esc_seq) +{ + char **p; + int n; + + for(p = known_escapes; *p && strncmp(esc_seq, *p, n = strlen(*p)); p++) + ; + + return(*p ? n + 1 : 0); +} |