示例#1
0
static void print_help_and_exit(struct isl_arg *arg, const char *prog,
	void *opt)
{
	int i;
	struct isl_prefixes prefixes = { 0 };

	printf("Usage: %s [OPTION...]", prog_name(prog));

	for (i = 0; arg[i].type != isl_arg_end; ++i)
		if (arg[i].type == isl_arg_arg)
			printf(" %s", arg[i].argument_name);

	printf("\n\n");

	print_help(arg, &prefixes, opt);
	printf("\n");
	if (any_version(arg))
		printf("  -V, --version\n");
	print_bool_help(help_arg, NULL, NULL);

	for (i = 0; arg[i].type != isl_arg_end; ++i) {
		if (arg[i].type != isl_arg_footer)
			continue;
		wrap_msg(arg[i].help_msg, 0, 0);
		printf("\n");
	}

	exit(0);
}
示例#2
0
static int print_help_msg(struct isl_arg *decl, int pos)
{
	if (!decl->help_msg)
		return pos;

	return wrap_msg(decl->help_msg, 30, pos);
}
示例#3
0
void IDAOCaml_invoke_hotkey_callback(int i)
{
  CAMLlocal1(ret);

  ret = caml_callback_exn(*caml_named_value("HotkeyCallback"), Val_int(i));
  if(Is_exception_result(ret))
  {
    char buf[1024];
    char *exn = caml_format_exception(Extract_exception(ret));
    sprintf(buf, "[E] Function bound to hotkey (internal %d) threw exception (value %08lx): %s\n", 
      i, 
      Extract_exception(ret), 
      exn);
    wrap_msg(buf);
    free(exn);
  }
}
示例#4
0
value IDAOCaml_add_ocaml_hotkey(value hotkey, value n)
{
  char line[100], err[256], funcname[50];
  CAMLparam2(hotkey,n);
  
  sprintf(funcname, "__IDCOCaml%d", Int_val(n));
  sprintf(line, "static %s() { OCamlCallback(%d); }", funcname, Int_val(n));
  if(wrap_CompileLine(line,err,sizeof(err)))
  {
    // Returns 0 on success
    if(!wrap_add_idc_hotkey(String_val(hotkey),funcname))
      CAMLreturn(Val_int(1));
  }
  else
    wrap_msg(err);
  
  CAMLreturn(Val_int(0));
}
示例#5
0
value IDAOCaml_msg(value str)
{
  CAMLparam1(str);
  wrap_msg(String_val(str));
  CAMLreturn(Val_unit);
}