1. 27 Nov, 2013 1 commit
    • Glenn Morris's avatar
      Move runtime leim lisp files to lisp/leim directory · cb6c95a3
      Glenn Morris authored
      This allows us to reuse much of the lisp build and installation machinery,
      rather than duplicating it.
      
      * Makefile.in (abs_builddir, leimdir): Remove.
      (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory.
      (epaths-force-w32): No longer set BLD.
      (leim): Remove.
      (install-arch-indep): No longer run or install leim.
      (mostlyclean, clean): No longer run leim rule.
      (bootstrap-clean): Change leim target.
      (maintainer-clean): Add leim.
      (check-declare): Remove leim.
      
      * README: Update for leim changes.
      
      * configure.ac (leimdir): Remove.
      (standardlisppath): No more leimdir.
      
      * make-dist: Update for files from leim/ now being in lisp/leim/.
      
      * doc/lispref/loading.texi (Library Search):
      * doc/lispref/os.texi (Startup Summary): No more leim directory.
      
      * leim/Makefile.in (leimdir): New variable.
      (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc)
      (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el):
      Generate in $leimdir.
      (all): Remove compilation, add ja-dic.
      (leim-list.el): Now PHONY.
      (setwins, compile-targets, compile-main, clean, mostlyclean)
      (extraclean): Remove.
      (bootstrap-clean): Delete all generated files.
      
      * leim/README: Update for moved leim/ directory.
      
      * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate):
      Remove manual autoloads; now in loaddefs.el.
      Disable byte-compile, version-control, autoloads in the output.
      
      * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory.
      (compile-main): Depend on lisp/leim rule.
      (leim): New rule.
      
      * lisp/loadup.el: Move leim-list.el to leim/ subdirectory.
      
      * lisp/startup.el (normal-top-level): No more leim directory.
      
      * lisp/international/ja-dic-cnv.el (skkdic-convert):
      Disable version-control and autoloads in output files.
      * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert):
      Disable version-control and autoloads in output files.
      
      * lisp/leim/quail: Move here from ../leim.
      
      * lisp/leim/quail/hangul.el (hangul-input-method-activate):
      Add autoload cookie.
      (generated-autoload-load-name): Set file-local value.
      
      * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie.
      (generated-autoload-load-name): Set file-local value.
      
      * nt/README.W32:
      * nt/addpm.c (env_vars):
      * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH):
      * nt/paths.h (PATH_LOADSEARCH): No more leim directory.
      
      * src/Makefile.in (leimdir): Now in lisp source directory.
      ($(leimdir)/leim-list.el): Just use ../leim .
      
      * src/epaths.in (PATH_DUMPLOADSEARCH):
      
      * src/lread.c (load_path_default):
      
      * src/nsterm.m (ns_load_path): No more leim directory.
      
      * .bzrignore: Update for relocated leim files.
      cb6c95a3
  2. 26 Nov, 2013 1 commit
    • Glenn Morris's avatar
      Preload leim-list.el · 624780f0
      Glenn Morris authored
      * Makefile.in (abs_builddir): New, set by configure.
      (buildlisppath): Add leim/.
      (epaths-force-w32): Set BLD.
      
      * lisp/loadup.el: Load leim-list.el when found.
      
      * lisp/startup.el (normal-top-level): Skip re-loading leim/leim-list.el.
      
      * nt/epaths.nt (PATH_DUMPLOADSEARCH): Add leim/.
      
      * src/callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
      is a single directory.
      
      * src/epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
      
      Fixes: debbugs:4789
      624780f0
  3. 21 Nov, 2013 2 commits
  4. 20 Nov, 2013 2 commits
  5. 17 Nov, 2013 1 commit
  6. 15 Nov, 2013 1 commit
  7. 14 Nov, 2013 1 commit
    • Paul Eggert's avatar
      Simplify, port and tune bool vector implementation. · 2cf00efc
      Paul Eggert authored
      * configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T): Remove.
      * src/alloc.c (bool_vector_exact_payload_bytes)
      (bool_vector_payload_bytes): Remove.
      (bool_vector_fill): Return its argument.
      * src/alloc.c (bool_vector_fill):
      * src/lread.c (read1):
      * src/print.c (print_object):
      Simplify by using bool_vector_bytes.
      * src/alloc.c (make_uninit_bool_vector):
      New function, broken out from Fmake_bool_vector.
      (Fmake_bool_vector): Use it.  Use tail call.
      (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
      * src/data.c (BITS_PER_ULL): New constant.
      (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
      if long long versions don't exist.
      (shift_right_ull): New function.
      (count_one_bits_word): New function, replacing popcount_bits_word
      macro.  Don't assume that bits_word is no wider than long long.
      (count_one_bits_word, count_trailing_zero_bits):
      Don't assume that bits_word is no wider than long long.
      * src/data.c (bool_vector_binop_driver, bool_vector_not):
      * src/fns.c (Fcopy_sequence):
      * src/lread.c (read1):
      Create an uninitialized destination, to avoid needless work.
      (internal_equal): Simplify.
      (Ffillarray): Prefer tail call.
      * src/data.c (bool_vector_binop_driver): Don't assume bit vectors always
      contain at least one word.
      (bits_word_to_host_endian): Prefer if to #if.  Don't assume
      chars are narrower than ints.
      * src/data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
      * src/fns.c (Fcopy_sequence):
      Simplify and tune.
      * src/lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
      Don't try to port to hosts where bits_word values have holes; the
      code wouldn't work there anyway.  Verify this assumption, though.
      (bool_vector_bytes): New function.
      (make_uninit_bool_vector): New decl.
      (bool_vector_fill): Now returns Lisp_Object.
      2cf00efc
  8. 13 Nov, 2013 1 commit
  9. 12 Nov, 2013 2 commits
  10. 08 Nov, 2013 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 220a304a
      Paul Eggert authored
      This incorporates:
      2013-11-08 extern-inline: port better to OS X 10.9
      2013-11-08 fpending: fix regression on DragonFly BSD
      * lib/fpending.h, m4/extern-inline.m4, m4/fpending.m4:
      Update from gnulib.
      220a304a
  11. 07 Nov, 2013 1 commit
    • Paul Eggert's avatar
      Port to C11 aligned_alloc, and fix some integer overflows. · aea07e2c
      Paul Eggert authored
      * configure.ac (GMALLOC_OBJ): Initialize to empty if !system_malloc
      and doug_lea_malloc.
      (aligned_alloc): Test for existence if !GMALLOC_OBJ and not darwin.
      (posix_memalign): Test for existence only if !GMALLOC_OBJ and
      not darwin and !aligned_alloc.
      * src/alloc.c (USE_ALIGNED_ALLOC): New symbol.
      (USE_POSIX_MEMALIGN): Remove.  All uses replaced with USE_ALIGNED_ALLOC,
      and use of posix_memalign replaced with aligned_alloc.
      (aligned_alloc): New function, defined or declared as needed.
      * src/conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
      Don't undef; configure.ac now does this.
      * src/gmalloc.c (aligned_alloc) [MSDOS]: New decl.
      (calloc, aligned_alloc): Check for integer overflow.
      (aligned_alloc): Rename from memalign.  All uses changed.
      (memalign): New function, an alias for aligned_alloc.
      aea07e2c
  12. 05 Nov, 2013 5 commits
    • Glenn Morris's avatar
      * Makefile.in (epaths-force-w32): Move srcdir tweak here · c923b188
      Glenn Morris authored
      * configure.ac (abs_srcdir) [MINGW32]: No point setting it here,
      config.status computes it.
      c923b188
    • Eli Zaretskii's avatar
      Correct the top-level ChangeLog. · 80ff092b
      Eli Zaretskii authored
      80ff092b
    • Glenn Morris's avatar
    • Glenn Morris's avatar
      Remove the autogen/ directory · 4dde498b
      Glenn Morris authored
      Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00806.html
      
      * autogen: Remove directory.  Move update_autogen to admin/.
      * autogen.sh: Remove reference to copy_autogen.
      * GNUmakefile (configure):
      * Makefile.in (bootstrap): Do not try to run copy_autogen.
      * config.bat: Use msdos/autogen rather than autogen.
      
      * admin/update_autogen: Move here from ../autogen.
      (usage): Update.  Remove -l, add -A.
      (autogendir): New variable.
      (ldefs_flag): Default to set.
      (genfiles): Reduce to only ms-dos relevant files.
      (main): Make checking autogen sources optional.
      Make copying of autogen files optional.
      
      * msdos/autogen/config.in:
      * msdos/autogen/Makefile.in: Move here from ../autogen.
      
      * nt/INSTALL: Remove reference to copy_autogen.
      
      * nt/config.nt: Comment.
      4dde498b
    • Paul Eggert's avatar
      Simplify and port recent bool vector changes. · df5b4930
      Paul Eggert authored
      * configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T):
      New symbols to configure.
      * src/alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
      only in this file.  Use a more-efficient implementation if the
      second argument is a power of 2.
      (ALIGN): Rewrite in terms of ROUNDUP.  Make it a function.
      Remove no-longer-necessary compile-time checks.
      (bool_vector_exact_payload_bytes): New function.
      (bool_vector_payload_bytes): Remove 2nd arg; callers that need
      exact payload changed to call the new function.  Do not assume
      that the arg or result fits in ptrdiff_t.
      (bool_vector_fill): New function.
      (Fmake_bool_vector): Use it.  Don't assume bit counts fit
      in ptrdiff_t.
      (vroundup_ct): Don't assume arg fits in size_t.
      * src/category.c (SET_CATEGORY_SET): Remove.  All callers now just
      invoke set_category_set.
      (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
      All callers changed.  Use bool_vector_set.
      * src/category.h (XCATEGORY_SET): Remove; no longer needed.
      (CATEGORY_MEMBER): Now a function.  Rewrite in terms of
      bool_vector_bitref.
      * src/data.c (Faref): Use bool_vector_ref.
      (Faset): Use bool_vector_set.
      (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
      (Fbool_vector_not, Fbool_vector_count_matches)
      (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
      * src/fns.c (concat): Use bool_vector_ref.
      (Ffillarray): Use bool_vector_fill.
      (mapcar1): Use bool_vector_ref.
      (sxhash_bool_vector): Hash words, not bytes.
      * src/lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
      a constant, since it's now used in #if.
      (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
      unsigned char on unusual architectures, so that we no longer
      assume that the number of bits per bits_word is a power of two or
      is a multiple of 8 or of CHAR_BIT.
      (Qt): Add forward decl.
      (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
      at least as strictly as bits_word.
      (bool_vector_data, bool_vector_uchar_data): New accessors.
      All data structure accesses changed to use them.
      (bool_vector_words, bool_vector_bitref, bool_vector_ref)
      (bool_vector_set): New functions.
      (bool_vector_fill): New decl.
      (ROUNDUP): Move to alloc.c as described above.
      df5b4930
  13. 04 Nov, 2013 2 commits
    • Eli Zaretskii's avatar
      Fix bug #15260 with building and installing Emacs in non-ASCII directories. · d0065ff1
      Eli Zaretskii authored
       src/xdisp.c (message3_nolog, message_with_string): Encode the string
       before writing it to the terminal in a non-interactive session.
       src/lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
       sure we concatenate them into a unibyte string.
       src/fileio.c (make_temp_name): Encode PREFIX, and decode the
       resulting temporary name before returning it to the caller.
       (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
       is a unibyte string, convert NAME to a unibyte string to ensure
       that the result is also a unibyte string.
       src/emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
       create unibyte strings from default paths and directory/file
       names.
       src/coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
       string.
       src/callproc.c (init_callproc): Use build_unibyte_string to make
       sure we create unibyte strings from default paths and
       directory/file names.
       src/buffer.c (init_buffer): Don't store default-directory of
       *scratch* in multibyte form.  The original problem which led to
       that is described in
       http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
       but it was solved long ago.
      
       lisp/startup.el (normal-top-level): Move setting eol-mnemonic-unix,
       eol-mnemonic-mac, eol-mnemonic-dos, and also setup of the locale
       environment and decoding all of the default-directory's to here
       from command-line.
       (command-line): Decode also argv[0].
       lisp/loadup.el: Error out if default-directory is a multibyte string
       when we are dumping.
       lisp/Makefile.in (emacs): Don't set LC_ALL=C.
      
       leim/Makefile.in (RUN_EMACS): Don't set LC_ALL=C.
      
       configure.ac: Don't disallow builds in non-ASCII directories.
      d0065ff1
    • Paul Eggert's avatar
      Port to stricter C99 platforms. · 91f2d272
      Paul Eggert authored
      Especially, C99 prohibits nesting a struct X inside struct Y if
      struct X has a flexible array member.
      Also, merge from gnulib, incorporating:
      2013-11-03 intprops: port to Oracle Studio c99
      * lib/intprops.h: Update from gnulib.
      * src/alloc.c (struct sdata): New type.
      (sdata): Implement in terms of struct sdata.
      Remove u member; all uses replaced by next_vector, set_next_vector.
      (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
      (SDATA_DATA_OFFSET): Now a constant, not a macro.
      (struct sblock): Rename first_data member to data, which is now
      a flexible array member.  All uses changed.
      (next_vector, set_next_vector, large_vector_vec): New functions.
      (vector_alignment): New constant.
      (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
      (struct large-vector): Now merely a NEXT member, since the old approach
      ran afoul of stricter C99.  All uses changed to use
      large_vector_vec or large_vector_offset.
      (large_vector_offset): New constant.
      * src/dispnew.c: Include tparam.h, for tgetent.
      Do not include term.h; no longer needed.
      * src/gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
      * src/lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
      (struct Lisp_Vector): Use a flexible array member for contents,
      instead of a union with a member that is an array of size 1.
      All uses changed.
      (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
      fact that the struct no longer contains a union.
      (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
      (struct Lisp_Save_Value, struct Lisp_Free):
      Use unsigned, not int, for spacers, to avoid c99 warning.
      (union specbinding): Use unsigned, not bool, for bitfield, as
      bool is not portable to pre-C99 hosts.
      91f2d272
  14. 02 Nov, 2013 1 commit
    • Glenn Morris's avatar
      test/automated: Use relative filename for emacs executable · 67fb4e6a
      Glenn Morris authored
      * Makefile.in (check): Depend on all.
      
      * test/automated/Makefile.in (abs_top_builddir): Remove variable.
      (EMACS): Use a relative file name.
      (lisp-compile): Remove (assume it's up-to-date).
      (compile-main): Do not run lisp-compile.
      (check): Use --chdir.
      67fb4e6a
  15. 31 Oct, 2013 1 commit
  16. 30 Oct, 2013 1 commit
  17. 27 Oct, 2013 1 commit
  18. 25 Oct, 2013 1 commit
  19. 24 Oct, 2013 2 commits
    • Glenn Morris's avatar
      Avoid non-portable "` ... \"...\" ... `" nesting · 357a5081
      Glenn Morris authored
      * configure.ac:
      * Makefile.in (install-arch-indep, install-etcdoc, install-info):
      * lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
      * nt/Makefile.in ($(DESTDIR)${archlibdir}):
      Avoid non-portable "`\" nesting.
      357a5081
    • Glenn Morris's avatar
      Attempt at a fix for mingw CPPFLAGS · eb9a3661
      Glenn Morris authored
      * configure.ac (CPPFLAGS) [mingw32]: Use abs_top_srcdir.
      
      * Makefile.in (abs_top_srcdir):
      * lib-src/Makefile.in (abs_top_srcdir):
      * lwlib/Makefile.in (abs_top_srcdir):
      * nt/Makefile.in (abs_top_srcdir):
      * oldXMenu/Makefile.in (abs_top_srcdir):
      * src/Makefile.in (abs_top_srcdir):
      New, set by configure.
      eb9a3661
  20. 23 Oct, 2013 7 commits
    • Glenn Morris's avatar
      98434155
    • Glenn Morris's avatar
      4b56b9d7
    • Glenn Morris's avatar
      * configure.ac: Explicit error for non-ASCII directories · 7b65c8d0
      Glenn Morris authored
      Fixes: debbugs:15260
      7b65c8d0
    • Glenn Morris's avatar
      More Makefile quoting · a318e28f
      Glenn Morris authored
      * Makefile.in (install-arch-dep, install-nt, uninstall, uninstall-nt):
      Quote entities that might contain whitespace.
      a318e28f
    • Glenn Morris's avatar
      Progress towards allowing installation in directories with whitespace · 48f73cfb
      Glenn Morris authored
      * Makefile.in (COPYDESTS, write_subdir, install-arch-dep)
      (install-arch-indep, install-etcdoc, install-info, install-man)
      (install-etc, uninstall): Quote entities that might contain whitespace.
      
      * build-aux/update-subdirs: Handle whitespace in argument.
      Check cd return value.
      
      * doc/emacs/Makefile.in (install-dvi, install-html, install-pdf)
      (install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
      (uninstall-pdf): Quote entities that might contain whitespace.
      
      * doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf)
      (install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
      (uninstall-pdf): Quote entities that might contain whitespace.
      
      * doc/lispref/Makefile.in (install-dvi, install-html, install-pdf)
      (install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
      (uninstall-pdf): Quote entities that might contain whitespace.
      
      * doc/misc/Makefile.in (install-dvi, install-html, install-pdf)
      (install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
      (uninstall-pdf): Quote entities that might contain whitespace.
      
      * lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install)
      (uninstall): Quote entities that might contain whitespace.
      
      * nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall):
      Quote entities that might contain whitespace.
      48f73cfb
    • Glenn Morris's avatar
      Make building in directories with whitespace possible · b8e3b0a9
      Glenn Morris authored
      Make has trouble with targets containing whitespace, 
      http://savannah.gnu.org/bugs/?712, so the general approach is
      to use relative paths where possible.  It's generally only Emacs
      itself that needs absolute paths, eg in src/epaths.h.
      
      * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists.
      
      * Makefile.in (abs_srcdir): New, set by configure.
      (buildlisppath): Use abs_srcdir.
      (install-arch-indep, install-etcdoc, install-info, install-man)
      (install-etc): Quote entities that might contain whitespace.
      
      * admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
      Quote entities that might contain whitespace.
      
      * leim/Makefile.in (abs_srcdir): New, set by configure.
      (buildlisppath): Use abs_srcdir.
      (RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el)
      ($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare):
      Quote entities that might contain whitespace.
      
      * lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
      Quote entities that might contain whitespace.
      
      * lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure.
      (emacs, compile, compile-always):
      Quote entities that might contain whitespace.
      (custom-deps, finder-data, autoloads): Use abs_lisp.
      ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el)
      ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el)
      ($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name.
      
      * nextstep/Makefile.in (${ns_check_file} ${ns_appdir}):
      Quote entities that might contain whitespace.
      
      * nt/Makefile.in ($(DESTDIR)${archlibdir}):
      Quote entities that might contain whitespace.
      
      * src/Makefile.in (RUN_TEMACS): Make relative (again).
      ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
      (bootstrap-emacs$(EXEEXT)):
      Quote entities that might contain whitespace.
      
      * test/automated/Makefile.in (abs_top_srcdir, top_builddir):
      New, set by configure.
      (top_srcdir): Remove.
      (abs_test, abs_lispsrc): New.
      (lisp): No longer absolute.
      (emacs, lisp-compile, compile, compile-always):
      Quote entities that might contain whitespace.
      
      Fixes: debbugs:15675
      b8e3b0a9
    • Paul Eggert's avatar
      Merge from gnulib. · 758bed52
      Paul Eggert authored
      This incorporates:
      2013-10-14 acl: allow cross-compilation to Gentoo
      2013-10-18 extern-inline: make safe for -Wundef usage
      2013-09-30 fpending: use pure+const function attrs
      * lib/fpending.h, m4/acl.m4, m4/extern-inline.m4: Update from gnulib.
      758bed52
  21. 13 Oct, 2013 1 commit
  22. 12 Oct, 2013 1 commit
    • Paul Eggert's avatar
      Merge from gnulib. · 46e5e833
      Paul Eggert authored
      This incorporates:
      2013-10-10 strtoumax: port to Solaris 8
      2013-10-09 strtoimax, strtoumax: port to HP-UX 11.11
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/inttypes.in.h, lib/strtoimax.c, m4/inttypes.m4, m4/strtoimax.m4:
      * m4/strtoumax.m4:
      Update from gnulib.
      46e5e833
  23. 11 Oct, 2013 2 commits
  24. 10 Oct, 2013 1 commit
    • Barry Fishman's avatar
      Handle giflib 5 changes (tiny change) · f3606ef7
      Barry Fishman authored
      * configure.ac: Update for giflib 5. 
      
      * src/image.c (GIFLIB_MAJOR): Ensure it's defined.
      (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax.  (Bug#15531)
      f3606ef7