Improve IsoFileSource interface implementation.

This commit is contained in:
Vreixo Formoso
2007-12-20 20:47:39 +01:00
parent f2e3a2c9fc
commit a161f4249c
9 changed files with 125 additions and 59 deletions

View File

@ -42,7 +42,7 @@ int main(int argc, char **argv)
return 1;
}
res = file->lstat(file, &info);
res = iso_file_source_lstat(file, &info);
if (res < 0) {
fprintf(stderr, "Can't stat file, err = %d\n", res);
return 1;
@ -53,19 +53,19 @@ int main(int argc, char **argv)
return 1;
} else {
char buf[1024];
res = file->open(file);
res = iso_file_source_open(file);
if (res < 0) {
fprintf(stderr, "Can't open file, err = %d\n", res);
return 1;
}
while ((res = file->read(file, buf, 1024)) > 0) {
while ((res = iso_file_source_read(file, buf, 1024)) > 0) {
fwrite(buf, 1, res, stdout);
}
if (res < 0) {
fprintf(stderr, "Error reading, err = %d\n", res);
return 1;
}
file->close(file);
iso_file_source_close(file);
}
iso_file_source_unref(file);

View File

@ -56,16 +56,16 @@ print_file_src(IsoFileSource *file)
{
struct stat info;
char *name;
file->lstat(file, &info);
iso_file_source_lstat(file, &info);
print_type(info.st_mode);
print_permissions(info.st_mode);
printf(" {%ld,%ld} ", (long)info.st_dev, (long)info.st_ino);
name = file->get_name(file);
name = iso_file_source_get_name(file);
printf(" %s", name);
free(name);
if (S_ISLNK(info.st_mode)) {
char buf[PATH_MAX];
file->readlink(file, buf, PATH_MAX);
iso_file_source_readlink(file, buf, PATH_MAX);
printf(" -> %s\n", buf);
}
printf("\n");
@ -97,25 +97,25 @@ int main(int argc, char **argv)
return 1;
}
res = dir->lstat(dir, &info);
res = iso_file_source_lstat(dir, &info);
if (res < 0) {
fprintf(stderr, "Can't stat file, err = %d\n", res);
return 1;
}
if (S_ISDIR(info.st_mode)) {
res = dir->open(dir);
res = iso_file_source_open(dir);
if (res < 0) {
fprintf(stderr, "Can't open file, err = %d\n", res);
return 1;
}
while (dir->readdir(dir, &file) == 1) {
while (iso_file_source_readdir(dir, &file) == 1) {
print_file_src(file);
iso_file_source_unref(file);
}
res = dir->close(dir);
res = iso_file_source_close(dir);
if (res < 0) {
fprintf(stderr, "Can't close file, err = %d\n", res);
return 1;