⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meta-compat

📁 EPIC IRC客户端。来源于IRCII客户端但做了很多性能和功能的优化。
💻
字号:
# $EPIC: meta-compat,v 1.2 2003/12/13 17:39:52 jnelson Exp $# meta-compat - compatibility layer for old-style /bind METAx-y sequences## Copyright 2003 Ben Winslow <rain bluecherry net>## Released under the same license as ircII-EPIC## Caveat: The sticky behavior of META4 isn't supported; META4 will behave# like any other meta level.package meta-compatalias bind (binding, boundto) {	# we're resetting everything to the defaults - clear our list of	# meta keys and reinitialize		@metacompat.depth++	if (metacompat.depth > 100) {		xecho -b meta-compat: recursed too many times for /bind $binding $boundto		return	}#	echo bind: $repeat($metacompat.depth $chr(9)) $binding $boundto		if (binding == [-DEFAULTS]) {		//bind -defaults		metacompat.defaults		@metacompat.depth--		return	}		# this binding uses a meta type, resolve it into a key sequence	if (binding =~ [META%-%]) {		@:spec=rest(4 $binding)		@:meta=before(- $spec)		@:keys=after(- $spec)		foreach metacompat[$meta][defs] curmeta {			bind $decode($curmeta)$keys $boundto		}		if (boundto == [NOTHING]) {			@:boundto=[]		}		@metacompat[$meta][keys][$encode($keys)]=boundto		@metacompat.depth--		return	}	# look for an existing meta level on this key and clear it because	# we're binding to something else.  additionally, remove any underlying	# bindings that will no longer be relevant when this key is removed	@:encoded=encode($binding)	foreach metacompat curmeta {		if (metacompat[$curmeta][defs][$encoded]) {			# unbind any affected keys			foreach metacompat[$curmeta][keys] curkey {				^bind $decode($encoded$curkey) NOTHING			}			^assign -metacompat[$curmeta][defs][$encoded]		}	}	# this binding sets a meta level, save it and NOP	if (boundto =~ [META%]) {		@:spec=rest(4 $boundto)		@:meta=before(_ $spec)		# allow shortcutting to METAx instead of METAx_CHARACTER		if (meta == []) {			@:meta=spec		}		@metacompat[$meta][defs][$encode($binding)]=1		# rebind keys for this meta level so that the new meta character		# takes effect		foreach metacompat[$meta][keys] curkey {			bind META$META-$decode($curkey) $metacompat[$meta][keys][$curkey]		}		@metacompat.depth--		return	}	# we've either resolved the binding to a key sequence, or this is	# a new-style bind that we don't need to mangle	if (boundto == []) {		//bind $binding	}{		//bind $binding $boundto	}	@metacompat.depth--}alias metacompat.defaults {	fe ($aliasctl(ASSIGN PMATCH metacompat\.*)) metainfo {		^assign -$metainfo	}		# defaults from EPIC4-1.0.1	bind ^X META2_CHARACTER	bind ^[ META1_CHARACTER	bind META1-O META2_CHARACTER	bind META1-[ META2_CHARACTER	bind META2-1 META32_CHARACTER	bind META2-4 META33_CHARACTER	bind META2-5 META30_CHARACTER	bind META2-6 META31_CHARACTER}metacompat.defaults

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -