示例#1
0
文件: print.cpp 项目: chanpi/MyLisp
static void putstr(int mode, STR tp)
{
    if (mode == ESCOFF) {
        fprintf(cur_fpo, "%s", tp);
    } else if (*tp == '\0') {
        fprintf(cur_fpo, "||");		// ヌル文字列を表す
    } else {
        if (num(tp)) {	// read.h
			fputc('\\', cur_fpo);	// 数値ではなく数字の場合は見分けるために'\\'を接頭辞としてつける
        }
		do {
			if (iskanji(*tp) && iskanji2(*(tp+1)))
			{
				fputc(*tp++, cur_fpo);
				fputc(*tp++, cur_fpo);
			}
			else if (!isprkana(*tp))
			{
				fprintf(cur_fpo, "#\\%03d", *tp++);
			}
			else
			{
				if (isesc(*tp))
				{
					fputc('\\', cur_fpo);
				}
				fputc(*tp++, cur_fpo);
			}
		} while (*tp != '\0');
    }
}
示例#2
0
_WCRTLINK int _ismbbprint( unsigned int ch )
{
    if( __MBCodePage == 932 ) {
        return( isprkana( ch ) );
    } else {
        return( _ismbcprint( ch & 0xFF ) );
    }
}
示例#3
0
void main()
  {
    int   i;

    for( i = 0; i < SIZE; i++ ) {
      printf( "Char is %sa single-byte "
              "printable character\n",
            ( isprkana( chars[i] ) ) ? "" : "not " );
    }
  }
示例#4
0
static void putstr(int mode, STR tp) {//N//
	if(mode == ESCOFF) {
		fprintf(cur_fpo, "%s", tp);
	} else if(*tp == '\0') {
		fprintf(cur_fpo, "||");
	} else {
		if(num(tp)) {
			fputc('\\', cur_fpo);
		} 
		do {
			if(iskanji(*tp) && iskanji2(*(tp+1))) {
				fputc(*tp++, cur_fpo);
				fputc(*tp++, cur_fpo);
			} else if(!isprkana(*tp)) {
				fprintf(cur_fpo, "#\\%03d", *tp++);
			} else {
				if(isesc(*tp)) {
					fputc('\\', cur_fpo);
				}
				fputc(*tp++, cur_fpo);
			}
		} while(*tp != '\0');
	}
}