1. 07 Apr, 2017 5 commits
    • Lars Brinkhoff's avatar
    • Paul Eggert's avatar
      More casefiddle minor fixes · 2012839a
      Paul Eggert authored
      * src/casefiddle.c (case_character_impl): Omit unnecessary casts.
      (case_character_impl): Avoid reevaluation of CHAR_TABLE_REF.
      (GREEK_CAPITAL_LETTER_SIGMA): Fix typo in my previous change.
    • Paul Eggert's avatar
      ; Spelling and punctuation fixes · cea942e5
      Paul Eggert authored
    • Jeff Clough's avatar
      Output number of characters added to file (Bug#354) · cd0a7951
      Jeff Clough authored
      * fileio.c (write_region):
      * epa-file.el (epa-file-write-region):
      * jka-compr.el (jka-compr-write-region):
      * ange-ftp.el (ange-ftp-write-region):
      * tramp-gvfs.el (tramp-gvfs-handle-write-region):
      * tramp-sh.el (tramp-sh-handle-write-region):
      * mm-util.el (mm-append-to-file): Functions now output
      characters written in addition to file name.
      * files.texi: Added documentation to write-region and
      append-to-file describing their output.
    • Noam Postavsky's avatar
      Fix ‘!NILP (Vpurify_flag)’ assertion failure during temacs bootstrap · 4b3db0da
      Noam Postavsky authored
      The recent changes to src/casefiddle.c cause build failure as seen
          Starting program: /home/npostavs/src/emacs/emacs-bootstrapping/src/temacs
      	--batch --load loadup bootstrap
          [Thread debugging using libthread_db enabled]
          Using host libthread_db library "/usr/lib/libthread_db.so.1".
          Loading loadup.el (source)...
          Using load-path (/home/npostavs/src/emacs/emacs-bootstrapping/lisp
          Loading emacs-lisp/byte-run (source)...
          Loading emacs-lisp/backquote (source)...
          Loading subr (source)...
          Loading version (source)...
          Loading widget (source)...
          Loading custom (source)...
          Loading emacs-lisp/map-ynp (source)...
          Loading international/mule (source)...
          Loading international/mule-conf (source)...
          lread.c:3914: Emacs fatal error: assertion failed: !NILP (Vpurify_flag)
          Breakpoint 1, terminate_due_to_signal at emacs.c:363
          363	  signal (sig, SIG_DFL);
          (gdb) bt
          #0  0x0000000000579826 in terminate_due_to_signal at emacs.c:363
          #1  0x000000000060ec33 in die at alloc.c:7352
          #2  0x000000000066db40 in intern_c_string_1 at lread.c:3914
          #3  0x0000000000576884 in intern_c_string at lisp.h:3790
          #4  0x00000000005dc84f in prepare_casing_context at casefiddle.c:69
          #5  0x00000000005dd37f in casify_object at casefiddle.c:311
          #6  0x00000000005dd47f in Fcapitalize at casefiddle.c:356
          #7  0x00000000006325ac in eval_sub at eval.c:2219
          #8  0x0000000000632368 in eval_sub at eval.c:2184
          #9  0x000000000063446c in apply_lambda at eval.c:2875
          #10 0x00000000006329af in eval_sub at eval.c:2294
          #11 0x000000000062d462 in Fprogn at eval.c:449
          #12 0x000000000062d4cf in prog_ignore at eval.c:461
          #13 0x000000000062f19c in Fwhile at eval.c:982
          #14 0x00000000006321f4 in eval_sub at eval.c:2172
          #15 0x000000000062d462 in Fprogn at eval.c:449
          #16 0x000000000062f0c4 in Flet at eval.c:963
          #17 0x00000000006321f4 in eval_sub at eval.c:2172
          #18 0x0000000000632963 in eval_sub at eval.c:2290
          #19 0x000000000062d462 in Fprogn at eval.c:449
          #20 0x000000000062f0c4 in Flet at eval.c:963
          #21 0x00000000006321f4 in eval_sub at eval.c:2172
          #22 0x0000000000668caa in readevalloop at lread.c:1927
          #23 0x0000000000667253 in Fload at lread.c:1332
          #24 0x0000000000632683 in eval_sub at eval.c:2233
          #25 0x0000000000668caa in readevalloop at lread.c:1927
          #26 0x0000000000667253 in Fload at lread.c:1332
          #27 0x0000000000632683 in eval_sub at eval.c:2233
          #28 0x0000000000631be5 in Feval at eval.c:2041
          #29 0x000000000057e1af in top_level_2 at keyboard.c:1121
          #30 0x000000000062ffc7 in internal_condition_case at eval.c:1324
          #31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129
          #32 0x000000000062f51e in internal_catch at eval.c:1091
          #33 0x000000000057e0ea in command_loop at keyboard.c:1090
          #34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697
          #35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768
          #36 0x000000000057b55b in main at emacs.c:1687
          Lisp Backtrace:
          "capitalize" (0xffffcf70)
          "format" (0xffffd130)
          "define-charset" (0xffffd370)
          "while" (0xffffd560)
          "let" (0xffffd7c0)
          "dolist" (0xffffd910)
          "let" (0xffffdb70)
          "load" (0xffffdfe0)
          "load" (0xffffe4a0)
      * src/casefiddle.c (syms_of_casefiddle): Declare four new symbols:
      Qtitlecase, Qspecial_uppercase, Qspecial_lowercase and
      (prepare_casing_context): Use aforementioned symbols.
  2. 06 Apr, 2017 18 commits
    • Paul Eggert's avatar
      Merge from gnulib · 02275595
      Paul Eggert authored
      This merges some getopt fixes from Zack Weinberg, and affects only
      non-GNUish platforms.  It incorporates:
      2017-04-06 getopt-gnu: omit some duplicate code
      2017-04-06 getopt-posix: use angle-bracket include
      2017-04-06 getopt: annotate files with relationship to glibc
      2017-04-06 getopt: split up getopt.in.h and eliminate __need_getopt
      2017-04-06 getopt: better handling of ambiguous options
      2017-04-06 getopt: refactor long-option handling
      2017-04-06 getopt: tidy up _getopt_initialize a bit
      2017-04-06 getopt: merge from glibc: repetition reduction
      2017-04-06 getopt: clean up error reporting
      2017-04-06 getopt: fix fencepost error in ambiguous-W-option handling
      2017-04-06 getopt: clean up getopt.c and getopt1.c file headers
      2017-04-06 getopt: harmonize comments with glibc
      2017-04-06 getopt: remove USE_NONOPTION_FLAGS
      2017-04-06 getopt: tabify, in preparation for merge with glibc
      2017-04-06 md5, sha1, sha256, sha512: Add comments re correctness
      * build-aux/config.sub, doc/misc/texinfo.tex, lib/getopt.c:
      * lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h, lib/md5.c:
      * lib/md5.h, lib/sha1.c, lib/sha1.h, lib/sha256.c, lib/sha256.h:
      * lib/sha512.c, lib/sha512.h, lib/unistd.in.h, m4/getopt.m4:
      Copy from gnulib.
      * lib/getopt_cdefs.in.h, lib/getopt_core.h, lib/getopt_ext.h:
      * lib/getopt_pfx_core.h, lib/getopt_pfx_ext.h:
      New files, taken from gnulib.
      * lib/gnulib.mk.in, m4/gnulib-comp.m4:
    • Paul Eggert's avatar
      Minor casefiddle.c cleanups · 451a0c8b
      Paul Eggert authored
      * src/casefiddle.c: Redo recent changes to match GNU style,
      and prefer C99-style decls within blocks.
      we are merely using the Unicode name, and make it a constant
      rather than a macro.  All uses changed.
      (SMALL_SIGMA): Remove; unused.
      and make it a constant rather than a macro.  All uses changed.
      (do_casify_multibyte_string): Use ‘verify’ rather than an
      unportable static_assertion local.
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      Fix 'make clean' in lib subdirectory · 360b2bf2
      Paul Eggert authored
      * lib/Makefile.in (clean): Remove *-t files.
      (mostlyclean): Remove MOSTLYCLEANFILES that are not *-t files.
      This removes files like lib/getopt.h that should be removed
      even if this configuration did not need to build them.
      (maintainer-clean): Remove TAGS here, not in distclean,
      to be consistent with ../src/Makefile.in.
    • Michael Albinus's avatar
      Add new Tramp syntax · 69061fd1
      Michael Albinus authored
      * lisp/net/tramp-cmds.el (tramp-change-syntax): New defun.
      * lisp/net/tramp.el (tramp-syntax): Change default to `def'.
      Add :set function.
      (tramp-prefix-port-format): Simplify.
      (tramp-file-name-regexp-separate): Remove.
      (tramp-initial-completion-file-name-regexp): New defconst.
      (tramp-prefix-format, tramp-prefix-regexp)
      (tramp-method-regexp, tramp-postfix-method-format)
      (tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
      (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
      (tramp-postfix-host-format, tramp-postfix-host-regexp)
      (tramp-file-name-structure, tramp-file-name-regexp)
      (tramp-rfn-eshadow-update-overlay-regexp): Change them to be defuns.
      (tramp-tramp-file-p, tramp-find-method)
      (tramp-dissect-file-name, tramp-make-tramp-file-name)
      (tramp-completion-dissect-file-name, tramp-clear-passwd):
      * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler):
      * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered)
      (tramp-compute-multi-hops): Use them.
    • Michal Nazarewicz's avatar
      Implement special sigma casing rule (bug#24603) · c1fa0722
      Michal Nazarewicz authored
      In Greek, a sigma character has two lower case forms which depend on
      their position in the word.  Implement logic determining it.
      * src/casefiddle.c (struct casing_context, case_character_impl): Don’t
      assume inword is true when flag is CASE_UP and false when flag is
      CASE_DOWN.  For final sigma detection we need this information tracked
      Unicode code point of different forms of sigma letter.
      (case_character): Implement support for final sigma casing.
      (do_casify_multibyte_string, do_casify_multibyte_region): Update after
      changes to case_character.
      * test/src/casefiddle-tests.el (casefiddle-tests-casing): Add test
      cases for final sigma.
    • Michal Nazarewicz's avatar
      Support casing characters which map into multiple code points (bug#24603) · b3b9b258
      Michal Nazarewicz authored
      Implement unconditional special casing rules defined in Unicode standard.
      Among other things, they deal with cases when a single code point is
      replaced by multiple ones because single character does not exist (e.g.
      ‘fi’ ligature turning into ‘FL’) or is not commonly used (e.g. ß turning
      into SS).
      * admin/unidata/SpecialCasing.txt: New data file pulled from Unicode
      standard distribution.
      * admin/unidata/README: Mention SpecialCasing.txt.
      * admin/unidata/unidata-get.el (unidata-gen-table-special-casing,
      unidata-gen-table-special-casing--do-load): New functions generating
      ‘special-uppercase’, ‘special-lowercase’ and ‘special-titlecase’
      character Unicode properties built from the SpecialCasing.txt Unicode
      data file.
      * src/casefiddle.c (struct casing_str_buf): New structure for
      representing short strings used to handle one-to-many character
      (case_character_imlp): New function which can handle one-to-many
      character mappings.
      (case_character, case_single_character): Wrappers for the above
      functions.  The former may map one character to multiple (or no)
      code points while the latter does what the former used to do (i.e.
      handles one-to-one mappings only).
      (do_casify_natnum, do_casify_unibyte_string,
      do_casify_unibyte_region): Use case_single_character.
      (do_casify_multibyte_string, do_casify_multibyte_region): Support new
      features of case_character.
      * (do_casify_region): Updated to reflact do_casify_multibyte_string
      (casify_word): Handle situation when one character-length of a word
      can change affecting where end of the word is.
      (upcase, capitalize, upcase-initials): Update documentation to mention
      limitations when working on characters.
      * test/src/casefiddle-tests.el (casefiddle-tests-char-properties):
      Add test cases for the newly introduced character properties.
      (casefiddle-tests-casing): Update test cases which are now passing.
      * test/lisp/char-fold-tests.el (char-fold--ascii-upcase,
      char-fold--ascii-downcase): New functions which behave like old ‘upcase’
      and ‘downcase’.
      (char-fold--test-match-exactly): Use the new functions.  This is needed
      because otherwise fi and similar characters are turned into their multi-
      -character representation.
      * doc/lispref/strings.texi: Describe issue with casing characters versus
      * doc/lispref/nonascii.texi: Describe the new character properties.
    • Michal Nazarewicz's avatar
      Split up casify_region function (bug#24603) · 2c87dabd
      Michal Nazarewicz authored
      No functional changes at this time but splitting casify_region into
      a function dealing with multibyte and another dealing with unibyte
      buffers will make future code changes slightly easier.
      * src/casefiddle.c (casify_region): Move most of the code into two
      new functions:
      (do_casify_multibyte_region, do_casify_unibyte_region): new functions.
    • Michal Nazarewicz's avatar
      Add support for title-casing letters (bug#24603) · 13d813b1
      Michal Nazarewicz authored
      * src/casefiddle.c (struct casing_context, prepare_casing_context): Add
      titlecase_char_table member.  It’s set to the ‘titlecase’ Unicode
      property table if capitalisation has been requested.
      (case_character): Make use of the titlecase_char_table to title-case
      initial characters when capitalising.
      * test/src/casefiddle-tests.el (casefiddle-tests--characters,
      casefiddle-tests-casing): Update test cases which are now passing.
    • Michal Nazarewicz's avatar
      Introduce case_character function · 8e5b909f
      Michal Nazarewicz authored
      Move single-character casing logic into a separate function so that
      it is collected in a single place.  This will make future changes to
      the logic easier.  This commit introduces no functionality changes.
      * src/casefiddle.c (struct casing_context, prepare_casing_context): New
      sturcture for saving casing context and function to initialise it.
      (case_character): New function which cases character base on provided
      (do_casify_integer, do_casify_multibyte_string,
      do_casify_unibyte_string, casify_object, casify_region): Convert to
      use casing_context and case_character.
    • Michal Nazarewicz's avatar
      Split casify_object into multiple functions · ec2d002f
      Michal Nazarewicz authored
      casify_object had three major cases to cover and those were mostly
      independent of each other.  Move those branches to separate function
      so it’s easier to comprehend each individual case.
      While at it, use somewhat more descriptive ch and cased variable names
      rather than c and c1.
      This commit introduces no functional changes.
      * src/casefiddle.c (casify_object): Split into…
      (do_casify_integer, do_casify_multibyte_string,
      do_casify_unibyte_string): …new functions.
    • Lars Brinkhoff's avatar
      Update documentation for type semantics of records. · 4753f3f0
      Lars Brinkhoff authored
      * objects.texi (Record Type): improve description of what
      `type-of' returns for records.
      (Type Descriptors): new section.
      * elisp.texi: reference it.
      * records.texi (Records): reference it.  Document behaviour when type
      slot is a record.
      * alloc.c (Fmake_record, Frecord): mention type desciptors.
    • Stefan Monnier's avatar
    • Tom Tromey's avatar
      require cl-lib to fix fallout from mhtml series · f23c82d1
      Tom Tromey authored
      * lisp/align.el, lisp/calc/calc-embed.el, lisp/cedet/semantic.el,
      lisp/emulation/viper.el: Require cl-lib.
    • Ken Raeburn's avatar
      In CANNOT_DUMP builds, allow editing of files named "dump". · 7a21bdce
      Ken Raeburn authored
      * lisp/loadup.el: Perform the "dump" or "bootstrap" actions like
      calling dump-emacs only if dump-emacs is defined; otherwise, don't
      treat those command-line argument specially.
    • Ken Raeburn's avatar
      In CANNOT_DUMP builds, don't prepare for unexec. · 8ca2bd1c
      Ken Raeburn authored
      Having a command-line argument of "dump" or "bootstrap" would trigger
      behavior like not installing signal handlers.  In CANNOT_DUMP modes,
      we should get signal handlers installed regardless of whatever funny
      file names we decide to edit.
      src/emacs.c (main) [CANNOT_DUMP]: Don't enable the "dumping"
      alterations to initialization that prepares the process for unexec.
    • Ken Raeburn's avatar
      Allow a CANNOT_DUMP build to use exec-path during bootstrap. · dd09e72e
      Ken Raeburn authored
      During a bootstrap, loading rmail.el invokes movemail to determine its
      flavor, but call-process doesn't work if exec-path is nil.
      * lisp/loadup.el: Only clear exec-path if dumping.
    • Ken Raeburn's avatar
      Fix CANNOT_DUMP build on Darwin/macOS. · d15719d3
      Ken Raeburn authored
      * src/conf_post.h (malloc, realloc, free) [DARWIN_OS && emacs &&
      CANNOT_DUMP]: Don't define as unexec_malloc, etc.
      * src/emacs.c (main): Don't call unexec_init_emacs_zone.
  3. 05 Apr, 2017 16 commits
  4. 04 Apr, 2017 1 commit