From d49ce2e5bef8e3800b2ea055bbc31b70863e6929 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Wed, 27 Jan 2021 17:11:40 +0100 Subject: [PATCH] added apache-mode --- .../apache-mode-autoloads.el | 37 + .../apache-mode-pkg.el | 2 + elpa/apache-mode-20190711.1111/apache-mode.el | 1208 +++++++++++++++++ 3 files changed, 1247 insertions(+) create mode 100644 elpa/apache-mode-20190711.1111/apache-mode-autoloads.el create mode 100644 elpa/apache-mode-20190711.1111/apache-mode-pkg.el create mode 100644 elpa/apache-mode-20190711.1111/apache-mode.el diff --git a/elpa/apache-mode-20190711.1111/apache-mode-autoloads.el b/elpa/apache-mode-20190711.1111/apache-mode-autoloads.el new file mode 100644 index 00000000..0ddddbda --- /dev/null +++ b/elpa/apache-mode-20190711.1111/apache-mode-autoloads.el @@ -0,0 +1,37 @@ +;;; apache-mode-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + +(add-to-list 'load-path (directory-file-name + (or (file-name-directory #$) (car load-path)))) + + +;;;### (autoloads nil "apache-mode" "apache-mode.el" (0 0 0 0)) +;;; Generated autoloads from apache-mode.el + +(autoload 'apache-mode "apache-mode" "\ +Major mode for editing Apache configuration files. + +\(fn)" t nil) + +(add-to-list 'auto-mode-alist '("/\\.htaccess\\'" . apache-mode)) + +(add-to-list 'auto-mode-alist '("/\\(?:access\\|httpd\\|srm\\)\\.conf\\'" . apache-mode)) + +(add-to-list 'auto-mode-alist '("/apache2/.+\\.conf\\'" . apache-mode)) + +(add-to-list 'auto-mode-alist '("/httpd/conf/.+\\.conf\\'" . apache-mode)) + +(add-to-list 'auto-mode-alist '("/apache2/sites-\\(?:available\\|enabled\\)/" . apache-mode)) + +(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "apache-mode" '("apache-"))) + +;;;*** + +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; apache-mode-autoloads.el ends here diff --git a/elpa/apache-mode-20190711.1111/apache-mode-pkg.el b/elpa/apache-mode-20190711.1111/apache-mode-pkg.el new file mode 100644 index 00000000..63896527 --- /dev/null +++ b/elpa/apache-mode-20190711.1111/apache-mode-pkg.el @@ -0,0 +1,2 @@ +;;; Generated package description from /Users/andreas/.emacs.d/elpa/apache-mode-20190711.1111/apache-mode.el -*- no-byte-compile: t -*- +(define-package "apache-mode" "20190711.1111" "Major mode for editing Apache httpd configuration files" 'nil :commit "a66dc1f246cd4ce0960773989bc43188f0394948" :authors '(("Karl Chen" . "quarl@nospam.quarl.org")) :maintainer '("USAMI Kenta" . "tadsan@zonu.me") :keywords '("languages" "faces") :url "https://github.com/emacs-php/apache-mode") diff --git a/elpa/apache-mode-20190711.1111/apache-mode.el b/elpa/apache-mode-20190711.1111/apache-mode.el new file mode 100644 index 00000000..8e975440 --- /dev/null +++ b/elpa/apache-mode-20190711.1111/apache-mode.el @@ -0,0 +1,1208 @@ +;;; apache-mode.el --- Major mode for editing Apache httpd configuration files + +;; Copyright (c) 2004, 2005 Karl Chen +;; Copyright (c) 1999 Jonathan Marten + +;; Author: Karl Chen +;; Maintainer: USAMI Kenta +;; Homepage: https://github.com/emacs-php/apache-mode +;; License: GPL-2.0-or-later +;; Keywords: languages, faces +;; Package-Version: 20190711.1111 +;; Package-Commit: a66dc1f246cd4ce0960773989bc43188f0394948 +;; Version: 2.2.0 + +;; apache-mode.el is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by the Free +;; Software Foundation; either version 2, or (at your option) any later +;; version. +;; +;; It is distributed in the hope that it will be useful, but WITHOUT ANY +;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +;; details. +;; +;; You should have received a copy of the GNU General Public License along +;; with your copy of Emacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Commentary: +;; +;; apache-mode is a major mode for editing Apache HTTP Server Configuration files. +;; https://httpd.apache.org/docs/2.4/en/configuring.html +;; +;; This mode supports Apache HTTP Server 2.4 and major modules. + +;;; History: +;; +;; 1999-10 Jonathan Marten +;; initial version +;; +;; 2004-09-12 Karl Chen +;; rewrote pretty much everything using define-derived-mode; added support +;; for Apache 2.x; fixed highlighting in GNU Emacs; created indentation +;; function +;; +;; 2005-06-29 Kumar Appaiah +;; use syntax table instead of font-lock-keywords to highlight comments. +;; +;; 2015-08-23 David Maus +;; update list of directives for Apache 2.4 +;; +;; 2018-07-23 USAMI Kenta +;; more update list of directives for Apache 2.4 +;; + +;;; Code: + +;; Requires +(require 'regexp-opt) + +(defvar apache-indent-level 4 + "*Number of spaces to indent per level.") + +(defvar apache-mode-syntax-table + (let ((table (make-syntax-table))) + (modify-syntax-entry ?_ "_" table) + (modify-syntax-entry ?- "_" table) + (modify-syntax-entry ?\( "()" table) + (modify-syntax-entry ?\) ")(" table) + (modify-syntax-entry ?< "(>" table) + (modify-syntax-entry ?> ")<" table) + (modify-syntax-entry ?\" "\"" table) + (modify-syntax-entry ?, "." table) + (modify-syntax-entry ?# "<" table) + (modify-syntax-entry ?\n ">#" table) + table)) + +;;;###autoload +(define-derived-mode apache-mode fundamental-mode "Apache" + "Major mode for editing Apache configuration files." + + (set (make-local-variable 'comment-start) "# ") + (set (make-local-variable 'comment-start-skip) "#\\W*") + (set (make-local-variable 'comment-column) 48) + + (set (make-local-variable 'indent-line-function) 'apache-indent-line) + + (set (make-local-variable 'font-lock-defaults) + '(apache-font-lock-keywords nil t + ((?_ . "w") + (?- . "w")) + beginning-of-line))) + +;; Font lock +(defconst apache-font-lock-keywords + (purecopy + (list + + ;; see syntax table for comment highlighting + + ;; (list "^[ \t]*#.*" 0 'font-lock-comment-face t) + + (list (concat ; sections + "^[ \t]*") + 1 'font-lock-function-name-face) + + (list (concat ; directives + "^[ \t]*" + (regexp-opt + '("AcceptFilter" ; core + "AcceptMutex" + "AcceptPathInfo" + "AccessConfig" + "AccessFileName" + "AddDefaultCharset" + "AddModule" + "AllowEncodedSlashes" + "AllowOverride" + "AllowOverrideList" + "AuthName" + "AuthType" + "BindAddress" + "BS2000Account" + "CGIMapExtension" + "CGIPassAuth" + "ClearModuleList" + "ContentDigest" + "CoreDumpDirectory" + "DefaultRuntimeDir" + "DefaultType" + "Define" + "DocumentRoot" + "EBCDICConvert" + "EBCDICConvertByType" + "EBCDICKludge" + "EnableMMAP" + "EnableSendfile" + "Error" + "ErrorDocument" + "ErrorLog" + "ErrorLogFormat" + "FileETag" + "ForceType" + "GprofDir" + "Group" + "HostnameLookups" + "IdentityCheck" + "Include" + "IncludeOptional" + "KeepAlive" + "KeepAliveTimeout" + "LimitInternalRecursion" + "LimitRequestBody" + "LimitRequestFields" + "LimitRequestFieldsize" + "LimitRequestLine" + "LimitXMLRequestBody" + "Listen" + "ListenBacklog" + "LockFile" + "LogLevel" + "MaxClients" + "MaxKeepAliveRequests" + "MaxRangeOverlaps" + "MaxRangeReversals" + "MaxRanges" + "MaxRequestsPerChild" + "MaxSpareServers" + "MergeTrailers" + "MinSpareServers" + "Mutex" + "NameVirtualHost" + "Options" + "PidFile" + "Port" + "Protocol" + "Require" + "ResourceConfig" + "RLimitCPU" + "RLimitMEM" + "RLimitNPROC" + "Satisfy" + "ScoreBoardFile" + "ScriptInterpreterSource" + "SeeRequestTail" + "SendBufferSize" + "ServerAdmin" + "ServerAlias" + "ServerName" + "ServerPath" + "ServerRoot" + "ServerSignature" + "ServerTokens" + "ServerType" + "SetHandler" + "SetInputFilter" + "SetOutputFilter" + "StartServers" + "ThreadsPerChild" + "ThreadStackSize" + "TimeOut" + "TraceEnable" + "UnDefine" + "UseCanonicalName" + "UseCanonicalPhysicalPort" + "User" + "AuthLDAPAuthorizePrefix" ; mod_ authnz_ldap + "AuthLDAPBindAuthoritative" + "AuthLDAPCharsetConfig" + "AuthLDAPCompareAsUser" + "AuthLDAPInitialBindAsUser" + "AuthLDAPInitialBindPattern" + "AuthLDAPMaxSubGroupDepth" + "AuthLDAPRemoteUserAttribute" + "AuthLDAPSearchAsUser" + "AuthLDAPSubGroupAttribute" + "AuthLDAPSubGroupClass" + "Allow" ; mod_access + "Deny" + "Order" + "Action" ; mod_actions + "Script" + "Alias" ; mod_alias + "AliasMatch" + "Redirect" + "RedirectMatch" + "RedirectPermanent" + "RedirectTemp" + "ScriptAlias" + "ScriptAliasMatch" + "AllowMethods" ; mod_allowmethods + "AuthAuthoritative" ; mod_auth + "AuthUserFile" + "AuthGroupFile" + "Anonymous" ; mod_auth_anon + "Anonymous_Authoritative" + "Anonymous_LogEmail" + "Anonymous_MustGiveEmail" + "Anonymous_NoUserID" + "Anonymous_VerifyEmail" + "AuthBasicAuthoritative" ; mod_auth_basic + "AuthBasicFake" + "AuthBasicProvider" + "AuthBasicUseDigestAlgorithm" + "AuthDBAuthoritative" ; mod_auth_db + "AuthDBGroupFile" + "AuthDBUserFile" + "AuthDBMAuthoritative" ; mod_auth_dbm + "AuthDBMGroupFile" + "AuthDBMType" + "AuthDBMUserFile" + "AuthDigestAlgorithm" ; mod_auth_digest + "AuthDigestDomain" + "AuthDigestFile" + "AuthDigestGroupFile" + "AuthDigestNcCheck" + "AuthDigestNonceFormat" + "AuthDigestNonceLifetime" + "AuthDigestProvider" + "AuthDigestQop" + "AuthDigestShmemSize" + "AuthFormAuthoritative" ; mod_auth_form + "AuthFormBody" + "AuthFormDisableNoStore" + "AuthFormFakeBasicAuth" + "AuthFormLocation" + "AuthFormLoginRequiredLocation" + "AuthFormLoginSuccessLocation" + "AuthFormLogoutLocation" + "AuthFormMethod" + "AuthFormMimetype" + "AuthFormPassword" + "AuthFormProvider" + "AuthFormSitePassphrase" + "AuthFormSize" + "AuthFormUsername" + "AuthLDAPAuthoritative" ; mod_auth_ldap + "AuthLDAPBindDN" + "AuthLDAPBindPassword" + "AuthLDAPCompareDNOnServer" + "AuthLDAPDereferenceAliases" + "AuthLDAPEnabled" + "AuthLDAPFrontPageHack" + "AuthLDAPGroupAttribute" + "AuthLDAPGroupAttributeIsDN" + "AuthLDAPRemoteUserIsDN" + "AuthLDAPStartTLS" + "AuthLDAPUrl" + "AuthDBDUserPWQuery" ; mod_authn_dbd + "AuthDBDUserRealmQuery" + "AuthnCacheContext" ; mod_authn_socache + "AuthnCacheEnable" + "AuthnCacheProvideFor" + "AuthnCacheSOCache" + "AuthnCacheTimeout" + "AuthnzFcgiCheckAuthnProvider" ; mod_authnz_fgci + "AuthnzFcgiDefineProvider" + "AuthMerging" ; mod_authz_core + "AuthzSendForbiddenOnFailure" + "AuthzDBDLoginToReferer" ; mod_authz_dbd + "AuthzDBDQuery" + "AuthzDBDRedirectQuery" + "AuthzDBMType" + "AddAlt" ; mod_autoindex + "AddAltByEncoding" + "AddAltByType" + "AddDescription" + "AddIcon" + "AddIconByEncoding" + "AddIconByType" + "DefaultIcon" + "FancyIndexing" + "HeaderName" + "IndexHeadInsert" + "IndexIgnore" + "IndexIgnoreReset" + "IndexOptions" + "IndexOrderDefault" + "IndexStyleSheet" + "ReadmeName" + "BrowserMatch" ; mod_browser + "BrowserMatchNoCase" + "BufferSize" ; mod_buffer + "CacheDefaultExpire" ; mod_cache + "CacheDetailHeader" + "CacheDisable" + "CacheEnable" + "CacheHeader" + "CacheIgnoreCacheControl" + "CacheIgnoreHeaders" + "CacheIgnoreNoLastMod" + "CacheIgnoreQueryString" + "CacheIgnoreURLSessionIdentifiers" + "CacheKeyBaseURL" + "CacheLastModifiedFactor" + "CacheLock" + "CacheLockMaxAge" + "CacheLockPath" + "CacheMaxExpire" + "CacheMaxFileSize" + "CacheMinExpire" + "CacheMinFileSize" + "CacheOn" + "CacheQuickHandler" + "CacheStaleOnError" + "CacheStoreExpired" + "CacheStoreNoStore" + "CacheStorePrivate" + "CacheReadSize" ; mod_cache_disk + "CacheReadTime" + "CacheSocache" ; mod_cache_socache + "CacheSocacheMaxSize" + "CacheSocacheMaxTime" + "CacheSocacheMinTime" + "CacheSocacheReadSize" + "CacheSocacheReadTime" + "MetaDir" ; mod_cern_meta + "MetaFiles" + "MetaSuffix" + "ScriptLog" ; mod_cgi + "ScriptLogBuffer" + "ScriptLogLength" + "CGIDScriptTimeout" ; mod_cgid + "ScriptLog" + "ScriptLogBuffer" + "ScriptLogLength" + "ScriptSock" + "CharsetDefault" ; mod_charset_lite + "CharsetOptions" + "CharsetSourceEnc" + "CookieLog" ; mod_cookies + "Dav" ; mod_dav + "DavDepthInfinity" + "DavLockDB" + "DavMinTimeout" + "DavGenericLockDB" ; mod_dav_lock + "DBDExptime" ; mod_dbd + "DBDInitSQL" + "DBDKeep" + "DBDMax" + "DBDMin" + "DBDParams" + "DBDPersist" + "DBDPrepareSQL" + "DBDriver" + "DeflateBufferSize" ; mod_deflate + "DeflateCompressionLevel" + "DeflateFilterNote" + "DeflateInflateLimitRequestBody" + "DeflateInflateRatioBurst" + "DeflateInflateRatioLimit" + "DeflateMemLevel" + "DeflateWindowSize" + "ModemStandard" ; mod_dialup + "AuthDigestFile" ; mod_digest + "DirectoryCheckHandler" ; mod_dir + "DirectoryIndex" + "DirectoryIndexRedirect" + "DirectorySlash" + "FallbackResource" + "LoadFile" ; mod_dld + "LoadModule" + "DumpIOInput" ; mod_dumpio + "DumpIOOutput" + "ProtocolEcho" ; mod_echo + "PassEnv" ; mod_env + "SetEnv" + "UnsetEnv" + "AsyncRequestWorkerFactor" ; mod_event + "Example" ; mod_example + "ExpiresActive" ; mod_expires + "ExpiresByType" + "ExpiresDefault" + "ExtFilterDefine" ; mod_ext_filter + "ExtFilterOptions" + "CacheFile" ; mod_file_cache + "MMapFile" + "AddOutputFilterByType" ; mod_filter + "FilterChain" + "FilterDeclare" + "FilterProtocol" + "FilterProvider" + "FilterTrace" + "Header" ; mod_headers + "RequestHeader" + "HeartbeatAddress" ; mod_heartbeat + "HeartbeatListen" + "HeartbeatMaxServers" + "HeartbeatStorage" + "IdentityCheckTimeout" ; mod_ident + "ImapBase" ; mod_imap + "ImapDefault" + "ImapMenu" + "SSIEndTag" ; mod_include + "SSIErrorMsg" + "SSIETag" + "SSILastModified" + "SSILegacyExprParser" + "SSIStartTag" + "SSITimeFormat" + "SSIUndefinedEcho" + "XBitHack" + "AddModuleInfo" ; mod_info + "ISAPICacheFile" ; mod_isapi + "ISAPIFakeAsync" + "ISAPIFileCache" + "ISAPIAppendLogToErrors" ; mod_isapi (Win32) + "ISAPIAppendLogToQuery" + "ISAPILogNotSupported" + "ISAPIReadAheadBuffer" + "LDAPCacheEntries" ; mod_ldap + "LDAPCacheTTL" + "LDAPCertDBPath" + "LDAPConnectionPoolTTL" + "LDAPConnectionTimeout" + "LDAPLibraryDebug" + "LDAPOpCacheEntries" + "LDAPOpCacheTTL" + "LDAPReferralHopLimit" + "LDAPReferrals" + "LDAPRetries" + "LDAPRetryDelay" + "LDAPSharedCacheFile" + "LDAPSharedCacheSize" + "LDAPTimeout" + "LDAPTrustedClientCert" + "LDAPTrustedGlobalCert" + "LDAPTrustedMode" + "LDAPVerifyServerCert" + "AgentLog" ; mod_log_agent + "TransferLog" ; mod_log_common + "BufferedLogs" ; mod_log_config + "CookieLog" + "CustomLog" + "LogFormat" + "TransferLog" + "LogMessage" ; mod_log_debug + "ForensicLog" ; mod_log_forensic + "RefererIgnore" ; mod_log_referer + "RefererLog" + "LogIOTrackTTFB" ; mod_logio + "LuaAuthzProvider" ; mod_lua + "LuaCodeCache" + "LuaHookAccessChecker" + "LuaHookAuthChecker" + "LuaHookCheckUserID" + "LuaHookFixups" + "LuaHookInsertFilter" + "LuaHookLog" + "LuaHookMapToStorage" + "LuaHookTranslateName" + "LuaHookTypeChecker" + "LuaInherit" + "LuaInputFilter" + "LuaMapHandler" + "LuaOutputFilter" + "LuaPackageCPath" + "LuaPackagePath" + "LuaQuickHandler" + "LuaRoot" + "LuaScope" + "UndefMacro" ; mod_macro + "Use" + "AddCharset" ; mod_mime + "AddEncoding" + "AddHandler" + "AddInputFilter" + "AddLanguage" + "AddOutputFilter" + "AddType" + "DefaultLanguage" + "ForceType" + "ModMimeUsePathInfo" + "MultiviewsMatch" + "RemoveCharset" + "RemoveEncoding" + "RemoveHandler" + "RemoveInputFilter" + "RemoveLanguage" + "RemoveOutputFilter" + "RemoveType" + "SetHandler" + "TypesConfig" + "MimeMagicFile" ; mod_mime_magic + "MMapFile" ; mod_mmap_static + "CacheNegotiatedDocs" ; mod_negotiation + "ForceLanguagePriority" + "LanguagePriority" + "NWSSLTrustedCerts" ; mod_nw_ssl + "NWSSLUpgradeable" + "SecureListen" + "PerlDispatchHandler" ; mod_perl 1 + "PerlFreshRestart" + "PerlHandler" + "PerlOpmask" + "PerlRestartHandler" + "PerlScript" + "PerlSendHeader" + "PerlSetupEnv" + "PerlTaintCheck" + "PerlTransHandler" + "PerlWarn" + "PerlAccessHandler" ; mod_perl 1+2 + "PerlAddVar" + "PerlAuthenHandler" + "PerlAuthzHandler" + "PerlChildExitHandler" + "PerlChildInitHandler" + "PerlCleanupHandler" + "PerlFixupHandler" + "PerlHeaderParserHandler" + "PerlInitHandler" + "PerlLogHandler" + "PerlModule" + "PerlPassEnv" + "PerlPostReadRequestHandler" + "PerlRequire" + "PerlSetEnv" + "PerlSetVar" + "PerlTypeHandler" + "PerlInputFilterHandler" ; mod_perl 2 + "PerlInterpMax" + "PerlInterpMaxRequests" + "PerlInterpMaxSpare" + "PerlInterpMinSpare" + "PerlInterpScope" + "PerlInterpStart" + "PerlLoadModule" + "PerlOpenLogsHandler" + "PerlOptions" + "PerlOutputFilterHandler" + "PerlPostConfigHandler" + "PerlPreConnectionHandler" + "PerlProcessConnectionHandler" + "PerlResponseHandler" + "PerlSetInputFilter" + "PerlSetOutputFilter" + "PerlSwitches" + "PerlTrace" + "DTracePrivileges" ; mod_privileges + "PrivilegesMode" + "VHostCGIMode" + "VHostCGIPrivs" + "VHostGroup" + "VHostPrivs" + "VHostSecure" + "VHostUser" + "AllowCONNECT" ; mod_proxy + "BalancerGrowth" + "BalancerInherit" + "BalancerMember" + "BalancerPersist" + "CacheDefaultExpire" + "CacheDirLength" + "CacheDirLevels" + "CacheForceCompletion" + "CacheGcInterval" + "CacheLastModifiedFactor" + "CacheMaxExpire" + "CacheRoot" + "CacheSize" + "NoCache" + "NoProxy" + "ProxyAddHeaders" + "ProxyBadHeader" + "ProxyBlock" + "ProxyDomain" + "ProxyErrorOverride" + "ProxyHTMLURLMap" + "ProxyIOBufferSize" + "ProxyMaxForwards" + "ProxyPass" + "ProxyPassInherit" + "ProxyPassInterpolateEnv" + "ProxyPassMatch" + "ProxyPassReverse" + "ProxyPassReverseCookieDomain" + "ProxyPassReverseCookiePath" + "ProxyPreserveHost" + "ProxyReceiveBufferSize" + "ProxyRemote" + "ProxyRemoteMatch" + "ProxyRequests" + "ProxySet" + "ProxySourceAddress" + "ProxyStatus" + "ProxyTimeout" + "ProxyVia" + "ProxyExpressDBMFile" ; mod_proxy_express + "ProxyExpressDBMType" + "ProxyExpressEnable" + "ProxyFtpDirCharset" ; mod_proxy_ftp + "ProxyFtpEscapeWildcards" + "ProxyFtpListOnWildcard" + "ProxyHTMLBufSize" ; mod_proxy_html + "ProxyHTMLCharsetOut" + "ProxyHTMLDocType" + "ProxyHTMLEnable" + "ProxyHTMLEvents" + "ProxyHTMLExtended" + "ProxyHTMLFixups" + "ProxyHTMLInterp" + "ProxyHTMLLinks" + "ProxyHTMLMeta" + "ProxyHTMLStripComments" + "ProxySCGIInternalRedirect" ; mod_proxy_scgi + "ProxySCGISendfile" + "PythonAccessHandler" ; mod_python + "PythonAuthenHandler" + "PythonAuthzHandler" + "PythonAutoReload" + "PythonCleanupHandler" + "PythonConnectionHandler" + "PythonDebug" + "PythonEnablePdb" + "PythonFixupHandler" + "PythonHandler" + "PythonHandlerModule" + "PythonHeaderParserHandler" + "PythonImport" + "PythonInitHandler" + "PythonInputFilter" + "PythonInterpPerDirective" + "PythonInterpPerDirectory" + "PythonInterpreter" + "PythonLogHandler" + "PythonOptimize" + "PythonOption" + "PythonOutputFilter" + "PythonPath" + "PythonPostReadRequestHandler" + "PythonTransHandler" + "PythonTypeHandler" + "ReflectorHeader" ; mod_reflector + "RemoteIPHeader" ; mod_remoteip + "RemoteIPInternalProxy" + "RemoteIPInternalProxyList" + "RemoteIPProxiesHeader" + "RemoteIPTrustedProxy" + "RemoteIPTrustedProxyList" + "RequestReadTimeout" ; mod_reqtimeout + "KeptBodySize" ; mod_request + "RewriteBase" ; mod_rewrite + "RewriteCond" + "RewriteEngine" + "RewriteLock" + "RewriteLog" + "RewriteLogLevel" + "RewriteMap" + "RewriteOptions" + "RewriteRule" + "InputSed" ; mod_sed + "OutputSed" + "Session" ; mod_session + "SessionEnv" + "SessionExclude" + "SessionHeader" + "SessionInclude" + "SessionMaxAge" + "SessionCookieName" ; mod_session_cookie + "SessionCookieName2" + "SessionCookieRemove" + "SessionCryptoCipher" ; mod_session_crypto + "SessionCryptoDriver" + "SessionCryptoPassphrase" + "SessionCryptoPassphraseFile" + "SessionDBDCookieName" ; mod_session_dbd + "SessionDBDCookieName2" + "SessionDBDCookieRemove" + "SessionDBDDeleteLabel" + "SessionDBDInsertLabel" + "SessionDBDPerUser" + "SessionDBDSelectLabel" + "SessionDBDUpdateLabel" + "BrowserMatch" ; mod_setenvif + "BrowserMatchNoCase" + "SetEnvIf" + "SetEnvIfExpr" + "SetEnvIfNoCase" + "LoadFile" ; mod_so + "LoadModule" + "CheckCaseOnly" ; mod_speling + "CheckSpelling" + "SSLBanCipher" ; mod_ssl + "SSLCACertificateFile" + "SSLCACertificatePath" + "SSLCacheServerPath" + "SSLCacheServerPort" + "SSLCacheServerRunDir" + "SSLCADNRequestFile" + "SSLCADNRequestPath" + "SSLCARevocationCheck" + "SSLCARevocationFile" + "SSLCARevocationPath" + "SSLCertificateChainFile" + "SSLCertificateFile" + "SSLCertificateKeyFile" + "SSLCheckClientDN" + "SSLCipherSuite" + "SSLCompression" + "SSLCryptoDevice" + "SSLDenySSL" + "SSLDisable" + "SSLEnable" + "SSLEngine" + "SSLEngineID" + "SSLExportClientCertificates" + "SSLFakeBasicAuth" + "SSLFIPS" + "SSLHonorCipherOrder" + "SSLInsecureRenegotiation" + "SSLKeyNoteTrustedAssertion" + "SSLKeyNoteTrustedIssuerTemplate" + "SSLLog" + "SSLLogLevel" + "SSLMutex" + "SSLNoCAList" + "SSLOCSPDefaultResponder" + "SSLOCSPEnable" + "SSLOCSPOverrideResponder" + "SSLOCSPResponderTimeout" + "SSLOCSPResponseMaxAge" + "SSLOCSPResponseTimeSkew" + "SSLOCSPUseRequestNonce" + "SSLOpenSSLConfCmd" + "SSLOptions" + "SSLPassPhraseDialog" + "SSLProtocol" + "SSLProxyCACertificateFile" + "SSLProxyCACertificatePath" + "SSLProxyCARevocationCheck" + "SSLProxyCARevocationFile" + "SSLProxyCARevocationPath" + "SSLProxyCheckPeerCN" + "SSLProxyCheckPeerExpire" + "SSLProxyCheckPeerName" + "SSLProxyCipherSuite" + "SSLProxyEngine" + "SSLProxyMachineCertificateChainFile" + "SSLProxyMachineCertificateFile" + "SSLProxyMachineCertificatePath" + "SSLProxyProtocol" + "SSLProxyVerify" + "SSLProxyVerifyDepth" + "SSLRandomFile" + "SSLRandomFilePerConnection" + "SSLRandomSeed" + "SSLRenegBufferSize" + "SSLRequire" + "SSLRequireCipher" + "SSLRequiredCiphers" + "SSLRequireSSL" + "SSLSessionCache" + "SSLSessionCacheTimeout" + "SSLSessionTicketKeyFile" + "SSLSessionTickets" + "SSLSRPUnknownUserSeed" + "SSLSRPVerifierFile" + "SSLStaplingCache" + "SSLStaplingErrorCacheTimeout" + "SSLStaplingFakeTryLater" + "SSLStaplingForceURL" + "SSLStaplingResponderTimeout" + "SSLStaplingResponseMaxAge" + "SSLStaplingResponseTimeSkew" + "SSLStaplingReturnResponderErrors" + "SSLStaplingStandardCacheTimeout" + "SSLStrictSNIVHostCheck" + "SSLUserName" + "SSLUseStapling" + "SSLVerifyClient" + "SSLVerifyDepth" + "ExtendedStatus" ; mod_status + "Substitute" ; mod_substitute + "SubstituteMaxLineLength" + "SuexecUserGroup" ; mod_suexec + "ChrootDir" ; mod_unixd + "Suexec" + "UserDir" ; mod_userdir + "CookieDomain" ; mod_usertrack + "CookieExpires" + "CookieName" + "CookieStyle" + "CookieTracking" + "VirtualDocumentRoot" ; mod_vhost_alias + "VirtualDocumentRootIP" + "VirtualScriptAlias" + "VirtualScriptAliasIP" + "WatchdogInterval" ; mod_watchdog + "xml2EncAlias" ; mod_xml2enc + "xml2EncDefault" + "xml2StartParse" + "CoreDumpDirectory" ; mpm_common + "EnableExceptionHook" + "GracefulShutdownTimeout" + "Group" + "Listen" + "ListenBackLog" + "LockFile" + "MaxClients" + "MaxConnectionsPerChild" + "MaxMemFree" + "MaxRequestsPerChild" + "MaxRequestWorkers" + "MaxSpareThreads" + "MaxThreadsPerChild" + "MinSpareThreads" + "NumServers" + "PidFile" + "ReceiveBufferSize" + "ScoreBoardFile" + "SendBufferSize" + "ServerLimit" + "StartServers" + "StartThreads" + "ThreadLimit" + "ThreadsPerChild" + "User" + "MaxClientsVHost" ; mpm_itk + "Listen" ; mpm_netware + "ListenBacklog" + "MaxRequestsPerChild" + "MaxSpareThreads" + "MaxThreads" + "MinSpareThreads" + "SendBufferSize" + "StartThreads" + "ThreadStackSize" + "AssignUserId" ; mpm_perchild + "ChildPerUserId" + "CoreDumpDirectory" + "Group" + "Listen" + "ListenBacklog" + "LockFile" + "MaxRequestsPerChild" + "MaxSpareThreads" + "MaxThreadsPerChild" + "MinSpareThreads" + "NumServers" + "PidFile" + "ScoreBoardFile" + "SendBufferSize" + "StartThreads" + "User" + "ServerEnvironment" ; mpm_peruser + "AcceptMutex" ; mpm_prefork + "CoreDumpDirectory" + "Listen" + "ListenBacklog" + "LockFile" + "MaxRequestsPerChild" + "PidFile" + "ScoreBoardFile" + "SendBufferSize" + "ServerLimit" + "StartServers" + "User" + "CoreDumpDirectory" ; mpm_winnt + "Listen" + "ListenBacklog" + "MaxRequestsPerChild" + "PidFile" + "SendBufferSize" + "ThreadsPerChild" + "CoreDumpDirectory" ; mpm_worker + "Group" + "Listen" + "ListenBacklog" + "LockFile" + "MaxClients" + "MaxRequestsPerChild" + "MaxSpareThreads" + "MinSpareThreads" + "PidFile" + "ScoreBoardFile" + "SendBufferSize" + "ServerLimit" + "StartServers" + "ThreadLimit" + "ThreadsPerChild" + "User" + "DefaultMode" ; (obsolete) + "DocTitle" + "DocTrailer" + "HeadPrefix" + "HeadSuffix" + "HideSys" + "HideURL" + "HTMLDir" + "HTTPLogFile" + "LastURLs" + "PrivateDir" + "TopSites" + "TopURLs" + ) + 'words)) + 1 'font-lock-keyword-face) + + (list ; values + (regexp-opt + '( + "add" ; (general) + "All" + "allow" + "any" + "append" + "AuthConfig" + "Basic" + "CONNECT" + "default" + "DELETE" + "deny" + "Digest" + "double" + "downgrade-1.0" + "email" + "env" + "error" + "ExecCGI" + "FancyIndexing" + "fcntl" + "FileInfo" + "flock" + "FollowSymLinks" + "force-response-1.0" + "formatted" + "from" + "full" + "GET" + "gone" + "group" + "IconsAreLinks" + "Includes" + "IncludesNOEXEC" + "Indexes" + "inetd" + "inherit" + "INode" + "Limit" + "map" + "Minimal" + "MTime" + "MultiViews" + "mutual-failure" + "nocontent" + "nokeepalive" + "none" + "off" + "on" + "Options" + "OS" + "os2sem" + "permanent" + "POST" + "pthread" + "PUT" + "referer" + "ScanHTMLTitles" + "seeother" + "semi-formatted" + "set" + "standalone" + "SuppressDescription" + "SuppressLastModified" + "SuppressSize" + "SymLinksIfOwnerMatch" + "sysvsem" + "temp" + "tpfcore" + "unformatted" + "unset" + "URL" + "user" + "uslock" + "valid-user" + "3DES" ; cipher stuff + "ADH" + "ADH-DES-CBC-SHA" + "ADH-DES-CBC3-SHA" + "ADH-RC4-MD" + "ADH-RC4-MD5" + "aDSS" + "aNULL" + "aRSA" + "DES" + "DES-CBC-MD5" + "DES-CBC-SHA" + "DES-CBC3-MD5" + "DES-CBC3-SHA" + "DES-CFB-M1" + "DH" + "DH-DSS-DES-CBC-SHA" + "DH-DSS-DES-CBC3-SHA" + "DH-RSA-DES-CBC-SHA" + "DH-RSA-DES-CBC3-SHA" + "DSS" + "EDH" + "EDH-DSS-DES-CBC-SHA" + "EDH-DSS-DES-CBC3-SHA" + "EDH-RSA-DES-CBC-SHA" + "EDH-RSA-DES-CBC3-SHA" + "egd" + "eNULL" + "EXP" + "EXP-ADH-DES-CBC-SHA" + "EXP-ADH-RC4-MD5" + "EXP-DES-CBC-SHA" + "EXP-DH-DSS-DES-CBC-SHA" + "EXP-DH-RSA-DES-CBC-SHA" + "EXP-EDH-DSS-DES-CBC-SHA" + "EXP-EDH-RSA-DES-CBC" + "EXP-EDH-RSA-DES-CBC-SHA" + "EXP-RC2-CBC-MD5" + "EXP-RC4-MD5" + "EXPORT40" + "EXPORT56" + "file" + "FZA-FZA-CBC-SHA" + "FZA-NULL-SHA" + "FZA-RC4-SHA" + "HIGH" + "IDEA" + "IDEA-CBC-MD5" + "IDEA-CBC-SHA" + "kDHd" + "kDHr" + "kEDH" + "kRSA" + "LOW" + "MD5" + "MEDIUM" + "NULL" + "NULL-MD5" + "NULL-SHA" + "RC2" + "RC2-CBC-MD5" + "RC4" + "RC4-64-MD5" + "RC4-MD5" + "RC4-SHA" + "RSA" + "SHA" + "SHA1" + "send-as-is" ; mod_asis + "cgi-script" ; mod_cgi + "imap-file" ; mod_imap + "server-info" ; mod_info + "isapi-isa" ; mod_isapi + "ldap-status" ; mod_ldap + "Off" ; mod_perl + "On" + "perl-script" + "Off" ; mod_python + "On" + "python-program" + "All" ; mod_ssl + "builtin" + "CompatEnvVars" + "connect" + "dbm" + "debug" + "egd" + "error" + "exec" + "ExportCertData" + "FakeBasicAuth" + "file" + "info" + "none" + "off" + "on" + "optional" + "optional_no_ca" + "OptRenegotiate" + "require" + "sem" + "shm" + "shmcb" + "shmht" + "ssl-accurate-shutdown" + "ssl-unclean-shutdown" + "SSLv2" + "SSLv3" + "startup" + "StdEnvVars" + "StrictRequire" + "TLSv1" + "trace" + "warn" + "server-status" ; mod_status + ) + 'words) + 1 'font-lock-type-face))) + "Expressions to highlight in Apache config buffers.") + +(defun apache-indent-line () + "Indent current line of Apache code." + (interactive) + (let ((savep (> (current-column) (current-indentation))) + (indent (max (apache-calculate-indentation) 0))) + (if savep + (save-excursion (indent-line-to indent)) + (indent-line-to indent)))) + +(defun apache-previous-indentation () + "Return the previous (non-empty/comment) indentation. Doesn't save position." + (let (indent) + (while (and (null indent) + (zerop (forward-line -1))) + (unless (looking-at "[ \t]*\\(#\\|$\\)") + (setq indent (current-indentation)))) + (or indent 0))) + +(defun apache-calculate-indentation () + "Return the amount the current line should be indented." + (save-excursion + (forward-line 0) + (if (bobp) + 0 + (let ((ends-section-p (looking-at "[ \t]*