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

📄 do-webcore-rename

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻
字号:
#!/usr/bin/perl -w# Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:## 1.  Redistributions of source code must retain the above copyright#     notice, this list of conditions and the following disclaimer. # 2.  Redistributions in binary form must reproduce the above copyright#     notice, this list of conditions and the following disclaimer in the#     documentation and/or other materials provided with the distribution. # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of#     its contributors may be used to endorse or promote products derived#     from this software without specific prior written permission. ## THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# Script to do a rename in JavaScriptCore, WebCore, and WebKit.use strict;use FindBin;use lib $FindBin::Bin;use webkitdirs;use File::Find;setConfiguration();chdirWebKit();my %words;# find all files we want to processmy @paths;find(\&wanted, "JavaScriptCore");find(\&wanted, "JavaScriptGlue");find(\&wanted, "WebCore");find(\&wanted, "WebKit");sub wanted{    my $file = $_;    if ($file eq "icu") {        $File::Find::prune = 1;        return;    }    if ($file =~ /^\../) {        $File::Find::prune = 1;        return;    }    return if $file =~ /^ChangeLog/;    return if -d $file;    push @paths, $File::Find::name;}my %renames = ();my %renamesContemplatedForTheFuture = (    "DOMObject" => "JSDOMObject",    "runtimeObjectGetter" => "pluginElementGetter",    "runtimeObjectPropertyGetter" => "pluginElementPropertyGetter",    "runtimeObjectCustomGetOwnPropertySlot" => "pluginElementCustomGetOwnPropertySlot",    "runtimeObjectCustomPut" => "pluginElementCustomPut",    "runtimeObjectImplementsCall" => "pluginElementImplementsCall",    "runtimeObjectCallAsFunction" => "pluginElementCallAsFunction",    "CLONE_CONTENTS" => "Clone",    "DELETE_CONTENTS" => "Delete",    "EXTRACT_CONTENTS" => "Extract",    "DateInstance" => "JSDate",    "ErrorInstance" => "JSError",    "KURL" => "URL",    "KURLCFNet" => "URLCF",    "KURLHash" => "URLHash",    "KURLMac" => "URLMac",    "KURL_h" => "URL_h",    "ThreadSafeShared" => "ThreadSafeRefCounted",    "TreeShared" => "TreeRefCounted",    "StringImpl" => "SharedString",    "RenderView" => "RenderViewport",    "ObjcFallbackObjectImp" => "ObjCFallbackObject",    "RuntimeObjectImp" => "ForeignObject",    "runtime_array" => "BridgedArray",    "runtime_method" => "BridgedFunction",    "runtime_object" => "BridgedObject",    "objc_runtime" => "ObjCBridge",    "equalIgnoringCase" => "equalFoldingCase",    "FTPDirectoryTokenizer" => "FTPDirectoryDocumentBuilder",    "HTMLTokenizer" => "HTMLDocumentBuilder",    "ImageTokenizer" => "ImageDocumentBuilder",    "PluginTokenizer" => "PluginDocumentBuilder",    "TextTokenizer" => "TextDocumentBuilder",    "Tokenizer" => "DocumentBuilder",    "Tokenizer_h" => "DocumentBuilder_h",    "XMLTokenizer" => "XMLDocumentBuilder",    "isHTMLTokenizer" => "isHTMLDocumentBuilder",    "m_tokenizer" => "m_builder",    "createTokenizer" => "createBuilder",    "tokenizerProcessedData" => "documentBuilderProcessedData",    "WTF_UNICODE_H" => "Unicode_h",    "WTF_UNICODE_ICU_H" => "UnicodeICU_h",    "WTF_UNICODE_QT4_H" => "UnicodeQt4_h",    "UnicodeIcu" => "UnicodeICU",    "m_invertibleCTM" => "m_transformIsInvertible",    "JSValuePtr" => "JSValue",    "ProtectedJSValuePtr" => "ProtectedJSValue",);# rename filesmy %newFile;for my $file (sort @paths) {    my $f = $file;    $f = "$1$renames{$2}$3" if $f =~ /^(.*\/)(\w+)(\.\w+)$/ && $renames{$2};    if ($f ne $file) {        $newFile{$file} = $f;    }}for my $file (sort @paths) {    if ($newFile{$file}) {        my $newFile = $newFile{$file};        print "Renaming $file to $newFile\n";        system "svn move $file $newFile";    }}# change all file contentsfor my $file (sort @paths) {    $file = $newFile{$file} if $newFile{$file};    my $contents;    {        local $/;        open FILE, $file or die;        $contents = <FILE>;        close FILE;    }    my $newContents = $contents;    for my $from (keys %renames) {        $newContents =~ s/\b$from(?!["\w])/$renames{$from}/g; # this " unconfuses Xcode syntax highlighting    }    if ($newContents ne $contents) {        open FILE, ">", $file or die;        print FILE $newContents;        close FILE;    }}

⌨️ 快捷键说明

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