Ticket #27310: reinplace-backslash-patch.diff

File reinplace-backslash-patch.diff, 1.1 KB (added by JamesC1, 14 years ago)
  • src/port1.0/portutil.tcl

    old new  
    858858proc reinplace {args}  {
    859859
    860860    set extended 0
     861    set unbackslash 0
     862
    861863    while 1 {
    862864        set arg [lindex $args 0]
    863865        if {[string index $arg 0] eq "-"} {
     
    866868                E {
    867869                    set extended 1
    868870                }
     871                u {
     872                    set unbackslash 1
     873                }
    869874                - {
    870875                    break
    871876                }
     
    878883        }
    879884    }
    880885    if {[llength $args] < 2} {
    881         error "reinplace ?-E? pattern file ..."
     886        error "reinplace ?-u? ?-E? pattern file ..."
    882887    }
    883888    set pattern [lindex $args 0]
    884889    set files [lrange $args 1 end]
    885890
     891    if {$unbackslash} {
     892        set pattern \
     893            [string map [list "\1" {\1} "\2" {\2} "\3" {\3} "\4" {\4} \
     894                              "\5" {\5} "\6" {\6} "\7" {\7} ] $pattern ]
     895    }
     896
    886897    foreach file $files {
    887898        if {[catch {set tmpfile [mkstemp "/tmp/[file tail $file].sed.XXXXXXXX"]} error]} {
    888899            global errorInfo