Patch title: Release 90 bulk changes
Abstract:
File: /appli/type_browser.pli
Key:
    Removed line
    Added line
   
# Copyright  Patrice Ossona de Mendez
#
# 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 


method page type_browser tname
  arg_rw HtmlPage page; arg Str tname
  implicit page
    if tname=""
      title "Type Browser"
      para
        [You may access directly a type using the following 
        eol
        [To enter complex data types, please use parenthesiz
        eol
        var Link:(Index Str Address) td :> compute_tindex 
        var Str ttt:=""
        table columns 3 border 0
          cell
            [Choose a type in the list]
          cell
            select "" (var Str tt) noeol
              var Pointer:Address v :> td first
              while addressof:v<>null
                option (td key v) (td key v)
                v :> td next v
          cell
            fixed:[  ]
          cell
            [... or enter it here]
          cell
            input "" ttt noeol
          cell
            button "See the description"
# Copyright  Patrice Ossona de Mendez
#
# 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 


method page type_browser tname
  arg_rw HtmlPage page; arg Str tname
  implicit page
    if tname=""
      title "Type Browser"
      para
        [You may access directly a type using the following 
        eol
        [To enter complex data types, please use parenthesiz
        eol
        var Link:(Index Str Address) td :> compute_tindex 
        var Str ttt:=""
        table columns 3 border 0
          cell
            [Choose a type in the list]
          cell
            select "" (var Str tt) noeol
              var Pointer:Address v :> td first
              while addressof:v<>null
                option (td key v) (td key v)
                v :> td next v
          cell
            fixed:[  ]
          cell
            [... or enter it here]
          cell
            input "" ttt noeol
          cell
            button "See the description"
              goto_url "type/"+http_encode:(shunt ttt="" tt 
              goto_url (shunt ttt="" tt ttt) no_extension
      para
        [Here is an indicative list of Pliant types: we list
        [ in the ];fixed:[pliant_general_dictionary];[ and w
        [with a ];fixed:['('];[ is listed here).]
      para
       listtypes
    else
      var Pointer:Type t :> get_type tname
      if addressof:t=null
        title "Type [dq]"+tname+"[dq] unknown"
      else
        var Str source := t:position 0 (t:position search " 
        title "Description of [dq]"+tname+"[dq] Data Type"
        if source<>""
          para
            [The type [dq]]; text tname; [[dq] is defined in
            link source source section "type "+t:name
            [ module.]
        var Pointer:List mb :> t maybe
        var Pointer:Arrow c :> mb first
        var Str mbt mbs
        if c<>null
          header "Maybe list"
          text "Type "+t:name+" may be "
          mbt := (c map Type):name
          mbs := (c map Type):position
          mbs := mbs 0 (mbs search " " mbs:len)
          if mbs<>""
            link mbt mbs section "type "+mbt
          else
            bold
              text mbt
          while {c :> mb next c; c<>null}
            text ", "
            mbt := (c map Type):name
            mbs := (c map Type):position
            mbs := mbs 0 (mbs search " " mbs:len)
            if mbs<>""
              link mbt mbs section "type "+mbt
            else
              bold
                text mbt
        header "Type description"
        center
          show_type t
        header "Type methods"
        show_methods t
        header "Casts to "+tname
        center
          show_castto t
        header "Casts from "+tname
        center
          show_castfrom t
    
    

      para
        [Here is an indicative list of Pliant types: we list
        [ in the ];fixed:[pliant_general_dictionary];[ and w
        [with a ];fixed:['('];[ is listed here).]
      para
       listtypes
    else
      var Pointer:Type t :> get_type tname
      if addressof:t=null
        title "Type [dq]"+tname+"[dq] unknown"
      else
        var Str source := t:position 0 (t:position search " 
        title "Description of [dq]"+tname+"[dq] Data Type"
        if source<>""
          para
            [The type [dq]]; text tname; [[dq] is defined in
            link source source section "type "+t:name
            [ module.]
        var Pointer:List mb :> t maybe
        var Pointer:Arrow c :> mb first
        var Str mbt mbs
        if c<>null
          header "Maybe list"
          text "Type "+t:name+" may be "
          mbt := (c map Type):name
          mbs := (c map Type):position
          mbs := mbs 0 (mbs search " " mbs:len)
          if mbs<>""
            link mbt mbs section "type "+mbt
          else
            bold
              text mbt
          while {c :> mb next c; c<>null}
            text ", "
            mbt := (c map Type):name
            mbs := (c map Type):position
            mbs := mbs 0 (mbs search " " mbs:len)
            if mbs<>""
              link mbt mbs section "type "+mbt
            else
              bold
                text mbt
        header "Type description"
        center
          show_type t
        header "Type methods"
        show_methods t
        header "Casts to "+tname
        center
          show_castto t
        header "Casts from "+tname
        center
          show_castfrom t