예제 #1
0
파일: lha_reader.c 프로젝트: djdron/zxtune
int lha_reader_extract(LHAReader *reader,
                       char *filename,
                       LHADecoderProgressCallback callback,
                       void *callback_data)
{
	switch (reader->curr_file_type) {

		case CURR_FILE_NORMAL:
			return extract_normal(reader, filename, callback,
			                      callback_data);

		case CURR_FILE_FAKE_DIR:
			if (filename == NULL) {
				filename = reader->curr_file->path;
			}
			set_directory_metadata(reader->curr_file, filename);
			return 1;

		case CURR_FILE_START:
		case CURR_FILE_EOF:
			break;
	}

	return 0;
}
예제 #2
0
파일: extract.c 프로젝트: Elytum/tutoSh1
void		extract_content(t_env *env, size_t pos, char *ptr)
{
	while (pos < env->len && env->interprete[pos] != SPACING &&
		env->interprete[pos] != DELIMITER)
	{
		if (env->interprete[pos] == INTERPRETED)
			extract_normal(env, &pos, &ptr);
		else if (env->interprete[pos] == SIMPLE_QUOTED)
			extract_simple_quote(env, &pos, &ptr);
		else if (env->interprete[pos] == DOUBLE_QUOTED)
			extract_double_quote(env, &pos, &ptr);
		else if (env->interprete[pos] == BACK_QUOTED)
			extract_back_quote(env, &pos, &ptr);
		else if (env->interprete[pos] == BACKSLASHED)
			extract_backslash(env, &pos, &ptr);
		else if (env->interprete[pos] == START_LOCAL_VARIABLE)
			extract_value(env, &pos, &ptr);
	}
	*ptr = '\0';
}