Better error handling, fix from Ryan Fleet.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1520 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
François Revol
2002-10-14 22:20:19 +00:00
parent 9d9af368f7
commit bb8a5f5822
2 changed files with 25 additions and 11 deletions
+7 -1
View File
@@ -11,7 +11,7 @@ int main(int argc, char *argv[])
if(argc < 2) if(argc < 2)
{ {
printf("usage: listattr 'filename' ['filename' ...]\n"); printf("usage: listattr 'filename' ['filename' ...]\n");
return 0; return 1;
} }
for(int i = 1; i < argc; ++i) for(int i = 1; i < argc; ++i)
@@ -37,6 +37,12 @@ int main(int argc, char *argv[])
case 0x4d494d53: case 0x4d494d53:
printf(" MIME str"); printf(" MIME str");
break; break;
case 0x43535452:
printf(" Text");
break;
case 0x4c4f4e47:
printf(" Int-32");
break;
default: default:
printf("0x%lx", attrInfo.type); printf("0x%lx", attrInfo.type);
break; break;
+18 -10
View File
@@ -1,6 +1,6 @@
// Author: Ryan Fleet // Author: Ryan Fleet
// Created: 9th October 2002 // Created: 9th October 2002
// Modified: 10th October 2002 // Modified: 14th October 2002
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
@@ -20,33 +20,33 @@ void help(void)
} }
void getversion(const char *filename, version_kind kind, bool bLongFlag, bool bNumericalFlag) int getversion(const char *filename, version_kind kind, bool bLongFlag, bool bNumericalFlag)
{ {
BFile file(filename, O_RDONLY); BFile file(filename, O_RDONLY);
if(file.InitCheck() != B_OK) if(file.InitCheck() != B_OK)
{ {
printf("Couldn't get file info!\n"); printf("Couldn't get file info!\n");
return; return 1;
} }
BAppFileInfo info(&file); BAppFileInfo info(&file);
if(info.InitCheck() != B_OK) if(info.InitCheck() != B_OK)
{ {
printf("Couldn't get file info!\n"); printf("Couldn't get file info!\n");
return; return 1;
} }
version_info version; version_info version;
if(info.GetVersionInfo(&version, kind) != B_OK) if(info.GetVersionInfo(&version, kind) != B_OK)
{ {
printf("Version unknown!\n"); printf("Version unknown!\n");
return; return 1;
} }
if(true == bLongFlag) if(true == bLongFlag)
{ {
printf("%s\n", version.long_info); printf("%s\n", version.long_info);
return; return 0;
} }
if(true == bNumericalFlag) if(true == bNumericalFlag)
@@ -64,10 +64,12 @@ void getversion(const char *filename, version_kind kind, bool bLongFlag, bool bN
case 5: printf("f "); break; case 5: printf("f "); break;
}; };
printf("%lu\n", version.internal); printf("%lu\n", version.internal);
return; return 0;
} }
printf("%s\n", version.short_info); printf("%s\n", version.short_info);
return 0;
} }
@@ -182,12 +184,18 @@ int main(int argc, char *argv[])
} }
} }
} }
int status = 0;
int retval = 0;
for(i = 1; i < argc; ++i) for(i = 1; i < argc; ++i)
{ {
if(strncmp(argv[i], "-", 1) != 0) if(strncmp(argv[i], "-", 1) != 0)
getversion(argv[i], kind, bLongFlag, bNumericalFlag); {
status = getversion(argv[i], kind, bLongFlag, bNumericalFlag);
if(status != 0)
retval = 1;
}
} }
return 0; return retval;
} }