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_open(struct inode *inode, struct file *filp) { fm_s32 ret = 0; struct fm_platform *plat = container_of(inode->i_cdev, struct fm_platform, cdev); struct fm *fm = container_of(plat, struct fm, platform); WCN_DBG(FM_NTC | MAIN, "fm_ops_open:0\n"); if (fm_sys_state_get(fm) != FM_SUBSYS_RST_OFF) { WCN_DBG(FM_ALT| MAIN, "FM subsys is resetting, retry later\n"); ret = -FM_ESRST; return ret; } ret = fm_open(fm); filp->private_data = fm; WCN_DBG(FM_NTC | MAIN, "fm_ops_open:1\n"); return ret; }
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; }