daily pastebin goal
31%
SHARE
TWEET

Untitled

a guest Dec 12th, 2018 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def parse_line (line,strip=false)
  2.   #s1='\003\002\037\026\017\n'
  3.     #s2='cbuion'
  4.   if strip
  5.     line.gsub!(/(?:\003\d{0,2}(?:,\d{0,2}){0,1})|[\002\037\026\017\n]/,'')
  6.   else
  7.     line = CGI::escapeHTML line
  8.     spanned = false
  9.     tmp = ''
  10.     s = Set.new
  11.     so = Set.new
  12.     fg = bg = ''
  13.     clst = false
  14.     line.chars do |ch|
  15.       case ch
  16.       when "\002"
  17.         s = s ^ ['b']
  18.       when "\037"
  19.         s = s ^ ['u']
  20.       when "\026"
  21.         s = s ^ ['i']
  22.       when "\017"
  23.         s.clear
  24.       when "\003"
  25.         fg='fg'
  26.         bg=''
  27.         clst = true
  28.       when '0'..'9'
  29.         if clst
  30.           unless bg.eql? ''
  31.             case bg.size
  32.             when 4
  33.               clst = false
  34.               s = s + ['bg']
  35.               redo
  36.             when 2..3
  37.               bg = bg + ch
  38.             end
  39.           else
  40.             case fg.size
  41.             when 4
  42.               clst = false
  43.               bg = ''
  44.               s = s + ['fg']
  45.               s = s - ['bg']
  46.               redo
  47.             when 2..3
  48.               fg = fg + ch
  49.             end
  50.           end
  51.         else
  52.           tmp = tmp + ch
  53.         end
  54.       when ','
  55.         if clst && bg.eql? ''
  56.           bg = 'bg'
  57.         else
  58.           if s != so
  59.             if spanned
  60.               tmp = tmp + '</span>'
  61.             else
  62.               spanned = true
  63.             end
  64.             tmp = tmp + "<span class='#{s.to_a.join ' '}'>"
  65.           end
  66.           tmp = tmp + ch
  67.         end  
  68.       else
  69.         if s != so
  70.           if spanned
  71.             tmp = tmp + '</span>'
  72.           else
  73.             spanned = true
  74.           end
  75.           tmp = tmp + "<span class='#{s.to_a.join ' '}'>"
  76.         end
  77.         tmp = tmp + ch
  78.       end
  79.     end
  80.     tmp = tmp + '</span>' if spanned
  81.   end
  82. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top