void fm_read_info() { if (tfm_tree == NULL) create_avl_trees(); if (mitem->line == NULL) /* nothing to do */ return; mitem->lineno = 1; switch (mitem->type) { case MAPFILE: set_cur_file_name(mitem->line); if (!fm_open()) { pdftex_warn("cannot open font map file"); } else { cur_file_name = (char *) nameoffile + 1; tex_printf("{%s", cur_file_name); while (!fm_eof()) { fm_scan_line(); mitem->lineno++; } fm_close(); tex_printf("}"); fm_file = NULL; } break; case MAPLINE: cur_file_name = NULL; /* makes pdftex_warn() shorter */ fm_scan_line(); break; default: assert(0); } mitem->line = NULL; /* done with this line */ cur_file_name = NULL; return; }
static fm_s32 fm_ops_flush(struct file *filp,fl_owner_t Id) { fm_s32 ret = 0; struct fm *fm = filp->private_data; WCN_DBG(FM_NTC | MAIN, "fm_ops_flush:0\n"); fm_close(fm); filp->private_data = fm; WCN_DBG(FM_NTC | MAIN, "fm_ops_flush:1\n"); return ret; }
static void com_broncho_jnibt_FMNative_send_cmd(JNIEnv* env, jobject object, jstring cmd, jstring cmdparam) { int i; if (cmd == NULL) { jniThrowException(env, "java/lang/IllegalArgumentException", NULL); return; } const char* cmdStr = env->GetStringUTFChars(cmd, NULL); if (cmdStr == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Out of memory"); return; } const char* paramStr = env->GetStringUTFChars(cmdparam, NULL); if (paramStr == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Out of memory"); return; } for (i=0; command[i].cmd; i++) { if (strncmp(command[i].cmd, cmdStr, strlen(command[i].cmd))) { if (command[i+1].cmd == NULL) { LOGE("unknown cmd"); } continue; } if (strncmp(command[i].cmd, "exit", strlen("exit"))) { command[i].func(paramStr); break; } else { fm_func_off(); fm_close(); return; } } }
void fm_read_info () { int callback_id; int file_opened = 0; char *ftemp = NULL; if (tfm_tree == NULL) create_avl_trees (); if (mitem->line == NULL) /* nothing to do */ return; mitem->lineno = 1; switch (mitem->type) { case MAPFILE: set_cur_file_name (mitem->line); if (fm_buffer!=NULL) { xfree(fm_buffer); fm_buffer=NULL; } fm_curbyte=0; fm_size=0; callback_id=callback_defined(find_map_file_callback); if (callback_id>0) { if(run_callback(callback_id,"S->S",(char *)(nameoffile+1),&ftemp)) { if(ftemp!=NULL&&strlen(ftemp)) { free(nameoffile); namelength = strlen(ftemp); nameoffile = xmalloc(namelength+2); strcpy((char *)(nameoffile+1),ftemp); free(ftemp); } } } callback_id=callback_defined(read_map_file_callback); if (callback_id>0) { if(run_callback(callback_id,"S->bSd",(char *)(nameoffile+1), &file_opened, &fm_buffer,&fm_size)) { if(file_opened) { if (fm_size>0) { cur_file_name = (char *) nameoffile + 1; if (tracefilenames) tex_printf ("{%s", cur_file_name); while (!fm_eof ()) { fm_scan_line (); mitem->lineno++; } if (tracefilenames) tex_printf ("}"); fm_file = NULL; } } else { pdftex_warn ("cannot open font map file"); } } else { pdftex_warn ("cannot open font map file"); } } else { if (!fm_open ()) { pdftex_warn ("cannot open font map file"); } else { fm_read_file(); cur_file_name = (char *) nameoffile + 1; tex_printf ("{%s", cur_file_name); while (!fm_eof ()) { fm_scan_line (); mitem->lineno++; } fm_close (); tex_printf ("}"); fm_file = NULL; } } break; case MAPLINE: cur_file_name = NULL; /* makes pdftex_warn() shorter */ fm_scan_line (); break; default: assert (0); } mitem->line = NULL; /* done with this line */ cur_file_name = NULL; return; }