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

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

?? inf.tcl

?? windml3.0.3
?? TCL
?? 第 1 頁 / 共 5 頁
字號:
# inf.tcl - Setup routines to process inf files.
#
# Copyright 1998 Wind River Systems, Inc
#
# Modification history
# --------------------
# 03b,13jul02,wmd  Change setup log message for failure to start service to
#                  say "Unable to confirm..."
# 03a,12jun01,j_w  Modified for Tornado 2.2
# 02a,21jun00,bjl  Added int option to addRegistryLine.
# 01z,31may00,j_w  Enabled the Tornado Registry Service to be re-started right
#                  after removal (SPR 31316)
# 01y,16mar00,bwd  Changed patch checking to support only Solaris 2.7
# 01x,21oct99,bjl  removed parisc-hpux support.
# 01w,13oct99,bjl  process TORNADO.INF for tornado-* products in
#                  searchAndProcessSection.
# 01v,22mar99,bjl  do not write to uninstall log for first reg subkey.
# 01u,19mar99,wmd  Debug message writes to a file instead.
# 01t,08mar98,wmd  added work-around to get setup running on HPUX, don't
#                  redirect output to a file using exec.
# 01s,03mar99,wmd  Place catches around exec calls.
# 01r,24feb99,bjl  fixed default registry values to be empty when no values
#                  are specified.
# 01q,21feb99,bjl  fixed creation of first subkey directly below root key
#                  in the windows registry.
# 01p,01feb99,bjl  replaced ampersandReplace with subspecSpecialCharReplace.
# 01o,08jan99,bjl  replace ampersands in regsub subspecs (fixes spr 24217).
# 01n,09dec98,bjl  enhanced HPUX patch checking to check for list of
#                  patch numbers or use patch description.
# 01m,04dec98,bjl  limit Solaris 2.6 patch checking to 2.6 instead of 2.6.x.
# 01l,11nov98,bjl  added processing of ALLPRODUCTS.INF to
#                  selectedProductsProcessInfFile.
# 01k,27oct98,bjl  added patch checking for HPUX 10, added required
#                  and recommended criteria to patch checking.
# 01j,25sep98,bjl  added required patch checking for Solaris.
# 01i,15sep98,bjl  swapped args and dir position for addIconLine.
# 01h,09sep98,bjl  added os version to filesCopy, account for unix paths.
# 01g,03sep98,bjl  changed inf filenames to uppercase.
# 01f,13aug98,bjl  added infputs wrapper and changed all puts to infputs.
# 01e,13aug98,tcy  added extra argument "args" for linkCreateLog
# 01d,12aug98,tcy  changed function calls in accordance with new OLE-based SETUP
# 01c,11aug98,tcy  unixified
# 01b,04aug98,bjl  added WarningsFile and InstallLast sections, tab cleanup.
# 01a,26jul98,bjl  written.
#

#############################################################################
#
# extractSectionName - extract the section name between the brackets
#
# This procedure will extract the section name between the brackets.
#
# SYNOPSIS
# extractSectionName <bracketedName>
#
# PARAMETERS:
#   bracketedName : a section name in between brackets
#
# RETURNS: the section name without brackets
#
# ERRORS: N/A
#

proc extractSectionName {bracketedName} {
    regexp {[^[]+} $bracketedName extractedName
    regexp {[^]]+} $extractedName extractedName
    return $extractedName
}


#############################################################################
#
# readLine - read the next line with data.
#
# This procedure will read and return the next line from the inf file
# containing valid data.  Blank lines are skipped.
#
# SYNOPSIS
# readLine
#
# PARAMETERS: N/A
#
# RETURNS: sucessfully read line from inf file.
#
# ERRORS: N/A
#

proc readLine {} {
    global infFileId

    set lineRead 0

    # skip over blank lines
    while {$lineRead == 0} {
        set lineRead [gets $infFileId line]
    }

    return $line
}

#############################################################################
#
# openFile - open the inf file for processing.
#
# Opens the inf file specified by <fileName> and sets the global
# inf file id.
#
# SYNOPSIS
# openFile <fileName>
#
# PARAMETERS:
#   fileName : name of the inf file to open.
#
# RETURNS:
#   0 if <fileName> cannot be opened.
#   1 if successful.
#
# ERRORS: N/A
#

proc openFile {fileName} {
    global infFileId

    if [catch {open $fileName r} infFileId] {
        infputs "INF processing: Cannot open INF file $fileName"
        return 0
    }
    return 1
}

#############################################################################
#
# closeFile - closes the inf file being processed
#
# Closes the current inf file being processed, which is specified
# by the global variable infFileId.
#
# SYNOPSIS
# closeFile
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc closeFile {} {
    global infFileId

    close $infFileId
}

#############################################################################
#
# getLineType - returns the line type of the specified line.
#
# Returns whether the line contains a comment, section name, or data.
#
# SYNOPSIS
# getLineType <line>
#
# PARAMETERS:
#   line : a line read from the inf file.
#
# RETURNS:
#   "comment" if the line is a comment (begins with ";")
#   "section_name" if the line contains a section name (begins with "[")
#   "data" for all other cases
#   "end_of_file" if the end of the file has been reached
#
# ERRORS: N/A
#

proc getLineType {line} {
    # end of file does not register as a blank line for readLine
    if {[endOfFile]} {
        return end_of_file
    }

    # get the first character that is not a space or tab
    regexp {[^ \t]} $line firstCharacter

    switch -exact -- $firstCharacter {
        ;       { return comment }
        [       { return section_name }
        default { return data }
    }
}

#############################################################################
#
# endOfFile - returns whether the end of the inf file has been reached.
#
# Returns whether the end-of-file has been reached for the current inf file
# begin processed.
#
# SYNOPSIS
# endOfFile
#
# PARAMETERS: N/A
#
# RETURNS:
#   0 if eof has not been reached
#   1 if eof has been reached
#
# ERRORS: N/A
#

proc endOfFile {} {
    global infFileId

    return [eof $infFileId]
}


#############################################################################
#
# subspecSpecialCharReplace - replace all special characeters within a
#                             string to be used as a regsub subspec.
#
# For a given string that is to be used as a subspec for the regsub
# command, this procedure replaces all special characters within
# the string so that they retain their literal value.
#
# All occurences of slashes are first replaced with four slashes.  Oddly
# for the latest Tcl (8.0), this ensures that a literal slash is preserved
# through the regsub, rather than becoming part of a character
# interpretation.
#
# All occurrences of & are replaced with \&.  A plain & in a subspec is
# replaced with the string that matched the pattern.
#
# SYNOPSIS
# subspecSpecialCharReplace <value>
#
# PARAMETERS:
#   value : a string with possible special characters to be replaced.
#
# RETURNS:
#   A new value in which special characters have been replaced so they
#   retain their literal values during a regsub, if the value is used as a
#   replacement pattern (subspec).
#
# ERRORS: N/A
#

proc subspecSpecialCharReplace {value} {

    regsub -all {\\} $value {\\\\} value
    regsub -all & $value \\\\& value
    return $value
}

#############################################################################
#
# percentEvaluate - evaluates substring values between percent signs.
#
# For a given string, this procedure evaluates and replaces all substrings
# between percent signs.  A new string containing the replaced substrings is
# returned.
#
# The order of evaluation for each substring is as follows:
#   1. the substring is replaced with the value specified in the Strings
#      section of the inf file.
#   2. if the substring is a procedure name, it is replaced with its return
#      value.
#   3. if the substring is a global variable, it is replaced with its value.
#
# SYNOPSIS
# percentEvaluate <value>
#
# PARAMETERS:
#   value : a string with possible substrings between % signs
#
# RETURNS:
#   A new string with substrings between % signs replaced with their
#   evaluated strings.  If a substring between % signs cannot be replaced,
#   the original string is returned.
#
#
# ERRORS: N/A
#

proc percentEvaluate {value} {
    global infString

    while {[regexp {%[^%]+%} $value evaluation_subspec] != 0} {
        regexp {[^%]+} $evaluation_subspec valueToEvaluate

        # check if infString, procedure, or variable exists
        set infStringExists [info exists infString($valueToEvaluate)]
        set functionExists [info procs $valueToEvaluate]

        # allow checking of arrays - check for array variable format
        if {[regexp {[^()]+\([^(]+\)} $valueToEvaluate != 0]} {
            regexp {[^\(]+} $valueToEvaluate arrayName
            global $arrayName
        } else {
            global $valueToEvaluate
        }
        set variableExists [info exists $valueToEvaluate]

        # do the evaluation
        if {$infStringExists == 1} {
            regsub {%[^%]+%} $value [subspecSpecialCharReplace $infString($valueToEvaluate)] value
        } elseif {[string length $functionExists] > 0} {
            regsub {%[^%]+%} $value [subspecSpecialCharReplace [$valueToEvaluate]] value
        } elseif {$variableExists == 1} {
            regsub {%[^%]+%} $value [subspecSpecialCharReplace [set $valueToEvaluate]] value
        } else {
            infputs "INF processing: %$valueToEvaluate% is not specified"
            infputs "in the Strings section, is not a procedure, and is not a"
            infputs "global variable."
            return $value
        }
    }
    return $value
}

#############################################################################
#
# nthValueFromCommaDelimitedLine - returns the nth value of a comma delimited
#                                  list
#
# For a list of values separated by commas, returns the nth value in the
# list.  Whitespace preceding each value is accounted for.  Substrings
# for each value in between % signs are replaced by calling the
# procedure percentEvaluate.
#
#
# SYNOPSIS
# nthValueFromCommaDelimitedLine <line> <index>
#
# PARAMETERS:
#   line : a string of comma delimited values
#   index : specifies the nth value to be returned.  The index starts with
#           1 (the first value in the list).
#
# RETURNS:
#   The nth value specified by <index>.
#   "no_value" if the value specified by index does not exist.
#
# ERRORS: N/A
#

proc nth {line index} {
    return [nthValueFromCommaDelimitedLine $line $index]
}

proc nthValueFromCommaDelimitedLine {line index} {

    # count the number of commas.  If the number is less than
    # the index-1, the index value does not exist.
    set numcommas [regsub -all , $line {} ignore]
    if {$numcommas < [expr $index - 1]} {
        return no_value
    }

    set value [lindex [split $line ,] [expr $index - 1]]

    # remove prefixing spaces or tabs
    regexp "\[^ \t\]+.*" $value value

    if {[string length $value] == 0 } {
        return no_value
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无砖砖区免费| 国产精品一区二区三区网站| 色综合激情五月| 一区二区三区在线视频观看 | 日本亚洲电影天堂| 欧美伦理视频网站| 麻豆国产精品一区二区三区| 欧美xxxx老人做受| 国产99久久久国产精品潘金网站| 中文字幕欧美激情一区| 色婷婷久久久久swag精品| 一区二区三区国产精华| 5566中文字幕一区二区电影| 另类的小说在线视频另类成人小视频在线| 精品国产伦一区二区三区观看体验 | 这里只有精品电影| 国模娜娜一区二区三区| 国产精品九色蝌蚪自拍| 在线观看一区二区视频| 蜜臀久久99精品久久久画质超高清| 26uuu欧美| 91在线码无精品| 日本中文字幕一区| 国产视频一区在线播放| 色噜噜狠狠色综合中国| 久久精品国产澳门| 成人免费在线播放视频| 欧美一区二区高清| 99久久亚洲一区二区三区青草| 一个色妞综合视频在线观看| 欧美大片顶级少妇| 91成人国产精品| 国产一区 二区 三区一级| 亚洲综合一二三区| 久久综合九色综合欧美亚洲| 91视频国产观看| 精品亚洲国内自在自线福利| 一区二区国产视频| 国产亚洲欧洲997久久综合| 欧美三片在线视频观看| 高清beeg欧美| 麻豆精品一区二区综合av| 亚洲精品国产第一综合99久久 | 性久久久久久久久久久久| 国产日产欧美一区二区三区| 91精品国产入口在线| 99精品久久只有精品| 国产自产高清不卡| 日本欧美一区二区| 亚洲一级电影视频| 国产精品久久毛片a| 欧美成人激情免费网| 欧美日韩中文精品| 91麻豆免费看片| 成人免费毛片aaaaa**| 国产一区二区美女| 美女mm1313爽爽久久久蜜臀| 午夜精品久久久久久久久久| 亚洲欧美激情一区二区| 国产免费久久精品| 久久免费的精品国产v∧| 日韩欧美在线影院| 777久久久精品| 欧美日韩视频在线一区二区| 欧美性淫爽ww久久久久无| av中文字幕亚洲| 成av人片一区二区| 国内精品写真在线观看| 久久精品国产99| 久久国产尿小便嘘嘘尿| 男人的天堂亚洲一区| 日韩精品高清不卡| 天天av天天翘天天综合网色鬼国产| 亚洲制服丝袜av| 亚洲国产综合91精品麻豆| 一区二区三区中文字幕精品精品| 综合亚洲深深色噜噜狠狠网站| 国产精品少妇自拍| 国产精品网站在线观看| 中文字幕精品一区二区精品绿巨人| 久久综合色之久久综合| 国产午夜三级一区二区三| 国产欧美日韩在线视频| 欧美极品少妇xxxxⅹ高跟鞋| 国产欧美日韩视频在线观看| 亚洲国产精品ⅴa在线观看| 日本一区二区三级电影在线观看| 欧美国产亚洲另类动漫| 亚洲视频1区2区| 亚洲一级电影视频| 美女高潮久久久| 国产成人h网站| 色综合网色综合| 欧美丝袜丝交足nylons图片| 3d成人h动漫网站入口| 日韩一区二区三区高清免费看看| 精品少妇一区二区| 欧美国产成人在线| 亚洲精品一二三区| 无码av免费一区二区三区试看| 久久电影网站中文字幕| 成人黄色国产精品网站大全在线免费观看| aaa欧美大片| 欧美视频在线一区| 精品国产99国产精品| 国产精品麻豆久久久| 亚洲国产欧美一区二区三区丁香婷| 婷婷六月综合网| 国产精品白丝jk白祙喷水网站| 波多野结衣一区二区三区 | 538在线一区二区精品国产| 久久综合久久久久88| 亚洲欧美另类久久久精品| 琪琪一区二区三区| 成人91在线观看| 4438x亚洲最大成人网| 久久免费电影网| 一区二区成人在线观看| 极品销魂美女一区二区三区| 99久久精品国产一区二区三区| 欧美精品一卡二卡| 亚洲欧洲日韩在线| 美女视频网站黄色亚洲| 色综合久久中文综合久久牛| 日韩精品在线一区二区| 亚洲综合丝袜美腿| 成人看片黄a免费看在线| 欧美精品一二三四| 国产精品久久看| 国产自产高清不卡| 91精品国产欧美一区二区18| 一区二区中文视频| 国产高清一区日本| 欧美一区二区黄色| 亚洲国产毛片aaaaa无费看 | 亚洲一二三区不卡| 国产精品 欧美精品| 欧美精品v日韩精品v韩国精品v| 国产精品久久久久久久久快鸭| 美女一区二区三区在线观看| 在线观看一区二区视频| 中文字幕在线一区免费| 国产乱子伦视频一区二区三区| 欧美麻豆精品久久久久久| 日韩理论片网站| 国产91富婆露脸刺激对白| 日韩视频在线观看一区二区| 午夜精品视频一区| 在线一区二区视频| 欧美国产日韩a欧美在线观看| 国内精品伊人久久久久影院对白| 91精品国产综合久久香蕉麻豆| 曰韩精品一区二区| 99精品视频一区二区三区| 中文一区在线播放| 国产**成人网毛片九色| 欧美精品一区二区三区高清aⅴ| 天堂va蜜桃一区二区三区| 欧美日韩成人综合在线一区二区 | 污片在线观看一区二区| 欧美视频一区二区三区四区 | 亚洲一区二区黄色| 一本一道综合狠狠老| 亚洲欧美日韩国产综合在线| 99视频一区二区| 亚洲欧洲日产国产综合网| 91原创在线视频| 亚洲少妇屁股交4| 91极品视觉盛宴| 亚洲九九爱视频| 欧美性猛交xxxxxx富婆| 亚洲国产cao| 91精品国产综合久久精品app| 亚洲成av人片在线观看无码| 欧美日韩免费电影| 蜜臀av一区二区三区| 久久综合九色综合97_久久久| 九一久久久久久| 国产亚洲人成网站| www..com久久爱| 亚洲精品国产高清久久伦理二区| 在线观看亚洲一区| 日本 国产 欧美色综合| 欧美成人vps| 国产精品18久久久久久久久| 国产精品国产馆在线真实露脸| 91网站最新网址| 亚洲丰满少妇videoshd| 欧美岛国在线观看| 国产.欧美.日韩| 亚洲综合网站在线观看| 日韩欧美一区二区三区在线| 国产精品69毛片高清亚洲| 亚洲嫩草精品久久| 欧美一级免费大片| 丁香啪啪综合成人亚洲小说 | 国内精品久久久久影院一蜜桃| 中文成人综合网| 欧美高清视频一二三区 | 成人av午夜电影|