1820 Commits

Author SHA1 Message Date
James Youngman
e8a5e10dca Prepare for the release of findutils version 4.5.9.
* NEWS: Change the version number to 4.5.9.
* configure.ac: Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
v4.5.9
2010-04-29 22:45:53 +01:00
James Youngman
9d97875382 Preserve locate/dblocation.texi during 'make clean'.
* locate/Makefile.am (DISTCLEANFILES): Clean dblocation.texi for
'make distclean', but not 'make clean'.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-29 22:16:23 +01:00
James Youngman
a80cb03935 Remove redundant declarations.
* locate/frcode.c: Don't declare xmalloc, include xalloc.h instead.
* locate/code.c: Don't declare program_name, we already included
progname.h.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-21 10:47:42 +01:00
James Youngman
3102624c8a Remove support for compilers lacking prototypes.
* find/defs.h: Don't define or use the PARAMS macro.
* xargs/xargs.c: Likewise.
* locate/locatedb.h: Likewise.
* locate/frcode.c: Likewise.
* lib/buildcmd.c: Likewise.
* find/tree.c: Likewise.
* find/pred.c: Likewise.
* find/parser.c: Likewise.
* find/fstype.c: Likewise.
* find/find.c: Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-21 10:47:42 +01:00
James Youngman
f95aa8d12b Describe recent changes
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-21 10:47:17 +01:00
James Youngman
cfcb9c3587 Update Chinese (simplified) translation.
* po/zh_CN.po: Updated from the Translation Project.
* NEWS: Mention this change.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-21 10:46:07 +01:00
James Youngman
ef1028051b Make import-gnulib.sh work under a POSIX shell.
* import-gnulib.sh: Remove bash-specific '[[...]]' tests; instead
use '[...]'.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-18 12:54:34 +01:00
James Youngman
7e7274d789 Remove obsolete module strpbrk.
* import-gnulib.config (modules): Remove strpbrk.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-17 20:45:27 +01:00
James Youngman
dd87a50d1d Ensure that dblocation.texi gets created.
* locate/Makefile.am (locate_TEXINFOS): Add dblocation.texi.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-17 20:11:07 +01:00
James Youngman
7e87abf61f Mention in the NEWS file that we fixed bug #27563: -L breaks -execdir 2010-04-13 00:54:29 +01:00
James Youngman
aec54f2317 Correct some test file names.
* find/testsuite/Makefile.am (EXTRA_DIST_EXP):
find.gnu/sv-bug-25359-execdir.exp should in fact be
find.gnu/sv-bug-27563-execdir.exp and
find.posix/sv-bug-25359-exec.exp should be
find.posix/sv-bug-27563-exec.exp.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:50:11 +01:00
James Youngman
23d3cb2de1 Condense the entries in exceptions file .x-sc_prohibit_test_minus_ao
* .x-sc_prohibit_test_minus_ao: Condense the file (since the
entries are regular expressions anyway).

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:43:38 +01:00
James Youngman
381f87d3eb Avoid repeated and identical date headers in the ChangeLog file. 2010-04-13 00:38:36 +01:00
James Youngman
56682c9ff5 Make sure we don't open a file on a standard fd (that is, 0/1/2).
* lib/fdleak.c: Include fcntl--.h to turn calls to open into calls
to open_safer.
* find/find.c: Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:36:55 +01:00
James Youngman
61415ade1e Fix Savannah bug #29511: fails to build on kfreebsd-*
* lib/fdleak.c (get_max_fd): Don't use RLIM_SAVED_MAX or
RLIM_SAVED_CUR.  Not only are they non-portable, they aren't
useful.
* NEWS: Mention this bugfix.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:29:32 +01:00
James Youngman
3669c5011d Remove some unused or dead code.
* find/util.c (hook_fstatat): This has been disabled and unused
for a long time, delete it.
* find/find.c (process_dir): Remove some unused debug code.
* find/tree.c (predlist_insert): Remove some dead code.
* lib/fdleak.c (complain_about_leaky_fds): Remove some unused
debug code.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:27:40 +01:00
James Youngman
0538709342 Exceptions for syntax check sc_prohibit_empty_lines_at_EOF
* .x-sc_prohibit_empty_lines_at_EOF: New file; exceptions for the
sc_prohibit_empty_lines_at_EOF syntax check.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-13 00:20:44 +01:00
James Youngman
62998cd84b Re-add trailing blank to make the check-regexprops check pass 2010-04-12 23:22:23 +01:00
James Youngman
a1f54022d1 Add a test case for Savannah bug 27563 (-L breaks -execdir).
* find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
find.gnu/sv-bug-27563-execdir.exp and
find.posix/sv-bug-27563-exec.exp.
(EXTRA_DIST_XO): Add find.gnu/sv-bug-27563-execdir.xo and
find.posix/sv-bug-27563-exec.xo.
* find/testsuite/find.gnu/sv-bug-27563-execdir.exp: New test.
* find/testsuite/find.posix/sv-bug-27563-exec.exp: New test.
* find/testsuite/find.gnu/sv-bug-27563-execdir.xo: Expected output.
* find/testsuite/find.posix/sv-bug-27563-exec.xo: Expected output.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 23:12:54 +01:00
James Youngman
e1d0a991e9 Fix Savannah bug 27563 (-L breaks -execdir).
* find/pred.c (initialise_wd_for_exec): New function, factoring
out part of the body of record_exec_dir.
(record_exec_dir): If state.rel_pathname contains a /, extract the
directory part and initialise execp->wd_for_exec to point at that
directory.
(impl_pred_exec): Rename new_impl_pred_exec to impl_pred_exec.
Drop the prefix and pfxlen parameters.  Compute the base name of
the target and pass that to the bc_push_arg function instead of
state.rel_pathname.  Deal with state.rel_pathname being an
absolute path (e.g. find / -execdir...).  Introduce a new
variable, result, allowing us to free the buffer used for the base
name in the return path.
(pred_exec): Don't pass the prefix and the prefix length any more.
(pred_execdir): Likewise.
(pred_ok): Likewise.
(pred_okdir): Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 23:12:54 +01:00
James Youngman
26d1e75d52 Fix typo
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 22:50:29 +01:00
James Youngman
27a7e451b8 Fix Savannah bug #19593, -execdir .... {} + has suboptimal performance
* find/ftsfind.c (consider_visiting): Don't call
complete_pending_execdirs for every file we visit.
(find): Instead, call complete_pending_execdirs every time we
see a file which isn't at the same nesting level as the previous
file we saw.  This is an improvement but not optimal (since
descending into a subdirectory will cause us to issue an exec
before we've finished with the current directory).
* NEWS: Mention this change.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 22:50:29 +01:00
James Youngman
7dc70069a3 Exec predicates now store which directory they want to run in.
* lib/dircallback.c (run_in_dirfd): New name for old run_in_dir
function.
(run_in_dir): Like the old funciton of the same name, but now
takes an argument const struct saved_cwd *.
* lib/dircallback.h: Update declarations of run_in_dirfd and
run_in_dir.
* find/util.c: Include dircallback.h, xalloc.h, save-cwd.h.
(do_complete_pending_execdirs): Remove dir_fd parameter, since the
per-predicate data structures now indicate what directory they
need to be run in.  Instead of calling bc_do_exec directly, use a
callback 'exec_cb' that uses run_in_dir (which now takes a
saved_cwd* parameter instead of a file descriptor).
(do_exec): Called by do_complete_pending_execdirs, and simply uses
run_in_dir to call exec_cb, restoring the working directory
afterward.
(record_initial_cwd): New function, initialises the global
variable initial_wd.
(cleanup_initial_cwd): New function, cleans up the global variable
initial_wd.
(cleanup): Call cleanup_initial_cwd.
(get_start_dirfd): Remove.
(is_exec_in_local_dir): New funciton; true for predicates -execdir
and -okdir.
* find/pred.c: Include cloexec.h and save-cwd.h.
(record_exec_dir): New function, sets the value of
execp->wd_for_exec if needed.
(new_impl_pred_exec): Remove the obsolete dir_fd parameter.  Call
record_exec_dir.
(pred_exec): Don't pass the dir_fd parameter.
(pred_execdir): Likewise.
(pred_ok): Likewise.
(pred_okdir): Likewise.
(can_access): Call run_in_dirfd rather than run_in_dir (the
function was renamed).
(prep_child_for_exec): Remove dir_fd parameter; don't fchdir to
that.  Call restore_cwd instead (passing a saved_cwd* parameter
which replaced dir_fd).
(launch): Remove references to execp->use_current_dir.
(launch): Change references to execp->dir_fd to execp->wd_for_exec.
* find/parser.c: Correct indentiation of declaration of
insert_exec_ok and remove the obsolete dir_fd parameter.
(parse_exec): Don't pass the dir_fd parameter to insert_exec_ok.
(parse_execdir): Likewise.
(parse_ok): Likewise.
(parse_okdir): Likewise.
(insert_exec_ok): Remove obsolete dir_fd paramter.  Initialise
execp->wd_for_exec, either to NULL (for -*dir) or to the
initial_wd.
* find/ftsfind.c: Remove get_current_dirfd.  Remove
complete_execdirs_cb.
(consider_visiting): Call complete_pending_execdirs directly.
(main): Call record_initial_cwd to record the initial working
directory, early on.  Don't initialise starting_dir or
starting_desc, they have been removed.
* find/finddata.c: Include save-cwd.h.  Remove starting_dir and
starting_desc. Add new global variable initial_wd.  It is a struct
saved_wd* and represents find's initial working directory.
* find/find.c: Include save-cwd.h.
(main): Call record_initial_cwd in order to initialise the
global variable initial_wd  Don't set starting_desc and
starting_dir, since those variables have been removed.
(safely_chdir): Don't pass an fd to complete_pending_execdirs.
(chdir_back): Remove the safety check (since we are using fchdir
and in any case no longer have all the data that the existing
wd_sanity_check function wants).
(do_process_top_dir): Don't pass an fd to
complete_pending_execdirs.
(process_dir): Likewise.
* find/defs.h (struct exec_val): Remove use_current_dir and
dir_fd.  Replace with wd_for_exec, which is a struct saved_wd*.
(get_start_dirfd): Remove prototype.
(get_current_dirfd): Remove prototype.
(complete_pending_execdirs): No longer takes dir_fd parameter.
(record_initial_cwd): Add prototype.
(is_exec_in_local_dir): Add prototype.
(options): Declare.
(initial_wd): Add declaration.  It is a struct saved_wd* and
represents find's initial working directory.
(starting_dir): Remove devlaration of global variable.
(starting_desc): Remove devlaration of global variable.
* import-gnulib.config (modules): Import module save-cwd.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 22:50:29 +01:00
James Youngman
cec0d09cf9 Whitespace fixes. 2010-04-12 22:50:29 +01:00
James Youngman
41896c7307 Add a test which checks $CWD for find -execdir {} + and ... {} ;
* find/testsuite/find.gnu/execdir-multiple.exp: New test; verifies
that for -execdir +, all the execs occur with the correct workikng
directory.
* find/testsuite/find.gnu/execdir-multiple.xo: Expected output for
this test.
* find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test.
(EXTRA_DIST_XO): Add the expected output file.
* find/testsuite/config/unix.exp (mkdir): Create proc "mkdir"
which creates a directory.
* find/testsuite/find.gnu/execdir-pwd1.exp: New test.
* find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add
execdir-pwd1.exp.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-12 22:50:19 +01:00
James Youngman
3399822066 Fix syntax checks problems for check sc_unmarked_diagnostics.
* find/tree.c (get_pred_cost): Clarify an error message and mark
it for translation.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 15:57:16 +01:00
James Youngman
b11f33dda7 Fix false positives for syntax check sc_prohibit_test_minus_ao.
* .x-sc_prohibit_test_minus_ao: Add all the DejaGnu scripts to the
list of exceptions to the 'test C1 -a C2' syntax check, since they
are not actually shell scripts.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 15:57:16 +01:00
James Youngman
daff367499 Remove trailing blank lines.
* .x-sc_prohibit_empty_lines_at_EOF: Add list of exceptions to the
no-blank-lines-at-EOF syntax check.
* doc/regexprops.texi: Remove empty lines at the end of the file.
* find/finddata.c: Likewise.
* find/fstype.c: Likewise.
* find/testsuite/excuses.txt: Likewise.
* find/testsuite/find.gnu/access.exp: Likewise.
* find/testsuite/find.gnu/exec-one-rtn-fail.exp: Likewise.
* find/testsuite/find.gnu/posix-perminvalid.exp: Likewise.
* find/testsuite/find.gnu/samefile-missing.exp: Likewise.
* find/testsuite/find.gnu/samefile-p-brokenlink.exp: Likewise.
* find/testsuite/find.gnu/sv-bug-17490.exp: Likewise.
* find/testsuite/find.gnu/sv-bug-18222.exp: Likewise.
* find/testsuite/find.posix/bracket-depth.exp: Likewise.
* find/testsuite/find.posix/empty-parens.exp: Likewise.
* find/testsuite/find.posix/files-not-expressions1.exp: Likewise.
* find/testsuite/find.posix/files-not-expressions2.exp: Likewise.
* find/testsuite/find.posix/files-not-expressions3.exp: Likewise.
* find/testsuite/find.posix/group-empty.exp: Likewise.
* find/testsuite/find.posix/user-empty.exp: Likewise.
* find/testsuite/find.posix/user-missing.exp: Likewise.
* lib/extendbuf.c: Likewise.
* lib/fdleak.c: Likewise.
* lib/fdleak.h: Likewise.
* lib/findutils-version.h: Likewise.
* lib/gnulib-version.h: Likewise.
* lib/printquoted.c: Likewise.
* lib/regextype.c: Likewise.
* lib/safe-atoi.c: Likewise.
* locate/testsuite/config/unix.exp: Likewise.
* locate/testsuite/locate.gnu/exists1.exp: Likewise.
* locate/testsuite/locate.gnu/exists2.exp: Likewise.
* locate/testsuite/locate.gnu/exists3.exp: Likewise.
* locate/testsuite/locate.gnu/ignore_case1.exp: Likewise.
* locate/testsuite/locate.gnu/ignore_case2.exp: Likewise.
* locate/testsuite/locate.gnu/ignore_case3.exp: Likewise.
* locate/testsuite/locate.gnu/notexists1.exp: Likewise.
* locate/testsuite/locate.gnu/notexists2.exp: Likewise.
* locate/testsuite/locate.gnu/notexists3.exp: Likewise.
* locate/testsuite/locate.gnu/sv-bug-14535.exp: Likewise.
* m4/Makefile.am: Likewise.
* m4/nullsort.m4: Likewise.
* xargs/testsuite/xargs.posix/arg_max_32bit_linux_bug.exp: Likewise.
* xargs/testsuite/xargs.posix/arg_max_64bit_linux_bug.exp: Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 15:57:16 +01:00
James Youngman
4f066a88ad After-the-fact change to NEWS for 4.5.8: fixed bug 27221.
* NEWS: Mention that release 4.5.8 also fixed bug #27221
(symlink_loop check broken by FTS_CWDFD), though the NEWS file in
that release omitted to say so.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 13:36:31 +01:00
James Youngman
1e519a9cf7 Adopt the use of the gnulib module readlink
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:36:03 +01:00
James Youngman
38a84939ad Adopt the use of the gnulib module isblank
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:36:02 +01:00
James Youngman
c7551158c3 Adopt the use of the gnulib module faccessat.
* import-gnulib.config (modules): Add faccessat.
* find/pred.c (struct access_check_args): Delete.
(access_callback): Delete.
(can_access): Delete.
(pred_executable): Use faccessat.
(pred_readable): Likewise.
(pred_writable): Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:36:02 +01:00
James Youngman
742766f729 Adopt (explicitly) the use of the gnulib module dirent-safer.
* import-gnulib.config (modules): Add dirent-safer; we were
previously transitively importing this module, but we are now
importing it directly.
* lib/savedirinfo.c: Include opendir-safer.h.
(xsavedir): Call opendir_safer instead of opendir.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:36:02 +01:00
James Youngman
a3fbb31c1d Adopt the use of the gnulib module d-type.
* import-gnulib.config (modules): Import the d-type module.
* configure.ac: Remove old struct dirent.d_type detection logic
(since we now use the gnulib macro from the d-type module for
this).
* find/parser.c (parse_version): Use HAVE_STRUCT_DIRENT_D_TYPE
(since the d-ino module still defines it) but remove references to
the macro USE_STRUCT_DIRENT_D_TYPE, since it's not defined and not
needed.
* lib/savedirinfo.c: Use HAVE_STRUCT_DIRENT_D_TYPE but ignore
USE_STRUCT_DIRENT_D_TYPE.
(xsavedir): Unconditionally initialise
internal[result->size].type_info so that we don't have untested
code (HAVE_STRUCT_DIRENT_D_TYPE is defined on my system).

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:36:02 +01:00
James Youngman
eefa2bd34a After-the-fact change to NEWS for 4.5.8: fixed bug 27974.
* NEWS: Mention that release 4.5.8 also fixed bug #27974 (Use
gnulib's xreadlinkat support), though the NEWS file in that
release omitted to say so.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-11 11:10:59 +01:00
James Youngman
44b4d4ed09 Update to current gnulib head.
* import-gnulib.config (gnulib_version): Update to current gnulib head.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-10 23:51:41 +01:00
James Youngman
02dae8cef5 Fix typo: s/funciton/function/
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-10 19:12:43 +01:00
James Youngman
5472313749 Pass filename, rather than NULL, to open in pred_samefile.
* find/parser.c (parse_samefile): Since collect_arg_stat_info
increments *arg_ptr, argv[*arg_ptr] is often NULL.   Use filename
instead, as that's the variable in which we store the name of our
file.  The purpose of the fd was only to attempt to keep the inode
number stable on systems that don't really have inode numbers, so
this change should have no functional effect on POSIX systems.

* find/parser.c (parse_samefile): Use open_cloexec to open the
reference file, so that we don't leak a file descriptor.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-09 22:20:10 +01:00
James Youngman
f3b6a66a3d Move on from 4.5.8. 2010-04-08 01:22:39 +01:00
James Youngman
b7acaef07c Prepare to release findutils-4.5.8.
* configure.ac: Update version number in AC_INIT.
* NEWS: Update version number and release date.

Signed-off-by: James Youngman <jay@gnu.org>
v4.5.8
2010-04-07 23:48:37 +01:00
James Youngman
cf0b12478c Did 'make -C po update-po' 2010-04-07 23:45:08 +01:00
James Youngman
bf98503112 Depend on gnulib modules appropriate to features we already use.
* import-gnulib.config (modules): Add c-casestr, errno, fdopendir,
fflush, getdelim, gettimeofday, locale, modf, perror, snprintf,
stat, stdarg, stddef, stdio, stdlib, string, strpbrk, sys_time,
sys_wait.
Also add comments about other modules we may also want to use
which would require other code changes (for example dirent-safer).
* find/Makefile.am (LDADD): Add  $(LIB_EACCESS) $(LIB_SELINUX)
$(MODF_LIBM) which are needed by gnulib modules we now depend on.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 22:25:02 +01:00
James Youngman
419a017364 More stat/xstat cleanup.
* find/parser.c (estimate_fstype_success_rate): Change the name of
the variable "dir" to "the_root_dir" to emphasise that it doesn't
matter that we're calling stat rather than options.xstat.
* find/ftsfind.c (symlink_loop): Call options.xstat instead of
stat/lstat, because options.xstat takes account of
state.cwd_dir_fd.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 22:05:52 +01:00
James Youngman
25e7c5fbf9 Fix Savannah bug 29460, -printf %Y fails in $CWD-dependent way
* find/pred.c (do_fprintf): Use optionl_stat and optionp_stat
instead of stat and lstat, because the first two functions are
aware of state.cwd_dir_fd.
* find/testsuite/find.gnu/printf-nonlocal-symlink.exp: A new test
case for this bug.
* find/testsuite/find.gnu/printf-nonlocal-symlink.xo: Expected
output for this test.
* find/testsuite/Makefile.am (EXTRA_DIST_EXP): Add the new test
case.
(EXTRA_DIST_XO): Add the expected-output file.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 22:05:49 +01:00
James Youngman
c8f6b3d7fa Delete unused file lib/strspn.c
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 21:50:34 +01:00
James Youngman
8562386a11 Update the maintenance manual.
* doc/find-maint.texi: Update the maintenance manual to take into
account the fact that we uniformly use git rather than CVS.  Point
out the new version tag format.  Mention "make coverage".
README-CVS is now called README-hacking.  Update the URL for the
Translation Project.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 21:46:44 +01:00
James Youngman
f9187a197d Eliminate some obsolete code.
* locate/locate.c (search_one_database): Remove obsolete code
(alternative size for procdata.pathsize).
* lib/buildcmd.c (get_line_max): Remove obsolete function.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 21:36:49 +01:00
James Youngman
d020204b5a Remove obsolete code from savedirinfo.c.
* lib/savedirinfo.c (new_savedirinfo): Rename new_savedirinfo to
savedirinfo.
(old_savedirinfo): Remove obsolete function body.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 21:36:00 +01:00
James Youngman
5b9e20405d Support extendbuf buffers larger than SIZE_MAX/2.
* lib/extendbuf.c (xextendbuf): New function; extends the buffer,
but calls xalloc_die on failure.  On the the other hand, extendbuf
returns NULL on failure.
(decide_size): If wanted>SIZE_MAX/2, return wanted.  This means
that for very large buffers, performance on repeated extension
degrades from linear to quadratic (instead of just failing at that
point, as before).
* lib/savedirinfo.c (xsavedir): Use xextendbuf rather than
extendbuf, now that there is a difference in semantics.
* find/fstype.c (get_mounted_filesystems): If extendbuf returns
NULL, fail (by returning NULL ourselves).
(get_mounted_devices): 	Likewise.

Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 21:35:02 +01:00
James Youngman
60416f1b56 Update Vietnamese translation.
Signed-off-by: James Youngman <jay@gnu.org>
2010-04-07 11:02:39 +01:00