hostmask return

By krimson on Jun 04, 2006

This is an example on how to code mIRC's $mask function. Useful for developers or people learning tcl.


Examples:
"[return:hostmask nick!khaled@mirc.com 1]" returns !khaled@mirc.com

"[return:hostmask nick!khaled@mirc.com 2]" returns !@mirc.com

proc return:hostmask {host type} {
    if {"$host" == "*!*@*"} { 
        return "INVALID HOST"
    } else {
        set split(nick) "[lindex [split $host !@] 0]"
        set split(ident) "[lindex [split $host !@] 1]"
        set split(host) "[lindex [split $host !@] 2]"
        switch -- "$type" {
            "0" { return "*!$split(ident)@$split(host)" }
            "1" { return "*!*$split(ident)@$split(host)" }
            "2" { return "*!*@$split(host)" }
            "3" { return "*!*$split(ident)@*.[join [lrange [split $split(host) .] 1 end] .]" }
            "4" { return "*!*@*.[join [lrange [split $split(host) .] 1 end] .]" }
            "5" { return "$host" }
            "6" { return "$split(nick)!*$split(ident)@$split(host)" }
            "7" { return "$split(nick)!*@$split(host)" }
            "8" { return "$split(nick)!*$split(ident)@*.[join [lrange [split $split(host) .] 1 end] .]" }
            "9" { return "$split(nick)!*@*.[join [lrange [split $split(host) .] 1 end] .]" }
            default { return 0 }
        }
    }

}

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.