Code:
#_DEFAULT.PROPERTIES OFF

[start]

[CONST]
SJISSPEC=$mircdir $+ sjis-0208-1997-std.txt

#_DEFAULT.PROPERTIES END

ALIAS __SJISspec { return $readini($script,CONST,SJISSPEC) }

ALIAS DEC2HEX {
  var %pad = $len($base($$1,10,16))
  if (2 \\ %pad) { %pad = %pad + 1 }
  
  if ($isid) { return $base($$1,10,16,%pad) }
  elseif ($1 isnum) { echo -aspe 0x $+ $base($$1,10,16,%pad) }
}
ALIAS HEX2DEC {
  if ($left($1,2) == 0x) || ($left($1,2) == U+) { tokenize 32 $right($1,-2) }
  if ($isid) { return $base($$1,16,10,1) }
  else { echo -aspe  $base($$1,16,10,1) }
}

alias import_sjis {
  if ($hget(sjis)) { /.hfree sjis }
  /hmake sjis 10000
  /.fopen sjis $qt($__SJISspec)
  while (!$fopen(sjis).eof && !$ferr) {
    tokenize 09 $fread(sjis)
    if ($0 > 2) { var %sjis = $1, %utfc = $2, %desc = $3- }
    else { var %sjis = $1, %utfc, %desc = $2- }

    if ($+($#,*) iswm %sjis) continue
    if ($hex2dec(%sjis) < 128) continue

    if (<doublebytes> isin %desc) { /hadd sjis $hex2dec(%sjis) <doublebytes> }
    elseif (<cjk> isin %desc) { /hadd sjis $hex2dec(%sjis) $hex2dec(%utfc) $chr($hex2dec(%utfc)) }
    elseif ($left(%utfc,2) == U+) { /hadd sjis $hex2dec(%sjis) $hex2dec(%utfc) $chr($hex2dec(%utfc)) }
  }
  :error
  /fclose sjis
}


Okay that is the actual (and quite embarrassingly ugly) code I wrote the demonstrated the issue... well I found the problem... has nothing to do with file handles. Of course the code works perfectly fine in 6.35. It performed identically except that it would close the handle properly. In 7.15 it would not. Something was amuck... but it was so long ago... i didn't report the issue well over a week I had discovered it because I didn't really have easy access to it. I didn't have access to it when I did report the problem. Of course I suppose file handles are working exactly as they should...

The cause of the problem? I'll highlight it below...

if ($isid) { return $base($$1,16,10,1) }

Yeah I never actually really use $$. I mean I don't quite understand why $$ would break or halt execution. I don't know if it halts or breaks execution. I don't think it knows itself. CLearly it once simply acted as a break... now I guess it acts as a "halt" for "consistently". One would think that $$ would likely act like $!... I mean why doesn't %% behave like $$? Why doesn't %! behave like $!? Does it matter? No. But You are going to have a hard time arguing this is for constancy when I see no constancy.



Beware of MeStinkBAD! He knows more than he actually does!