]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[key-file] Add support for comments
authorRay Strode <rstrode@redhat.com>
Wed, 24 Mar 2010 18:59:14 +0000 (14:59 -0400)
committerRay Strode <rstrode@redhat.com>
Wed, 24 Mar 2010 18:59:14 +0000 (14:59 -0400)
src/libply/ply-key-file.c

index bd8d22ecd560c8455273ac1d7e4b33df628eed26..3d029275834e73daece71bb9e271354cac125536 100644 (file)
@@ -167,10 +167,27 @@ ply_key_file_load_group (ply_key_file_t *key_file,
       char *key;
       char *value;
       long offset;
+      int first_byte;
 
       key = NULL;
       value = NULL;
 
+      first_byte = fgetc (key_file->fp);
+      if (first_byte == '#')
+        {
+          char *line_to_toss;
+          size_t number_of_bytes;
+
+          line_to_toss = NULL;
+          number_of_bytes = 0;
+
+          getline (&line_to_toss, &number_of_bytes,
+                   key_file->fp);
+          free (line_to_toss);
+          continue;
+        }
+      ungetc (first_byte, key_file->fp);
+
       offset = ftell (key_file->fp);
       items_matched = fscanf (key_file->fp, " %a[^= \t\n] = %a[^\n] ", &key, &value);
 
@@ -205,8 +222,26 @@ ply_key_file_load_groups (ply_key_file_t *key_file)
   
   do
     {
+      int first_byte;
+
       ply_key_file_group_t *group;
 
+      first_byte = fgetc (key_file->fp);
+      if (first_byte == '#')
+        {
+          char *line_to_toss;
+          size_t number_of_bytes;
+
+          line_to_toss = NULL;
+          number_of_bytes = 0;
+
+          getline (&line_to_toss, &number_of_bytes,
+                   key_file->fp);
+          free (line_to_toss);
+          continue;
+        }
+      ungetc (first_byte, key_file->fp);
+
       items_matched = fscanf (key_file->fp, " [ %a[^]] ] ", &group_name);
 
       if (items_matched <= 0)