All pastes #946622 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-03-17 20:39 UTC
rendered paste body
alias big {
  if ($2 == -c) {
    set %blah $2
    big2 $3-
  }
  else {
    unset %blah
    big2 $2-
  }
}
alias big2 { 
  if ($bigtext.unsupp($1-)) { 
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    return 
  } 
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 

  while (%i <= $len(%text)) { 
    if ($mid(%text, %i, 1) == $chr(3)) { 
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        var %m $regml(mtcol, 1) 
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        inc %i $len(%m) 
      } 
    } 
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      ; if ($bigtext.kern($mid(%text, %i, 2))) { 
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      ; } 
    } 
    inc %i 
  } 
  msg $1 $bigtext.format(%lia) 
  msg $1 $bigtext.format(%lib) 
  msg $1 $bigtext.format(%lic) 
  msg $1 $bigtext.format(%lid) 
  msg $1 $bigtext.format(%lie) 
} 

alias -l bigtext.char { 
  if ($2 === $chr(32)) || ($1 === $null) return $& 
    ... $& 
    ... $& 
    ... $& 
    ... $& 
    ... 
  if ($2 === $chr(160)) return $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... 
  elseif ($2 == 0) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.XXX $& 
    XXX.XX $& 
    .XXXX. 
  elseif ($2 == 1) return $& 
    .XXXX $& 
    XX.XX $& 
    ...XX $& 
    ...XX $& 
    ...XX 
  elseif ($2 == 2) return $& 
    XXXXX. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    XXXXXX 
  elseif ($2 == 3) return $& 
    XXXXX. $& 
    ....XX $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($2 == 4) return $& 
    .....XXX. $& 
    ...XX.XX. $& 
    .XX...XX. $& 
    XXXXXXXXX $& 
    ......XX. 
  elseif ($2 == 5) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    ...XX $& 
    XXXX. 
  elseif ($2 == 6) return $& 
    .XXXX. $& 
    XX.... $& 
    XXXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == 7) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($2 == 8) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == 9) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXXX $& 
    ....XX $& 
    .XXXX. 
  elseif ($2 == A) return $& 
    .XXXX. $& 
    XX..XX $& 
    XXXXXX $& 
    XX..XX $& 
    XX..XX 
  elseif ($2 == B) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. 
  elseif ($2 == C) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.... $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == D) return $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XXXXX. 
  elseif ($2 == E) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XXXXX 
  elseif ($2 == F) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XX... 
  elseif ($2 == G) return $& 
    .XXXX. $& 
    XX.... $& 
    XX.XXX $& 
    XX..XX $& 
    .XXXXX 
  elseif ($2 == H) return $& 
    XX...XX $& 
    XX...XX $& 
    XXXXXXX $& 
    XX...XX $& 
    XX...XX 
  elseif ($2 == I) return $& 
    XXXX $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    XXXX 
  elseif ($2 == J) return $& 
    ....XX $& 
    ....XX $& 
    ....XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == K) return $& 
    XX..XX $& 
    XX.XX. $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX 
  elseif ($2 == L) return $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($2 == M) return $& 
    XX....XX $& 
    XXX..XXX $& 
    XXXXXXXX $& 
    XX.XX.XX $& 
    XX....XX 
  elseif ($2 == N) return $& 
    XX..XX $& 
    XXX.XX $& 
    XXXXXX $& 
    XX.XXX $& 
    XX..XX 
  elseif ($2 == O) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == P) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX.... $& 
    XX.... 
  elseif ($2 == Q) return $& 
    .XXXX.. $& 
    XX..XX. $& 
    XX..XX. $& 
    XX..XX. $& 
    .XXXXXX 
  elseif ($2 == R) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX 
  elseif ($2 == S) return $& 
    .XXXX. $& 
    XX.... $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($2 == T) return $& 
    XXXXXX $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($2 == U) return $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($2 == V) return $& 
    XX....XX $& 
    XX....XX $& 
    .XX..XX. $& 
    ..XXXX.. $& 
    ...XX... 
  elseif ($2 == W) return $& 
    XX...XX $& 
    XX...XX $& 
    XX.X.XX $& 
    XXXXXXX $& 
    .XX.XX. 
  elseif ($2 == X) return $& 
    XX...XX $& 
    .XX.XX. $& 
    ..XXX.. $& 
    .XX.XX. $& 
    XX...XX 
  elseif ($2 == Y) return $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($2 == Z) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XXXXXX 
  elseif ($2 == $chr(35)) return $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. 
  elseif ($2 == ') return $& 
    .XX $& 
    XX. $& 
    ... $& 
    ... $& 
    ... 
  elseif ($2 == ") return $& 
    XX..XX $& 
    XX..XX $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($2 == +) return $& 
    ...... $& 
    ..XX.. $& 
    XXXXXX $& 
    ..XX.. $& 
    ...... 
  elseif ($2 == =) return $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    XXXXXX $& 
    ...... 
  elseif ($2 == -) return $& 
    ...... $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    ...... 
  elseif ($2 == _) return $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... $& 
    XXXXXX 
  elseif ($2 == ] ) return $& 
    XXXXXX $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($2 == [) return $& 
    .XXX. $& 
    XX.XX $& 
    .XXX. $& 
    ..... $& 
    ..... 
  elseif ($2 == :) return $& 
    .. $& 
    XX $& 
    .. $& 
    XX $& 
    .. 
  elseif ($2 == !) return $& 
    XX $& 
    XX $& 
    XX $& 
    .. $& 
    XX 
  elseif ($2 == ?) return $& 
    XXX. $& 
    ..XX $& 
    .XX. $& 
    .... $& 
    .XX. 
  elseif ($2 == .) return $& 
    .. $& 
    .. $& 
    .. $& 
    .. $& 
    XX 
  elseif ($2 == /) return $& 
    ....XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($2 == ) return $& 
    XX.... $& 
    .XX... $& 
    ..XX.. $& 
    ...XX. $& 
    ....XX 
  elseif ($2 == $chr(40)) return $& 
    ...XX $& 
    .XX.. $& 
    XX... $& 
    .XX.. $& 
    ...XX 
  elseif ($2 == $chr(41)) return $& 
    XX... $& 
    ..XX. $& 
    ...XX $& 
    ..XX. $& 
    XX... 
  elseif ($2 == $chr(37)) return $& 
    XX..XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX..XX 
  elseif ($2 == [) return $& 
    XXXXX $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($2 == ]) return $& 
    XXXXX $& 
    ...XX $& 
    ...XX $& 
    ...XX $& 
    XXXXX 
  elseif ($2 == |) return $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. 
  elseif ($2 == <) return $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    ..XX.. $& 
    ....XX 
  elseif ($2 == >) return $& 
    XX.... $& 
    ..XX.. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... 
  elseif ($2 == ) return $& 
    .... $& 
    .... $& 
    .XX. $& 
    ..XX $& 
    XXX. 
  elseif ($2 == ,) return $& 
    ... $& 
    ... $& 
    XXX $& 
    .XX $& 
    XX. 

} 



alias bigtext.unsupp { 
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  return %res 
} 

alias bigtext.kern { 
  var %res $true 
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  return %res 
} 

alias bigtext.format { 
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/
  %curcolor = %blah 
  while (%i <= $len($1-)) { 
    if ($mid($1-, %i, 1) == $chr(3)) { 
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        } 
        inc %i $len($regml(mtcol, 1)) 
      } 
      elseif (%curcolor) { 
        %curcolor = 
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
      } 
    } 
    else { 
      %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      if (%previous != %current) { 
        %previous = %current 
        if (%curcolor) { 
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          else %res = %res $+ $chr(3) 
        } 
        else %res = %res $+ $chr(22) 
      } 
      %res = %res $+ $chr(160) 
    } 
    inc %i 
  } 
  return %res
}