コード例 #1
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print_cs(int p)
{
str_number t= cs_text(p);
if(p<hash_base){

if(p==null_cs){
tprint_esc("csname");
tprint_esc("endcsname");
print_char(' ');
}else{
tprint_esc("IMPOSSIBLE.");
}
}else if((p>=undefined_control_sequence)&&
((p<=eqtb_size)||p> eqtb_size+hash_extra)){
tprint_esc("IMPOSSIBLE.");
}else if(t>=str_ptr){
tprint_esc("NONEXISTENT.");
}else{
if(is_active_cs(t)){
print(active_cs_value(t));
}else{
print_esc(t);
if(single_letter(t)){
if(get_cat_code(cat_code_table_par,pool_to_unichar(str_string(t)))==letter_cmd)
print_char(' ');
}else{
print_char(' ');
}
}
}
}
コード例 #2
0
ファイル: lstatslib.c プロジェクト: bngabonziza/miktex
static const char *getfilename(void)
{
    int t = 0;
    int level = in_open;
    while ((level > 0)) {
        t = input_stack[level--].name_field;
        if (t >= STRING_OFFSET)
            return (const char *) str_string(t);
    }
    return "";
}
コード例 #3
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print(int s)
{
if(s>=str_ptr){
normal_warning("print","bad string pointer");
return;
}else if(s<STRING_OFFSET){
if(s<0){
normal_warning("print","bad string offset");
}else{

if((false)&&(selector> pseudo)){

print_char(s);
return;
}
if(s==new_line_char_par){
if(selector<pseudo){
print_ln();
return;
}
}
if(s<=0x7F){
print_char(s);
}else if(s<=0x7FF){
print_char(0xC0+(s/0x40));
print_char(0x80+(s%0x40));
}else if(s<=0xFFFF){
print_char(0xE0+(s/0x1000));
print_char(0x80+((s%0x1000)/0x40));
print_char(0x80+((s%0x1000)%0x40));
}else if(s>=0x110000){
int c= s-0x110000;
if(c>=256){
formatted_warning("print","bad raw byte to print (c=%d), skipped",c);
}else{
print_char(c);
}
}else{
print_char(0xF0+(s/0x40000));
print_char(0x80+((s%0x40000)/0x1000));
print_char(0x80+(((s%0x40000)%0x1000)/0x40));
print_char(0x80+(((s%0x40000)%0x1000)%0x40));
}
}
return;
}
if(selector==new_string){
append_string(str_string(s),(unsigned)str_length(s));
return;
}
lprint(&str_lstring(s));
}
コード例 #4
0
ファイル: primitive.c プロジェクト: clerkma/texlive-mobile
pointer prim_lookup(str_number s)
{
int h;
pointer p;
unsigned char*j;
unsigned l;
if(s<STRING_OFFSET){
p= s;
if((p<0)||(get_prim_eq_type(p)==undefined_cs_cmd)){
p= undefined_primitive;
}
}else{
j= str_string(s);
l= (unsigned)str_length(s);
h= compute_hash((char*)j,l,prim_prime);
p= h+prim_base;
while(1){
if(prim_text(p)> 0)
if(str_length(prim_text(p))==l)
if(str_eq_str(prim_text(p),s))
goto FOUND;
if(prim_next(p)==0){
if(no_new_control_sequence){
p= undefined_primitive;
}else{

if(prim_text(p)> 0){
do{
if(prim_is_full)
overflow("primitive size",prim_size);
decr(prim_used);
}while(prim_text(prim_used)!=0);
prim_next(p)= prim_used;
p= prim_used;
}
prim_text(p)= s;
}
goto FOUND;
}
p= prim_next(p);
}
}
FOUND:
return p;
}
コード例 #5
0
ファイル: printing.c プロジェクト: clerkma/texlive-mobile
void print_csnames(int hstart,int hfinish)
{
int h;
unsigned char*c,*l;
fprintf(stderr,"fmtdebug:csnames from %d to %d:",(int)hstart,(int)hfinish);
for(h= hstart;h<=hfinish;h++){
if(cs_text(h)> 0){

c= str_string(cs_text(h));
l= c+str_length(cs_text(h));
while(c<l){

fputc(*c++,stderr);
}
fprintf(stderr,"|");
}
}
}
コード例 #6
0
ファイル: lstatslib.c プロジェクト: texlive/texlive-source
static const char *getfilename(void)
{
    const char * s;
    int level, t;
    level = in_open;
    while ((level > 0)) {
        s = full_source_filename_stack[level--];
        if (s != NULL) {
            return s;
        }
    }
    /* old method */
    level = in_open;
    while ((level > 0)) {
        t = input_stack[level--].name_field;
        if (t >= STRING_OFFSET) {
            return (const char *) str_string(t);
        }
    }
    return "";
}