Exemplo n.º 1
0
int adagain(int input)
{
   static int    one = 1;

   int           two = 2;

   two += input;
   two += one;
   two = add_more(two);
   primary_three(two);
   primary_four(two);
   return two;
}
Exemplo n.º 2
0
static int
list_dir(const string& path, const FileRecord& rec,
                const vector<string>& excludes,
                vector<FileRecord>* more)
{
    int err;

    string full = path_append(rec.sourceBase, rec.sourceName);
    full = path_append(full, path);

    DIR *d = opendir(full.c_str());
    if (d == NULL) {
        return errno;
    }

    vector<string> dirs;

    struct dirent *ent;
    while (NULL != (ent = readdir(d))) {
        if (0 == strcmp(".", ent->d_name)
                || 0 == strcmp("..", ent->d_name)) {
            continue;
        }
        if (matches_excludes(ent->d_name, excludes)) {
            continue;
        }
        string entry = path_append(path, ent->d_name);
#ifdef HAVE_DIRENT_D_TYPE
		bool is_directory = (ent->d_type == DT_DIR);
#else
	    // If dirent.d_type is missing, then use stat instead
		struct stat stat_buf;
		stat(entry.c_str(), &stat_buf);
		bool is_directory = S_ISDIR(stat_buf.st_mode);
#endif
        add_more(entry, is_directory, rec, more);
        if (is_directory) {
            dirs.push_back(entry);
        }
    }
    closedir(d);

    for (vector<string>::iterator it=dirs.begin(); it!=dirs.end(); it++) {
        list_dir(*it, rec, excludes, more);
    }

    return 0;
}