commit - 841d71b5c6be4851572a60c5a9f9dd239ea69e56
commit + ebda53e16b473c6ad8df070edd6f58e2e1e10994
blob - 0c26f38d97a751d7e87a50594a3553d99100f3e7
blob + d382acc4763660adbf6988eaf2f55b55679e3a9c
--- man/man1/dict.1
+++ man/man1/dict.1
.BR p .
Otherwise, the default command is the previous command.
.PP
+.I Dict
+searches for dictionaries in the directory named by
+.B $dictpath
+(default
+.BR \*9/dict ).
+.PP
.I Adict
is a dictionary browser for
.IR acme (1).
blob - 5942470708d3393e365affe6d71235a1617c1f69
blob + b1210b7b0ac83e79d9b5bd7cb9571d9227a8b8f9
--- src/cmd/9pfuse/fuse.c
+++ src/cmd/9pfuse/fuse.c
if(access(f="/System/Library/Extensions/fusefs.kext"
"/Contents/Resources/load_fusefs", 0) < 0 &&
access(f="/Library/Extensions/fusefs.kext"
- "/Contents/Resources/load_fusefs", 0) < 0){
+ "/Contents/Resources/load_fusefs", 0) < 0 &&
+ access(f="/System/Library/Filesystems"
+ "/fusefs.fs/Support/load_fusefs", 0) < 0){
werrstr("cannot find load_fusefs");
return -1;
}
blob - 9e196b118c4209c007f7062a3f86df922d8f9e19
blob + d9cdca624f5314c9f4a7a4647810962c9d2609c9
--- src/cmd/dict/dict.c
+++ src/cmd/dict/dict.c
dict = 0;
for(i=0; dicts[i].name; i++){
- if(access(unsharp(dicts[i].path), 0)>=0 && access(unsharp(dicts[i].indexpath), 0)>=0){
+ if(access(dictfile(dicts[i].path), 0)>=0 && access(dictfile(dicts[i].indexpath), 0)>=0){
dict = &dicts[i];
break;
}
line = malloc(strlen(p)+5);
sprint(line, "/%s/P\n", p);
}
- dict->path = unsharp(dict->path);
- dict->indexpath = unsharp(dict->indexpath);
+ dict->path = dictfile(dict->path);
+ dict->indexpath = dictfile(dict->indexpath);
bdict = Bopen(dict->path, OREAD);
if(!bdict) {
err("can't open dictionary %s", dict->path);
Bprint(bout, "dictionaries (brackets mark dictionaries not present on this system):\n");
for(i = 0; dicts[i].name; i++){
a = b = "";
- if(access(unsharp(dicts[i].path), 0)<0 || access(unsharp(dicts[i].indexpath), 0)<0){
+ if(access(dictfile(dicts[i].path), 0)<0 || access(dictfile(dicts[i].indexpath), 0)<0){
a = "[";
b = "]";
}
dot->n = 1;
dot->cur = 0;
}
+
+/*
+ * find the specified file and return a path.
+ * default location is #9/dict, but can be
+ * in $dictdir instead.
+ */
+char*
+dictfile(char *f)
+{
+ static char *dict;
+ static int did;
+
+ if(!did){
+ dict = getenv("dictpath");
+ did = 1;
+ }
+
+ if(dict)
+ return smprint("%s/%s", dict, f);
+ return unsharp(smprint("#9/dict/%s", f));
+}
blob - bf7a80c32483bd89fd0527938a8fc937b2f66955
blob + 4359767470db1b656c52c886c6c1c42f3c174d07
--- src/cmd/dict/dict.h
+++ src/cmd/dict/dict.h
void outpiece(char *, char *);
void runescpy(Rune*, Rune*);
long runetol(Rune*);
+char *dictfile(char*);
long oednextoff(long);
void oedprintentry(Entry, int);
blob - 877c3b130f53446c1019175f7881769228e4091c
blob + 96e71e34b5b61796a6f40d67225160b3c526d92a
--- src/cmd/dict/robert.c
+++ src/cmd/dict/robert.c
#define GSHORT(p) (((p)[0]<<8) | (p)[1])
#define GLONG(p) (((p)[0]<<24) | ((p)[1]<<16) | ((p)[2]<<8) | (p)[3])
-static char cfile[] = "#9/dict/robert/cits.rob";
-static char dfile[] = "#9/dict/robert/defs.rob";
-static char efile[] = "#9/dict/robert/etym.rob";
-static char kfile[] = "#9/dict/robert/_phon";
+static char cfile[] = "robert/cits.rob";
+static char dfile[] = "robert/defs.rob";
+static char efile[] = "robert/etym.rob";
+static char kfile[] = "robert/_phon";
static Biobuf * cb;
static Biobuf * db;
{
Biobuf *db;
- fichier = unsharp(fichier);
+ fichier = dictfile(fichier);
db = Bopen(fichier, OREAD);
if(db == 0){
fprint(2, "%s: impossible d'ouvrir %s: %r\n", argv0, fichier);
blob - d7033d37fc6a73705332ed64c906dbfcb8b51c14
blob + d60d0bb92fd997621ccdf03cf02b07c3c998b37d
--- src/cmd/dict/utils.c
+++ src/cmd/dict/utils.c
Dict dicts[] = {
{"oed", "Oxford English Dictionary, 2nd Ed.",
- "#9/dict/oed2", "#9/dict/oed2index",
+ "oed2", "oed2index",
oednextoff, oedprintentry, oedprintkey},
{"ahd", "American Heritage Dictionary, 2nd College Ed.",
- "#9/dict/ahd/DICT.DB", "#9/dict/ahd/index",
+ "ahd/DICT.DB", "ahd/index",
ahdnextoff, ahdprintentry, ahdprintkey},
{"pgw", "Project Gutenberg Webster Dictionary",
- "#9/dict/pgw", "#9/dict/pgwindex",
+ "pgw", "pgwindex",
pgwnextoff, pgwprintentry, pgwprintkey},
{"thesaurus", "Collins Thesaurus",
- "#9/dict/thesaurus", "#9/dict/thesindex",
+ "thesaurus", "thesindex",
thesnextoff, thesprintentry, thesprintkey},
{"roget", "Project Gutenberg Roget's Thesaurus",
- "#9/dict/roget", "#9/dict/rogetindex",
+ "roget", "rogetindex",
rogetnextoff, rogetprintentry, rogetprintkey},
{"ce", "Gendai Chinese->English",
- "#9/dict/world/sansdata/sandic24.dat",
- "#9/dict/world/sansdata/ceindex",
+ "world/sansdata/sandic24.dat",
+ "world/sansdata/ceindex",
worldnextoff, worldprintentry, worldprintkey},
{"ceh", "Gendai Chinese->English (Hanzi index)",
- "#9/dict/world/sansdata/sandic24.dat",
- "#9/dict/world/sansdata/cehindex",
+ "world/sansdata/sandic24.dat",
+ "world/sansdata/cehindex",
worldnextoff, worldprintentry, worldprintkey},
{"ec", "Gendai English->Chinese",
- "#9/dict/world/sansdata/sandic24.dat",
- "#9/dict/world/sansdata/ecindex",
+ "world/sansdata/sandic24.dat",
+ "world/sansdata/ecindex",
worldnextoff, worldprintentry, worldprintkey},
{"dae", "Gyldendal Danish->English",
- "#9/dict/world/gylddata/sandic30.dat",
- "#9/dict/world/gylddata/daeindex",
+ "world/gylddata/sandic30.dat",
+ "world/gylddata/daeindex",
worldnextoff, worldprintentry, worldprintkey},
{"eda", "Gyldendal English->Danish",
- "#9/dict/world/gylddata/sandic29.dat",
- "#9/dict/world/gylddata/edaindex",
+ "world/gylddata/sandic29.dat",
+ "world/gylddata/edaindex",
worldnextoff, worldprintentry, worldprintkey},
{"due", "Wolters-Noordhoff Dutch->English",
- "#9/dict/world/woltdata/sandic07.dat",
- "#9/dict/world/woltdata/deindex",
+ "world/woltdata/sandic07.dat",
+ "world/woltdata/deindex",
worldnextoff, worldprintentry, worldprintkey},
{"edu", "Wolters-Noordhoff English->Dutch",
- "#9/dict/world/woltdata/sandic06.dat",
- "#9/dict/world/woltdata/edindex",
+ "world/woltdata/sandic06.dat",
+ "world/woltdata/edindex",
worldnextoff, worldprintentry, worldprintkey},
{"fie", "WSOY Finnish->English",
- "#9/dict/world/werndata/sandic32.dat",
- "#9/dict/world/werndata/fieindex",
+ "world/werndata/sandic32.dat",
+ "world/werndata/fieindex",
worldnextoff, worldprintentry, worldprintkey},
{"efi", "WSOY English->Finnish",
- "#9/dict/world/werndata/sandic31.dat",
- "#9/dict/world/werndata/efiindex",
+ "world/werndata/sandic31.dat",
+ "world/werndata/efiindex",
worldnextoff, worldprintentry, worldprintkey},
{"fe", "Collins French->English",
- "#9/dict/fe", "#9/dict/feindex",
+ "fe", "feindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"ef", "Collins English->French",
- "#9/dict/ef", "#9/dict/efindex",
+ "ef", "efindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"ge", "Collins German->English",
- "#9/dict/ge", "#9/dict/geindex",
+ "ge", "geindex",
pcollgnextoff, pcollgprintentry, pcollgprintkey},
{"eg", "Collins English->German",
- "#9/dict/eg", "#9/dict/egindex",
+ "eg", "egindex",
pcollgnextoff, pcollgprintentry, pcollgprintkey},
{"ie", "Collins Italian->English",
- "#9/dict/ie", "#9/dict/ieindex",
+ "ie", "ieindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"ei", "Collins English->Italian",
- "#9/dict/ei", "#9/dict/eiindex",
+ "ei", "eiindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"je", "Sanshusha Japanese->English",
- "#9/dict/world/sansdata/sandic18.dat",
- "#9/dict/world/sansdata/jeindex",
+ "world/sansdata/sandic18.dat",
+ "world/sansdata/jeindex",
worldnextoff, worldprintentry, worldprintkey},
{"jek", "Sanshusha Japanese->English (Kanji index)",
- "#9/dict/world/sansdata/sandic18.dat",
- "#9/dict/world/sansdata/jekindex",
+ "world/sansdata/sandic18.dat",
+ "world/sansdata/jekindex",
worldnextoff, worldprintentry, worldprintkey},
{"ej", "Sanshusha English->Japanese",
- "#9/dict/world/sansdata/sandic18.dat",
- "#9/dict/world/sansdata/ejindex",
+ "world/sansdata/sandic18.dat",
+ "world/sansdata/ejindex",
worldnextoff, worldprintentry, worldprintkey},
{"tjeg", "Sanshusha technical Japanese->English,German",
- "#9/dict/world/sansdata/sandic16.dat",
- "#9/dict/world/sansdata/tjegindex",
+ "world/sansdata/sandic16.dat",
+ "world/sansdata/tjegindex",
worldnextoff, worldprintentry, worldprintkey},
{"tjegk", "Sanshusha technical Japanese->English,German (Kanji index)",
- "#9/dict/world/sansdata/sandic16.dat",
- "#9/dict/world/sansdata/tjegkindex",
+ "world/sansdata/sandic16.dat",
+ "world/sansdata/tjegkindex",
worldnextoff, worldprintentry, worldprintkey},
{"tegj", "Sanshusha technical English->German,Japanese",
- "#9/dict/world/sansdata/sandic16.dat",
- "#9/dict/world/sansdata/tegjindex",
+ "world/sansdata/sandic16.dat",
+ "world/sansdata/tegjindex",
worldnextoff, worldprintentry, worldprintkey},
{"tgje", "Sanshusha technical German->Japanese,English",
- "#9/dict/world/sansdata/sandic16.dat",
- "#9/dict/world/sansdata/tgjeindex",
+ "world/sansdata/sandic16.dat",
+ "world/sansdata/tgjeindex",
worldnextoff, worldprintentry, worldprintkey},
{"ne", "Kunnskapforlaget Norwegian->English",
- "#9/dict/world/kunndata/sandic28.dat",
- "#9/dict/world/kunndata/neindex",
+ "world/kunndata/sandic28.dat",
+ "world/kunndata/neindex",
worldnextoff, worldprintentry, worldprintkey},
{"en", "Kunnskapforlaget English->Norwegian",
- "#9/dict/world/kunndata/sandic27.dat",
- "#9/dict/world/kunndata/enindex",
+ "world/kunndata/sandic27.dat",
+ "world/kunndata/enindex",
worldnextoff, worldprintentry, worldprintkey},
{"re", "Leon Ungier Russian->English",
- "#9/dict/re", "#9/dict/reindex",
+ "re", "reindex",
simplenextoff, simpleprintentry, simpleprintkey},
{"er", "Leon Ungier English->Russian",
- "#9/dict/re", "#9/dict/erindex",
+ "re", "erindex",
simplenextoff, simpleprintentry, simpleprintkey},
{"se", "Collins Spanish->English",
- "#9/dict/se", "#9/dict/seindex",
+ "se", "seindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"es", "Collins English->Spanish",
- "#9/dict/es", "#9/dict/esindex",
+ "es", "esindex",
pcollnextoff, pcollprintentry, pcollprintkey},
{"swe", "Esselte Studium Swedish->English",
- "#9/dict/world/essedata/sandic34.dat",
- "#9/dict/world/essedata/sweindex",
+ "world/essedata/sandic34.dat",
+ "world/essedata/sweindex",
worldnextoff, worldprintentry, worldprintkey},
{"esw", "Esselte Studium English->Swedish",
- "#9/dict/world/essedata/sandic33.dat",
- "#9/dict/world/essedata/eswindex",
+ "world/essedata/sandic33.dat",
+ "world/essedata/eswindex",
worldnextoff, worldprintentry, worldprintkey},
{"movie", "Movies -- by title",
- "movie/data", "#9/dict/movtindex",
+ "movie/data", "movtindex",
movienextoff, movieprintentry, movieprintkey},
{"moviea", "Movies -- by actor",
- "movie/data", "#9/dict/movaindex",
+ "movie/data", "movaindex",
movienextoff, movieprintentry, movieprintkey},
{"movied", "Movies -- by director",
- "movie/data", "#9/dict/movdindex",
+ "movie/data", "movdindex",
movienextoff, movieprintentry, movieprintkey},
{"slang", "English Slang",
- "#9/dict/slang", "#9/dict/slangindex",
+ "slang", "slangindex",
slangnextoff, slangprintentry, slangprintkey},
{"robert", "Robert Électronique",
- "#9/dict/robert/_pointers", "#9/dict/robert/_index",
+ "robert/_pointers", "robert/_index",
robertnextoff, robertindexentry, robertprintkey},
{"robertv", "Robert Électronique - formes des verbes",
- "#9/dict/robert/flex.rob", "#9/dict/robert/_flexindex",
+ "robert/flex.rob", "robert/_flexindex",
robertnextflex, robertflexentry, robertprintkey},
{0, 0, 0, 0, 0}