Patch title: Release 85 bulk changes
Abstract:
File: /pliant/protocol/http/filters.pli
Key:
    Removed line
    Added line
   
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 

module "/pliant/language/stream.pli"
module "/pliant/language/compiler.pli"
module "/pliant/protocol/common/mime.pli"
module "/pliant/util/encoding/html.pli"
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 

module "/pliant/language/stream.pli"
module "/pliant/language/compiler.pli"
module "/pliant/protocol/common/mime.pli"
module "/pliant/util/encoding/html.pli"
module "pli_filter.pli"



function c_filter src dest options
  arg_rw Stream src dest ; arg_rw Str options
  dest writeline "module [dq]/pliant/protocol/http/style/lis
  var CBool doc := false
  while not src:atend
    var Str line := src readline
    if doc
      if (line parse "*/")
        doc := false
      eif (line parse "doc")
        dest writeline "table columns 1 border 0"
        dest writeline "  [0]left_zero_is_at [dq]"+src:name+



function c_filter src dest options
  arg_rw Stream src dest ; arg_rw Str options
  dest writeline "module [dq]/pliant/protocol/http/style/lis
  var CBool doc := false
  while not src:atend
    var Str line := src readline
    if doc
      if (line parse "*/")
        doc := false
      eif (line parse "doc")
        dest writeline "table columns 1 border 0"
        dest writeline "  [0]left_zero_is_at [dq]"+src:name+
        dest writeline "  cell color lsh 90 10 60"
        dest writeline "  cell color (color hsl 60 10 80)"
      else
        dest writeline "  "+line
    eif (line parse "/*")
      line := src readline
      if line="doc" or line="abstract"
        dest writeline "table columns 1 border 0"
        dest writeline "  [0]left_zero_is_at [dq]"+src:name+
        if line="doc"
      else
        dest writeline "  "+line
    eif (line parse "/*")
      line := src readline
      if line="doc" or line="abstract"
        dest writeline "table columns 1 border 0"
        dest writeline "  [0]left_zero_is_at [dq]"+src:name+
        if line="doc"
          dest writeline "  cell color lsh 90 10 60"
          dest writeline "  cell color (color hsl 60 10 80)"
        else
        else
          dest writeline "  cell color lsh 90 35 60"
          dest writeline "  cell color (color hsl 60 35 80)"
        doc := true
      else
        dest writeline "raw_line "+string:"/*"
        dest writeline "raw_line "+string:line
    eif line:len>10 and line="/"+(repeat line:len-2 "*")+"/"
      dest writeline "horizontal_line"
    eif (line eparse any:(var Str base) "///" offset:(var In
      if (comment parse word:"section" (var Str drop))
        dest writeline comment ; comment := ""
      dest writeline "raw_characters "+string:(line 0 offset
      if comment<>""
        dest writeline "[0]right_zero_is_at [dq]"+src:name+"
      dest writeline "eol"
    eif (line parse any:(var Str base) "//" any:(var Str com
      dest writeline "section "+(string "comment "+comment)
      dest writeline "raw_line "+string:line
    else
      dest writeline "raw_line "+string:line


function pli_filter src dest options
  arg_rw Stream src dest ; arg_rw Str options
  dest writeline "module [dq]/pliant/protocol/http/style/lis
  var CBool doc := false
  var Int l:=1
  while not src:atend
    var Str line := src readline
    if (line 0 2)<>"  "
      doc := false
    if doc
      dest writeline "  "+line
    eif line="doc" or line="abstract"
      dest writeline "table columns 1 border 0"
      dest writeline "  [0]left_zero_is_at [dq]"+src:name+"[
      if line="doc"
        doc := true
      else
        dest writeline "raw_line "+string:"/*"
        dest writeline "raw_line "+string:line
    eif line:len>10 and line="/"+(repeat line:len-2 "*")+"/"
      dest writeline "horizontal_line"
    eif (line eparse any:(var Str base) "///" offset:(var In
      if (comment parse word:"section" (var Str drop))
        dest writeline comment ; comment := ""
      dest writeline "raw_characters "+string:(line 0 offset
      if comment<>""
        dest writeline "[0]right_zero_is_at [dq]"+src:name+"
      dest writeline "eol"
    eif (line parse any:(var Str base) "//" any:(var Str com
      dest writeline "section "+(string "comment "+comment)
      dest writeline "raw_line "+string:line
    else
      dest writeline "raw_line "+string:line


function pli_filter src dest options
  arg_rw Stream src dest ; arg_rw Str options
  dest writeline "module [dq]/pliant/protocol/http/style/lis
  var CBool doc := false
  var Int l:=1
  while not src:atend
    var Str line := src readline
    if (line 0 2)<>"  "
      doc := false
    if doc
      dest writeline "  "+line
    eif line="doc" or line="abstract"
      dest writeline "table columns 1 border 0"
      dest writeline "  [0]left_zero_is_at [dq]"+src:name+"[
      if line="doc"
        dest writeline "  cell color lsh 90 10 60"
        dest writeline "  cell color (color hsl 60 50 75)"
      else
      else
        dest writeline "  cell color lsh 90 35 60"
        dest writeline "  cell color (color hsl 60 75 75)"
      doc := true
    eif line="#"+(repeat (max line:len-1 3) "-")
      dest writeline "horizontal_line"
    eif { var Int i := line option_position "##" -1 ; i<>-1 
      var Str comment := line i+2 line:len
      if (comment parse word:"section" (var Str section))
        dest writeline "section "+string:section ; comment :
      dest writeline "raw_characters "+string:(line 0 i)
      if comment<>""
        dest writeline "[0]right_zero_is_at [dq]"+src:name+"
      dest writeline "eol"
    else
      dest writeline "line_anchor "+string:l
      if { var Int i := line option_position "#" -1 ; i<>-1 
        (line i+1 line:len) parse any:(var Str comment)
        dest writeline "section "+(string "comment "+comment
        dest writeline "raw_characters "+string:(line 0 i)
      doc := true
    eif line="#"+(repeat (max line:len-1 3) "-")
      dest writeline "horizontal_line"
    eif { var Int i := line option_position "##" -1 ; i<>-1 
      var Str comment := line i+2 line:len
      if (comment parse word:"section" (var Str section))
        dest writeline "section "+string:section ; comment :
      dest writeline "raw_characters "+string:(line 0 i)
      if comment<>""
        dest writeline "[0]right_zero_is_at [dq]"+src:name+"
      dest writeline "eol"
    else
      dest writeline "line_anchor "+string:l
      if { var Int i := line option_position "#" -1 ; i<>-1 
        (line i+1 line:len) parse any:(var Str comment)
        dest writeline "section "+(string "comment "+comment
        dest writeline "raw_characters "+string:(line 0 i)
        dest writeline "color lsh 0 75 200"
        dest writeline "font color (color hsl 200 75 35)"
        dest writeline "  italic"
        dest writeline "    raw_line "+string:(line i line:l
      eif (line parse word:"module" _ (var Str mod)) or (lin
        dest writeline "module_line "+string:line
      eif (line parse word:"function" "'" any:(var Str fun) 
        dest writeline "section "+(string "function '"+fun+"
        dest writeline "raw_line "+string:line
      eif (line parse word:"function" _ any:(var Str fun) _ 
        dest writeline "section "+(string "function "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"method" _ any _ "'" any:(var Str
        dest writeline "section "+(string "method '"+fun+"'"
        dest writeline "raw_line "+string:line
      eif (line parse word:"method" _ any _ any:(var Str fun
        dest writeline "section "+(string "method "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"meta" "'" any:(var Str fun) "'" 
        dest writeline "section "+(string "meta '"+fun+"'")
        dest writeline "raw_line "+string:line
      eif (line parse word:"meta" _ any:(var Str fun) _ any)
        dest writeline "section "+(string "meta "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"type" _ any:(var Str typ))
        dest writeline "section "+(string "type "+typ)
        dest writeline "raw_line "+string:line
      eif ( (line parse word:"plugin" _ any:(var Str plug) _
        dest writeline "section "+(string "plugin "+plug)
        dest writeline "raw_characters "+(string (line 0 i)+
        dest writeline "  italic"
        dest writeline "    raw_line "+string:(line i line:l
      eif (line parse word:"module" _ (var Str mod)) or (lin
        dest writeline "module_line "+string:line
      eif (line parse word:"function" "'" any:(var Str fun) 
        dest writeline "section "+(string "function '"+fun+"
        dest writeline "raw_line "+string:line
      eif (line parse word:"function" _ any:(var Str fun) _ 
        dest writeline "section "+(string "function "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"method" _ any _ "'" any:(var Str
        dest writeline "section "+(string "method '"+fun+"'"
        dest writeline "raw_line "+string:line
      eif (line parse word:"method" _ any _ any:(var Str fun
        dest writeline "section "+(string "method "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"meta" "'" any:(var Str fun) "'" 
        dest writeline "section "+(string "meta '"+fun+"'")
        dest writeline "raw_line "+string:line
      eif (line parse word:"meta" _ any:(var Str fun) _ any)
        dest writeline "section "+(string "meta "+fun)
        dest writeline "raw_line "+string:line
      eif (line parse word:"type" _ any:(var Str typ))
        dest writeline "section "+(string "type "+typ)
        dest writeline "raw_line "+string:line
      eif ( (line parse word:"plugin" _ any:(var Str plug) _
        dest writeline "section "+(string "plugin "+plug)
        dest writeline "raw_characters "+(string (line 0 i)+
        dest writeline "color lsh 0 65 120"
        dest writeline "font color (color hsl 200 75 35)"
        dest writeline "  bold"
        if remain<>""
          dest writeline "    raw_characters "+string:plug
          dest writeline "raw_line "+(string " "+remain)
        else
          dest writeline "    raw_line "+string:plug
      else
        dest writeline "raw_line"+string:line
    l += 1


declare_mime_dynamic_filter ".html" (the_function null_filte
        dest writeline "  bold"
        if remain<>""
          dest writeline "    raw_characters "+string:plug
          dest writeline "raw_line "+(string " "+remain)
        else
          dest writeline "    raw_line "+string:plug
      else
        dest writeline "raw_line"+string:line
    l += 1


declare_mime_dynamic_filter ".html" (the_function null_filte
declare_mime_dynamic_filter ".pli" (the_function pli_filter 
declare_mime_dynamic_filter ".pliant" (the_function pli_filt
declare_mime_dynamic_filter ".page" (the_function pli_filter
declare_mime_dynamic_filter ".style" (the_function pli_filte
declare_mime_dynamic_filter ".remote" (the_function pli_filt
declare_mime_static_filter ".pli" (the_function my_pli_filter Stream Stream Str)
declare_mime_static_filter ".pliant" (the_function my_pli_filter Stream Stream Str)
declare_mime_dynamic_filter ".page" (the_function my_page_filter Stream Stream Str)
declare_mime_static_filter ".style" (the_function my_pli_filter Stream Stream Str)
declare_mime_static_filter ".remote" (the_function my_pli_filter Stream Stream Str)
declare_mime_dynamic_filter ".h" (the_function c_filter Stre
declare_mime_dynamic_filter ".c" (the_function c_filter Stre


plugin filter
declare_mime_dynamic_filter ".h" (the_function c_filter Stre
declare_mime_dynamic_filter ".c" (the_function c_filter Stre


plugin filter