Mantis Bug Tracker

View Issue Details Jump to Notes ] Wiki ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000129mSLDevSyntax Highlightingpublic2013-04-09 17:492013-11-23 23:33
ReporterWims 
Assigned Toadministrator 
PrioritynormalSeveritymajorReproducibilitysometimes
StatusassignedResolutionreopened 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version0.4.1.0 
Summary0000129: Highlighting a variable in the same scope with $&
DescriptionSometimes the count to highlight all variables of the same name in the same scope is wrong, probably because of $&, resulting in weird part of the text being highlighted, see the steps.
Steps To Reproducealias -l mario_displayobject {
  ;xcc ycc y dir x1 state inair jump down autod speed head

  if ($1 == mario) {
    tokenize 32 $hget(mario_object,mario)
    var %decal,%xc,%yc,%wc,%hc,%dx,%dy
    if ($hget(mario,grandi)) {
      if ($int($calc(($ticks - $hget(mario,t0grandi)) / 150)) & 1) {
        %xc = 27 * 20
        %yc = 17
        %wc = 27
        %hc = 28
        if ($6 == petit) %decal = 1
      }
      if ($calc($ticks - $hget(mario,t0grandi)) >= 1600) hdel mario grandi
    }
    ;sprite
    if (!%xc) {
      if (!$5) hadd mario mul 0
      elseif ($calc($ticks - $hget(mario,t0walk)) >= $iif($istok(4 -4,$5,32),120,150)) {
        if ($hget(mario,mul) >= $iif($6 == grand,2,1)) hadd mario mul $calc($v2 - 1)
        else hinc mario mul
        hadd mario t0walk $ticks
      }
      var %xc = $iif($7 || $8,$iif($9 || $10,$calc(4*27),$iif($6 == grand,$calc(27*3),$calc(26*4))),$iif($9 || $10,$calc(27*4),$calc($iif($6 == grand,27,26) * $hget(mario,mul))))
      %yc = $iif($6 == grand,17,0)
      %wc = $iif($6 == grand,27,26)
      %hc = $iif($6 == grand,28,17)
    }
    if ($4 == d) {
      if ($6 == petit) %dx = 26 - $iif(%xc == 0,11,$iif(%xc == 26,11,$iif(%xc == 104,11,$iif(%xc == 540,11))))
      else %dx = 27 - $iif(%xc == 0,12,$iif(%xc == 27,12,$iif(%xc == 54,12,$iif(%xc == 81,12,$iif(%xc == 108,12,$iif(%xc == 540,12))))))
    }
    %dy = $iif($6 == petit,-1,+4)

    drawcopy -tn @marioo.b 16711935 %xc %yc %wc %hc @marioo $&
      $calc($1 + %dx) $&
      $calc($2 * 8 %dy - $3 $iif(%decal,-11) $iif($9 && $12 == 1,-2)) $iif($4 == d,-) $+ %wc %hc
    ;debug dots
    var %a 1
    while ($var(%xd*,%a).value) { $v1 | inc %a }
  }
}

load this in a new file and highlight %dy on line 34, it shouldn't work correctly, it's hard to describe because when i first noticed it, i created a new file and copied exactly what i had, but couldn't reproduce the issue in this new file, i still managed to figure out that the problem seems to be related to the $& but, when i first noticed the problem, it was with %a at the end, after editing the original code, i managed to fix the problem for %a, but then %dy followed, and i could reproduce it on a new file.
TagsNo tags attached.
Beta mIRC version?
mIRC Version
Attached Files

- Relationships

-  Notes
(0000116)
Wims (reporter)
2013-06-14 17:33

Unfortunatly this bug has not been fixed, or not entirely, I tried pasting the whole alias into a new file but couldn't reproduce, tried to paste the whole content of the file in a new file but couldn't reproduce.. here is a screenshot though:
https://dl.dropboxusercontent.com/u/4249275/Untitled.png [^]
(0000121)
Wims (reporter)
2013-06-29 05:41

New screenshot: https://dl.dropboxusercontent.com/u/4249275/msldev_%25highlight.png [^]

Steps to reproduce:

1) control + N in msldev > script file

2) copy paste https://dl.dropboxusercontent.com/u/4249275/msldev_code.mrc [^] into the new script

3) go to the line 608

4) notice the string "$calc(%h $iif(%dr == $null,+ $4) $iif($5 == 40 && %dr == $null,-1))"

4bis) there is an extra ) on that line 608, fixing it is probably not relevant to the bug, but i fixed it anyway in my test.

5) break down that string, after the part "+ $4)", put a space and put a $&:

608| $calc($3 $iif($5 == 39,+ $1 -1)) $calc(%h $iif(%dr == $null,+ $4) $&
609| $iif($5 == 40 && %dr == $null,-1)) $iif($5 == 39,-) $+ $1 $iif(%dr,%dr,$2)

6) highlight %dr on line 607, any occurence, the offset is always the same.

I can reproduce this 100% of the time with these steps on 0.4.0.94
(0000123)
Travis (reporter)
2013-06-29 06:19

alias jesus_fucking_christ_wims {
  noop $calc(%is_it_so_fucking_hard $&
    + %is_it_so_fucking_hard )
  ;the whitespace in front of the variable is highlighted, which is wrong.
}
(0000154)
Wims (reporter)
2013-11-23 23:33

So, has this been fixed?
In any case, the same issue occurs in an alias file on version 0.4.0.98

- Issue History
Date Modified Username Field Change
2013-04-09 17:49 Wims New Issue
2013-04-09 22:35 administrator Status new => closed
2013-04-09 22:35 administrator Assigned To => administrator
2013-04-09 22:35 administrator Resolution open => fixed
2013-04-09 22:35 administrator Fixed in Version => 0.4.1.0
2013-06-14 17:33 Wims Note Added: 0000116
2013-06-14 17:33 Wims Status closed => feedback
2013-06-14 17:33 Wims Resolution fixed => reopened
2013-06-29 05:41 Wims Note Added: 0000121
2013-06-29 05:41 Wims Status feedback => assigned
2013-06-29 06:19 Travis Note Added: 0000123
2013-11-23 23:33 Wims Note Added: 0000154


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker