]> git.draconx.ca Git - upkg.git/blobdiff - src/upkg.c
libupkg: Remove checks for an unsigned quantity being less than 0.
[upkg.git] / src / upkg.c
index 8b1493e33846a390645144f4e0ab5ec74fabbbb8..2c268b4c5cdafb97fcc6894b5539f9fbcc1d6ef9 100644 (file)
@@ -2,9 +2,9 @@
  *  upkg: tool for manipulating Unreal Tournament packages.
  *  Copyright (C) 2009 Nick Bowler
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
  *  This program is distributed in the hope that it will be useful,
@@ -13,8 +13,7 @@
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -29,6 +28,7 @@
 #include <uobject/exportable.h>
 #include <uobject/loadable.h>
 #include <uobject/module.h>
+#include <uobject/package.h>
 
 enum {
        MODE_INFO,
@@ -54,6 +54,7 @@ void print_version(void)
        printf("%s\n", PACKAGE_STRING);
        puts("\
 Copyright (C) 2009 Nick Bowler.\n\
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n\
 This is free software: you are free to change and redistribute it.\n\
 There is NO WARRANTY, to the extent permitted by law."
        );
@@ -186,7 +187,9 @@ void print_upkg_exports(struct upkg *pkg)
 
                printf("%u - %s (%s.%s)\n", i+1, name, package, class);
                printf("  Flags: %lx\n", upkg_export_flags(pkg, i));
-               print_upkg_object_flags("    ", upkg_export_flags(pkg, i));
+               if (verbose >= 2) {
+                       print_upkg_object_flags("    ", upkg_export_flags(pkg, i));
+               }
        }
 }
 
@@ -198,16 +201,14 @@ int package_info(struct upkg *pkg)
        print_guid(pkg->guid);
 
        printf("Flags:   %lx\n", pkg->flags);
-       if (verbose >= 1) {
+       if (verbose >= 2) {
                print_upkg_flags("        ", pkg->flags);
        }
 
-       if (verbose >= 1) {
-               printf("Names:   %lu\n", pkg->name_count);
-               if (verbose >= 2) {
-                       for (unsigned long i = 0; i < pkg->name_count; i++) {
-                               printf("\t%s\n", upkg_get_name(pkg, i));
-                       }
+       printf("Names:   %lu\n", pkg->name_count);
+       if (verbose >= 3) {
+               for (unsigned long i = 0; i < pkg->name_count; i++) {
+                       printf("\t%s\n", upkg_get_name(pkg, i));
                }
        }
 
@@ -285,7 +286,7 @@ int package_export(struct upkg *pkg)
 
 int main(int argc, char **argv)
 {
-       struct upkg *pkg;
+       UPkg *upkg;
        unsigned mode = MODE_INFO;
        int opt, rc = EXIT_FAILURE;
 
@@ -322,22 +323,22 @@ int main(int argc, char **argv)
        if (u_object_module_init() != 0)
                return EXIT_FAILURE;
 
-       pkg = upkg_fopen(argv[optind]);
-       if (!pkg) {
+       upkg = U_PKG(u_pkg_new_by_file(argv[optind]));
+       if (!upkg) {
                fprintf(stderr, "failed to open package!\n");
                return EXIT_FAILURE;
        }
 
        switch (mode) {
        case MODE_INFO:
-               rc = package_info(pkg);
+               rc = package_info(upkg->pkg);
                break;
        case MODE_EXPORT:
-               rc = package_export(pkg);
+               rc = package_export(upkg->pkg);
                break;
        }
 
-       upkg_close(pkg);
+       g_object_unref(upkg);
        u_object_module_exit();
        return rc;
 }