⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charinfo.h

📁 早期freebsd实现
💻 H
字号:
// -*- 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 underthe terms of the GNU General Public License as published by the FreeSoftware Foundation; either version 2, or (at your option) any laterversion.groff is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licensefor more details.You should have received a copy of the GNU General Public License alongwith groff; see the file COPYING.  If not, write to the Free SoftwareFoundation, 675 Mass Ave, Cambridge, MA 02139, USA. */class macro;class charinfo {  static int next_index;  charinfo *translation;  int index;  int number;  macro *mac;  unsigned char special_translation;  unsigned char hyphenation_code;  unsigned char flags;  unsigned char ascii_code;  char not_found;  char transparent_translate;	// non-zero means translation applies to				// to transparent throughputpublic:  enum {     ENDS_SENTENCE = 1,    BREAK_BEFORE = 2,    BREAK_AFTER = 4,    OVERLAPS_HORIZONTALLY = 8,    OVERLAPS_VERTICALLY = 16,    TRANSPARENT = 32,    NUMBERED = 64    };  enum {    TRANSLATE_NONE,    TRANSLATE_SPACE,    TRANSLATE_DUMMY,    TRANSLATE_STRETCHABLE_SPACE,    TRANSLATE_HYPHEN_INDICATOR  };  symbol nm;  charinfo(symbol s);  int get_index();  int ends_sentence();  int overlaps_vertically();  int overlaps_horizontally();  int can_break_before();  int can_break_after();  int transparent();  unsigned char get_hyphenation_code();  unsigned char get_ascii_code();  void set_hyphenation_code(unsigned char);  void set_ascii_code(unsigned char);  charinfo *get_translation(int = 0);  void set_translation(charinfo *, int);  void set_flags(unsigned char);  void set_special_translation(int, int);  int get_special_translation(int = 0);  macro *set_macro(macro *);  macro *get_macro();  int first_time_not_found();  void set_number(int);  int get_number();  int numbered();};charinfo *get_charinfo(symbol);extern charinfo *charset_table[];charinfo *get_charinfo_by_number(int);inline int charinfo::overlaps_horizontally(){  return flags & OVERLAPS_HORIZONTALLY;}inline int charinfo::overlaps_vertically(){  return flags & OVERLAPS_VERTICALLY;}inline int charinfo::can_break_before(){  return flags & BREAK_BEFORE;}inline int charinfo::can_break_after(){  return flags & BREAK_AFTER;}inline int charinfo::ends_sentence(){  return flags & ENDS_SENTENCE;}inline int charinfo::transparent(){  return flags & TRANSPARENT;}inline int charinfo::numbered(){  return flags & NUMBERED;}inline charinfo *charinfo::get_translation(int transparent_throughput){  return (transparent_throughput && !transparent_translate	  ? 0	  : translation);}inline unsigned char charinfo::get_hyphenation_code(){  return hyphenation_code;}inline unsigned char charinfo::get_ascii_code(){  return ascii_code;}inline void charinfo::set_flags(unsigned char c){  flags = c;}inline int charinfo::get_index(){  return index;}inline int charinfo::get_special_translation(int transparent_throughput){  return (transparent_throughput && !transparent_translate	  ? TRANSLATE_NONE	  : special_translation);}inline macro *charinfo::get_macro(){  return mac;}inline int charinfo::first_time_not_found(){  if (not_found)    return 0;  else {    not_found = 1;    return 1;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -