亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? history.tcl

?? genesis 2000 v9.1軟件下載
?? TCL
字號:
# history.tcl --## Implementation of the history command.## SCCS: @(#) history.tcl 1.7 97/08/07 16:45:50## Copyright (c) 1997 Sun Microsystems, Inc.## See the file "license.terms" for information on usage and redistribution# of this file, and for a DISCLAIMER OF ALL WARRANTIES.## The tcl::history array holds the history list and# some additional bookkeeping variables.## nextid	the index used for the next history list item.# keep		the max size of the history list# oldest	the index of the oldest item in the history.namespace eval tcl {    variable history    if ![info exists history] {	array set history {	    nextid	0	    keep	20	    oldest	-20	}    }}# history --##	This is the main history command.  See the man page for its interface.#	This does argument checking and calls helper procedures in the#	history namespace.proc history {args} {    set len [llength $args]    if {$len == 0} {	return [tcl::HistInfo]    }    set key [lindex $args 0]    set options "add, change, clear, event, info, keep, nextid, or redo"    switch -glob -- $key {	a* { # history add	    if {$len > 3} {		return -code error "wrong # args: should be \"history add event ?exec?\""	    }	    if {![string match $key* add]} {		return -code error "bad option \"$key\": must be $options"	    }	    if {$len == 3} {		set arg [lindex $args 2]		if {! ([string match e* $arg] && [string match $arg* exec])} {		    return -code error "bad argument \"$arg\": should be \"exec\""		}	    }	    return [tcl::HistAdd [lindex $args 1] [lindex $args 2]]	}	ch* { # history change	    if {($len > 3) || ($len < 2)} {		return -code error "wrong # args: should be \"history change newValue ?event?\""	    }	    if {![string match $key* change]} {		return -code error "bad option \"$key\": must be $options"	    }	    if {$len == 2} {		set event 0	    } else {		set event [lindex $args 2]	    }	    return [tcl::HistChange [lindex $args 1] $event]	}	cl* { # history clear	    if {($len > 1)} {		return -code error "wrong # args: should be \"history clear\""	    }	    if {![string match $key* clear]} {		return -code error "bad option \"$key\": must be $options"	    }	    return [tcl::HistClear]	}	e* { # history event	    if {$len > 2} {		return -code error "wrong # args: should be \"history event ?event?\""	    }	    if {![string match $key* event]} {		return -code error "bad option \"$key\": must be $options"	    }	    if {$len == 1} {		set event -1	    } else {		set event [lindex $args 1]	    }	    return [tcl::HistEvent $event]	}	i* { # history info	    if {$len > 2} {		return -code error "wrong # args: should be \"history info ?count?\""	    }	    if {![string match $key* info]} {		return -code error "bad option \"$key\": must be $options"	    }	    return [tcl::HistInfo [lindex $args 1]]	}	k* { # history keep	    if {$len > 2} {		return -code error "wrong # args: should be \"history keep ?count?\""	    }	    if {$len == 1} {		return [tcl::HistKeep]	    } else {		set limit [lindex $args 1]		if {[catch {expr $limit}] || ($limit < 0)} {		    return -code error "illegal keep count \"$limit\""		}		return [tcl::HistKeep $limit]	    }	}	n* { # history nextid	    if {$len > 1} {		return -code error "wrong # args: should be \"history nextid\""	    }	    if {![string match $key* nextid]} {		return -code error "bad option \"$key\": must be $options"	    }	    return [expr $tcl::history(nextid) + 1]	}	r* { # history redo	    if {$len > 2} {		return -code error "wrong # args: should be \"history redo ?event?\""	    }	    if {![string match $key* redo]} {		return -code error "bad option \"$key\": must be $options"	    }	    return [tcl::HistRedo [lindex $args 1]]	}	default {	    return -code error "bad option \"$key\": must be $options"	}    }}# tcl::HistAdd --##	Add an item to the history, and optionally eval it at the global scope## Parameters:#	command		the command to add#	exec		(optional) a substring of "exec" causes the#			command to be evaled.# Results:# 	If executing, then the results of the command are returned## Side Effects:#	Adds to the history list proc tcl::HistAdd {command {exec {}}} {    variable history    set i [incr history(nextid)]    set history($i) $command    set j [incr history(oldest)]    if {[info exists history($j)]} {unset history($j)}    if {[string match e* $exec]} {	return [uplevel #0 $command]    } else {	return {}    }}# tcl::HistKeep --##	Set or query the limit on the length of the history list## Parameters:#	limit	(optional) the length of the history list## Results:#	If no limit is specified, the current limit is returned## Side Effects:#	Updates history(keep) if a limit is specified proc tcl::HistKeep {{limit {}}} {    variable history    if {[string length $limit] == 0} {	return $history(keep)    } else {	set oldold $history(oldest)	set history(oldest) [expr $history(nextid) - $limit]	for {} {$oldold <= $history(oldest)} {incr oldold} {	    if {[info exists history($oldold)]} {unset history($oldold)}	}	set history(keep) $limit    }}# tcl::HistClear --##	Erase the history list## Parameters:#	none## Results:#	none## Side Effects:#	Resets the history array, except for the keep limit proc tcl::HistClear {} {    variable history    set keep $history(keep)    unset history    array set history [list \	nextid	0	\	keep	$keep	\	oldest	-$keep	\    ]}# tcl::HistInfo --##	Return a pretty-printed version of the history list## Parameters:#	num	(optional) the length of the history list to return## Results:#	A formatted history list proc tcl::HistInfo {{num {}}} {    variable history    if {$num == {}} {	set num [expr $history(keep) + 1]    }    set result {}    set newline ""    for {set i [expr $history(nextid) - $num + 1]} \	    {$i <= $history(nextid)} {incr i} {	if ![info exists history($i)] {	    continue	}	set cmd [string trimright $history($i) \ \n]	regsub -all \n $cmd "\n\t" cmd	append result $newline[format "%6d  %s" $i $cmd]	set newline \n    }    return $result}# tcl::HistRedo --##	Fetch the previous or specified event, execute it, and then#	replace the current history item with that event.## Parameters:#	event	(optional) index of history item to redo.  Defaults to -1,#		which means the previous event.## Results:#	Those of the command being redone.## Side Effects:#	Replaces the current history list item with the one being redone. proc tcl::HistRedo {{event -1}} {    variable history    if {[string length $event] == 0} {	set event -1    }    set i [HistIndex $event]    if {$i == $history(nextid)} {	return -code error "cannot redo the current event"    }    set cmd $history($i)    HistChange $cmd 0    uplevel #0 $cmd}# tcl::HistIndex --##	Map from an event specifier to an index in the history list.## Parameters:#	event	index of history item to redo.#		If this is a positive number, it is used directly.#		If it is a negative number, then it counts back to a previous#		event, where -1 is the most recent event.#		A string can be matched, either by being the prefix of#		a command or by matching a command with string match.## Results:#	The index into history, or an error if the index didn't match. proc tcl::HistIndex {event} {    variable history    if {[catch {expr $event}]} {	for {set i $history(nextid)} {[info exists history($i)]} {incr i -1} {	    if {[string match $event* $history($i)]} {		return $i;	    }	    if {[string match $event $history($i)]} {		return $i;	    }	}	return -code error "no event matches \"$event\""    } elseif {$event <= 0} {	set i [expr $history(nextid) + $event]    } else {	set i $event    }    if {$i <= $history(oldest)} {	return -code error "event \"$event\" is too far in the past"    }    if {$i > $history(nextid)} {	return -code error "event \"$event\" hasn't occured yet"    }    return $i}# tcl::HistEvent --##	Map from an event specifier to the value in the history list.## Parameters:#	event	index of history item to redo.  See index for a#		description of possible event patterns.## Results:#	The value from the history list. proc tcl::HistEvent {event} {    variable history    set i [HistIndex $event]    if {[info exists history($i)]} {	return [string trimright $history($i) \ \n]    } else {	return "";    }}# tcl::HistChange --##	Replace a value in the history list.## Parameters:#	cmd	The new value to put into the history list.#	event	(optional) index of history item to redo.  See index for a#		description of possible event patterns.  This defaults#		to 0, which specifies the current event.## Side Effects:#	Changes the history list. proc tcl::HistChange {cmd {event 0}} {    variable history    set i [HistIndex $event]    set history($i) $cmd}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色欧美88888久久久久久影院| 18涩涩午夜精品.www| 欧美日韩成人综合天天影院| 在线中文字幕一区| 色哟哟精品一区| 91麻豆国产在线观看| 色婷婷综合视频在线观看| 91在线你懂得| 欧美视频在线一区| 666欧美在线视频| 欧美一区二区三区视频在线| 日韩欧美国产一区二区三区| 欧美成人aa大片| 久久免费美女视频| 国产欧美精品区一区二区三区| 久久精品日产第一区二区三区高清版| 久久精品男人的天堂| 国产精品欧美一区喷水| 亚洲视频一区二区在线| 亚洲国产欧美日韩另类综合| 日日夜夜精品视频天天综合网| 日韩不卡在线观看日韩不卡视频| 日韩av网站在线观看| 韩日精品视频一区| 丁香激情综合国产| 一本一本大道香蕉久在线精品| 欧美午夜影院一区| 欧美一级电影网站| 国产调教视频一区| 一区二区在线免费观看| 日韩综合一区二区| 国产一区二区三区在线观看免费| 91精品国产色综合久久ai换脸 | 日本美女一区二区| 国产精品久久久久久久久免费樱桃| 最新国产成人在线观看| 亚洲国产精品一区二区久久| 毛片av中文字幕一区二区| 国产美女主播视频一区| 色婷婷精品大在线视频| 91精品国产91综合久久蜜臀| 久久精品网站免费观看| 一区二区欧美在线观看| 老鸭窝一区二区久久精品| 成人免费观看视频| 欧美久久久久久蜜桃| 久久久精品黄色| 一区二区三区在线观看动漫| 韩国精品在线观看| 91蜜桃网址入口| 日韩一卡二卡三卡| 最新国产の精品合集bt伙计| 日韩国产欧美在线观看| 成人国产亚洲欧美成人综合网| 欧美日本韩国一区| 国产精品久久久久一区| 青青草国产成人av片免费| 99国产精品99久久久久久| 欧美大片日本大片免费观看| 亚洲欧美色图小说| 国产一区二区三区美女| 欧美亚洲国产一区在线观看网站| 欧美成人高清电影在线| 亚洲国产成人porn| 成人av动漫网站| 精品国产一区二区精华| 亚洲福利视频导航| 播五月开心婷婷综合| 久久综合色天天久久综合图片| 夜夜嗨av一区二区三区中文字幕 | 久99久精品视频免费观看| 色综合久久久久久久| 久久久午夜精品理论片中文字幕| 亚洲国产精品欧美一二99| a级高清视频欧美日韩| 亚洲精品一区二区三区蜜桃下载| 亚洲成av人片观看| 色综合久久九月婷婷色综合| 欧美国产精品一区二区| 毛片av一区二区| 欧美顶级少妇做爰| 一区二区三区国产| a级高清视频欧美日韩| 久久久无码精品亚洲日韩按摩| 日韩av午夜在线观看| 欧美无砖砖区免费| 一区二区三区在线免费观看| 成人av电影免费在线播放| 久久久久国产免费免费| 极品美女销魂一区二区三区免费| 欧美一激情一区二区三区| 亚洲成人综合视频| 欧美性猛片aaaaaaa做受| 亚洲日韩欧美一区二区在线| 丁香桃色午夜亚洲一区二区三区| 久久综合999| 欧美三级日本三级少妇99| 亚洲精品视频在线观看网站| www.欧美亚洲| 1区2区3区欧美| 91香蕉国产在线观看软件| 自拍偷拍欧美精品| 91视频观看视频| 亚洲色图制服诱惑 | 欧美日韩国产高清一区二区三区 | 图片区小说区国产精品视频| 色综合色狠狠综合色| 亚洲欧洲中文日韩久久av乱码| 99精品久久久久久| 亚洲精品美腿丝袜| 一本久道久久综合中文字幕| 亚洲精品亚洲人成人网在线播放| 日本精品一级二级| 亚洲国产cao| 日韩欧美色综合网站| 国产主播一区二区| 欧美经典一区二区三区| 99re热视频这里只精品| 一区2区3区在线看| 欧美日韩欧美一区二区| 日本不卡一二三| 久久久精品免费免费| 91在线视频免费观看| 亚洲影院免费观看| 欧美一区二区精品在线| 国产一区二区影院| 亚洲欧美自拍偷拍色图| 在线中文字幕一区| 青青草97国产精品免费观看 | 久久午夜羞羞影院免费观看| 国产一区二区在线观看免费| 国产精品卡一卡二| 欧美色图片你懂的| 久久爱www久久做| 国产欧美日韩另类一区| 91黄色在线观看| 久久成人精品无人区| 中文字幕在线不卡视频| 欧美日本高清视频在线观看| 国产一区视频网站| 亚洲卡通欧美制服中文| 日韩精品一区在线| www.亚洲色图| 午夜精品一区在线观看| 久久久电影一区二区三区| 欧美在线免费观看亚洲| 美国欧美日韩国产在线播放| 国产精品国产三级国产aⅴ中文 | 中文字幕一区二区视频| 欧美日韩成人一区二区| 成人中文字幕合集| 天天影视涩香欲综合网| 中文字幕欧美国产| 91精品国产一区二区| 99麻豆久久久国产精品免费优播| 视频一区在线播放| 中文字幕亚洲区| 欧美成人综合网站| 91久久精品一区二区三| 国产一区二区精品久久99| 亚洲一区二区三区美女| 国产亚洲一本大道中文在线| 欧美日韩免费高清一区色橹橹 | 欧美影院午夜播放| 国产麻豆精品视频| 亚洲sss视频在线视频| 国产精品激情偷乱一区二区∴| 日韩精品一区二区三区三区免费| 91免费在线看| 国产成人免费视频网站高清观看视频| 亚洲一二三四区| 中文字幕在线观看不卡视频| 欧美成人三级电影在线| 欧美日韩在线免费视频| 成人免费毛片a| 国产真实乱子伦精品视频| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品系列在线| 日韩精品最新网址| 在线观看91精品国产麻豆| 99精品久久只有精品| 高清在线成人网| 精品一区二区免费| 日本伊人色综合网| 亚洲高清视频的网址| 一色桃子久久精品亚洲| 欧美激情中文字幕一区二区| 欧美tickle裸体挠脚心vk| 欧美日韩不卡在线| 欧美伊人久久久久久午夜久久久久| av不卡在线播放| 成人天堂资源www在线| 国产伦精一区二区三区| 久久精品国产亚洲a| 日本午夜一区二区| 五月天欧美精品| 丝袜亚洲另类欧美综合| 亚洲国产一区视频| 亚洲一线二线三线视频| 一区二区在线电影|