summaryrefslogtreecommitdiffstats
path: root/tools/h5jam
diff options
context:
space:
mode:
Diffstat (limited to 'tools/h5jam')
-rw-r--r--tools/h5jam/getub.c213
-rw-r--r--tools/h5jam/h5jam.c199
-rw-r--r--tools/h5jam/h5unjam.c2
3 files changed, 181 insertions, 233 deletions
diff --git a/tools/h5jam/getub.c b/tools/h5jam/getub.c
index 776eaeb..4e02e6b 100644
--- a/tools/h5jam/getub.c
+++ b/tools/h5jam/getub.c
@@ -13,21 +13,14 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#include <stdio.h>
-#include <fcntl.h>
-
-#ifdef H5_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
#include "H5private.h"
#include "h5tools.h"
#include "h5tools_utils.h"
-void parse_command_line (int argc, const char *argv[]);
+void parse_command_line(int argc, const char *argv[]);
/* Name of tool */
-#define PROGRAMNAME "getub"
+#define PROGRAM_NAME "getub"
char *nbytes = NULL;
static const char *s_opts = "c:"; /* add more later ? */
@@ -42,19 +35,14 @@ static struct long_options l_opts[] = {
* Purpose: Print the usage message
*
* Return: void
- *
- * Programmer:
- *
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
static void
usage (const char *prog)
{
- fflush (stdout);
- fprintf (stdout, "usage: %s -c nb file] \n", prog);
- fprintf (stdout, " print first 'nb' byts of file to stdoug.\n");
+ HDfflush(stdout);
+ HDfprintf(stdout, "usage: %s -c nb file] \n", prog);
+ HDfprintf(stdout, " print first 'nb' byts of file to stdoug.\n");
}
/*-------------------------------------------------------------------------
@@ -65,112 +53,105 @@ usage (const char *prog)
* Return: Success:
*
* Failure: Exits program with EXIT_FAILURE value.
- *
- * Programmer:
- *
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
-
void
-parse_command_line (int argc, const char *argv[])
+parse_command_line(int argc, const char *argv[])
{
- int opt;
-
- /* parse command line options */
- while ((opt = get_option (argc, argv, s_opts, l_opts)) != EOF)
- {
- switch ((char) opt)
- {
- case 'c':
- nbytes = HDstrdup (opt_arg);
- break;
- case '?':
- default:
- usage (h5tools_getprogname());
- exit (EXIT_FAILURE);
- }
- }
-
- if (argc <= opt_ind)
- {
+ int opt;
+
+ /* parse command line options */
+ while((opt = get_option (argc, argv, s_opts, l_opts)) != EOF) {
+ switch((char) opt) {
+ case 'c':
+ nbytes = HDstrdup(opt_arg);
+ break;
+ case '?':
+ default:
+ usage(h5tools_getprogname());
+ HDexit(EXIT_FAILURE);
+ } /* end switch */
+ } /* end while */
+
+ if(argc <= opt_ind) {
error_msg("missing file name\n");
- usage (h5tools_getprogname());
- exit (EXIT_FAILURE);
- }
-}
+ usage(h5tools_getprogname());
+ HDexit(EXIT_FAILURE);
+ } /* end if */
+} /* end parse_command_line() */
int
-main (int argc, const char *argv[])
+main(int argc, const char *argv[])
{
- int fd;
- unsigned int size;
- char *filename;
- long res;
- char *buf;
-
- h5tools_setprogname(PROGRAMNAME);
- h5tools_setstatus(EXIT_SUCCESS);
-
- /* Initialize h5tools lib */
- h5tools_init();
-
- parse_command_line (argc, argv);
-
- if (nbytes == NULL)
- {
- /* missing arg */
- error_msg("missing size\n");
- usage (h5tools_getprogname());
- exit (EXIT_FAILURE);
- }
- if (argc <= (opt_ind))
- {
- error_msg("missing file name\n");
- usage (h5tools_getprogname());
- exit (EXIT_FAILURE);
- }
- filename = HDstrdup (argv[opt_ind]);
-
- size = 0;
- res = sscanf (nbytes, "%u", &size);
- if (res == EOF)
- {
+ int fd = -1;
+ unsigned size;
+ char *filename = NULL;
+ long res;
+ char *buf = NULL;
+
+ h5tools_setprogname(PROGRAM_NAME);
+ h5tools_setstatus(EXIT_SUCCESS);
+
+ /* Initialize h5tools lib */
+ h5tools_init();
+
+ parse_command_line(argc, argv);
+
+ if(NULL == nbytes) {
+ /* missing arg */
+ error_msg("missing size\n");
+ usage(h5tools_getprogname());
+ goto error;
+ } /* end if */
+
+ if(argc <= (opt_ind)) {
+ error_msg("missing file name\n");
+ usage(h5tools_getprogname());
+ goto error;
+ } /* end if */
+
+ filename = HDstrdup(argv[opt_ind]);
+
+ size = 0;
+ if(EOF == (res = sscanf(nbytes, "%u", &size))) {
/* fail */
error_msg("missing file name\n");
- usage (h5tools_getprogname());
- exit (EXIT_FAILURE);
- }
-
- fd = HDopen (filename, O_RDONLY, 0);
- if (fd < 0)
- {
- error_msg("can't open file %s\n", filename);
- exit (EXIT_FAILURE);
- }
-
- buf = (char *)HDmalloc ((unsigned)(size + 1));
- if (buf == NULL)
- {
- HDclose (fd);
- exit (EXIT_FAILURE);
- }
-
- res = HDread (fd, buf, (unsigned)size);
-
- if (res < (long)size)
- {
- if (buf)
- HDfree (buf);
- HDclose (fd);
- exit (EXIT_FAILURE);
- }
-
- HDwrite (1, buf, (unsigned)size);
-
- if (buf)
- HDfree (buf);
- HDclose (fd);
- return (EXIT_SUCCESS);
-}
+ usage(h5tools_getprogname());
+ goto error;
+ } /* end if */
+
+ if((fd = HDopen(filename, O_RDONLY, 0)) < 0) {
+ error_msg("can't open file %s\n", filename);
+ goto error;
+ } /* end if */
+
+ if(NULL == (buf = (char *)HDmalloc((unsigned)(size + 1)))) {
+ error_msg("can't allocate buffer \n");
+ goto error;
+ } /* end if */
+
+ res = HDread(fd, buf, (unsigned)size);
+ if(res < (long)size) {
+ error_msg("Bad read \n");
+ goto error;
+ } /* end if */
+
+ if(HDwrite(1, buf, (unsigned)size) < 0) {
+ error_msg("Bad write \n");
+ goto error;
+ } /* end if */
+
+ /* close things and exit */
+ HDfree(buf);
+ HDclose(fd);
+
+ return EXIT_SUCCESS;
+
+error:
+ if(buf)
+ HDfree(buf);
+ if(fd > -1)
+ HDclose(fd);
+ return EXIT_FAILURE;
+} /* end main() */
+
diff --git a/tools/h5jam/h5jam.c b/tools/h5jam/h5jam.c
index ab38f65..4509734 100644
--- a/tools/h5jam/h5jam.c
+++ b/tools/h5jam/h5jam.c
@@ -21,9 +21,6 @@
/* Name of tool */
#define PROGRAMNAME "h5jam"
-#define TRUE 1
-#define FALSE 0
-
hsize_t write_pad (int, hsize_t);
hsize_t compute_user_block_size (hsize_t);
hsize_t copy_some_to_file (int, int, hsize_t, hsize_t, ssize_t);
@@ -421,109 +418,88 @@ main (int argc, const char *argv[])
* Return: Success: last byte written in the output.
* Failure: Exits program with EXIT_FAILURE value.
*
- * Programmer:
- *
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
hsize_t
-copy_some_to_file (int infid, int outfid, hsize_t startin, hsize_t startout,
+copy_some_to_file(int infid, int outfid, hsize_t startin, hsize_t startout,
ssize_t limit)
{
- char buf[1024];
- h5_stat_t sbuf;
- int res;
- ssize_t tot = 0;
- ssize_t howmuch = 0;
- ssize_t nchars = -1;
-/* used in assertion check
- ssize_t ncw = -1;
-*/
- ssize_t to;
- ssize_t from;
- ssize_t toend;
- ssize_t fromend;
-
- if(startin > startout) {
- /* this case is prohibited */
- error_msg("copy_some_to_file: panic: startin > startout?\n");
- exit (EXIT_FAILURE);
- }
-
- if(limit < 0) {
- res = HDfstat(infid, &sbuf);
- if(res < 0) {
- error_msg("Can't stat file \n");
- exit (EXIT_FAILURE);
- }
-
- howmuch = (ssize_t)sbuf.st_size;
- }
- else
- howmuch = limit;
-
- if(howmuch == 0)
- return 0;
-
- /* assert (howmuch > 0) */
-
- toend = (ssize_t) startout + howmuch;
- fromend = (ssize_t) startin + howmuch;
-
- if (howmuch > 512)
- {
- to = toend - 512;
- from = fromend - 512;
- }
- else
- {
- to = toend - howmuch;
- from = fromend - howmuch;
- }
-
- while (howmuch > 0)
- {
- HDlseek (outfid, (off_t) to, SEEK_SET);
- HDlseek (infid, (off_t) from, SEEK_SET);
-
- if (howmuch > 512)
- {
- nchars = HDread (infid, buf, (unsigned) 512);
- }
- else
- {
- nchars = HDread (infid, buf, (unsigned)howmuch);
- }
-
- if (nchars <= 0)
- {
- printf ("huh? \n");
- exit (EXIT_FAILURE);
- }
- /*ncw = */ HDwrite (outfid, buf, (unsigned) nchars);
-
- /* assert (ncw == nchars) */
-
- tot += nchars;
- howmuch -= nchars;
- if (howmuch > 512)
- {
- to -= nchars;
- from -= nchars;
- }
- else
- {
- to -= howmuch;
- from -= howmuch;
- }
- }
+ char buf[1024];
+ h5_stat_t sbuf;
+ int res;
+ ssize_t tot = 0;
+ ssize_t howmuch = 0;
+ ssize_t nchars = -1;
+ ssize_t to;
+ ssize_t from;
+ ssize_t toend;
+ ssize_t fromend;
+
+ if(startin > startout) {
+ /* this case is prohibited */
+ error_msg("copy_some_to_file: panic: startin > startout?\n");
+ exit (EXIT_FAILURE);
+ } /* end if */
+
+ if(limit < 0) {
+ res = HDfstat(infid, &sbuf);
+ if(res < 0) {
+ error_msg("Can't stat file \n");
+ HDexit(EXIT_FAILURE);
+ } /* end if */
+
+ howmuch = (ssize_t)sbuf.st_size;
+ } else {
+ howmuch = limit;
+ } /* end if */
+
+ if(0 == howmuch)
+ return 0;
+
+ toend = (ssize_t) startout + howmuch;
+ fromend = (ssize_t) startin + howmuch;
+
+ if (howmuch > 512) {
+ to = toend - 512;
+ from = fromend - 512;
+ } else {
+ to = toend - howmuch;
+ from = fromend - howmuch;
+ } /* end if */
+
+ while (howmuch > 0) {
+ HDlseek(outfid, (off_t) to, SEEK_SET);
+ HDlseek(infid, (off_t) from, SEEK_SET);
+
+ if (howmuch > 512) {
+ nchars = HDread(infid, buf, (unsigned) 512);
+ } else {
+ nchars = HDread(infid, buf, (unsigned)howmuch);
+ } /* end if */
+
+ if (nchars <= 0) {
+ error_msg("Read error \n");
+ HDexit(EXIT_FAILURE);
+ } /* end if */
+
+ if(HDwrite (outfid, buf, (unsigned) nchars) < 0) {
+ error_msg("Write error \n");
+ HDexit(EXIT_FAILURE);
+ }
- /* assert howmuch == 0 */
- /* assert tot == limit */
+ tot += nchars;
+ howmuch -= nchars;
+ if(howmuch > 512) {
+ to -= nchars;
+ from -= nchars;
+ } else {
+ to -= howmuch;
+ from -= howmuch;
+ } /* end if */
+ } /* end while */
- return ((hsize_t) tot + (hsize_t) startout);
-}
+ return (hsize_t)tot + (hsize_t)startout;
+} /* end copy_some_to_file() */
/*-------------------------------------------------------------------------
@@ -539,28 +515,21 @@ copy_some_to_file (int infid, int outfid, hsize_t startin, hsize_t startout,
*
* Return: Success: last byte written in the output.
* Failure: Exits program with EXIT_FAILURE value.
- *
- * Programmer:
- *
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
-hsize_t
-compute_user_block_size (hsize_t ublock_size)
+H5_ATTR_CONST hsize_t
+compute_user_block_size(hsize_t ublock_size)
{
- hsize_t where = 512;
+ hsize_t where = 512;
- if (ublock_size == 0)
- return 0;
+ if(0 == ublock_size)
+ return 0;
- while (where < ublock_size)
- {
- where *= 2;
- }
+ while(where < ublock_size)
+ where *= 2;
- return (where);
-}
+ return where;
+} /* end compute_user_block_size() */
/*
* Write zeroes to fill the file from 'where' to 512, 1024, etc. bytes.
diff --git a/tools/h5jam/h5unjam.c b/tools/h5jam/h5unjam.c
index 40358c6..8e4eac4 100644
--- a/tools/h5jam/h5unjam.c
+++ b/tools/h5jam/h5unjam.c
@@ -21,8 +21,6 @@
/* Name of tool */
#define PROGRAMNAME "h5unjam"
-#define TRUE 1
-#define FALSE 0
#define COPY_BUF_SIZE 1024
hsize_t write_pad( int , hsize_t );