Well, you could use binary variables. However, you are still limited to a maximum number of characters per line that you echo.
So just stick them on multiple lines whenever you get too many...
alias inisec {
if (!$isfile($$1-)) { .echo -a File doesn't exist. $+($chr(40),$1-,$chr(41)) }
var %i = 1, %total = $ini($1-,0)
while (%i <= %total) {
var %ini_sec = $addtok(%ini_sec,$ini($1-,%i),44)
if ($len(%ini_sec) > 900) { echo -a %ini_sec | unset %ini_sec }
inc %i
}
if (%ini_sec) { echo -a %ini_sec }
}
This will display and unset the variable anytime the length of the variable goes past 900 characters. Unless you have *really* long section names, this should work fine. You can, of course, change the 900 up or down to suit your needs.
*Note: This does not show just the first 900 characters. It shows the variable once you are *past* 900 characters.
Btw, when looping, avoid putting an identifier in the while line. You'll be evaluating it every single loop and that will slow the script considerably. Especially if you're reading from a file. Instead, put the value into a variable as shown.