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++; } }
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; }
void emin_enter(){ String_split(cursor.str, cursor.absolute.x); Cursor_move_right(&cursor); View_redraw(&cursor); }
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"); } }