Patch title: Release 89 bulk changes
Abstract:
File: /appli/source_browser.pli
Key:
    Removed line
    Added line
   
# Copyright  Patrice Ossona de Mendez
# Repackaged for new Pliant HTTP layout by Hubert Tonneau
#
# 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 


function fill_tags tags m
  arg_rw (Link Array:(Dictionary Int Tag)) tags ; arg Module
  if not exists:m
    return
  var Link:Module mm :> m
  if (addressof mm:external)<>null
    mm :> mm external
  if use_properties
    var Pointer:Arrow c :> m:properties first "pliant tags l
  else
    var Pointer:Arrow c :> m first "pliant tags list "+mm:na
  if c=null
    console "no tags for this module" eol
    return
  var Link:ListingTags lt :> c map ListingTags
  var ListingTag xt
  var Address a := lt first
  while a<>null
    xt := lt get a
    var Int line := xt line
    var Int column := xt:column-1
    c :> xt value
    a := lt next a
    var Tag t
    if c<>null and entry_type:c=TagMarker
      var Int s := tags:size
      tags := new Array:(Dictionary Int Tag)
      tags size := s
    eif line<tags:size
      if c<>null and exists:(entry_type:c 'pliant is_watched
        t:kind:="A"; t:key:>entry_type:c
        var Link:Universal data :> c omap Universal
        data:'get position' decode (var Str filename) (var I
        if filename<>""
          t link := filename+"#line"+string:lin
        else
          t link := ""
        tags:line insert column t
      eif c<>null
# Copyright  Patrice Ossona de Mendez
# Repackaged for new Pliant HTTP layout by Hubert Tonneau
#
# 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 


function fill_tags tags m
  arg_rw (Link Array:(Dictionary Int Tag)) tags ; arg Module
  if not exists:m
    return
  var Link:Module mm :> m
  if (addressof mm:external)<>null
    mm :> mm external
  if use_properties
    var Pointer:Arrow c :> m:properties first "pliant tags l
  else
    var Pointer:Arrow c :> m first "pliant tags list "+mm:na
  if c=null
    console "no tags for this module" eol
    return
  var Link:ListingTags lt :> c map ListingTags
  var ListingTag xt
  var Address a := lt first
  while a<>null
    xt := lt get a
    var Int line := xt line
    var Int column := xt:column-1
    c :> xt value
    a := lt next a
    var Tag t
    if c<>null and entry_type:c=TagMarker
      var Int s := tags:size
      tags := new Array:(Dictionary Int Tag)
      tags size := s
    eif line<tags:size
      if c<>null and exists:(entry_type:c 'pliant is_watched
        t:kind:="A"; t:key:>entry_type:c
        var Link:Universal data :> c omap Universal
        data:'get position' decode (var Str filename) (var I
        if filename<>""
          t link := filename+"#line"+string:lin
        else
          t link := ""
        tags:line insert column t
      eif c<>null
        console "C " entry_type:c:name eol
        t:kind:="C"; t:key:>entry_type:c; t:link:=""
        t kind := "C" ; t key :> entry_type c ; t link := ""
        if entry_type:c=Type
          var Link:Type typ :> c map Type
          typ:position decode (var Str filename) (var Int li
          if filename<>""
            t link := filename+"#line"+string:lin
        tags:line insert column t
      else
        if entry_type:c=Type
          var Link:Type typ :> c map Type
          typ:position decode (var Str filename) (var Int li
          if filename<>""
            t link := filename+"#line"+string:lin
        tags:line insert column t
      else
        t:kind:="C"; t:key:>null map Type; t:link:=""
        t:kind := "C" ; t key :> null map Type ; t link := ""
        tags:line insert column t


        tags:line insert column t