Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fwsetup-ng.git;a=commitdiff;h=bb6b7d8a30fdf1db961a8280b50173e985e135a3

commit bb6b7d8a30fdf1db961a8280b50173e985e135a3
Author: James Buren <[email protected]>
Date:   Tue Sep 11 06:09:48 2012 -0500

add function for creating a new disk label
add new struct member for setting if a disk's label has
been modified since it was initially read

diff --git a/src/local.h b/src/local.h
index 28d8706..6a92ded 100644
--- a/src/local.h
+++ b/src/local.h
@@ -35,6 +35,7 @@ struct parted
{
PedDevice *device;
PedDisk *disk;
+  bool modified;
};

struct install
@@ -67,6 +68,7 @@ extern int get_text_length(const char *s);
extern bool execute(const char *command,const char *root,pid_t *cpid);
extern void *malloc0(size_t size);
extern struct parted *parted_open(const char *path);
+extern bool parted_new_disk_label(struct parted *parted,PedDiskType *type);
extern void parted_close(struct parted *parted);
extern int get_text_screen_width(const char *s);
extern bool get_text_screen_size(const char *text,int *width,int *height);
diff --git a/src/utility.c b/src/utility.c
index 8312d9c..06f325b 100644
--- a/src/utility.c
+++ b/src/utility.c
@@ -220,9 +220,30 @@ extern struct parted *parted_open(const char *path)

parted->disk = disk;

+  parted->modified = false;
+
return parted;
}

+extern bool parted_new_disk_label(struct parted *parted,PedDiskType *type)
+{
+  if(parted == 0 || parted->device == 0 || type == 0)
+  {
+    errno = EINVAL;
+    fprintf(logfile,"%s: %s\n",__func__,strerror(errno));
+    return false;
+  }
+
+  if(parted->disk != 0)
+    ped_disk_destroy(parted->disk);
+
+  parted->disk = ped_disk_new_fresh(parted->device,type);
+
+  parted->modified = true;
+
+  return (parted->disk != 0);
+}
+
extern void parted_close(struct parted *parted)
{
if(parted != 0)
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to