Exemple #1
0
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;
		}

	}
}
Exemple #4
0
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;
}