TeX in C
Explore TeX with modern c compiler.
PART 53: Extensions

宏定义

#define writenodesize   2
 
#define opennodesize   3
 
#define opennode   0
 
#define writenode   1
 
#define closenode   2
 
#define specialnode   3
 
#define languagenode   4
 
#define whatlang(x)   link(x+1) /* language number, in the range |0..255|}*/
 [p472#1341] 更多...
 
#define whatlhm(x)   type(x+1) /* minimum left fragment, in the range |1..63|}*/
 
#define whatrhm(x)   subtype(x+1) /* minimum right fragment, in the range |1..63|}*/
 
#define writetokens(x)   link(x+1) /* reference count of token list to write}*/
 
#define writestream(x)   info(x+1) /* stream number (0 to 17)}*/
 
#define openname(x)   link(x+1) /* string number of file name to open}*/
 
#define openarea(x)   info(x+2) /* string number of file area for |openname|}*/
 
#define openext(x)   link(x+2) /* string number of file extension for |openname|}*/
 
#define immediatecode   4
 
#define setlanguagecode   5
 
#define advpast(x)
 [p471#1362] 更多...
 
#define endwritetoken   (CS_TOKEN_FLAG + END_WRITE)
 [p478#1371] 更多...
 

函数

void extension_init ()
 [#1343] 更多...
 
void extension_init_once ()
 [#1369] 更多...
 
void newwhatsit (SmallNumber s, SmallNumber w)
 
void newwritewhatsit (SmallNumber w)
 
void doextension (void)
 
void print_write_whatsit (StrNumber s, Pointer p)
 [#1355] 更多...
 
void fixlanguage (void)
 
void specialout (HalfWord p)
 
void writeout (HalfWord p)
 
void outwhat (HalfWord p)
 

变量

FILE * write_file [16]
 [#1342] Hold 16 possible \write streams. 更多...
 
Boolean write_open [18]
 [#1342] Set to true if that file is open. 更多...
 
Pointer writeloc
 

详细描述

宏定义说明

◆ advpast

#define advpast (   x)
值:
{ \
if (subtype(x) == languagenode) { \
curlang = whatlang(x); \
lhyf = whatlhm(x); \
rhyf = whatrhm(x); \
} \
}
#define subtype(x)
[p50#133] -> QuarterWord; secondary identification in some cases.
Definition: box.h:21
#define languagenode
Definition: extension.h:23
#define whatlhm(x)
Definition: extension.h:27
#define whatrhm(x)
Definition: extension.h:28
#define whatlang(x)
[p472#1341]
Definition: extension.h:26

[p471#1362]

◆ closenode

#define closenode   2

◆ endwritetoken

#define endwritetoken   (CS_TOKEN_FLAG + END_WRITE)

[p478#1371]

◆ immediatecode

#define immediatecode   4

◆ languagenode

#define languagenode   4

◆ openarea

#define openarea (   x)    info(x+2) /* string number of file area for |openname|}*/

◆ openext

#define openext (   x)    link(x+2) /* string number of file extension for |openname|}*/

◆ openname

#define openname (   x)    link(x+1) /* string number of file name to open}*/

◆ opennode

#define opennode   0

◆ opennodesize

#define opennodesize   3

◆ setlanguagecode

#define setlanguagecode   5

◆ specialnode

#define specialnode   3

◆ whatlang

#define whatlang (   x)    link(x+1) /* language number, in the range |0..255|}*/

[p472#1341]

◆ whatlhm

#define whatlhm (   x)    type(x+1) /* minimum left fragment, in the range |1..63|}*/

◆ whatrhm

#define whatrhm (   x)    subtype(x+1) /* minimum right fragment, in the range |1..63|}*/

◆ writenode

#define writenode   1

◆ writenodesize

#define writenodesize   2

◆ writestream

#define writestream (   x)    info(x+1) /* stream number (0 to 17)}*/

◆ writetokens

#define writetokens (   x)    link(x+1) /* reference count of token list to write}*/

函数说明

◆ doextension()

void doextension ( void  )

◆ extension_init()

void extension_init ( )

[#1343]

◆ extension_init_once()

void extension_init_once ( )

[#1369]

◆ fixlanguage()

void fixlanguage ( void  )

◆ newwhatsit()

void newwhatsit ( SmallNumber  s,
SmallNumber  w 
)

◆ newwritewhatsit()

void newwritewhatsit ( SmallNumber  w)

◆ outwhat()

void outwhat ( HalfWord  p)

◆ print_write_whatsit()

void print_write_whatsit ( StrNumber  s,
Pointer  p 
)

[#1355]

◆ specialout()

void specialout ( HalfWord  p)

◆ writeout()

void writeout ( HalfWord  p)

变量说明

◆ write_file

FILE* write_file[16]

[#1342] Hold 16 possible \write streams.

Selector [0~15]

◆ write_open

Boolean write_open[18]

[#1342] Set to true if that file is open.

  • j=0..16: j-th file is open if and only if write open[j] = true.
  • write_open[16]: stream number greater than 15
  • write_open[17]: negative stream number

◆ writeloc

Pointer writeloc