From a1cf8bd51fee072c2331c424c9b4a71adb9d8acc Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 18 Oct 2015 10:13:01 +0000 Subject: [PATCH] telnet/FHEMWEB: multiline Attribute patch (Forum #42431) git-svn-id: https://svn.fhem.de/fhem/trunk@9511 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 5 +++++ fhem/FHEM/98_telnet.pm | 1 + fhem/fhem.pl | 2 +- fhem/www/pgm2/fhemweb.js | 14 +++++++++----- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index c150553cd..44b699a1a 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -901,6 +901,11 @@ FW_digestCgi($) $cmd.=" $arg{$c}" if(defined($arg{$c}) && ($arg{$c} ne "state" || $cmd !~ m/^set/)); $cmd.=" $val{$c}" if(defined($val{$c})); + + #replace unicode newline symbol \u2424 with real newline + my $nl = chr(226) . chr(144) . chr(164); + $cmd =~ s/$nl/\n/g; + return ($cmd, $c); } diff --git a/fhem/FHEM/98_telnet.pm b/fhem/FHEM/98_telnet.pm index 21f52c0fd..31a29c736 100644 --- a/fhem/FHEM/98_telnet.pm +++ b/fhem/FHEM/98_telnet.pm @@ -258,6 +258,7 @@ telnet_Read($) $gotCmd = 1; if($cmd) { if($cmd =~ m/\\ *$/) { # Multi-line + $cmd =~ s/\\ *$//; $hash->{prevlines} .= $cmd . "\n"; } else { if($hash->{prevlines}) { diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 819ebd662..658f9f342 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -223,7 +223,7 @@ use vars qw(@structChangeHist); # Contains the last 10 structural changes use vars qw($cmdFromAnalyze); # used by the warnings-sub use vars qw($featurelevel); -my $AttrList = "verbose:0,1,2,3,4,5 room group comment alias ". +my $AttrList = "verbose:0,1,2,3,4,5 room group comment:textField-long alias ". "eventMap userReadings"; my $currcfgfile=""; # current config/include file my $currlogfile; # logfile, without wildcards diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index 217f8c114..e7afef4e3 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -591,9 +591,9 @@ FW_replaceWidget(oldEl, devName, vArr, currVal, reading, set, params, cmd) } if(!newEl) { // Select as fallback - vArr.unshift("select"); - newEl = FW_createSelect(elName, devName, vArr, currVal, set, params, cmd); - wn = "select"; + vArr.unshift("select"); + newEl = FW_createSelect(elName, devName, vArr, currVal, set, params, cmd); + wn = "select"; } } @@ -631,7 +631,8 @@ FW_queryValue(cmd, el) qConn.onreadystatechange = function() { if(qConn.readyState != 4) return; - var qResp = qConn.responseText.replace(/[\r\n]/g, ""); + var qResp = qConn.responseText.replace(/\n$/, ''); + qResp = qResp.replace(/\n/g, '\u2424'); if(el.setValueFn) el.setValueFn(qResp); qConn.abort(); @@ -681,7 +682,9 @@ FW_createTextField(elName, devName, vArr, currVal, set, params, cmd) '