diff options
Diffstat (limited to 'contrib/groff/addftinfo/guess.cc')
-rw-r--r-- | contrib/groff/addftinfo/guess.cc | 490 |
1 files changed, 0 insertions, 490 deletions
diff --git a/contrib/groff/addftinfo/guess.cc b/contrib/groff/addftinfo/guess.cc deleted file mode 100644 index dcfd4c9..0000000 --- a/contrib/groff/addftinfo/guess.cc +++ /dev/null @@ -1,490 +0,0 @@ -// -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. - Written by James Clark (jjc@jclark.com) - -This file is part of groff. - -groff is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -groff is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "guess.h" - -void guess(const char *s, const font_params ¶m, char_metric *metric) -{ - int &height = metric->height; - int &depth = metric->depth; - - metric->ic = 0; - metric->left_ic = 0; - metric->sk = 0; - height = 0; - depth = 0; - if (s[0] == '\0' || (s[1] != '\0' && s[2] != '\0')) - goto do_default; -#define HASH(c1, c2) (((unsigned char)(c1) << 8) | (unsigned char)(c2)) - switch (HASH(s[0], s[1])) { - default: - do_default: - if (metric->type & 01) - depth = param.desc_depth; - if (metric->type & 02) - height = param.asc_height; - else - height = param.x_height; - break; - case HASH('\\', '|'): - case HASH('\\', '^'): - case HASH('\\', '&'): - // these have zero height and depth - break; - case HASH('f', 0): - height = param.asc_height; - if (param.italic) - depth = param.desc_depth; - break; - case HASH('a', 0): - case HASH('c', 0): - case HASH('e', 0): - case HASH('m', 0): - case HASH('n', 0): - case HASH('o', 0): - case HASH('r', 0): - case HASH('s', 0): - case HASH('u', 0): - case HASH('v', 0): - case HASH('w', 0): - case HASH('x', 0): - case HASH('z', 0): - height = param.x_height; - break; - case HASH('i', 0): - height = param.x_height; - break; - case HASH('b', 0): - case HASH('d', 0): - case HASH('h', 0): - case HASH('k', 0): - case HASH('l', 0): - case HASH('F', 'i'): - case HASH('F', 'l'): - case HASH('f', 'f'): - case HASH('f', 'i'): - case HASH('f', 'l'): - height = param.asc_height; - break; - case HASH('t', 0): - height = param.asc_height; - break; - case HASH('g', 0): - case HASH('p', 0): - case HASH('q', 0): - case HASH('y', 0): - height = param.x_height; - depth = param.desc_depth; - break; - case HASH('j', 0): - height = param.x_height; - depth = param.desc_depth; - break; - case HASH('A', 0): - case HASH('B', 0): - case HASH('C', 0): - case HASH('D', 0): - case HASH('E', 0): - case HASH('F', 0): - case HASH('G', 0): - case HASH('H', 0): - case HASH('I', 0): - case HASH('J', 0): - case HASH('K', 0): - case HASH('L', 0): - case HASH('M', 0): - case HASH('N', 0): - case HASH('O', 0): - case HASH('P', 0): - case HASH('Q', 0): - case HASH('R', 0): - case HASH('S', 0): - case HASH('T', 0): - case HASH('U', 0): - case HASH('V', 0): - case HASH('W', 0): - case HASH('X', 0): - case HASH('Y', 0): - case HASH('Z', 0): - height = param.cap_height; - break; - case HASH('*', 'A'): - case HASH('*', 'B'): - case HASH('*', 'C'): - case HASH('*', 'D'): - case HASH('*', 'E'): - case HASH('*', 'F'): - case HASH('*', 'G'): - case HASH('*', 'H'): - case HASH('*', 'I'): - case HASH('*', 'K'): - case HASH('*', 'L'): - case HASH('*', 'M'): - case HASH('*', 'N'): - case HASH('*', 'O'): - case HASH('*', 'P'): - case HASH('*', 'Q'): - case HASH('*', 'R'): - case HASH('*', 'S'): - case HASH('*', 'T'): - case HASH('*', 'U'): - case HASH('*', 'W'): - case HASH('*', 'X'): - case HASH('*', 'Y'): - case HASH('*', 'Z'): - height = param.cap_height; - break; - case HASH('0', 0): - case HASH('1', 0): - case HASH('2', 0): - case HASH('3', 0): - case HASH('4', 0): - case HASH('5', 0): - case HASH('6', 0): - case HASH('7', 0): - case HASH('8', 0): - case HASH('9', 0): - case HASH('1', '2'): - case HASH('1', '4'): - case HASH('3', '4'): - height = param.fig_height; - break; - case HASH('(', 0): - case HASH(')', 0): - case HASH('[', 0): - case HASH(']', 0): - case HASH('{', 0): - case HASH('}', 0): - height = param.body_height; - depth = param.body_depth; - break; - case HASH('i', 's'): - height = (param.em*3)/4; - depth = param.em/4; - break; - case HASH('*', 'a'): - case HASH('*', 'e'): - case HASH('*', 'i'): - case HASH('*', 'k'): - case HASH('*', 'n'): - case HASH('*', 'o'): - case HASH('*', 'p'): - case HASH('*', 's'): - case HASH('*', 't'): - case HASH('*', 'u'): - case HASH('*', 'w'): - height = param.x_height; - break; - case HASH('*', 'd'): - case HASH('*', 'l'): - height = param.asc_height; - break; - case HASH('*', 'g'): - case HASH('*', 'h'): - case HASH('*', 'm'): - case HASH('*', 'r'): - case HASH('*', 'x'): - case HASH('*', 'y'): - height = param.x_height; - depth = param.desc_depth; - break; - case HASH('*', 'b'): - case HASH('*', 'c'): - case HASH('*', 'f'): - case HASH('*', 'q'): - case HASH('*', 'z'): - height = param.asc_height; - depth = param.desc_depth; - break; - case HASH('t', 's'): - height = param.x_height; - depth = param.desc_depth; - break; - case HASH('!', 0): - case HASH('?', 0): - case HASH('"', 0): - case HASH('#', 0): - case HASH('$', 0): - case HASH('%', 0): - case HASH('&', 0): - case HASH('*', 0): - case HASH('+', 0): - height = param.asc_height; - break; - case HASH('`', 0): - case HASH('\'', 0): - height = param.asc_height; - break; - case HASH('~', 0): - case HASH('^', 0): - case HASH('a', 'a'): - case HASH('g', 'a'): - height = param.asc_height; - break; - case HASH('r', 'u'): - case HASH('.', 0): - break; - case HASH(',', 0): - depth = param.comma_depth; - break; - case HASH('m', 'i'): - case HASH('-', 0): - case HASH('h', 'y'): - case HASH('e', 'm'): - height = param.x_height; - break; - case HASH(':', 0): - height = param.x_height; - break; - case HASH(';', 0): - height = param.x_height; - depth = param.comma_depth; - break; - case HASH('=', 0): - case HASH('e', 'q'): - height = param.x_height; - break; - case HASH('<', 0): - case HASH('>', 0): - case HASH('>', '='): - case HASH('<', '='): - case HASH('@', 0): - case HASH('/', 0): - case HASH('|', 0): - case HASH('\\', 0): - height = param.asc_height; - break; - case HASH('_', 0): - case HASH('u', 'l'): - case HASH('\\', '_'): - depth = param.em/4; - break; - case HASH('r', 'n'): - height = (param.em*3)/4; - break; - case HASH('s', 'r'): - height = (param.em*3)/4; - depth = param.em/4; - break; - case HASH('b', 'u'): - case HASH('s', 'q'): - case HASH('d', 'e'): - case HASH('d', 'g'): - case HASH('f', 'm'): - case HASH('c', 't'): - case HASH('r', 'g'): - case HASH('c', 'o'): - case HASH('p', 'l'): - case HASH('*', '*'): - case HASH('s', 'c'): - case HASH('s', 'l'): - case HASH('=', '='): - case HASH('~', '='): - case HASH('a', 'p'): - case HASH('!', '='): - case HASH('-', '>'): - case HASH('<', '-'): - case HASH('u', 'a'): - case HASH('d', 'a'): - case HASH('m', 'u'): - case HASH('d', 'i'): - case HASH('+', '-'): - case HASH('c', 'u'): - case HASH('c', 'a'): - case HASH('s', 'b'): - case HASH('s', 'p'): - case HASH('i', 'b'): - case HASH('i', 'p'): - case HASH('i', 'f'): - case HASH('p', 'd'): - case HASH('g', 'r'): - case HASH('n', 'o'): - case HASH('p', 't'): - case HASH('e', 's'): - case HASH('m', 'o'): - case HASH('b', 'r'): - case HASH('d', 'd'): - case HASH('r', 'h'): - case HASH('l', 'h'): - case HASH('o', 'r'): - case HASH('c', 'i'): - height = param.asc_height; - break; - case HASH('l', 't'): - case HASH('l', 'b'): - case HASH('r', 't'): - case HASH('r', 'b'): - case HASH('l', 'k'): - case HASH('r', 'k'): - case HASH('b', 'v'): - case HASH('l', 'f'): - case HASH('r', 'f'): - case HASH('l', 'c'): - case HASH('r', 'c'): - height = (param.em*3)/4; - depth = param.em/4; - break; -#if 0 - case HASH('%', '0'): - case HASH('-', '+'): - case HASH('-', 'D'): - case HASH('-', 'd'): - case HASH('-', 'd'): - case HASH('-', 'h'): - case HASH('.', 'i'): - case HASH('.', 'j'): - case HASH('/', 'L'): - case HASH('/', 'O'): - case HASH('/', 'l'): - case HASH('/', 'o'): - case HASH('=', '~'): - case HASH('A', 'E'): - case HASH('A', 'h'): - case HASH('A', 'N'): - case HASH('C', 's'): - case HASH('D', 'o'): - case HASH('F', 'c'): - case HASH('F', 'o'): - case HASH('I', 'J'): - case HASH('I', 'm'): - case HASH('O', 'E'): - case HASH('O', 'f'): - case HASH('O', 'K'): - case HASH('O', 'm'): - case HASH('O', 'R'): - case HASH('P', 'o'): - case HASH('R', 'e'): - case HASH('S', '1'): - case HASH('S', '2'): - case HASH('S', '3'): - case HASH('T', 'P'): - case HASH('T', 'p'): - case HASH('Y', 'e'): - case HASH('\\', '-'): - case HASH('a', '"'): - case HASH('a', '-'): - case HASH('a', '.'): - case HASH('a', '^'): - case HASH('a', 'b'): - case HASH('a', 'c'): - case HASH('a', 'd'): - case HASH('a', 'e'): - case HASH('a', 'h'): - case HASH('a', 'o'): - case HASH('a', 't'): - case HASH('a', '~'): - case HASH('b', 'a'): - case HASH('b', 'b'): - case HASH('b', 's'): - case HASH('c', '*'): - case HASH('c', '+'): - case HASH('f', '/'): - case HASH('f', 'a'): - case HASH('f', 'c'): - case HASH('f', 'o'): - case HASH('h', 'a'): - case HASH('h', 'o'): - case HASH('i', 'j'): - case HASH('l', 'A'): - case HASH('l', 'B'): - case HASH('l', 'C'): - case HASH('m', 'd'): - case HASH('n', 'c'): - case HASH('n', 'e'): - case HASH('n', 'm'): - case HASH('o', 'A'): - case HASH('o', 'a'): - case HASH('o', 'e'): - case HASH('o', 'q'): - case HASH('p', 'l'): - case HASH('p', 'p'): - case HASH('p', 's'): - case HASH('r', '!'): - case HASH('r', '?'): - case HASH('r', 'A'): - case HASH('r', 'B'): - case HASH('r', 'C'): - case HASH('r', 's'): - case HASH('s', 'h'): - case HASH('s', 's'): - case HASH('t', 'e'): - case HASH('t', 'f'): - case HASH('t', 'i'): - case HASH('t', 'm'): - case HASH('~', '~'): - case HASH('v', 'S'): - case HASH('v', 'Z'): - case HASH('v', 's'): - case HASH('v', 'z'): - case HASH('^', 'A'): - case HASH('^', 'E'): - case HASH('^', 'I'): - case HASH('^', 'O'): - case HASH('^', 'U'): - case HASH('^', 'a'): - case HASH('^', 'e'): - case HASH('^', 'i'): - case HASH('^', 'o'): - case HASH('^', 'u'): - case HASH('`', 'A'): - case HASH('`', 'E'): - case HASH('`', 'I'): - case HASH('`', 'O'): - case HASH('`', 'U'): - case HASH('`', 'a'): - case HASH('`', 'e'): - case HASH('`', 'i'): - case HASH('`', 'o'): - case HASH('`', 'u'): - case HASH('~', 'A'): - case HASH('~', 'N'): - case HASH('~', 'O'): - case HASH('~', 'a'): - case HASH('~', 'n'): - case HASH('~', 'o'): - case HASH('\'', 'A'): - case HASH('\'', 'C'): - case HASH('\'', 'E'): - case HASH('\'', 'I'): - case HASH('\'', 'O'): - case HASH('\'', 'U'): - case HASH('\'', 'a'): - case HASH('\'', 'c'): - case HASH('\'', 'e'): - case HASH('\'', 'i'): - case HASH('\'', 'o'): - case HASH('\'', 'u') - case HASH(':', 'A'): - case HASH(':', 'E'): - case HASH(':', 'I'): - case HASH(':', 'O'): - case HASH(':', 'U'): - case HASH(':', 'Y'): - case HASH(':', 'a'): - case HASH(':', 'e'): - case HASH(':', 'i'): - case HASH(':', 'o'): - case HASH(':', 'u'): - case HASH(':', 'y'): - case HASH(',', 'C'): - case HASH(',', 'c'): -#endif - } -} |