예제 #1
0
파일: newgame.c 프로젝트: markkings/reversi
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);
}
예제 #2
0
파일: newgame.c 프로젝트: markkings/reversi
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);
  }
예제 #3
0
파일: newgame.c 프로젝트: markkings/reversi
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);
}
예제 #4
0
파일: lsc.c 프로젝트: wcheswick/ex
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;
}
예제 #5
0
파일: sysfs.c 프로젝트: CIRCL/mpss-daemon
/*
 * 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;
}