summaryrefslogtreecommitdiffstats
path: root/contrib/groff/src/roff/troff/charinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff/src/roff/troff/charinfo.h')
-rw-r--r--contrib/groff/src/roff/troff/charinfo.h38
1 files changed, 34 insertions, 4 deletions
diff --git a/contrib/groff/src/roff/troff/charinfo.h b/contrib/groff/src/roff/troff/charinfo.h
index a4ecd57..b907ae4 100644
--- a/contrib/groff/src/roff/troff/charinfo.h
+++ b/contrib/groff/src/roff/troff/charinfo.h
@@ -1,5 +1,6 @@
// -*- C++ -*-
-/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002
+ Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.com)
This file is part of groff.
@@ -30,9 +31,13 @@ class charinfo {
unsigned char hyphenation_code;
unsigned char flags;
unsigned char ascii_code;
+ unsigned char asciify_code;
char not_found;
- char transparent_translate; // non-zero means translation applies to
+ char transparent_translate; // non-zero means translation applies
// to transparent throughput
+ char translate_input; // non-zero means that asciify_code is
+ // active for .asciify (set by .trin)
+ char fallback;
public:
enum {
ENDS_SENTENCE = 1,
@@ -61,19 +66,24 @@ public:
int transparent();
unsigned char get_hyphenation_code();
unsigned char get_ascii_code();
+ unsigned char get_asciify_code();
void set_hyphenation_code(unsigned char);
void set_ascii_code(unsigned char);
+ void set_asciify_code(unsigned char);
+ void set_translation_input();
+ int get_translation_input();
charinfo *get_translation(int = 0);
- void set_translation(charinfo *, int);
+ void set_translation(charinfo *, int, int);
void set_flags(unsigned char);
void set_special_translation(int, int);
int get_special_translation(int = 0);
- macro *set_macro(macro *);
+ macro *set_macro(macro *, int = 0);
macro *get_macro();
int first_time_not_found();
void set_number(int);
int get_number();
int numbered();
+ int is_fallback();
symbol *get_symbol();
};
@@ -116,6 +126,11 @@ inline int charinfo::numbered()
return flags & NUMBERED;
}
+inline int charinfo::is_fallback()
+{
+ return fallback;
+}
+
inline charinfo *charinfo::get_translation(int transparent_throughput)
{
return (transparent_throughput && !transparent_translate
@@ -133,6 +148,11 @@ inline unsigned char charinfo::get_ascii_code()
return ascii_code;
}
+inline unsigned char charinfo::get_asciify_code()
+{
+ return (translate_input ? asciify_code : 0);
+}
+
inline void charinfo::set_flags(unsigned char c)
{
flags = c;
@@ -143,6 +163,16 @@ inline int charinfo::get_index()
return index;
}
+inline void charinfo::set_translation_input()
+{
+ translate_input = 1;
+}
+
+inline int charinfo::get_translation_input()
+{
+ return translate_input;
+}
+
inline int charinfo::get_special_translation(int transparent_throughput)
{
return (transparent_throughput && !transparent_translate
OpenPOWER on IntegriCloud