mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-15 03:59:11 +00:00
configDB - changed: added correct handling of multiline DEFs
git-svn-id: https://svn.fhem.de/fhem/trunk@5861 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
34d525beac
commit
008336243b
@ -344,9 +344,9 @@ sub cfgDB_SaveCfg() {
|
|||||||
my $def = $defs{$d}{DEF};
|
my $def = $defs{$d}{DEF};
|
||||||
if(defined($def)) {
|
if(defined($def)) {
|
||||||
$def =~ s/;/;;/g;
|
$def =~ s/;/;;/g;
|
||||||
$def =~ s/\n/\n /g;
|
$def =~ s/\n/\\\n/g;
|
||||||
} else {
|
} else {
|
||||||
$dev = "";
|
$def = "";
|
||||||
}
|
}
|
||||||
push @rowList, "define $d $defs{$d}{TYPE} $def";
|
push @rowList, "define $d $defs{$d}{TYPE} $def";
|
||||||
}
|
}
|
||||||
@ -509,14 +509,17 @@ sub _cfgDB_InsertLine($$$$) {
|
|||||||
# pass command table to AnalyzeCommandChain
|
# pass command table to AnalyzeCommandChain
|
||||||
sub _cfgDB_Execute($@) {
|
sub _cfgDB_Execute($@) {
|
||||||
my ($cl, @dbconfig) = @_;
|
my ($cl, @dbconfig) = @_;
|
||||||
my ($ret,$r2);
|
my (@ret);
|
||||||
foreach (@dbconfig){
|
|
||||||
my $l = $_;
|
foreach my $l (@dbconfig) {
|
||||||
$l =~ s/[\r\n]//g;
|
$l =~ s/[\r\n]//g;
|
||||||
$r2 = AnalyzeCommandChain($cl, $l);
|
if($l =~ m/\\*$/) { # Multiline commands
|
||||||
$ret .= "$r2\n" if($r2);
|
$l =~ s/\\/\n/g;
|
||||||
|
}
|
||||||
|
my $tret = AnalyzeCommandChain($cl, $l);
|
||||||
|
push @ret, $tret if(defined($tret));
|
||||||
}
|
}
|
||||||
return $ret if($ret);
|
return join("\n", @ret) if(@ret);
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -527,7 +530,7 @@ sub _cfgDB_ReadCfg(@) {
|
|||||||
my $fhem_dbh = _cfgDB_Connect;
|
my $fhem_dbh = _cfgDB_Connect;
|
||||||
my ($sth, @line, $row);
|
my ($sth, @line, $row);
|
||||||
|
|
||||||
# using a join would be much nicer, but does not work due to sort of join's result
|
# maybe this will be done with join later
|
||||||
my $uuid = $fhem_dbh->selectrow_array('SELECT versionuuid FROM fhemversions WHERE version = 0');
|
my $uuid = $fhem_dbh->selectrow_array('SELECT versionuuid FROM fhemversions WHERE version = 0');
|
||||||
$sth = $fhem_dbh->prepare( "SELECT * FROM fhemconfig WHERE versionuuid = '$uuid' and device <>'configdb' order by version" );
|
$sth = $fhem_dbh->prepare( "SELECT * FROM fhemconfig WHERE versionuuid = '$uuid' and device <>'configdb' order by version" );
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user