Ticket #2875: xml.patch

File xml.patch, 2.7 KB (added by cjr@…, 19 years ago)

Patch for portpkg.tcl and portmpkg.tcl

  • portpkg.tcl

    RCS file: /Volumes/src/cvs/od/proj/darwinports/base/src/package1.0/portpkg.tcl,v
    retrieving revision 1.2
    diff -b -u -r1.2 portpkg.tcl
     
    115115        close $infofd
    116116}
    117117
     118proc xml_escape {s} {
     119        regsub -all {&} $s {\&} s
     120        regsub -all {<} $s {\&lt;} s
     121        regsub -all {>} $s {\&gt;} s
     122        return $s
     123}
     124
    118125proc write_info_plist {infofile portname portversion portrevision} {
     126        set infofile [xml_escape $infofile]
     127        set portname [xml_escape $portname]
     128        set portversion [xml_escape $portversion]
     129        set portrevision [xml_escape $portrevision]
    119130
    120131        set infofd [open ${infofile} w+]
    121132        puts $infofd {<?xml version="1.0" encoding="UTF-8"?>
     
    161172}
    162173
    163174proc write_description_plist {infofile portname portversion description} {
     175        set infofile [xml_escape $infofile]
     176        set portname [xml_escape $portname]
     177        set portversion [xml_escape $portversion]
     178        set description [xml_escape $description]
     179       
    164180        set infofd [open ${infofile} w+]
    165181        puts $infofd {<?xml version="1.0" encoding="UTF-8"?>
    166182<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     
    186202        set long_description $description
    187203    }
    188204
     205        set portname [xml_escape $portname]
     206        set portversion [xml_escape $portversion]
     207        set long_description [xml_escape $long_description]
     208        set description [xml_escape $description]
     209        set homepage [xml_escape $homepage]
     210       
    189211puts $fd "
    190212<html lang=\"en\">
    191213<head>
  • portmpkg.tcl

    RCS file: /Volumes/src/cvs/od/proj/darwinports/base/src/package1.0/portmpkg.tcl,v
    retrieving revision 1.5
    diff -b -u -r1.5 portmpkg.tcl
     
    145145        return 0
    146146}
    147147
     148proc xml_escape {s} {
     149        regsub -all {&} $s {\&amp;} s
     150        regsub -all {<} $s {\&lt;} s
     151        regsub -all {>} $s {\&gt;} s
     152        return $s
     153}
     154
    148155proc mpkg_write_info_plist {infofile portname portversion portrevision destination dependencies} {
    149156        set vers [split $portversion "."]
    150157       
     
    154161       
    155162        set depxml ""
    156163        foreach dep $dependencies {
     164                set dep [xml_escape $dep]
    157165                append depxml "<dict>
    158166                        <key>IFPkgFlagPackageLocation</key>
    159167                        <string>${dep}</string>
     
    163171                "
    164172        }
    165173
     174        set portname [xml_escape $portname]
     175        set portversion [xml_escape $portversion]
     176        set portrevision [xml_escape $portrevision]
    166177        set infofd [open ${infofile} w+]
    167178        puts $infofd {<?xml version="1.0" encoding="UTF-8"?>
    168179<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">