コード例 #1
0
ファイル: misc.c プロジェクト: zhangzm/EnvTool
/*
 * Open a fname and check if there's a "PK" signature in header.
 */
int check_if_zip (const char *fname)
{
  static const char header[4] = { 'P', 'K', 3, 4 };
  const char *ext;
  char   buf[4];
  FILE  *f;
  int    rc = 0;

  /* Return 0 if extension is neither ".egg" nor ".zip"
   */
  ext = get_file_ext (fname);
  if (stricmp(ext,"egg") && stricmp(ext,"zip"))
     return (0);

  f = fopen (fname, "rb");
  if (f)
  {
    rc = (fread(&buf,1,sizeof(buf),f) == sizeof(buf) &&
          !memcmp(&buf,&header,sizeof(buf)));
    fclose (f);
  }
  if (rc)
     DEBUGF (1, "\"%s\" is a ZIP-file.\n", fname);
  return (rc);
}
コード例 #2
0
ファイル: graph.cpp プロジェクト: yujiang/mos
file_source* graph::find_file_source(const char* file) const
{
	auto it = source_map.find(get_file_ext(file));
	if (it != source_map.end())
		return it->second;
	//return source_map[f];
	return NULL;
}
コード例 #3
0
/******************************************************************************
 * public メソッド
 *****************************************************************************/
void PostDataChecker::validate_uitem(apr_pool_t *pool, apr_uint64_t file_size,
                                     apr_time_t  mtime, const char **file_name,
                                     const char **file_mime,
                                     const char *file_digest,
                                     const char *remove_pass,
                                     const char *download_pass,
                                     const char **comment,
                                     const char *code_pat)
{
    const char *file_ext;

    validate_file_name(pool, file_name, code_pat);
    validate_file_mime(pool, *file_mime);
    validate_comment(pool, comment, code_pat);
    file_ext = get_file_ext(*file_name);
    validate_file_ext(file_ext);

    if (strlen(*file_name) == 0) {
        THROW(MESSAGE_POST_FILE_NAME_EMPTY);
    } else if (strlen(*file_name) > (ITM_MAX_FILE_NAME_SIZE-1)) {
        THROW(MESSAGE_POST_FILE_NAME_TOO_LONG);
    }
    if (file_size == 0) {
        THROW(MESSAGE_POST_FILE_SIZE_ZERO);
    }
    if (strlen(*file_mime) == 0) {
        THROW(MESSAGE_POST_FILE_MIME_EMPTY);
    } else if (strlen(*file_mime) > (ITM_MAX_FILE_MIME_SIZE-1)) {
        THROW(MESSAGE_POST_FILE_MIME_TOO_LONG);
    }
    if (strlen(file_ext) == 0) {
        THROW(MESSAGE_POST_FILE_EXT_EMPTY);
    } else if (strlen(file_ext) > (ITM_MAX_FILE_EXT_SIZE-1)) {
        THROW(MESSAGE_POST_FILE_EXT_TOO_LONG);
    }
    if (strlen(file_digest) == 0) {
        THROW(MESSAGE_POST_FILE_DIGEST_EMPTY);
    } else if (strlen(file_digest) > (ITM_MAX_FILE_DIGEST_SIZE-1)) {
        THROW(MESSAGE_POST_FILE_DIGEST_TOO_LONG);
    }
    if (strlen(remove_pass) > (ITM_MAX_REMOVE_PASS_SIZE-1)) {
        THROW(MESSAGE_POST_REMOVE_PASS_TOO_LONG);
    }
    if (strlen(download_pass) > (ITM_MAX_DOWNLOAD_PASS_SIZE-1)) {
        THROW(MESSAGE_POST_DOWNLOAD_PASS_TOO_LONG);
    }

    if (strlen(*comment) == 0) {
#ifndef EMPTY_COMMENT
        THROW(MESSAGE_POST_COMMENT_EMPTY);
#endif
    } else if (strlen(*comment) > (ITM_MAX_COMMENT_SIZE-1)) {
        THROW(MESSAGE_POST_COMMENT_TOO_LONG);
    }
}
コード例 #4
0
ファイル: main.cpp プロジェクト: FireLeaf/CLike
int main(int argc, char** argv)
{
	
	int opind;
	char *ext;
	init();
	opind = process_command(argc, argv);
	if (opind == 0)
	{
		return 0;
	}

	for (int src_idx = 0; src_idx < static_cast<int>(src_files.size()); src_idx++)
	{
		filename = src_files[src_idx];
		ext = get_file_ext(filename);
		if (!strcmp(ext, "c"))
		{
			compile(filename);
		}
		
		if (!strcmp(ext, "obj"))
		{
			linker.load_obj_file(filename);
		}
	}

	if (!outfile)
	{
		printf("usage: scc [-c infile] [-o outfile] [-lib] [infile] infile2...\n");
		return -1;
	}

	if (output_type == OUTPUT_OBJ)
	{
		syntax.coff.write_obj(outfile);
	}
	else
		linker.pe_output_file(outfile);

	getchar();

	return 0;
}
コード例 #5
0
ファイル: tag_reader.c プロジェクト: soda0289/mod_MP
List* read_dir(apr_pool_t* pool, List* file_list, const char* dir_path, int* count, error_messages_t* error_messages){
	apr_status_t rv;
	char errorbuf [255];

	apr_dir_t *dir;
	apr_finfo_t filef;

	char* file_path;

	rv = apr_dir_open(&dir, dir_path, pool);
	if (rv != 0){
		 apr_strerror(rv, (char *)&errorbuf, 255);
		error_messages_add(error_messages, ERROR,apr_psprintf(pool, "Error opening directory (%s) (%d)", dir_path, rv), errorbuf);
		return NULL;
	}
	  //Read file is directory
	while (apr_dir_read(&filef, APR_FINFO_TYPE | APR_FINFO_NAME | APR_FINFO_MTIME, dir) == 0){
		file_path =  apr_pstrcat(pool, dir_path, "/", filef.name, NULL);
		if (file_path == NULL){
			return NULL;
			///BIG ERROR
		}
		//Is a Directory
		if (filef.filetype == APR_DIR){
			if(filef.name[0] != '.'){
					file_list = read_dir(pool, file_list, file_path, count, error_messages);
			}
		}
		//Is a File
		if (filef.filetype == APR_REG){
			List* file_list_new;
			(*count)++;
			file_list_new  = apr_pcalloc(pool, sizeof(List));
			file_list->file.path = file_path;
			file_list->file.mtime = filef.mtime;
			file_list->file.type  = get_file_ext(pool,file_path);
			file_list->next = file_list_new;
			file_list = file_list_new;
		}
	}
	rv = apr_dir_close(dir);
	return file_list;
}
コード例 #6
0
ファイル: script-runner.c プロジェクト: olibre/script-runner
int main(int argc, char** argv)
{
    int rc = 127;
    HINSTANCE hInstance = GetModuleHandle(NULL);
    const TCHAR* args = skip_program_name(GetCommandLine());
    TCHAR* modulename = get_module_filename(hInstance);
    TCHAR* moduleext = (TCHAR*)get_file_ext(modulename);
    size_t maxlen = 0;
    const TCHAR** ext;
    TCHAR* name;
    TCHAR* nameext;
    int found = 0;

    for (ext = config.extensions; *ext; ++ext) {
        size_t len = _tcslen(*ext);
        if (maxlen < len)
            maxlen = len;
    }

    name = malloc(((moduleext - modulename) + maxlen + 1) * sizeof(TCHAR));
    _tcsncpy(name, modulename, moduleext - modulename);
    nameext = name + (moduleext - modulename);

    SetConsoleCtrlHandler(&CtrlHandler, TRUE); /* let children handle Ctrl+C */
    for (ext = config.extensions; *ext; ++ext) {
        _tcscpy(nameext, *ext);
        if (!try_script(name, args, &rc)) {
            found = 1;
            break;
        }
    }
    SetConsoleCtrlHandler(&CtrlHandler, FALSE); /* restore default behavior */

    if (!found)
        _ftprintf(stderr, _T("Error: stub could not find or execute the script file\n"));

    free(name);
    free(modulename);
    return rc;
}