# lib/misc.tcl
#
# Miscellanous procedures used by untunnel.
#
# Copyright (C) 2003, 2004
# Andy Goth <unununium@openverse.com>
#
# This code is available under the GNU General Public License; see COPYING.

# Escapes backslashes and newlines.
proc escape {str} {
    return [string map [list \\ \\\\ \n \\n] $str]
}

# Unescapes backslashes and newlines.
proc unescape {str} {
    return [string map [list \\\\ \\ \\n \n] $str]
}

# Returns a new list equal to $data sans all elements equal to $elem.
proc lremove {data elem} {
    foreach idx [lsort -integer -decreasing [lsearch -all -exact $data $elem]] {
        set data [lreplace $data $idx $idx]
    }
    return $data
}

# vim: set ts=4 sts=4 sw=4 tw=80 et:

