Example #1
0
void
ask_user (piece_info_t *obj)
{
	char c;

    for (;;) {
	display_loc_u (obj->loc); /* display piece to move */
	describe_obj (obj); /* describe object to be moved */
	display_score (); /* show current score */
	display_loc_u (obj->loc); /* reposition cursor */

	c = get_chx (); /* get command from user (no echo) */
	switch (c) {
	case 'Q': user_dir (obj, NORTHWEST); return;
	case 'W': user_dir (obj, NORTH); return;
	case 'E': user_dir (obj, NORTHEAST); return;
	case 'D': user_dir (obj, EAST); return;
	case 'C': user_dir (obj, SOUTHEAST); return;
	case 'X': user_dir (obj, SOUTH); return;
	case 'Z': user_dir (obj, SOUTHWEST); return;
	case 'A': user_dir (obj, WEST); return;

	case 'J': edit (obj->loc); reset_func (obj); return;
	case 'V': user_set_city_func (obj); reset_func (obj); return;

	case ' ': user_skip (obj); return;
	case 'F': user_fill (obj); return;
	case 'I': user_set_dir (obj); return;
	case 'R': user_random (obj); return;
	case 'S': user_sentry (obj); return;
	case 'L': user_land (obj); return;
	case 'G': user_explore (obj); return;
	case 'T': user_transport (obj); return;
	case 'U': user_repair (obj); return;
	case 'Y': user_armyattack (obj); return;

	case 'B': user_build (obj); break;
	case '?': help (help_user, user_lines);; break;
	case 'K': user_wake (obj); break;
	case 'O': user_cancel_auto (); break;
	case '\014':
	case 'P': redraw (); break;
	case '=': describe_obj (obj); break;

	default: alert();
	}
    }
}
Example #2
0
/* 错误重试逻辑 */
static CURLcode _HttpClient_Perform(HttpClient *client) {
//{{{
    void (*reset_func) (void *context);
    CURLcode ret;
    while ((ret = _HttpClient_ResetAndPerform(client)) != CURLE_OK) {

        /* 调用失败重置函数 */
        reset_func = client->fail_reset_callback;
        if (reset_func != NULL) {
            reset_func(client->fail_reset_context);
        }

        client->fail_times ++;
        if (client->fail_times >= client->retry_times) {
            break;
        }

#ifdef DEBUG
        fprintf(stderr, "curl error %s\n", curl_easy_strerror(ret));
        fprintf(stderr, "HttpClient retry after %d seconds\n", client->retry_interval);
#endif

        sleep(client->retry_interval);
    }
    return ret;
}
Example #3
0
int
test_main(struct test *start, struct test *stop, void (*reset_func)(void), int argc, char *argv[])
{
    const struct test *t;
    const char *pattern = NULL;
    int err, count = 0;

    err = sol_init();
    ASSERT(!err);

    if (argc > 1) {
        pattern = argv[1];
        printf("Running only tests that match '%s'\n", pattern);
    }

    for (t = start; t < stop; t++) {
        if (!pattern || strstr(t->name, pattern)) {
            printf("- %s\n", t->name);
            t->func();
            if (reset_func)
                reset_func();
            count++;
        }
    }

    if (count == 0) {
        printf("No tests found!\n");
        return EXIT_FAILURE;
    }

    sol_shutdown();
    printf("OK!\n");

    return 0;
}
void restart()
{
   // Pointer to normal RESET vector
   SPCR &= ~(1 << SPE);
   reboot_func_t reset_func = (reboot_func_t)0x0000; 
   reset_func();
}
Example #5
0
void bsp_reset(void)
{
  void (*reset_func)(void);

  reset_func = (void *)0xbfc00000;

  mips_set_sr( 0x00200000 ); /* all interrupts off, boot exception vectors */

  /* Try to restart bootloader */
  reset_func();
}
Example #6
0
void 
XalanDOMString::reset(MemoryManager&    theManager,
                      const XalanDOMChar*   theString)
{
    reset_func(*this, theManager, theString);
}