Пример #1
0
int cmd_config(int argc,char **argv,struct sub_command* cmd) {
  char* home=configdir();
  char* path=cat(home,"config",NULL);
  if(argc==1) {
    printf("oneshot:\n");
    print_opts(local_opt);
    printf("local:\n");
    print_opts(global_opt);
  }else {
    struct opts* opt=global_opt;
    struct opts** opts=&opt;
    // TBD parse options
    if(argc==2) {
      unset_opt(opts, argv[1]);
      save_opts(path,opt);
    }else {
      if(strcmp(argv[1],"set")==0) {
        set_opt(opts, argv[2],(char*)argv[3],0);
        save_opts(path,opt);
      }else if (strcmp(argv[1],"show")==0) {
        printf("%s\n",_get_opt(opt,argv[2]));
      }else {
        set_opt(opts, argv[1],(char*)argv[2],0);
        save_opts(path,opt);
      }
    }
  }
  s(home),s(path);
  return 0;
}
Пример #2
0
/*
   Could be optimized further probably, but works for the most part
   */
int main(int argc, char *argv[]) {
   int i, j;
   int steps;
   int pen_position = PEN_UP;
   int coord[2] = { 0, 0 };
   short floor[MAX_SIZE][MAX_SIZE];
   int current_command, current_direction = NORTH;

   for(i = 0; i < MAX_SIZE; i++) {
      for(j = 0; j < MAX_SIZE; j++) {
         floor[i][j] = 0;
      }
   }


   while(1) {
      print_opts();
      scanf("%d", &current_command);
      printf("\n");

      switch(current_command) {
         case PEN_UP:
            pen_position = PEN_UP;
            printf("Pen is up now dog.\n");
            break;
         case PEN_DOWN:
            pen_position = PEN_DOWN;
            printf("Pen is down now dog.\n");
            break;
         case TURN_RIGHT:
            turn(&current_direction, TURN_RIGHT);
            printf("I just turned right dog.\n");
            break;
         case TURN_LEFT:
            turn(&current_direction, TURN_LEFT);
            printf("I just turned left dog.\n");
            break;
         case MOVE_FORWARD:
            printf("How many motherfucking steps do you want to take? ");
            scanf("%d", &steps);
            move(floor, &current_direction, coord, steps, pen_position);
            printf("If your move was valid, I just moved %d steps dog.\n", steps);
            break;
         case PRINT_ARR:
            print_arr(floor);
            break;
         case END_OF_DATA:
            printf("Thank you goodbye\n");
            exit(EXIT_SUCCESS);
            break;
         default:
            printf("Invalid command, please try again\n");
            break;
      }
   }

   
   return 0;
}