]> pd.if.org Git - zpackage/blobdiff - lib/zpm.c
treat - as stdout for zpm-extract
[zpackage] / lib / zpm.c
index 9d62ad7d7debb32172cb4ee50299c01f7161a467..99984fbef7d645864fa235fdfdd072dd1a9a0682 100644 (file)
--- a/lib/zpm.c
+++ b/lib/zpm.c
@@ -434,12 +434,16 @@ int zpm_extract(struct zpm *pkg, char *hash, char *path, int mode) {
        xzdata = (void *)sqlite3_column_blob(ifile, 1);
        blobsize = sqlite3_column_bytes(ifile, 1);
 
-       out = fopen(path, "w");
+       if (strcmp(path, "-")) {
+               out = fopen(path, "w");
+       } else {
+               out = stdout;
+       }
        if (!out) {
                fprintf(stderr, "can't open output file %s\n", path);
                sqlite3_finalize(ifile);
                sqlite3_close(db);
-               return 5;
+               return 0;
        }
        //fwrite(xzdata, blobsize, 1, stdout);
 
@@ -449,8 +453,7 @@ int zpm_extract(struct zpm *pkg, char *hash, char *path, int mode) {
 
        sqlite3_finalize(ifile);
 
-       return 0;
-       
+       return 1;
 }
 
 /* flags 0, close mmap, flags 1, return mmap fd */