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
