OSDN Git Service

maint: avoid code duplication
authorJim Meyering <meyering@redhat.com>
Thu, 29 Apr 2010 14:02:40 +0000 (16:02 +0200)
committerJim Meyering <meyering@redhat.com>
Thu, 29 Apr 2010 14:04:12 +0000 (16:04 +0200)
* libparted/labels/dos.c (clear_flags): New function.
Factored (5 times) out of ...
(msdos_partition_set_flag): ...here.  Use the new function.

libparted/labels/dos.c

index c51aca9..fdc679b 100644 (file)
@@ -1382,6 +1382,17 @@ msdos_partition_set_system (PedPartition* part,
        return 1;
 }
 
+static void
+clear_flags (DosPartitionData *dos_data)
+{
+  dos_data->diag = 0;
+  dos_data->hidden = 0;
+  dos_data->lvm = 0;
+  dos_data->palo = 0;
+  dos_data->prep = 0;
+  dos_data->raid = 0;
+}
+
 static int
 msdos_partition_set_flag (PedPartition* part,
                           PedPartitionFlag flag, int state)
@@ -1424,35 +1435,20 @@ msdos_partition_set_flag (PedPartition* part,
                return 1;
 
        case PED_PARTITION_DIAG:
-               if (state) {
-                       dos_data->hidden = 0;
-                       dos_data->raid = 0;
-                       dos_data->lvm = 0;
-                       dos_data->palo = 0;
-                       dos_data->prep = 0;
-               }
+               if (state)
+                       clear_flags (dos_data);
                dos_data->diag = state;
                return ped_partition_set_system (part, part->fs_type);
 
        case PED_PARTITION_RAID:
-               if (state) {
-                       dos_data->diag = 0;
-                       dos_data->hidden = 0;
-                       dos_data->lvm = 0;
-                       dos_data->palo = 0;
-                       dos_data->prep = 0;
-               }
+               if (state)
+                       clear_flags (dos_data);
                dos_data->raid = state;
                return ped_partition_set_system (part, part->fs_type);
 
        case PED_PARTITION_LVM:
-               if (state) {
-                       dos_data->diag = 0;
-                       dos_data->hidden = 0;
-                       dos_data->raid = 0;
-                       dos_data->palo = 0;
-                       dos_data->prep = 0;
-               }
+               if (state)
+                       clear_flags (dos_data);
                dos_data->lvm = state;
                return ped_partition_set_system (part, part->fs_type);
 
@@ -1461,24 +1457,14 @@ msdos_partition_set_flag (PedPartition* part,
                return ped_partition_set_system (part, part->fs_type);
 
        case PED_PARTITION_PALO:
-               if (state) {
-                       dos_data->diag = 0;
-                       dos_data->hidden = 0;
-                       dos_data->raid = 0;
-                       dos_data->lvm = 0;
-                       dos_data->prep = 0;
-               }
+               if (state)
+                       clear_flags (dos_data);
                dos_data->palo = state;
                return ped_partition_set_system (part, part->fs_type);
 
        case PED_PARTITION_PREP:
-               if (state) {
-                       dos_data->diag = 0;
-                       dos_data->hidden = 0;
-                       dos_data->raid = 0;
-                       dos_data->lvm = 0;
-                       dos_data->palo = 0;
-               }
+               if (state)
+                       clear_flags (dos_data);
                dos_data->prep = state;
                return ped_partition_set_system (part, part->fs_type);