bool NewGame::f_read_packed(FILE *fp) { set_flags(fgetc(fp)); if (feof(fp)) return false; set_move_num(fgetc(fp)); set_value(fgetc(fp)); if (get_move_num() > 60) Error("f_read_packed: MoveNum > 60"); int i; FOR (i, get_move_num()) get_pm(i).set_raw(fgetc(fp)); get_pm(get_move_num()).set_raw(0); return !feof(fp); }
void NewGame::s_write(char *s) { char s1[500], t[20]; int i, player; int move; s[0] = 0; FOR (i, get_move_num()) { move = get_pm(i).get_move(); player = get_pm(i).get_player(); t[0] = player == BLACK ? '+' : '-'; t[1] = 0; sKoorAus(&t[1], move); sprintf(s1, "%s%s", s, t); strcpy(s, s1); }
bool NewGame::f_write_packed(FILE *fp) { fputc(get_flags(), fp); fputc(get_move_num(), fp); fputc(get_value(), fp); int i; FOR (i, get_move_num()) fputc(get_pm(i).get_raw(), fp); return !ferror(fp); }
button * lsc_button(Point p, char *name, transform_t func, b_init_func init) { struct button_info *bi = (struct button_info *)malloc(sizeof(struct button_info)); button *bp; PixMap up_pm = get_pm(name, "up", "buttons", 1); PixMap down_pm = get_pm(name, "dwn", "buttons", 1); if (p.y < 0) // -y positions are distance from the top of the screen. p.y = SCREEN_HEIGHT - (-p.y); assert(bi); bi->func = func; bi->init = init; bi->call_param = 0; bi->name = get_pm(name, "", "names", 0); #ifdef descriptions bi->description = get_pm(name, "", "descriptions", 0); #endif bp = add_button_with_images(p, up_pm, down_pm, bi); bp->name = name; return bp; }
/* * Write the kerrnel command line to the sysfs based on configuration variables. If any * variable is not set then return an error. */ char * mpss_set_cmdline(struct mic_info *mic, struct mbridge *brlist, char *cmdline, char *ip) { char *verboseline = NULL; char *rootdev = NULL; char *console = NULL; char *cgroup = NULL; /* cmdline1 and cmdline2 must have the same size */ char cmdline1[2048]; char cmdline2[2048]; char pm[1024]; int err; size_t cmdlinesize = sizeof(cmdline1); verboseline = get_verbose(mic); snprintf(cmdline1, cmdlinesize, "%s", verboseline); if ((rootdev = get_rootdev(mic, brlist)) == NULL) { return "RootDevice parameter invalid"; } snprintf(cmdline2, cmdlinesize, "%s %s", cmdline1, rootdev); free(rootdev); if ((console = get_console(mic)) != NULL) { snprintf(cmdline1, cmdlinesize, "%s %s", cmdline2, console); free(console); } else { strncpy(cmdline1, cmdline2, cmdlinesize); } if ((cgroup = get_cgroup(mic)) != NULL) { snprintf(cmdline2, cmdlinesize, "%s %s", cmdline1, cgroup); free(cgroup); } else { strncpy(cmdline2, cmdline1, cmdlinesize); } if (mic->config.boot.extraCmdline != NULL) snprintf(cmdline1, cmdlinesize, "%s %s", cmdline2, mic->config.boot.extraCmdline); else strncpy(cmdline1, cmdline2, cmdlinesize); err = get_pm(mic, pm, sizeof(pm)); switch(err) { case 0: snprintf(cmdline2, cmdlinesize, "%s %s", cmdline1, pm); break; case ESRCH: strncpy(cmdline2, cmdline1, cmdlinesize); break; } if (ip != NULL) snprintf(cmdline1, cmdlinesize, "%s ip=%s", cmdline2, ip); else strncpy(cmdline1, cmdline2, cmdlinesize); if ((err = mpss_setsysfs(mic->name, "cmdline", cmdline1)) != 0) { return "Failed write command line to sysfs"; } if (cmdline != NULL) strncpy(cmdline, cmdline1, cmdlinesize); return NULL; }