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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? install.tcl

?? 這是vxworks 的圖形界面開發(fā)軟件windML2.0的補丁CP2。
?? TCL
?? 第 1 頁 / 共 5 頁
字號:
# install.tcl - Installation program for Unix/Windows platforms.
#
# Copyright 1984-1997 Wind River Systems, Inc
#
# Modification history:
# ---------------------
# 02s,12aug97,pdn  moved version string to VERSION.TCL
# 02r,04aug97,pdn  merged fixed from qms1_0_x branch.
# 02q,20jun97,pdn  allowed native $(AR), and $(RANLIB) to be defined.
# 02p,13jun97,pdn  changed to use setup APIs as a DLL.
# 02o,19may97,pdn  fixed fileNameAppreviate() to handle the case that regexp
#                  fails to match.
# 02n,02may97,pdn  added comments.
# 02m,08apr97,pdn  fixed fileDup() to handle file permission accordingly
# 02l,28mar97,pdn  added code to support correct uninstall
# 02k,10mar97,pdn  fixed library update routine.
# 02j,08mar97,tcy  undo last mod
# 02i,07mar97,tcy  moved needUpdateWlmd() from INSTTK.TCL to here
# 02h,07mar97,pdn  fixed uninstStart to allow patch uninstallation.
# 02g,05mar97,pdn  sorted the product list.
# 02f,04mar97,pdn  copy ZIP utility to bin directory.
#                  added hook for patch installation.
# 02e,25feb97,pdn  added function byteToMbyte()
# 02d,24feb97,pdn  modified fileDup() to allow update/overwrite.
# 02c,09feb97,pdn  fixed cdInfoGet to return correct selected feature Id list
# 02b,04feb97,pdn  fixed library updating problem.
# 02a,24jan97,pdn  rounded up the product size upto 0.1 MB where needed
# 01z,24jan97,pdn  returned to the calling function when user hit cancel
# 01y,22jan97,pdn  fixed the ar so that console windows in Windows 95 won't show up.
# 01x,21jan97,pdn  fixed fileDup(), and execute().
# 01w,20jan97,pdn  fixed replicated feature id/name, better error hanlding
# 01v,14jan97,pdn  updated uninstBinCopy() to support Windows, fixed indentation
# 01u,07jan97,pdn  updated the pre/post install
#                  implemented billboard cycling from product dir
# 01t,18dec96,sks  changed location of TCL and BITMAP files; renamed
#                  TEXT.TCL to MESSAGES.TCL                   
# 01s,13dec96,pdn  updated postInstall()
# 01r,12dec96,pdn  added productName to the productObj
# 01r,11dec96,pdn  fixed cdInfoGet and productInfoGet to return correct
#                  featureId list
# 01q,09dec96,pdn  added hierachy selection option
# 01p,23nov96,sj   incorporated post and presinstall mechanisms
# 01o,18nov96,sj   caught user removing CDROM when files are being 
#                  copied over and included the check for backuped
#                  files into backup().
# 01m,11nov96,pdn  centralized all strings to TEXT.TCL 
# 01l,08nov96,pdn  backup newer files in the same manner as older files.
# 01k,06nov96,pdn  added retry option for fileDup()
# 01j,05nov96,pdn  fixed the uninstall logging
# 01i,24oct96,pdn  added uninstLog()
# 01h,21oct96,pdn  added pageRemove()
# 01g,18oct96,pdn  updated uninstStart() to use new uninst dir, and added
#                  uninstBinCopy()
# 01f,01oct96,tcy  moved umaskGet(), umaskSet(), getSelection() here  
# 01e,29aug96,pdn  allowed non-tk specific installation
# 01d,27aug96,pdn  handle messages return from zip.
# 01c,02jul96,pdn  added directory creation, and implement lib update.
# 01b,25jun96,pdn  modified the GUI to meet the specification.
# 01a,11jun96,jco  translated to tk from the uitcl/Windows.
#

source [cdromRootDirGet]/RESOURCE/TCL/VERSION.TCL

##############################################################################
#
# fileNameAppreviate - shorten the filename for GUI displaying purpose
#
# This procedure shorten filename if it's longer than 40 chars.  The shorten
# filename will be in the form firstDir/.../lastDir/fileName.  There is no
# warranty that the resulted filename will be any shorter than the original one.
#
# SYNOPSIS
# fileNameAppreviate <fileName>
#
# PARAMETERS: 
#    fileName : a path filename
#
# RETURNS: shorten filename
#
# ERRORS: N/A
#

proc fileNameAppreviate {fileName} {
    set shortName $fileName

    if {[string length $fileName] > 40} {
        if [regexp {(^[^/]+)/.*/([^/]+/[^/]+$)} $fileName junk\
                 firstPart lastPart] {
            set shortName "$firstPart/.../$lastPart"
        }
    } 
    return $shortName
}

##############################################################################
#
# archListPut - save the object filename 
#
# This procedure checks the provided filename for a special pattent.  If 
# matches, the filename will be saved in a global array for later archiving
# step.  The keys of this associated array are the object location, and product
# index.
#
# SYNOPSIS
# archListPut <fileName> <index>
#
# PARAMETERS: 
#    fileName : a path filename
#    index : an index to a current product
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc archListPut {fileName index} {
    global objects

    # toolset and typeset can be a set of strings "|" together
    # "gnu|gnucoff|..."

    set toolset "gnu"
    set typeset "vx"

    if {[regexp "^.*/lib/obj(.*)($toolset)($typeset)(.*)/(.*$)" $fileName \
         junk cpu tool type typex tailFileName] == "1"} {

        set objDir "$index,obj,$cpu,$tool,$type,$typex"

        if [info exists objects($objDir)] {
            if {[lsearch $objects($objDir) $tailFileName] == "-1"} {
                lappend objects($objDir) $tailFileName
            }
        } {
            set objects($objDir) [list $tailFileName]
        }
    }
}

##############################################################################
#
# backup - save the specified file into a zip file. 
#
# This procedure zips the specified file into a zipfile.  If the file is
# previously backed up, nothing will be done.
#
# SYNOPSIS
# backup <fileName>
#
# PARAMETERS: 
#    fileName : a path filename
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc backup {fileName} {
    global setupVals backUpFileArray   

    if ![info exists backUpFileArray($fileName)] { 

        set saveDir [pwd]
        cd [destDirGet]

        # only interested in the existent of the array element, not the content

        set backUpFileArray($fileName) "" 

        if [catch {exec ZIP $setupVals(uninstFile) -g -q -1 $fileName} error] {
            uninstLog setup "\twarning: $fileName : $error"
            if [debug] {puts "warning: $fileName: $error"}
        } {
            uninstLog backup "wind_base\t$fileName"
        }

        cd $saveDir
    }
}

##############################################################################
#
# fileBackupAndRemove - backup and remove
#
# This procedure backups, then removes the specified file.
#
# SYNOPSIS
# fileBackupAndRemove <fileName>
#
# PARAMETERS: 
#    fileName : a path filename
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc fileBackupAndRemove {fileName} {
    backup $fileName
    catch {file delete $fileName}
}

##############################################################################
#
# fileRemove - remove the specified file
#
# This procedure removes the specified file, and if fails to do so, it's then
# popping up a dialog to query for the next action.
#
# SYNOPSIS
# fileRemove <fileName>
#
# PARAMETERS: 
#    fileName : a path filename
#
# RETURNS: 
#    OK     : successful removing <filename>
#    RETRY  : failed to remove the file, and user wants to retry.
#    IGNORE : failed to remove the file, and user wants to ignore it.
#
# ERRORS: N/A
#

proc fileRemove {fileName} {
    global setupVals

    if [catch {file delete $fileName} error] {
        set msg [strTableGet 1370_FILE_ACCESS_ERROR $fileName $error]

        switch [dialog re_ig_cancel "Setup" $msg question 0] {
            0 { return "RETRY" }
            1 {
                set logMsg "\terror: $fileName: $error"
                lastErrorSet $logMsg
                uninstLog setup $logMsg
                return "IGNORE"
            }
            default {quitCallback}
        }
    }
    return "OK"
}

##############################################################################
#
# uninstStart - obtains a zip filename
#
# This procedure obtains a zip filename for use in sub-sequence calls to zip,
# creates $WIND_BASE/.wind/uninst if not exist.  Must be called prior any zip 
# function call.
#
# SYNOPSIS
# uninstStart [type]
#
# PARAMETERS: 
#    [type] : if 'license' is specified, zip filename w/ extension 001 returns.
#
# RETURNS: zip filename.
#
# ERRORS: N/A
#

proc uninstStart {{type Software}} {
    global setupVals

    uninstHomeDirSet [destDirGet]/.wind/uninst

    if ![file isdirectory [uninstHomeDirGet]] {
        file mkdir [uninstHomeDirGet]
    }

    if {"$type" == "license"} {
        set setupVals(uninstFile) "[uninstHomeDirGet]/data.001"
    } {
        set setupVals(uninstFile) \
            "[uninstHomeDirGet]/data.[format "%03d" [expr 1 + \
             [llength [glob -nocomplain [uninstHomeDirGet]/data.*]]]]"
    }
}

##############################################################################
#
# uninstFileClose - close uninstall file descriptions.
#
# This procedure closes uninstall file descriptions if they are still opened.
#
# SYNOPSIS
# uninstFileClose
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc uninstFileClose {} {
    global setupVals

    if {"$setupVals(uninstFileOpen)" == "opened"} {
        close $setupVals(fInstallFile)
        close $setupVals(fInstallInfo)
        close $setupVals(fInstallBackup)
        close $setupVals(fInstallResource)
        puts $setupVals(fSetupLog) ""
        close $setupVals(fSetupLog)
        set setupVals(uninstFileOpen) closed
    }
}

##############################################################################
#
# uninstFileOpen - opens files for recording uninstall info.
#
# This procedure opens disk files for writing the temporary uninstall records.
# These files will be closed by calling uninstFileClose()
#
# SYNOPSIS
# uninstFileOpen
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

set setupVals(uninstFileOpen) ""

proc uninstFileOpen {} {
    global setupVals

    if {"$setupVals(uninstFileOpen)" != "opened"} {
        set setupLog [tempDirGet]/setup.log.tmp
        set uninstFile [tempDirGet]/installFile.tmp
        set uninstResource [tempDirGet]/installResource.tmp
        set uninstBackup [tempDirGet]/installBackup.tmp
        set uninstInfo [tempDirGet]/installInfo.tmp
    
        set setupVals(fSetupLog) [open $setupLog "w"]
        set setupVals(fInstallFile) [open $uninstFile "w"]
        set setupVals(fInstallInfo) [open $uninstInfo "w"]
        set setupVals(fInstallBackup) [open $uninstBackup "w"]
        set setupVals(fInstallResource) [open $uninstResource "w"]
        
        set setupVals(uninstFileOpen) opened
    }
}

##############################################################################
#
# uninstBinCopy - copies uninstall agent
#
# This procedure copies neccessary files from CDROM to the destination 
# directory for the uninstall program to work.  No-op if patch installation
# is detected.
#
# SYNOPSIS
# uninstBinCopy
#
# PARAMETERS:  N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc uninstBinCopy {} {
    global setupVals

    if {[instTypeGet] == "patch"} {
        return

    } elseif {[windHostTypeGet] == "x86-win32"} {
        set winDir [setupWinDirGet]
        set cdBinDir [cdromRootDirGet]\\X86\\WIN32
        set usrBinDir [destDirGet]\\host\\[windHostTypeGet]\\bin
        
        fileDup $cdBinDir\\ZIP.EXE $usrBinDir\\ZIP.EXE update
        fileDup $cdBinDir\\MFC42.DLL $usrBinDir\\MFC42.DLL
        fileDup $cdBinDir\\MSVCRT.DLL $usrBinDir\\MSVCRT.DLL
        fileDup $cdBinDir\\PCTREE32.DLL $usrBinDir\\PCTREE32.DLL
        fileDup $cdBinDir\\TCL.DLL $usrBinDir\\TCL.DLL
        fileDup $cdBinDir\\UITCL.DLL $usrBinDir\\UITCL.DLL
        fileDup $cdBinDir\\UITCLSH.EXE $usrBinDir\\UITCLSH.EXE
        fileDup $cdBinDir\\SETUPTCL.DLL $usrBinDir\\SETUPTCL.DLL update
        fileDup [cdromRootDirGet]\\RESOURCE\\BITMAPS\\UNINST.BMP \
                [uninstHomeDirGet]\\UNINST.BMP update
        fileDup [cdromRootDirGet]\\RESOURCE\\TCL\\UNINST.TCL \
                [uninstHomeDirGet]\\UNINST.TCL update
    } {
        set usrBinDir [destDirGet]/host/[windHostTypeGet]/bin

        fileDup [cdromRootDirGet]/RESOURCE/TCL/UNINST.TCL \
                [uninstHomeDirGet]/UNINST.TCL update

        fileDup [cdromRootDirGet]/RESOURCE/TCL/LIB/TKLIB.TAR \
                [uninstHomeDirGet]/TKLIB.TAR update

        fileDup [cdromRootDirGet]/RESOURCE/BITMAPS/UNINST.PPM \
                [uninstHomeDirGet]/UNINST.PPM update
    
        fileDup [cdromBinDirGet]/INSTTCL2 $usrBinDir/INSTTCL2 update
        fileDup [cdromBinDirGet]/INSTTK2 $usrBinDir/INSTTK2 update
        fileDup [cdromRootDirGet]/UNINST $usrBinDir/UNINST update
        fileDup [cdromBinDirGet]/ZIP $usrBinDir/ZIP update
        fileDup [cdromBinDirGet]/SETUPTCL[string toupper \
                                           [info sharedlibextension]] \
		$usrBinDir/setuptcl[info sharedlibextension] update
    }
}

##############################################################################
#

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丶国产丶欧美一区二区三区| 欧美电影免费观看高清完整版在线 | 精品一区二区精品| 欧美一区二区三区在线观看| 亚洲国产va精品久久久不卡综合| 欧美日韩一区不卡| 久久精品国产77777蜜臀| 精品久久久久久综合日本欧美| 国产裸体歌舞团一区二区| 亚洲国产精品黑人久久久| 丰满白嫩尤物一区二区| 一区二区三区国产精华| 欧美一区二区精品| 国产成人免费视频| 一区二区三区四区在线播放| 欧美日本乱大交xxxxx| 蜜桃在线一区二区三区| 欧美激情一区二区三区四区| 色视频成人在线观看免| 全国精品久久少妇| 国产精品激情偷乱一区二区∴| 欧美又粗又大又爽| 国产一区欧美日韩| 亚洲综合自拍偷拍| 精品国产伦理网| 91热门视频在线观看| 日日夜夜免费精品视频| 国产精品嫩草影院av蜜臀| 欧美日韩国产综合草草| 国产精品综合一区二区三区| 一区二区日韩电影| 国产人妖乱国产精品人妖| 欧美色精品天天在线观看视频| 韩国av一区二区三区在线观看| 国产精品不卡一区| 日韩一区二区三区在线| 91视频国产资源| 韩国精品主播一区二区在线观看| 一区二区三区精品在线观看| 日韩欧美国产系列| 色天使色偷偷av一区二区| 狠狠网亚洲精品| 亚洲国产视频网站| 亚洲欧美国产三级| 久久蜜桃香蕉精品一区二区三区| 精品视频免费在线| 91网上在线视频| 国产精品一区二区男女羞羞无遮挡 | 亚洲超碰97人人做人人爱| 日本一区二区三区dvd视频在线| 欧美军同video69gay| 日本高清不卡视频| 不卡区在线中文字幕| 国产精品系列在线播放| 秋霞电影一区二区| 婷婷中文字幕综合| 亚洲123区在线观看| 亚洲裸体xxx| 中文字幕欧美一| 久久精品这里都是精品| 日韩欧美你懂的| 这里只有精品免费| 在线不卡一区二区| 制服丝袜亚洲网站| 7777女厕盗摄久久久| 欧美日韩亚洲综合在线| 欧美视频在线一区| 欧美性xxxxxx少妇| 欧美三级日韩在线| 欧美日韩综合色| 在线看国产一区二区| 在线亚洲一区二区| 欧美在线免费观看视频| 欧美视频一区二区三区| 欧美色倩网站大全免费| 欧洲日韩一区二区三区| 精品婷婷伊人一区三区三| 欧美视频完全免费看| 欧美精品在线观看一区二区| 777奇米成人网| 精品欧美一区二区久久| 久久精品夜色噜噜亚洲a∨| 国产午夜亚洲精品不卡| 国产欧美精品一区aⅴ影院| 国产精品成人网| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产日韩欧美麻豆| 国产精品久久福利| 夜夜夜精品看看| 亚洲高清视频的网址| 日本午夜一本久久久综合| 精品亚洲porn| 成人福利电影精品一区二区在线观看| 国产精品12区| 在线观看日韩高清av| 日韩三级中文字幕| 国产欧美一区二区精品性色超碰 | 亚洲18影院在线观看| 免费成人你懂的| 成人中文字幕电影| 欧美性大战xxxxx久久久| 日韩精品一区二区三区在线播放| 国产日韩成人精品| 一区二区三区在线观看动漫| 日本美女一区二区三区视频| 国产成人亚洲综合a∨猫咪| 色视频欧美一区二区三区| 日韩视频一区二区三区| 国产欧美精品一区二区三区四区| 一区二区在线观看视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 色婷婷综合视频在线观看| 欧美午夜精品免费| 国产色产综合产在线视频| 樱花草国产18久久久久| 久久国产剧场电影| 一本色道**综合亚洲精品蜜桃冫| 91麻豆精品国产91久久久久久| 国产视频一区二区在线| 亚洲一区二区三区四区的| 国产一区二区免费视频| 欧洲生活片亚洲生活在线观看| 久久午夜电影网| 亚洲电影一区二区三区| 国产成人av电影免费在线观看| 欧美日韩三级一区二区| 国产精品福利在线播放| 蜜桃av一区二区在线观看| 色婷婷综合激情| 国产日韩精品一区二区三区在线| 亚洲成人免费观看| 色综合久久久久综合| 久久久久久综合| 日韩中文字幕不卡| 色呦呦一区二区三区| 国产欧美日韩在线| 久久 天天综合| 欧美福利电影网| 亚洲蜜臀av乱码久久精品蜜桃| 国产黑丝在线一区二区三区| 欧美精品tushy高清| 亚洲欧洲中文日韩久久av乱码| 国产一区二区三区久久久| 欧美卡1卡2卡| 香蕉成人啪国产精品视频综合网| 成人av在线影院| 欧美国产日韩在线观看| 久久99精品国产| 日韩西西人体444www| 亚洲成a天堂v人片| 91玉足脚交白嫩脚丫在线播放| 国产网站一区二区三区| 久久国产精品色婷婷| 91精品国产色综合久久不卡电影 | 日本一区二区三区dvd视频在线| 美洲天堂一区二卡三卡四卡视频| 欧美日韩高清影院| 亚洲国产综合在线| 欧美性猛交xxxxxx富婆| 亚洲男人的天堂网| 色国产精品一区在线观看| 亚洲精品v日韩精品| 欧美三级在线看| 亚洲成人动漫av| 欧美日韩一卡二卡三卡| 亚洲国产视频a| 欧美日韩国产高清一区二区三区 | 丝袜亚洲另类丝袜在线| 欧美精品在线观看播放| 男女男精品网站| 精品欧美一区二区在线观看| 国产一区三区三区| 国产精品免费观看视频| 97久久精品人人做人人爽50路| 最新国产精品久久精品| 色八戒一区二区三区| 亚洲第一成年网| 精品精品国产高清a毛片牛牛| 国产一区二区在线免费观看| 久久精品在这里| 91视视频在线观看入口直接观看www | 一区二区三区在线免费播放| 欧美日韩视频第一区| 日本vs亚洲vs韩国一区三区二区 | 成人午夜碰碰视频| 亚洲综合成人在线| 91精品国产全国免费观看| 麻豆国产欧美一区二区三区| 国产欧美一区二区精品性色| 成人av综合一区| 丝袜诱惑制服诱惑色一区在线观看 | 夜夜精品浪潮av一区二区三区| 91麻豆精品国产91久久久资源速度| 美女mm1313爽爽久久久蜜臀| 国产精品美女久久久久av爽李琼| 91视频.com| 久久精品国产999大香线蕉| 国产精品乱人伦中文| 欧美亚洲免费在线一区| 久久精品久久精品|