aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorDavid Bremner <bremner@debian.org>2014-08-04 12:26:52 -0300
committerDavid Bremner <bremner@debian.org>2014-08-06 22:29:25 -0300
commitadbc9cb8d6a6001bd63da7e68ebc31b71e522225 (patch)
treea41de7b64078be4909c36542d0c918143b917b89 /IkiWiki
parenta55a20f5f879b11ce1ac2e7c72ca7c3f7dea6a9b (diff)
downloadikiwiki-adbc9cb8d6a6001bd63da7e68ebc31b71e522225.tar
ikiwiki-adbc9cb8d6a6001bd63da7e68ebc31b71e522225.tar.gz
Plugins::highlight: replace use of langdefdir with searchFile
In recent versions of highlight there can be more than one langdefdir. This patch fixes the ensuing hilarity when the user adds a single highlight lang definition and highlight.pm expects all definitions to be in the same place.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/highlight.pm20
1 files changed, 15 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/highlight.pm b/IkiWiki/Plugin/highlight.pm
index 0aa7386ba..ce919748a 100644
--- a/IkiWiki/Plugin/highlight.pm
+++ b/IkiWiki/Plugin/highlight.pm
@@ -72,10 +72,10 @@ sub checkconfig () {
$data_dir -> getConfDir() . "/filetypes.conf";
}
}
+ # note that this is only used for old versions of highlight
+ # where $data_dir will not be defined.
if (! exists $config{langdefdir}) {
- $config{langdefdir}=
- ($data_dir ? $data_dir->getLangPath("")
- : "/usr/share/highlight/langDefs");
+ $config{langdefdir}= "/usr/share/highlight/langDefs";
}
if (exists $config{tohighlight} && read_filetypes()) {
@@ -155,17 +155,27 @@ sub read_filetypes () {
}
+sub searchlangdef {
+ my $lang=shift;
+
+ if ($data_dir) {
+ return $data_dir->getLangPath($lang . ".lang");
+ } else {
+ return "$config{langdefdir}/$lang.lang";
+ }
+
+}
# Given a filename extension, determines the language definition to
# use to highlight it.
sub ext2langfile ($) {
my $ext=shift;
- my $langfile="$config{langdefdir}/$ext.lang";
+ my $langfile=searchlangdef($ext);
return $langfile if exists $highlighters{$langfile};
read_filetypes() unless $filetypes_read;
if (exists $ext2lang{$ext}) {
- return "$config{langdefdir}/$ext2lang{$ext}.lang";
+ return searchlangdef($ext2lang{$ext});
}
# If a language only has one common extension, it will not
# be listed in filetypes, so check the langfile.