I crafted the attached script to analyse usage of globals in the TWiki core. The analysis was run on the checked in code as of 17the June 2004.
If you run the script on a TWiki that has plugins installed, it will analyse the plugins as well.
Global refs are references to the variable outside the
module where it was declared. Local refs are refs within the file where it was declared.
Seems to me all those with 0 global refs could be converted to "my" variables now, today, without affecting anything else.
| Variable | Global refs | Local refs | Referrer |
$TWiki::dispViewPath | 0 | 3 | |
$TWiki::Plugins::InterwikiPlugin::web | 0 | 2 | |
$TWiki::wikiToolName | 2 | 3 | TWiki::Func, TWiki::Vars::Internal |
$TWiki::Attach::attachmentCount | 0 | 2 | |
$TWiki::Plugins::EmptyPlugin::debug | 0 | 15 | |
$TWiki::Plugins::EmptyPlugin::user | 0 | 1 | |
$TWiki::urlCharEncoding | 0 | 3 | |
$TWiki::wikiPrefsTopicname | 3 | 2 | TWiki::Vars::Internal, TWiki::Prefs |
$TWiki::statsTopViews | 1 | 1 | TWiki::UI::Statistics |
$TWiki::mainTopicname | 6 | 6 | TWiki::Search, TWiki::Vars::Internal, TWiki::UI::Manage, TWiki::UI |
$TWiki::mimeTypesFilename | 1 | 1 | TWiki::UI::Viewfile |
$TWiki::htpasswdFilename | 8 | 1 | TWiki::User::HtPasswdUser |
@TWiki::Plugins::instPlugins | 0 | 6 | |
$TWiki::Plugins::DefaultPlugin::user | 0 | 91 | |
$TWiki::doLogTopicAttach | 1 | 1 | TWiki::UI::Upload |
@TWiki::Plugins::registrableHandlers | 0 | 3 | |
$TWiki::Plugins::InterwikiPlugin::mixedAlphaNum | 0 | 16 | |
@TWiki::storeSettings | 1 | 1 | TWiki::Store |
$TWiki::cgiQuery | 3 | 10 | TWiki::Vars::Internal |
$TWiki::storeTopicImpl | 2 | 1 | TWiki::Store |
$TWiki::statsTopContrib | 1 | 1 | TWiki::UI::Statistics |
%TWiki::regex | 14 | 67 | TWiki::Func, TWiki::Search, TWiki::UI::Statistics, TWiki::UI::Upload, TWiki::Store |
$TWiki::Plugins::InterwikiPlugin::topic | 0 | 3 | |
$TWiki::Plugins::VERSION | 56 | 2 | TWiki::Func, TWiki::Plugins::EmptyPlugin, TWiki::Plugins::DefaultPlugin, TWiki::Plugins::InterwikiPlugin |
$TWiki::doGetScriptUrlFromCgi | 0 | 2 | |
$TWiki::useUnicode | 0 | 0 | |
$TWiki::useLocale | 6 | 5 | TWiki::User::HtPasswdUser, TWiki::Search, TWiki::User::NoPasswdUser, TWiki::Store, TWiki::User, TWiki::Plugins::InterwikiPlugin |
$TWiki::debugSystemTime | 0 | 3 | |
$TWiki::doLogTopicView | 1 | 1 | TWiki::UI::View |
$TWiki::Plugins::EmptyPlugin::exampleCfgVar | 0 | 1 | |
$TWiki::UI::Manage::mainTopicname | 0 | 3 | |
$TWiki::Plugins::InterwikiPlugin::VERSION | 0 | 1 | |
$TWiki::endRcsCmd | 0 | 1 | |
$TWiki::wikiHomeUrl | 1 | 2 | TWiki::Vars::Internal |
$TWiki::scriptSuffix | 3 | 7 | TWiki::Vars::Internal, TWiki::Form |
$TWiki::scriptUrlPath | 4 | 6 | TWiki::Func, TWiki::UI::RDiff, TWiki::UI::View, TWiki::Form |
@TWiki::Access::processedGroups | 0 | 4 | |
$TWiki::localeRegexes | 0 | 2 | |
%TWiki::Access::allGroups | 0 | 6 | |
$TWiki::Plugins::EmptyPlugin::web | 0 | 3 | |
$TWiki::dispScriptUrlPath | 1 | 7 | TWiki::Vars::Internal |
$TWiki::fgrepCmd | 1 | 1 | TWiki::Search |
$TWiki::Prefs::finalPrefsName | 5 | 0 | TWiki::Prefs |
%TWiki::Plugins::onlyOnceHandlers | 0 | 2 | |
$TWiki::wikiUserName | 11 | 4 | TWiki::Func, TWiki::Search, TWiki::Vars::Internal, TWiki::Store |
$TWiki::doLogTopicEdit | 1 | 1 | TWiki::UI::Edit |
$TWiki::Plugins::DefaultPlugin::doOldInclude | 0 | 2 | |
$TWiki::Plugins::EmptyPlugin::pluginName | 0 | 16 | |
$TWiki::statisticsTopicname | 3 | 2 | TWiki::UI::Statistics, TWiki::Vars::Internal |
$TWiki::nullDev | 0 | 1 | |
$TWiki::wikiUsersTopicname | 2 | 2 | TWiki::Vars::Internal, TWiki::User |
%TWiki::Prefs::PrefsCache::topicCache | 0 | 4 | |
$TWiki::Plugins::InterwikiPlugin::prefixPattern | 0 | 2 | |
$TWiki::TranslationToken | 2 | 6 | TWiki::Search |
$TWiki::Plugins::EmptyPlugin::topic | 0 | 3 | |
$TWiki::remoteUserFilename | 0 | 3 | |
$TWiki::doRemovePortNumber | 0 | 2 | |
$TWiki::Plugins::EmptyPlugin::installWeb | 0 | 1 | |
@TWiki::Render::listElements | 0 | 7 | |
$TWiki::Prefs::requestPrefs | 0 | 5 | |
$TWiki::webPrefsTopicname | 4 | 2 | TWiki::Vars::Internal, TWiki::Prefs, TWiki::UI::Manage |
@TWiki::Plugins::disabledPlugins | 0 | 3 | |
$TWiki::Plugins::InterwikiPlugin::suppressTooltip | 0 | 2 | |
$TWiki::basicInitDone | 0 | 3 | |
$TWiki::doRemoveImgInMailnotify | 0 | 1 | |
$TWiki::keywordMode | 0 | 1 | |
$TWiki::templateDir | 4 | 1 | TWiki::Store, TWiki::UI::View, TWiki::UI::Oops |
$TWiki::Net::helloHost | 0 | 3 | |
%TWiki::Plugins::registeredHandlers | 0 | 5 | |
$TWiki::Prefs::requestWeb | 0 | 7 | |
$TWiki::doLogRename | 1 | 1 | TWiki::Store |
$TWiki::urlHost | 8 | 10 | TWiki::Func, TWiki::UI::RDiff, TWiki::Vars::Internal, TWiki::UI::Viewfile, TWiki::UI::View |
$TWiki::doMapUserToWikiName | 0 | 2 | |
$TWiki::Plugins::InterwikiPlugin::pagePattern | 0 | 3 | |
$TWiki::doLogTopicUpload | 1 | 1 | TWiki::UI::Upload |
$TWiki::viewScript | 0 | 3 | |
$TWiki::logDir | 0 | 1 | |
$TWiki::Plugins::InterwikiPlugin::interSiteLinkRulesTopicName | 0 | 2 | |
$TWiki::Plugins::EmptyPlugin::VERSION | 0 | 1 | |
$TWiki::lowerNational | 0 | 2 | |
$TWiki::Attach::noviewableAttachmentCount | 0 | 2 | |
@Algorithm::Diff::ISA | 0 | 3 | |
$TWiki::doPluralToSingular | 0 | 2 | |
$TWiki::Prefs::globalPrefs | 0 | 3 | |
$TWiki::lsCmd | 0 | 1 | |
$TWiki::Plugins::DefaultPlugin::renderingWeb | 0 | 2 | |
$TWiki::noSpamPadding | 2 | 1 | TWiki::Render |
$TWiki::Plugins::InterwikiPlugin::debug | 0 | 7 | |
$TWiki::uploadFilter | 1 | 1 | TWiki::UI::Upload |
$TWiki::disableAllPlugins | 1 | 3 | TWiki::Plugins |
$TWiki::Attach::viewableAttachmentCount | 0 | 3 | |
$TWiki::storeImpl | 0 | 0 | |
%TWiki::Store::templateVars | 0 | 6 | |
$TWiki::Plugins::InterwikiPlugin::postfixPattern | 0 | 2 | |
%TWiki::User::HtPasswdUser::templateVars | 0 | 0 | |
%TWiki::Plugins::InterwikiPlugin::interSiteTable | 0 | 3 | |
@Algorithm::Diff::EXPORT | 0 | 1 | |
$TWiki::doLogTopicSearch | 1 | 1 | TWiki::Search |
$TWiki::siteLang | 1 | 4 | TWiki::Vars::Internal |
$TWiki::Net::useNetSmtp | 0 | 3 | |
$TWiki::doLogTopicSave | 3 | 1 | TWiki::Store |
$TWiki::safeEnvPath | 0 | 3 | |
$TWiki::userListFilename | 0 | 2 | |
$TWiki::attachAsciiPath | 0 | 1 | |
%TWiki::User::templateVars | 0 | 1 | |
%TWiki::mon2num | 0 | 2 | |
$TWiki::defaultUrlHost | 0 | 2 | |
%TWiki::EXPORT_TAGS | 0 | 1 | |
$TWiki::Plugins::InterwikiPlugin::sitePattern | 0 | 5 | |
$TWiki::Render::newTopicBgColor | 0 | 2 | |
$TWiki::siteLocale | 0 | 9 | |
$Algorithm::Diff::VERSION | 1 | 1 | TWiki::Store::RcsLite |
$TWiki::siteWebTopicName | 0 | 3 | |
$TWiki::numberOfRevisions | 6 | 1 | TWiki::UI::RDiff, TWiki::UI::View |
$TWiki::OS | 4 | 1 | TWiki::Store::RcsWrap, TWiki::UI::Statistics, TWiki::UI::Upload |
$TWiki::wikiversion | 1 | 2 | TWiki::Vars::Internal |
$TWiki::upperNational | 0 | 2 | |
$TWiki::Plugins::DefaultPlugin::installWeb | 0 | 10 | |
$TWiki::siteCharsetOverride | 0 | 2 | |
$TWiki::doSecureInclude | 0 | 2 | |
@TWiki::publicWebList | 0 | 5 | |
$TWiki::Plugins::DefaultPlugin::debug | 0 | 21 | |
$TWiki::egrepCmd | 1 | 1 | TWiki::Search |
$TWiki::pubDir | 1 | 3 | TWiki |
$TWiki::logFilename | 2 | 1 | TWiki::UI::Statistics, TWiki::Store |
$TWiki::defaultUserName | 2 | 6 | TWiki::Func, TWiki::Store::RcsFile |
$TWiki::Plugins::initialisationErrors | 0 | 2 | |
$TWiki::webName | 25 | 27 | TWiki::Search, TWiki::Access, TWiki::Vars::Internal, TWiki, TWiki::Render, TWiki::Store |
$TWiki::script | 0 | 4 | |
$TWiki::displayTimeValues | 0 | 4 | |
$TWiki::Search::cacheRev1date | 0 | 2 | |
$TWiki::readTopicPermissionFailed | 6 | 1 | TWiki::UI::RDiff, TWiki::Store, TWiki::UI::View |
%TWiki::wikiToUserList | 0 | 3 | |
$TWiki::Vars::Parser::varChars | 0 | 3 | |
$TWiki::doDebugStatistics | 3 | 1 | TWiki::UI::Statistics |
$TWiki::superAdminGroup | 4 | 1 | TWiki::Access, TWiki::UI |
$TWiki::doLogTopicRdiff | 1 | 1 | TWiki::UI::RDiff |
$TWiki::Net::mailInitialized | 0 | 3 | |
$TWiki::doLogRegistration | 0 | 1 | |
$TWiki::wikiName | 2 | 13 | TWiki::Func, TWiki::Vars::Internal |
$TWiki::mainWebname | 20 | 8 | TWiki::Func, TWiki::UI::Edit, TWiki::Vars::Internal, TWiki::Prefs, TWiki::UI, TWiki::UI::Statistics, TWiki::Access, TWiki::User, TWiki::Form |
@TWiki::Render::listTypes | 0 | 11 | |
$TWiki::siteCharset | 1 | 20 | TWiki::Vars::Internal |
$TWiki::Net::mailHost | 0 | 5 | |
@Algorithm::Diff::EXPORT_OK | 0 | 1 | |
%TWiki::Prefs::webPrefs | 0 | 8 | |
@TWiki::weekDay | 0 | 3 | |
$TWiki::userName | 12 | 11 | TWiki::Vars::Internal, TWiki::Store::RcsFile, TWiki::Store |
$TWiki::doKeepRevIfEditLock | 1 | 1 | TWiki::Store |
$TWiki::includingTopicName | 1 | 4 | TWiki::Vars::Internal |
$TWiki::pubUrlPath | 3 | 8 | TWiki::Attach, TWiki::Vars::Internal |
$TWiki::formatVersion | 1 | 1 | TWiki::Store |
$TWiki::mailProgram | 2 | 1 | TWiki::Net |
$TWiki::twikiWebname | 10 | 3 | TWiki::Func, TWiki::Plugins, TWiki::Attach, TWiki::Vars::Internal, TWiki::Prefs, TWiki::Store |
@TWiki::EXPORT_OK | 0 | 1 | |
$TWiki::dataDir | 26 | 8 | TWiki::UI::Changes, TWiki::Search, TWiki, TWiki::Render, TWiki::UI::Manage, TWiki::Store |
$TWiki::includingWebName | 1 | 4 | TWiki::Vars::Internal |
$TWiki::Render::isList | 0 | 8 | |
%TWiki::userToWikiList | 0 | 3 | |
$TWiki::pageMode | 0 | 4 | |
@TWiki::Plugins::activePluginWebs | 0 | 4 | |
$TWiki::Plugins::InterwikiPlugin::installWeb | 0 | 3 | |
$TWiki::Plugins::InterwikiPlugin::upperAlpha | 0 | 18 | |
%TWiki::User::NoPasswdUser::templateVars | 0 | 0 | |
@TWiki::isoMonth | 3 | 5 | TWiki::UI::Edit, TWiki::UI::Statistics, TWiki::Store |
$TWiki::rcsArg | 0 | 1 | |
$TWiki::doLogTopicChanges | 1 | 1 | TWiki::UI::Changes |
$TWiki::Plugins::DefaultPlugin::web | 0 | 319 | |
$TWiki::Plugins::DefaultPlugin::VERSION | 0 | 1 | |
$TWiki::Plugins::InterwikiPlugin::user | 0 | 1 | |
$TWiki::Plugins::DefaultPlugin::pluginName | 0 | 17 | |
@TWiki::ISA | 0 | 1 | |
$TWiki::Render::newTopicFontColor | 0 | 2 | |
@TWiki::Plugins::activePluginTopics | 0 | 8 | |
$TWiki::debugFilename | 0 | 3 | |
$TWiki::Plugins::DefaultPlugin::topic | 0 | 343 | |
$TWiki::Search::cacheRev1user | 0 | 4 | |
$TWiki::notifyTopicname | 1 | 3 | TWiki::Vars::Internal |
$TWiki::editLockTime | 8 | 1 | TWiki::Func, TWiki::UI::Edit, TWiki::UI::Manage, TWiki::Store |
$TWiki::securityFilter | 11 | 8 | TWiki::Search, TWiki::Store::RcsWrap, TWiki::UI::Manage, TWiki::Store |
$TWiki::debugUserTime | 0 | 4 | |
$TWiki::cmdQuote | 2 | 1 | TWiki::Search |
$TWiki::warningFilename | 1 | 4 | TWiki::Store::RcsWrap |
$TWiki::User::UserImpl | 0 | 5 | |
$TWiki::topicName | 9 | 23 | TWiki::Search, TWiki::Vars::Internal, TWiki::Render, TWiki::Prefs, TWiki::Store |
$TWiki::siteFullLang | 1 | 3 | TWiki::Vars::Internal |
$TWiki::doSuperAdminGroup | 1 | 1 | TWiki::Access |
$TWiki::rcsDir | 0 | 1 | |
$TWiki::doHidePasswdInRegistration | 0 | 1 | |
$TWiki::doRememberRemoteUser | 0 | 4 | |
$TWiki::twikiLibDir | 0 | 11 | |
$TWiki::Search::cacheRev1webTopic | 0 | 3 | |
$TWiki::Render::linkToolTipInfo | 0 | 9 | |
$TWiki::Render::noAutoLink | 0 | 11 | |
thanks. thats an interesting list! --
Session-specific globals are now held in a single TWiki "session" object. This topic is therefore redundant.
.