/*
* sim_progress.c --- simple progress meter
+ *
+ * Copyright (C) 1997, 1998 by Theodore Ts'o and
+ * PowerQuest, Inc.
+ *
+ * Copyright (C) 1999, 2000 by Theosore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
*/
+#include "config.h"
#include "resize2fs.h"
struct ext2_sim_progress {
num = level - old_level;
if (num == 0)
return;
-
+
if (num > 0) {
for (i=0; i < num; i++)
putc('X', prog->f);
int labelwidth, int barwidth,
__u32 maxdone, int flags)
{
- ext2_sim_progmeter prog;
+ ext2_sim_progmeter prog;
+ errcode_t retval;
- prog = malloc(sizeof(struct ext2_sim_progress));
- if (!prog)
- return ENOMEM;
+ retval = ext2fs_get_mem(sizeof(struct ext2_sim_progress), &prog);
+ if (retval)
+ return retval;
memset(prog, 0, sizeof(struct ext2_sim_progress));
- prog->label = malloc(strlen(label)+1);
- if (!prog->label) {
+ retval = ext2fs_get_mem(strlen(label)+1, &prog->label);
+ if (retval) {
free(prog);
- return ENOMEM;
+ return retval;
}
strcpy(prog->label, label);
prog->labelwidth = labelwidth;
prog->current = 0;
prog->shown = 0;
prog->f = stdout;
-
+
*ret_prog = prog;
return ext2fs_progress_display(prog);
{
if (prog->label)
- free(prog->label);
- free(prog);
+ ext2fs_free_mem(&prog->label);
+ ext2fs_free_mem(&prog);
printf("\n");
return;
}