Imported Upstream version 2.4

parent 6fcf6adc
2016-11-21 Sergey Poznyakoff <gray@gnu.org>
Version 2.4
Fix some warnings
* grecs: Upgrade
* dicod/main.c (set_supp_group): Avoid casting gid_t to void*
* lib/userprivs.c (switch_to_privs): Change accordingly
* dicod/lev.c: Avoid casting int to void*
Update documentation re WordNet
2016-11-15 Sergey Poznyakoff <gray@gnu.org>
Fix typo in doc/Makefile.am
2016-11-12 Sergey Poznyakoff <gray@gnu.org>
WordNet-related changes.
* README: Document how to rebuild WordNet to produce position-independent
code, suitable for linking with Dico.
* modules/wordnet/wordnet.c: Trivial patch.
2016-11-11 Sergey Poznyakoff <gray@gnu.org.ua>
dico: accept UNIX socket as argument to open
* dico/connect.c (dict_connect): Accept UNIX socket pathname as
argument. Improve error checking.
* dico/func.c (ds_open): If one argument given, it can be a socket
pathname.
* doc/dico.texi: Document changes to the "open" command.
2016-10-29 Sergey Poznyakoff <gray@gnu.org>
Bugfix
* include/dico/markup.h (dico_markup_type): Fix declaration.
* THANKS: Update
Fix coredump in gcide.
The coredump occurred when the requested headword matched the
entry at the start of the index page.
* modules/gcide/idx.c (gcide_idx_locate): Fix improper dereference.
* modules/gcide/tests/Makefile.am: Add def06.at
* modules/gcide/tests/testsuite.at: Include def06.at
2016-08-12 Sergey Poznyakoff <gray@gnu.org>
I18n-related fixes
Reported by Rafael Fontenelle
* dicod/acl.c: Fix mistyped translators marker.
* po/POTFILES.in: Add files from grecs
* THANKS: Updated.
2016-08-09 Sergey Poznyakoff <gray@gnu.org.ua>
Version 2.3
......
GNU Dico NEWS -- history of user-visible changes. 2016-08-09
GNU Dico NEWS -- history of user-visible changes. 2016-11-21
Copyright (C) 2008-2010, 2012-2016 Sergey Poznyakoff
See the end of file for copying conditions.
Please send Dico bug reports to <bug-dico@gnu.org.ua>
Version 2.4, 2016-11-21
* dico accepts UNIX socket name as argument to the open command
* Fix coredump in gcide module
* Update translations
Version 2.3, 2016-08-09
......
......@@ -157,13 +157,31 @@ If you do not wish to use Guile, use `--without-guile' to disable it.
** WordNet database
-------------------
If you plan to use WordNet database, you will most probably need the
`--with-wordnet' option to inform the script about the location where
WordNet libraries and headers can be found. For example, the command
If you plan to use WordNet database, there are several points to be
observed. First of all, WordNet provides static libraries, usually
with position-dependent code, which makes it difficult (or impossible,
on 64-bit architectures) to use from the shared dico modules. So,
first of all you will need to rebuild WordNet so that it contains
position-independent code. To do so, reconfigure it as follows:
./configure CFLAGS=-fPIC [other_options]
where [other_options] stands for any other options you might wish to
pass to configure.
If you are going to run this command in a source directory that has
been previously configured, it is advised to run "make distclean"
beforehand.
After configuring, run make and make install, as usual.
Once this step done, configure dico with the `--with-wordnet' option,
to inform the it about the location where WordNet libraries and
headers can be found. For example, the command
./configure --with-wordnet=/usr/local/WordNet-3.0
instructs the script to look for WordNet library files in
will instruct the configure script to look for WordNet library files in
/usr/local/WordNet-3.0/lib and for include files in
/usr/local/WordNet-3.0/include.
......@@ -184,7 +202,7 @@ Send bug reports to <bug-dico@gnu.org>.
* Copyright information:
Copyright (C) 2008-2010, 2012 Sergey Poznyakoff
Copyright (C) 2008-2016 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
......
......@@ -7,4 +7,12 @@ of these people. Help us keep it complete and exempt of errors.
Goran Tal <goran.tal@gmail.com>
Karl Berry <karl@freefriends.org>
Marc Dequènes <duck@duckcorp.org>
宋文武 <iyzsong@member.fsf.org>
Rafael Fontenelle <rffontenelle@gmail.com>
Wojciech Polak <polak@gnu.org>
;;;; Local Variables:
;;;; mode: Fundamental
;;;; coding: utf-8
;;;; End:
File mode changed from 100644 to 100755
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for GNU dico 2.3.
# Generated by GNU Autoconf 2.69 for GNU dico 2.4.
#
# Report bugs to <bug-dico@gnu.org>.
#
......@@ -592,8 +592,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU dico'
PACKAGE_TARNAME='dico'
PACKAGE_VERSION='2.3'
PACKAGE_STRING='GNU dico 2.3'
PACKAGE_VERSION='2.4'
PACKAGE_STRING='GNU dico 2.4'
PACKAGE_BUGREPORT='bug-dico@gnu.org'
PACKAGE_URL='http://www.gnu.org/software/dico/'
......@@ -2212,7 +2212,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures GNU dico 2.3 to adapt to many kinds of systems.
\`configure' configures GNU dico 2.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -2282,7 +2282,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of GNU dico 2.3:";;
short | recursive ) echo "Configuration of GNU dico 2.4:";;
esac
cat <<\_ACEOF
......@@ -2437,7 +2437,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
GNU dico configure 2.3
GNU dico configure 2.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -3146,7 +3146,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by GNU dico $as_me 2.3, which was
It was created by GNU dico $as_me 2.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -4058,7 +4058,7 @@ fi
# Define the identity of the package.
PACKAGE='dico'
VERSION='2.3'
VERSION='2.4'
cat >>confdefs.h <<_ACEOF
......@@ -35668,7 +35668,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by GNU dico $as_me 2.3, which was
This file was extended by GNU dico $as_me 2.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -35740,7 +35740,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
GNU dico config.status 2.3
GNU dico config.status 2.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
......@@ -19,7 +19,7 @@ dnl Process this file with -*- autoconf -*- to produce a configure script.
# along with GNU Dico. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.63)
AC_INIT([GNU dico], 2.3, [bug-dico@gnu.org])
AC_INIT([GNU dico], 2.4, [bug-dico@gnu.org])
AC_CONFIG_SRCDIR([dicod/main.c])
AM_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR([build-aux])
......
......@@ -28,7 +28,7 @@ dnl Process this file with -*- autoconf -*- to produce a configure script.
# along with GNU Dico. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.63)
AC_INIT([GNU dico], 2.3, [bug-dico@gnu.org])
AC_INIT([GNU dico], 2.4, [bug-dico@gnu.org])
AC_CONFIG_SRCDIR([dicod/main.c])
AM_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR([build-aux])
......
......@@ -269,6 +269,28 @@ dict_transcript(struct dict_connection *conn, int state)
}
}
static char const *
urlstr(dico_url_t url)
{
if (!url->string) {
if (!url->proto)
xdico_assign_string(&url->proto, "dict");
if (!url->port)
xdico_assign_string(&url->port, DICO_DICT_PORT_STR);
if (url->host) {
asprintf(&url->string, "%s://%s:%s",
url->proto,
url->host,
url->port);
} else {
asprintf(&url->string, "%s:///%s", url->proto, url->path);
}
}
return url->string;
}
int
dict_connect(struct dict_connection **pconn, dico_url_t url)
{
......@@ -278,7 +300,7 @@ dict_connect(struct dict_connection **pconn, dico_url_t url)
struct dict_connection *conn;
char const *port = url->port ? url->port : DICO_DICT_PORT_STR;
XDICO_DEBUG_F2(1, _("Connecting to %s:%s\n"), url->host, port);
XDICO_DEBUG_F1(1, _("Connecting to %s\n"), urlstr (url));
if (source_addr) {
memset(&hints, 0, sizeof(hints));
......@@ -310,7 +332,34 @@ dict_connect(struct dict_connection **pconn, dico_url_t url)
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM;
rc = getaddrinfo(url->host, port, &hints, &res);
if (url->host) {
rc = getaddrinfo(url->host, port, &hints, &res);
if (rc) {
dico_log(L_ERR, 0,
_("%s: can't get address: %s"),
url->host, gai_strerror(rc));
return -1;
}
} else {
struct sockaddr_un *s;
if (strlen(url->path) >= sizeof s->sun_path) {
dico_log(L_ERR, 0, _("%s: UNIX socket name too long"), url->path);
return -1;
}
hints.ai_family = AF_UNIX;
hints.ai_addrlen = sizeof(struct sockaddr_un);
s = xcalloc(1, hints.ai_addrlen);
s->sun_family = AF_UNIX;
strcpy(s->sun_path, url->path);
hints.ai_addr = (struct sockaddr *)s;
res = &hints;
}
for (rp = res; rp; rp = rp->ai_next) {
if (fd != -1 && family != rp->ai_family) {
close(fd);
......@@ -329,11 +378,16 @@ dict_connect(struct dict_connection **pconn, dico_url_t url)
if (connect(fd, rp->ai_addr, rp->ai_addrlen) != -1)
break;
}
if (!rp) {
dico_log(L_ERR, 0, _("%s: cannot connect"), url->host);
dico_log(L_ERR, 0, _("%s: cannot connect"), urlstr(url));
return 1;
}
if (res == &hints)
free(res->ai_addr);
else
freeaddrinfo(res);
if ((str = dico_fd_io_stream_create(fd, fd)) == NULL) {
dico_log(L_ERR, errno,
......
......@@ -100,7 +100,7 @@ ensure_connection()
{
check_disconnect();
if (!conn) {
if (!dico_url.host) {
if (!dico_url.host && !dico_url.path) {
script_error(_("Please specify server name or IP address"));
return 1;
}
......@@ -122,12 +122,19 @@ void
ds_open(int argc, char **argv)
{
if (argc > 1) {
xdico_assign_string(&dico_url.host, argv[1]);
xdico_assign_string(&dico_url.port,
argc == 3 ? argv[2] : DICO_DICT_PORT_STR);
xdico_assign_string(&dico_url.string, NULL);
if (argv[1][0] == '/') {
xdico_assign_string(&dico_url.host, NULL);
xdico_assign_string(&dico_url.port, NULL);
xdico_assign_string(&dico_url.path, argv[1]);
} else {
xdico_assign_string(&dico_url.host, argv[1]);
xdico_assign_string(&dico_url.port,
argc == 3 ? argv[2] : DICO_DICT_PORT_STR);
}
}
if (!dico_url.host) {
if (!dico_url.host && !dico_url.path) {
script_error(_("Please specify server name or IP address"));
return;
}
......
......@@ -395,7 +395,7 @@ _acl_check_cb(void *item, void *data)
dico_log(L_DEBUG, 0, "%s:%d: %s",
/* FIXME: beg:end */
ent->locus.beg.file, ent->locus.beg.line,
/* TRANSLATIONS: `MATCHES' is the verb `match' in 2nd person.
/* TRANSLATORS: `MATCHES' is the verb `match' in 2nd person.
E.g., in French: CONCORD AVEC */
result ? _("MATCHES") : _("does not match"));
}
......
......@@ -23,7 +23,7 @@ lev_sel(int cmd, dico_key_t key, const char *dict_word)
{
if (cmd == DICO_SELECT_RUN) {
int dist = dico_levenshtein_distance(key->word, dict_word,
(int)key->strat->closure);
*(int*)key->strat->closure);
if (dist < 0)
return 0;
return dist <= levenshtein_distance;
......@@ -31,23 +31,28 @@ lev_sel(int cmd, dico_key_t key, const char *dict_word)
return 0;
}
static int lev_flags = 0;
static int nlev_flags = DICO_LEV_NORM;
static int dlev_flags = DICO_LEV_DAMERAU;
static int ndlev_flags = DICO_LEV_NORM | DICO_LEV_DAMERAU;
static struct dico_strategy levstrat[] = {
{ "lev",
"Match headwords within given Levenshtein distance",
lev_sel,
NULL },
&lev_flags },
{ "nlev",
"Match headwords within given Levenshtein distance (normalized)",
lev_sel,
(void*)DICO_LEV_NORM },
&nlev_flags },
{ "dlev",
"Match headwords within given Damerau-Levenshtein distance",
lev_sel,
(void*)DICO_LEV_DAMERAU },
&dlev_flags },
{ "ndlev",
"Match headwords within given Damerau-Levenshtein distance (normalized)",
lev_sel,
(void*)(DICO_LEV_NORM|DICO_LEV_DAMERAU) }
&ndlev_flags }
};
static void
......
......@@ -408,15 +408,17 @@ set_supp_group(enum grecs_callback_command cmd,
return 1;
}
if (!group_list)
if (!group_list) {
group_list = xdico_list_create();
dico_list_set_free_item(group_list, dicod_free_item, NULL);
}
if (value->type == GRECS_TYPE_LIST)
grecs_list_iterate(value->v.list, set_supp_group_iter, NULL);
else {
char *s = value->v.string;
struct group *group;
gid_t gid, *gp;
if (*s == '+') {
char *q;
unsigned long n = strtoul(s + 1, &q, 0);
......@@ -424,15 +426,19 @@ set_supp_group(enum grecs_callback_command cmd,
grecs_error(locus, 0, _("not a valid GID number: %s"), s);
return 1;
}
group = getgrgid(n);
} else
group = getgrnam(s);
if (group)
xdico_list_append(group_list, (void*)group->gr_gid);
else {
grecs_error(locus, 0, _("%s: unknown group"), value->v.string);
return 1;
gid = n;
} else {
struct group *group = getgrnam(s);
if (!group) {
grecs_error(locus, 0, _("%s: unknown group"), value->v.string);
return 1;
}
gid = group->gr_gid;
}
gp = xmalloc(sizeof(*gp));
*gp = gid;
xdico_list_append(group_list, gp);
}
return 0;
}
......
# Signature of the current package.
m4_define([AT_PACKAGE_NAME], [GNU dico])
m4_define([AT_PACKAGE_TARNAME], [dico])
m4_define([AT_PACKAGE_VERSION], [2.3])
m4_define([AT_PACKAGE_STRING], [GNU dico 2.3])
m4_define([AT_PACKAGE_VERSION], [2.4])
m4_define([AT_PACKAGE_STRING], [GNU dico 2.4])
m4_define([AT_PACKAGE_BUGREPORT], [bug-dico@gnu.org])
......@@ -921,7 +921,7 @@ fi
# List of tests.
if $at_list_p; then
cat <<_ATEOF || at_write_fail=1
GNU dico 2.3 test suite test groups:
GNU dico 2.4 test suite test groups:
NUM: FILE-NAME:LINE TEST-GROUP-NAME
KEYWORDS
......@@ -962,7 +962,7 @@ _ATEOF
exit $at_write_fail
fi
if $at_version_p; then
$as_echo "$as_me (GNU dico 2.3)" &&
$as_echo "$as_me (GNU dico 2.4)" &&
cat <<\_ATEOF || at_write_fail=1
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1139,11 +1139,11 @@ exec 5>>"$at_suite_log"
# Banners and logs.
$as_echo "## ------------------------ ##
## GNU dico 2.3 test suite. ##
## GNU dico 2.4 test suite. ##
## ------------------------ ##"
{
$as_echo "## ------------------------ ##
## GNU dico 2.3 test suite. ##
## GNU dico 2.4 test suite. ##
## ------------------------ ##"
echo
......@@ -1987,7 +1987,7 @@ _ASBOX
$as_echo "Please send $at_msg and all information you think might help:
To: <bug-dico@gnu.org>
Subject: [GNU dico 2.3] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
Subject: [GNU dico 2.4] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point. Its output may
......@@ -2018,7 +2018,7 @@ at_fn_check_prepare_notrace 'a shell pipeline' "testsuite.at:28"
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dicod (GNU dico) 2.3
echo >>"$at_stdout"; $as_echo "dicod (GNU dico) 2.4
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:28"
......@@ -3349,7 +3349,7 @@ echo \"Authenticated user\"
apopauth -script=input smith testtset dicod --config ./dicod.conf --stderr -i | sed 's/dicod server on .*/dicod server/'
echo \"Authenticated admin\"
apopauth -script=input gray guessme dicod --config ./dicod.conf --stderr -i | sed 's/dicod (GNU dico 2.3).*/dicod version/'
apopauth -script=input gray guessme dicod --config ./dicod.conf --stderr -i | sed 's/dicod (GNU dico 2.4).*/dicod version/'
"
at_fn_check_prepare_notrace 'an embedded newline' "vis02.at:23"
( $at_check_trace;
......@@ -3382,7 +3382,7 @@ echo "Authenticated user"
apopauth -script=input smith testtset dicod --config ./dicod.conf --stderr -i | sed 's/dicod server on .*/dicod server/'
echo "Authenticated admin"
apopauth -script=input gray guessme dicod --config ./dicod.conf --stderr -i | sed 's/dicod (GNU dico 2.3).*/dicod version/'
apopauth -script=input gray guessme dicod --config ./dicod.conf --stderr -i | sed 's/dicod (GNU dico 2.4).*/dicod version/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
......
......@@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with GNU Dico. If not, see <http://www.gnu.org/licenses/>.
dist_man_MANS=dicod.8 dicod.conf.5in dico.1
dist_man_MANS=dicod.8 dicod.conf.5 dico.1
.8in.8:
$(AM_V_GEN)soelim -I$(builddir) $< > $@
......
......@@ -1187,7 +1187,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
dist_man_MANS = dicod.8 dicod.conf.5in dico.1
dist_man_MANS = dicod.8 dicod.conf.5 dico.1
EXTRA_DIST = dicod.8in dicod.conf.5in gendocs.sh gendocs_template
CLEANFILES = dicod.8 dicod.conf.5
DISTCLEANFILES = config.man
......
No preview for this file type
......@@ -3216,16 +3216,37 @@ between these synonym sets.
@cindex libWN
Dico provides a @command{wordnet} module for reading WordNet lexical
database files. The module relies on @file{libWN}, the support
library distributed with the WordNet database.
library distributed with the WordNet database.
@cindex WordNet, configuring
There is a point worth noticing if you plan to use the WordNet
library. Normally, the @file{libWN} is compiled as a static library
with position-dependent code, which makes it difficult (or impossible,
on 64-bit architectures) to use from the dynamically-loaded libraries,
such as @command{dicod} modules. So, first of all you will need to
rebuild WordNet so that it contains position-independent code. To do
so, change to the WordNet source directory and reconfigure it as
follows:
@example
./configure CFLAGS=-fPIC [@var{other_options}]
@end example
where @var{other_options} stands for any other options you might wish to
pass to configure.
If you are going to run this command in a source directory that has
been previously configured, it is advisable to run @samp{make distclean}
beforehand.
@findex wn.h
@opindex --with-wordnet, @command{configure} option.
The module is compiled automatically if the configure script was able
to find the library and its header file @file{wn.h}. If it was not,
use the @option{--with-wordnet} configure option to specify the
location where these files can be found. For example, if WordNet was
installed using the default procedure, then the following option will
do the job:
The @command{wordnet} module is compiled automatically if the
configure script was able to find the library and its header file
@file{wn.h}. If it was not, use the @option{--with-wordnet} configure
option to specify the location where these files can be found. For
example, if WordNet was installed using the default procedure, then
the following option will do the job:
@example
./configure --with-wordnet=/usr/local/WordNet-3.0
......@@ -3235,7 +3256,7 @@ This command tells Dico to look for WordNet library files in
@file{/usr/@/local/@/WordNet-3.0/@/lib} and for include files in
@file{/usr/@/local/@/WordNet-3.0/@/include}.
A compiled module is installed using the following statement:
A compiled module is loaded using the following statement:
@example
load-module wordnet @{
......@@ -3246,7 +3267,26 @@ load-module wordnet @{
Optional parameters are:
@deffn {wordnet module parameter} wnhome dir
Base directory for WordNet files.
Base directory for WordNet files. This is the directory where WordNet
was installed. For the @command{wordnet} module to work, it must
contain the @file{dict} subdirectory with WordNet dictionary files.
If you installed WordNet to @file{/usr/local/WordNet-3.0}, so that
running @command{ls} on that directory shows you:
@example
$ ls /usr/local/WordNet-3.0/
bin/ dict/ doc/ include/ lib/ man/
@end example
@noindent
then you would use
@example
load-module wordnet @{
command "wordnet wnhome=/usr/local/WordNet-3.0";
@}
@end example
@end deffn
@deffn {wordnet module parameter} wnsearchdir dir
......@@ -3255,7 +3295,7 @@ Directory in which the WordNet database has been installed.
Normally, these values are set at compile time and you won't need to
override them. The use of these parameters may, however, be necessary
if the database is moved or installed in a non-standard location.
if the database was moved or installed in a non-standard location.
One or more WordNet database instances can be defined. They all will
be sharing the same database. The reason for having several database
......@@ -5650,6 +5690,10 @@ name is @samp{gnu.org.ua} and the default port number is 2628. Both
values can be changed at configuration time, see @ref{Default Server}
for a detailed instruction.
When given one argument, @code{open} checks if it begins with a
directory separator (@samp{/}). If so, the argument is handled as the
full file name of a UNIX socket.
Note that you are not required to issue this command. If it is not
given, @command{dico} will attempt to establish a connection using its
default settings before executing any command that requires a
......
......@@ -18,7 +18,7 @@
.ds ET /usr/local/etc
.ds MD /usr/local/lib/dico
.ds DI /usr/local/share/dico/include
.ds VI /usr/local/share/dico/2.3/include
.ds VI /usr/local/share/dico/2.4/include
.ds LO /usr/local/var
.lf 17 ./dicod.8in
.TH DICOD 1 "August 5, 2016" "GNU DICO" "GNU Dico Reference"
......
.lf 1 ./dicod.conf.5in
.\" This file is part of GNU Dico
.\" Copyright (C) 2014-2016 Sergey Poznyakoff
.\"
.\" GNU Dico 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 3, or (at your option)
.\" any later version.
.\"
.\" GNU Dico 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 GNU Dico. If not, see <http://www.gnu.org/licenses/>.
.lf 1 ./config.man
.ds ET /usr/local/etc
.ds MD /usr/local/lib/dico
.ds DI /usr/local/share/dico/include
.ds VI /usr/local/share/dico/2.4/include
.ds LO /usr/local/var
.lf 17 ./dicod.conf.5in
.TH DICOD.CONF 5 "August 5, 2016" "GNU DICO" "GNU Dico Reference"
dicod.conf \- configuration file for
.BR dicod (8).
.SH DESCRIPTION
.B dicod.conf
is the configuration file for
.BR dicod (8).
.SH NOTE
This manpage is a short description of the
.B dicod.conf
configuration file. For a detailed discussion, including examples and
usage recommendations, refer to the \fBGNU Dico Manual\fR available in
texinfo format. If the \fBinfo\fR reader and \fBGNU Dico\fR documentation
are properly installed on your system, the command
.PP
.RS +4
.B info dico
.RE
.PP
should give you access to the complete manual.
.PP
You can also view the manual using the info mode in
.BR emacs (1),
or find it in various formats online at
.PP
.RS +4
.B http://www.gnu.org.ua/software/dico/manual
.RE
.PP
If any discrepancies occur between this manpage and the
\fBGNU Dico Manual\fR, the later shall be considered the authoritative
source.