Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions check/fixes.frm
Original file line number Diff line number Diff line change
Expand Up @@ -5613,3 +5613,39 @@ Print;
assert succeeded?
assert result("test") =~ expr("0")
*--#] PullReq860_3 :

*--#[ Issue855 :
L F = 1;
#do i=1,16
#setflag `i',F
#enddo
ClearFlag 1,5,16;
.sort
#do i=1,16
#if flag(`i',F)
#message flag(`i',F) is set
#else
#message flag(`i',F) is clear
#endif
#enddo
.end
assert succeeded?
(1..16).each do |i|
expected = [1, 5, 16].include?(i) ? "clear" : "set"
assert stdout.include?("~~~flag(#{i},F) is #{expected}")
end
*--#] Issue855 :

*--#[ Issue855_SetFlagRange :
L F = 1;
SetFlag 0;
.end
assert compile_error?("Flag number 0 outside the permitted range 1-")
*--#] Issue855_SetFlagRange :

*--#[ Issue855_ClearFlagRange :
L F = 1;
ClearFlag 999;
.end
assert compile_error?("Flag number 999 outside the permitted range 1-")
*--#] Issue855_ClearFlagRange :
6 changes: 3 additions & 3 deletions sources/compcomm.c
Original file line number Diff line number Diff line change
Expand Up @@ -7428,7 +7428,7 @@ int CoSetUserFlag(UBYTE *s)
int x = 0;
while ( *s && ( FG.cTable[*s] == 1 ) ) x = 10*x+(*s++ - '0');
if ( x < 1 || x > BITSINWORD ) {
MesPrint("&Flag number %d outside the permitted range 1-%d.",BITSINWORD);
MesPrint("&Flag number %d outside the permitted range 1-%d.",x,BITSINWORD);
error = 1;
}
else {
Expand Down Expand Up @@ -7456,11 +7456,11 @@ int CoClearUserFlag(UBYTE *s)
int x = 0;
while ( *s && ( FG.cTable[*s] == 1 ) ) x = 10*x+(*s++ - '0');
if ( x < 1 || x > BITSINWORD ) {
MesPrint("&Flag number %d outside the permitted range 1-%d.",BITSINWORD);
MesPrint("&Flag number %d outside the permitted range 1-%d.",x,BITSINWORD);
error = 1;
}
else {
Add3Com(TYPECLEARUSERFLAG,x);
Add3Com(TYPECLEARUSERFLAG,x-1);
}
while ( *s && ( *s == ',' || *s == ' ' || *s == '\t' ) ) s++;
}
Expand Down