* Bug 15710 fixed: EXPRESSION block with & or ~ 63/20463/3
Samuel GOUGEON [Sat, 18 Aug 2018 17:51:20 +0000 (19:51 +0200)]
  http://bugzilla.scilab.org/15710

  Interactive test:
  * xcos()
  * Add an EXPRESSION block
  * Double-click the block to open its dialog
  * Enter the expression: (~u1|u2&u1)*1 and press OK
  => The expression must be correctly rendered on the block's icon
  => Xcos must still be available (not frozen)

Change-Id: I5570faab0d10adf00069f61f8710ce978bc53f66

scilab/CHANGES.md
scilab/modules/scicos_blocks/macros/Misc/EXPRESSION.sci

index 768a831..0a1d5c1 100644 (file)
@@ -580,6 +580,7 @@ Known issues
 * [#15685](http://bugzilla.scilab.org/show_bug.cgi?id=15685): The page of `file()` needed to be updated about error numbers, and improved.
 * [#15692](http://bugzilla.scilab.org/show_bug.cgi?id=15692): listvarinfile() crashes when listing a boolean sparse matrix (regression)
 * [#15693](http://bugzilla.scilab.org/show_bug.cgi?id=15693): listvarinfile() misses displaying the size of polynomial variables (regression)
+* [#15710](http://bugzilla.scilab.org/show_bug.cgi?id=15710): The Xcos EXPRESSION block did not accept expressions including some `&` or `~` characters.
 * [#15733](http://bugzilla.scilab.org/show_bug.cgi?id=15733): Some fixes after `deg(0*%s)` => `-%inf`.
 * [#15735](http://bugzilla.scilab.org/show_bug.cgi?id=15735): `interp1` yielded some []+n warnings.
 * [#15736](http://bugzilla.scilab.org/show_bug.cgi?id=15736): `unique` failed with complex numbers.
index 4a32d9c..b1cc2e2 100644 (file)
@@ -102,6 +102,8 @@ function [x,y,typ]=EXPRESSION(job,arg1,arg2)
                             //  used as subfield separator in the graphics.style field...
                             // => using a LaTeX expression instead
                             lab = strsubst(exprs(2), "%", "\%");
+                            lab = strsubst(lab, "&", "\&");
+                            lab = strsubst(lab, "~", "{\small\sim\!}");
                             tmp = [
                                 "$\mathsf\scalebox{0.8}{"
                                 "\begin{array}{c}"