* Fixed warning.

* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32309 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-08-13 13:32:49 +00:00
parent 0e20032995
commit 6ebdef0c29
+52 -27
View File
@@ -3,6 +3,7 @@
* Distributed under the terms of the MIT License.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -14,8 +15,10 @@
#include <StorageDefs.h>
#include <TypeConstants.h>
using namespace std;
static const char *kCommandName = "xres";
static const char *kDefaultResourceName = NULL;
static const char *kDefaultOutputFile = "xres.output.rsrc";
@@ -80,6 +83,7 @@ const char *kUsage =
" <id> - A positive or negative integer.\n"
;
// resource_type
static const char *
resource_type(type_code type)
@@ -95,6 +99,7 @@ resource_type(type_code type)
return typeString;
}
// ResourceID
struct ResourceID {
type_code type;
@@ -103,9 +108,10 @@ struct ResourceID {
ResourceID(type_code type = B_ANY_TYPE, int32 id = 0,
bool wildcardID = true)
: type(type),
id(id),
wildcardID(wildcardID)
:
type(type),
id(id),
wildcardID(wildcardID)
{
}
@@ -129,6 +135,7 @@ struct ResourceID {
}
};
// ResourceDataSource
struct ResourceDataSource {
ResourceDataSource()
@@ -146,6 +153,7 @@ struct ResourceDataSource {
}
};
// MemoryResourceDataSource
struct MemoryResourceDataSource : ResourceDataSource {
MemoryResourceDataSource(const void *data, size_t size, bool clone)
@@ -191,12 +199,14 @@ private:
bool fOwner;
};
// FileResourceDataSource
struct FileResourceDataSource : ResourceDataSource {
FileResourceDataSource(const char *path)
: fPath(path),
fData(NULL),
fSize(0)
:
fPath(path),
fData(NULL),
fSize(0)
{
}
@@ -266,6 +276,7 @@ private:
size_t fSize;
};
// State
struct State {
State()
@@ -305,6 +316,7 @@ struct State {
}
};
// ListState
struct ListState : State {
ListState()
@@ -351,22 +363,22 @@ struct ListState : State {
const char *name;
size_t size;
for (int32 i = 0;
resources.GetResourceInfo(i, &type, &id, &name, &size);
i++) {
printf("'%s' %11ld %11u %s\n", resource_type(type), id, size,
resources.GetResourceInfo(i, &type, &id, &name, &size); i++) {
printf("'%s' %11ld %11lu %s\n", resource_type(type), id, size,
(name && strlen(name) > 0 ? name : "(no name)"));
}
}
};
// WriteFileState
struct WriteFileState : State {
WriteFileState()
: fOutputFilePath(kDefaultOutputFile),
fResources(NULL),
fInclusionPattern(NULL),
fExclusionPattern(NULL)
:
fOutputFilePath(kDefaultOutputFile),
fResources(NULL),
fInclusionPattern(NULL),
fExclusionPattern(NULL)
{
}
@@ -422,7 +434,7 @@ struct WriteFileState : State {
if (!data) {
fprintf(stderr, "Error: Failed to read resources from input "
"file \"%s\".\n", path);
exit(1);
}
@@ -457,7 +469,7 @@ struct WriteFileState : State {
// not included or explicitly excluded
return;
}
// get resource data
const void *data;
size_t size;
@@ -525,6 +537,7 @@ private:
ResourceID *fExclusionPattern;
};
// Command
struct Command {
Command()
@@ -538,11 +551,13 @@ struct Command {
virtual void Do(State *state) = 0;
};
// SetOutputCommand
struct SetOutputCommand : Command {
SetOutputCommand(const char *path)
: Command(),
fPath(path)
:
Command(),
fPath(path)
{
}
@@ -555,11 +570,13 @@ private:
string fPath;
};
// ProcessInputCommand
struct ProcessInputCommand : Command {
ProcessInputCommand(const char *path)
: Command(),
fPath(path)
:
Command(),
fPath(path)
{
}
@@ -572,12 +589,14 @@ private:
string fPath;
};
// SetResourcePatternCommand
struct SetResourcePatternCommand : Command {
SetResourcePatternCommand(const ResourceID &pattern, bool inclusion)
: Command(),
fPattern(pattern),
fInclusion(inclusion)
:
Command(),
fPattern(pattern),
fInclusion(inclusion)
{
}
@@ -594,14 +613,16 @@ private:
bool fInclusion;
};
// AddResourceCommand
struct AddResourceCommand : Command {
AddResourceCommand(const ResourceID &id, const char *name,
ResourceDataSource *dataSource)
: Command(),
fID(id),
fHasName(name),
fDataSource(dataSource)
:
Command(),
fID(id),
fHasName(name),
fDataSource(dataSource)
{
if (fHasName)
fName = name;
@@ -648,6 +669,7 @@ print_usage(bool error)
commandName);
}
// print_usage_and_exit
static void
print_usage_and_exit(bool error)
@@ -656,6 +678,7 @@ print_usage_and_exit(bool error)
exit(error ? 1 : 0);
}
// next_arg
static const char *
next_arg(int &argi, bool optional = false)
@@ -669,6 +692,7 @@ next_arg(int &argi, bool optional = false)
return kArgv[argi++];
}
// parse_resource_id
static void
parse_resource_id(const char *toParse, ResourceID &resourceID,
@@ -733,6 +757,7 @@ parse_resource_id(const char *toParse, ResourceID &resourceID,
*name = toParse + 1;
}
// main
int
main(int argc, const char *const *argv)