Hi Andres,

In the course of using split-config I have noticed a small problem.  In
some cases it is not safe to remove an option from a config, unless it
is removed gloablly. When I say not safe, nothing particularly
catastropic happens, but each time you run split-config, you have to
wade through a mountain of "this option was removed, what shall i do",
messages. To demonstrate this, try split-config on arm/rpc, twice.

The patch below should aleviate this problem, by adding an annotation
to the debian configs if a option has been removed, but is not
removed globablly.

Its my first peek into the world or ruby, so please forgive any
stupidity on my part.

-- 
Horms

Index: split-config
===================================================================
--- split-config        ($B%j%S%8%g%s(B 4099)
+++ split-config        ($B:n6H%3%T!<(B)
@@ -25,6 +25,8 @@
        File.open(file).each { |line|
                if line =~ /^(CONFIG_\w+)=(.+)$/
                        kconf[$1] = $2
+               elsif line =~ /^\s*#\s*(CONFIG_\w+) is removed\s*$/
+                       kconf[$1] = 'XXX'
                elsif line =~ /^\s*#\s*(CONFIG_\w+) is not set\s*$/
                        kconf[$1] = 'n'
                end
@@ -35,6 +37,8 @@
 def configline(key, val)
        if val == 'n'
                "# #{key} is not set\n"
+       elsif val == 'XXX'
+               "# #{key} is removed\n"
        else
                "#{key}=#{val}\n"
        end
@@ -190,12 +194,17 @@
 end
 
 def remove_option(key, val)
+       return if val == 'XXX'
        puts "\n#{key}=#{val} has been removed."
        answer = prompt_user()
        files = affected_files(answer)
        files.each { |f|
                strip_key(f, key)
        }
+       return if answer == 'g'
+       File.open(files[0], 'a') { |f|
+                       f << configline(key, 'XXX')
+       }
 end
 
 def update_option(key, oldval, newval)

Reply via email to