Description: Tweak lcdconf2model
 Fix bugs discoverted while twaeking previous patch
Forwarded: yes
Author: dod
--- a/examples/lcdproc/lcdconf2model.pl
+++ b/examples/lcdproc/lcdconf2model.pl
@@ -197,10 +197,10 @@
     my $square_model = '';
     
     my $square_rexp = '\[(\s*\w+\s*:[^\]]*)\]';
-    if ($$info_r =~ /$square_rexp/ ) {
+    if ($$info_r =~ /$square_rexp/s) {
         my $info = $1 ;
         say "class $ini_class element $ini_param info: '$info'" if $verbose;
-        $$info_r =~ s/$square_rexp//g; # remove all remaining square_rexp
+        $$info_r =~ s/$square_rexp//gs; # remove all remaining square_rexp
         $square_model .= ' '. info_to_model($info,$value_type, $info_r) ;
     }
     
@@ -208,22 +208,23 @@
         # or use the value found in INI file as default
         $ini_v =~ s/^"//g;
         $ini_v =~ s/"$//g;
-        $square_model .= qq! value_type=$value_type default="$ini_v"! if length($ini_v);
+        $square_model .= qq! value_type=$value_type!; 
+        $square_model .= qq! default="$ini_v"! if length($ini_v);
     }
 
     # get model information from comment (written between curly brackets)
     my $curly_model = '';
-    my $curly_rexp = '{(\s*\w+.*)}' ;
-    while ($$info_r =~ /$curly_rexp/) { 
-        my $model_snippet = $1 ;
-        say "class $ini_class element $ini_param model snippet: '$model_snippet'"
+    my $curly_rexp = '{%(\s*\w+.*?)%}' ;
+    while ($$info_r =~ /$curly_rexp/s) { 
+        $curly_model = $1 ;
+        say "class $ini_class element $ini_param model snippet: '$curly_model'"
             if $verbose;
-        $$info_r =~ s/$curly_rexp//;
-        $load .= ' '. $model_snippet ;
+        $$info_r =~ s/$curly_rexp//s;
     }
     
     # return a string containing model specifications
-    return $load.$square_model;
+    # spec in curly model may override spec in square model
+    return $load . $square_model . $curly_model ;
 };
 
 # Now let's take care of the special cases. This one deals with "Driver"
