示例#1
0
文件: string-test.c 项目: qc1iu/c-lib
int main(int argc, char **argv)
{
  char *path = getenv("CLASSPATH");
  printf("spit %s\n", path);

  char **t = String_split(path, ":");
  while (*t) {
    printf("%s\n", *t);
    t++;
  }
}
示例#2
0
文件: main.c 项目: jobquiroz/MieruSDK
int File_open(char *name){
    char buf[128];
    int fd;
    int ret;
    String *str;
    int start, end;
    head = String_create();
    str = head;

    mpc_strcpy(filename, name);

    fd = sys_open(name, O_RDONLY);
    if(fd < 0) return 1;

    for(;;){
        ret = sys_read(fd, buf, 127);
        if(ret < 0) return 1;
        if(ret == 0) break;

        buf[ret] = 0;

        start = 0;
        for(;;){
            for(end=start;end<ret;end++)
                if(buf[end] == '\n') break;
            buf[end] = 0;
        

            String_insert_str(str, str->num, &buf[start], mpc_strlen(&buf[start]));
            if( end == ret ) break;
            String_split(str, str->num);
            str = str->next;
            start = end + 1;
        }
    }
    sys_close(fd);

    return 0;
}
示例#3
0
文件: main.c 项目: jobquiroz/MieruSDK
void emin_enter(){
    String_split(cursor.str, cursor.absolute.x);
    Cursor_move_right(&cursor);
    View_redraw(&cursor);
}
示例#4
0
static void parse_y4m_header(ArrayU8 *data, uint8_t ** framestart, int * pwidth, int * pheight)
{
  /* NOTE: This was copied from Y4MInput.c.  It would be nice to merge this, Y4MInput.c,
     Images.c, and ImageLoader.c to share code. */
  {
    int eoh = -1;
    int soh = ArrayU8_search(data, 0, ArrayU8_temp_const("YUV4MPEG2", 9));
    if (soh == 0)  {
      /* Search for newline at end of header line. */
      eoh = ArrayU8_search(data, soh, ArrayU8_temp_const("\n", 1));
    }

    if (soh != 0 || eoh == -1) {
      fprintf(stderr, "could lot find YUV4MPEG2 header\n");
      return;
    }

    /* Parse header line. */
    String *s = ArrayU8_extract_string(data, soh, eoh);
    String_list *ls = String_split(s, " ");
    int i;
    for (i=0; i < String_list_len(ls); i++) {
      String *t = String_list_get(ls, i);
      if (String_is_none(t)) {
        continue;
      }

      int width;
      //int width_set = 0;
      int height;
      //int height_set = 0;
      int frame_numerator;
      //int frame_numerator_set = 0;
      int frame_denominator;
      //int frame_denominator_set = 0;
      int aspect_numerator;
      //int aspect_numerator_set = 0;
      int aspect_denominator;
      //int aspect_denominator_set = 0;
      char chroma_subsamping[32+1];
      //int chroma_subsamping_set = 0;
      char interlacing;
      //int interlacing_set = 0;

      if (sscanf(t->bytes, "W%d", &width) == 1) {
        printf("width %d\n", width);
        *pwidth = width;
      }
      else if (sscanf(t->bytes, "H%d", &height) == 1) {
        printf("height %d\n", height);
        *pheight = height;
      }
      else if (sscanf(t->bytes, "C%32s", chroma_subsamping) == 1) {
        printf("chroma subsampling %s\n", chroma_subsamping);
      }
      else if (sscanf(t->bytes, "I%c", &interlacing) == 1) {
        printf("interlacing I%c\n", interlacing);
        //switch (interlacing) {
        //case 't': priv->video_common.interlace_mode = IMAGE_INTERLACE_TOP_FIRST; break;
        //case 'b': priv->video_common.interlace_mode = IMAGE_INTERLACE_BOTTOM_FIRST; break;
        //case 'm': priv->video_common.interlace_mode = IMAGE_INTERLACE_MIXEDMODE; break;
        //case 'p':
        //default:
        //priv->video_common.interlace_mode = IMAGE_INTERLACE_NONE; break;
        //}
      }
      else if (sscanf(t->bytes, "F%d:%d", &frame_numerator, &frame_denominator) == 2) {
        //priv->video_common.nominal_period = (1.0*frame_denominator/frame_numerator);
        //priv->video_common.fps_numerator = frame_numerator;
        //priv->video_common.fps_denominator = frame_denominator;
        //printf("frame rate %d:%d (%.5f period)\n",
        //priv->video_common.fps_numerator,
        //priv->video_common.fps_denominator,
        //priv->video_common.nominal_period);
      }
      else if (sscanf(t->bytes, "A%d:%d", &aspect_numerator, &aspect_denominator) == 2) {
        printf("aspect %d:%d\n", aspect_numerator, aspect_denominator);
      }
      // else if (sscanf(t->bytes, "X%s", metadata) == 1) { }
    }

    String_list_free(&ls);

    //priv->state = PARSING_FRAME;
    /* Trim out header plus newline. */
    // ArrayU8_trim_left(data, eoh+1);
    *framestart = data->data + eoh + 1 + strlen("FRAME\n");
  }
}