From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 14:56:28 2016 Received: (at submit) by debbugs.gnu.org; 11 Aug 2016 18:56:28 +0000 Received: from localhost ([127.0.0.1]:54348 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXv9Y-0001fg-Gf for submit@debbugs.gnu.org; Thu, 11 Aug 2016 14:56:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:57088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXv9X-0001fU-7S for submit@debbugs.gnu.org; Thu, 11 Aug 2016 14:56:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXv9H-0004wP-52 for submit@debbugs.gnu.org; Thu, 11 Aug 2016 14:56:21 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57295) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXv9H-0004wH-02 for submit@debbugs.gnu.org; Thu, 11 Aug 2016 14:56:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47982) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXv95-00016k-LH for bug-gnu-emacs@gnu.org; Thu, 11 Aug 2016 14:56:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXv8t-0004mi-PR for bug-gnu-emacs@gnu.org; Thu, 11 Aug 2016 14:55:58 -0400 Received: from mail-pf0-x22d.google.com ([2607:f8b0:400e:c00::22d]:34935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXv8s-0004lu-TX for bug-gnu-emacs@gnu.org; Thu, 11 Aug 2016 14:55:47 -0400 Received: by mail-pf0-x22d.google.com with SMTP id x72so1215650pfd.2 for ; Thu, 11 Aug 2016 11:55:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=L8Scq8TfNM+0RV0T+rNIXB8zDHISQy+4kim5dKq4ymo=; b=MNcqxhrh05GWfCmCPllGH1GltouTIyU2Vvw2liPYVhquCi+FzfRPFtdVccc8uooawm xnzGX+ziG+ktSn9oSLIg/Q4lwh9HAIYGgEkKbl6O+1UWcwwbY3Vj91AutpkGmvl5a5rS hqExLxnUWjK3qV2MBdKw8lJMAF7J2X0XNTGMut/acLfL9Fwf69mTQhwNgiOBuehHMZBB DGxmkbW5p1d1aEsncrEcZY6e4ug0w8Sfn5/nNw9BnZim/mqUggXfYgWAMRMC1oR/rNT2 bxVspY0NIKT5GmyufxdK/kWJONOQ4LEH/O4kUy6GCF0e9jNgxt4UIMB5uvjmVtsFFrO3 tWsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=L8Scq8TfNM+0RV0T+rNIXB8zDHISQy+4kim5dKq4ymo=; b=KGUcr16TqRVy5HUwqi8gbC9xBCMwgff7uckB/gIxGp/ED4Aan0OxrIC/iTHbXDfO1l 1HtJZSThyvYdVs7UXNbqMWd60JjFPtkg2JpgrhbrUK162wsMhzWy1I1OaQC8E/WJrzwT VGcpjrzQSSk5Sux3v+wU9SIzsXmIzTzFvuo/cb5sTrnla/nMfY66YPAsFjvvuoZu1vC0 oeyQkhHZ7mjFkZHDdVwPbb+wPJKzCgCV/vXr5xCxfrWFsAEYq//e1Au5AcPyMp8w4QZX Hnc/YByX5PbO3ZLwDd0JgU0WAEv6hg3ZWCMu+GGCQgL2aljYeyE99tRux6KXHw+IgRO9 HC4Q== X-Gm-Message-State: AEkoouvUqlJZIflu/zHgbXGMkhNeYCJJ07jrwiEvVQSx+WbD5McX1PDXinZmZ/IUYEeWbQ== X-Received: by 10.98.24.194 with SMTP id 185mr19950358pfy.52.1470941744783; Thu, 11 Aug 2016 11:55:44 -0700 (PDT) Received: from phst-glaptop2 ([2620:0:100e:300:9896:7bc2:49e:9dae]) by smtp.gmail.com with ESMTPSA id g21sm7056682pfj.88.2016.08.11.11.55.42 for (version=TLS1_2 cipher=AES128-SHA bits=128/128); Thu, 11 Aug 2016 11:55:43 -0700 (PDT) From: Phil To: bug-gnu-emacs@gnu.org Subject: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 11 Aug 2016 11:55:05 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Build is from the emacs-25 branch. $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face = 'test))" character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) Fatal error 6: Aborted I think this is serious enough to be release-blocking. Seen in the wild with older versions of show-wspace.el. (gdb) bt full #0 terminate_due_to_signal (sig=3D6, backtrace_limit=3D2147483647) at emac= s.c:354 No locals. #1 0x00000000006122e6 in die (msg=3D0x732ed0 "CHAR_VALID_P (ch)", file=3D0= x732ec4 "character.h", line=3D703) at alloc.c:7223 No locals. #2 0x000000000057c60d in char_table_translate (obj=3D..., ch=3D4195776) at= character.h:703 No locals. #3 0x00000000005fe182 in re_search_2 (bufp=3D0xd76160 , s= tr1=3D0x0, size1=3D0, str2=3D0x1ae6898 "=E2=80=98\240=E2=80=99", size2=3D7,= startpos=3D0, range=3D1, regs=3D0xd766f0 , stop=3D7) at regex= .c:4370 buf_charlen =3D 2 irange =3D 7 lim =3D 0 d =3D 0x1ae689e "\231" buf_ch =3D 4195776 val =3D 14115136 string1 =3D 0x0 string2 =3D 0x1ae6898 "=E2=80=98\240=E2=80=99" fastmap =3D 0xd761a0 "" translate =3D { i =3D 21377445 } total_size =3D 7 endpos =3D 7 anchored_start =3D 0 '\000' multibyte =3D 1 '\001' #4 0x00000000005fdcef in re_search (bufp=3D0xd76160 , str= ing=3D0x1ae6898 "=E2=80=98\240=E2=80=99", size=3D7, startpos=3D0, range=3D7= , regs=3D0xd766f0 ) at regex.c:4228 No locals. #5 0x00000000005ea018 in string_match_1 (regexp=3D..., string=3D..., start= =3D..., posix=3Dfalse) at search.c:404 val =3D 5747501 bufp =3D 0xd76160 pos =3D 0 pos_byte =3D 0 i =3D 42963155872 #6 0x00000000005ea18d in Fstring_match (regexp=3D..., string=3D..., start= =3D...) at search.c:444 No locals. #7 0x0000000000637da1 in Ffuncall (nargs=3D3, args=3D0x7fffffff5df0) at ev= al.c:2700 internal_argbuf =3D {{ i =3D 19272884 }, { i =3D 19244804 }, { i =3D 0 }, { i =3D 0 }, { i =3D 0 }, { i =3D 6836305 }, { i =3D 20056252 }, { i =3D 326 }} fun =3D { i =3D 10117229 } original_fun =3D { i =3D 655680 } funcar =3D { i =3D 11020413 } numargs =3D 2 lisp_numargs =3D { i =3D 19272884 } val =3D { i =3D 43248 } internal_args =3D 0x7fffffff5d60 count =3D 36 #8 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff66e0) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 36 op =3D 2 vectorp =3D 0x15310e8 stack =3D { pc =3D 0x1ae653d "\203\252",=20 byte_string =3D { i =3D 19273556 },=20 byte_string_start =3D 0x1ae6528 "\300\301\002!!\302\002\303\"\302= \211\004\304\"\305\"`\306\307\005\"\203\252",=20 next =3D 0x7fffffff6e00 } top =3D 0x7fffffff5df0 result =3D { i =3D 0 } type =3D CATCHER #9 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff66d8) at eval.c:2855 size =3D 5 val =3D { i =3D 21698117 } syms_left =3D { i =3D 1030 } next =3D { i =3D 60157747265 } lexenv =3D { i =3D 140737488315600 } count =3D 36 i =3D 60143831280 optional =3D false rest =3D false #10 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff66d0) at ev= al.c:2742 fun =3D { i =3D 21698117 } original_fun =3D { i =3D 13352512 } funcar =3D { i =3D 140737488315760 } numargs =3D 1 lisp_numargs =3D { i =3D 140737488315792 } val =3D { i =3D 0 } internal_args =3D 0xda08f0 count =3D 35 #11 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff66d0) at eval= .c:2274 i =3D 5740786 numargs =3D 0 funcall_nargs =3D 13443920 funcall_args =3D 0x0 spread_arg =3D { i =3D 0 } fun =3D { i =3D 13352512 } retval =3D { i =3D 140737488315952 } sa_avail =3D 16384 sa_count =3D 35 sa_must_free =3D false #12 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff6828) = at fns.c:2931 widget =3D { i =3D 29645555 } property =3D { i =3D 13443920 } propval =3D { i =3D 13352512 } trailing_args =3D { i =3D 0 } result =3D { i =3D 13750941 } #13 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff6820) at ev= al.c:2673 fun =3D { i =3D 13750941 } original_fun =3D { i =3D 209904 } funcar =3D { i =3D 327 } numargs =3D 2 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 0 } internal_args =3D 0x51a count =3D 34 #14 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff70c0) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 31 op =3D 2 vectorp =3D 0x152f188 stack =3D { pc =3D 0x1cae31a "\210\266\b\354 \355 \356\002\302\"\210\356\001\= 303\"\210\357\003\360\004#\210\357\003\361\003#\266\003db\210+\362 \207",=20 byte_string =3D { i =3D 27692132 },=20 byte_string_start =3D 0x1cae1a8 "\214\302\211\030\031``}\210`=C3= =89\211\211\211\211\211\304\006\t\305\"c\210\006\ab\210\306\307\303\302#\20= 3\064\001=C8=94f\311\312!\210\211\313=3D\203\067",=20 next =3D 0x7fffffff77c0 } top =3D 0x7fffffff6820 result =3D { i =3D 0 } type =3D CATCHER #15 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff70b8) at eval.c:2855 size =3D 5 val =3D { i =3D 21320085 } syms_left =3D { i =3D 1030 } next =3D { i =3D 64424472336 } lexenv =3D { i =3D 140737488318128 } count =3D 31 i =3D 60143831280 optional =3D false rest =3D false #16 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff70b0) at ev= al.c:2742 fun =3D { i =3D 21320085 } original_fun =3D { i =3D 13340640 } funcar =3D { i =3D 140737488318272 } numargs =3D 1 lisp_numargs =3D { i =3D 140737488318320 } val =3D { i =3D 0 } internal_args =3D 0xda08f0 count =3D 30 #17 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff70b0) at eval= .c:2274 i =3D 5740786 numargs =3D 0 funcall_nargs =3D 13340592 funcall_args =3D 0x0 spread_arg =3D { i =3D 0 } fun =3D { i =3D 13340640 } retval =3D { i =3D 140737488318480 } sa_avail =3D 16384 sa_count =3D 30 sa_must_free =3D false #18 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff71e0) = at fns.c:2931 widget =3D { i =3D 29645555 } property =3D { i =3D 13340592 } propval =3D { i =3D 13340640 } trailing_args =3D { i =3D 0 } result =3D { i =3D 13750941 } #19 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff71d8) at ev= al.c:2673 fun =3D { i =3D 13750941 } original_fun =3D { i =3D 209904 } funcar =3D { i =3D 140737488318832 } numargs =3D 2 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 14 } internal_args =3D 0x7fffffff71e0 count =3D 29 #20 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D7, args=3D0x7fffffff7988) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 29 op =3D 2 vectorp =3D 0x1530168 stack =3D { pc =3D 0x1caedcd "\210\211\207",=20 byte_string =3D { i =3D 18832916 },=20 byte_string_start =3D 0x1caed98 "\300\301\003\003#\302\001\303\00= 6\006#\210\304\001\305\"\204\061",=20 next =3D 0x7fffffff8160 } top =3D 0x7fffffff71d8 result =3D { i =3D 17283764 } type =3D CATCHER #21 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D7, arg_vector= =3D0x7fffffff7978) at eval.c:2855 size =3D 5 val =3D { i =3D 21283133 } syms_left =3D { i =3D 2570 } next =3D { i =3D 60159187875 } lexenv =3D { i =3D 140737488320624 } count =3D 29 i =3D 60143831280 optional =3D false rest =3D false #22 0x0000000000637fbb in Ffuncall (nargs=3D8, args=3D0x7fffffff7970) at ev= al.c:2742 fun =3D { i =3D 21283133 } original_fun =3D { i =3D 13537904 } funcar =3D { i =3D 47994 } numargs =3D 7 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 1 } internal_args =3D 0x1c count =3D 28 #23 0x0000000000636fb6 in Fapply (nargs=3D6, args=3D0x7fffffff7b80) at eval= .c:2321 i =3D 8 numargs =3D 7 funcall_nargs =3D 8 funcall_args =3D 0x7fffffff7970 spread_arg =3D { i =3D 0 } fun =3D { i =3D 21283133 } retval =3D { i =3D 64 } sa_avail =3D 16320 sa_count =3D 28 sa_must_free =3D false #24 0x0000000000637bef in Ffuncall (nargs=3D7, args=3D0x7fffffff7b78) at ev= al.c:2673 fun =3D { i =3D 13746093 } original_fun =3D { i =3D 8400 } funcar =3D { i =3D 0 } numargs =3D 6 lisp_numargs =3D { i =3D 140737488321312 } val =3D { i =3D 140737488321232 } internal_args =3D 0x5798f2 count =3D 27 #25 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D3, args=3D0x7fffffff8360) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 27 op =3D 6 vectorp =3D 0x15303a0 stack =3D { pc =3D 0x1cafa6d "\301\006\t\311\"B#\207",=20 byte_string =3D { i =3D 19832100 },=20 byte_string_start =3D 0x1cafa30 "\300\002!\301\003\302\"\301\004\= 303\"\002\205D",=20 next =3D 0x7fffffff8980 } top =3D 0x7fffffff7b78 result =3D { i =3D 28183283 } type =3D CATCHER #26 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D3, arg_vector= =3D0x7fffffff8358) at eval.c:2855 size =3D 5 val =3D { i =3D 21698261 } syms_left =3D { i =3D 1542 } next =3D { i =3D 60157740323 } lexenv =3D { i =3D 140737488323088 } count =3D 27 i =3D 60143831280 optional =3D false rest =3D false #27 0x0000000000637fbb in Ffuncall (nargs=3D4, args=3D0x7fffffff8350) at ev= al.c:2742 fun =3D { i =3D 21698261 } original_fun =3D { i =3D 13352656 } funcar =3D { i =3D 140737488323248 } numargs =3D 3 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 14 } internal_args =3D 0x7fffffff8358 count =3D 26 #28 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff8c40) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 26 op =3D 3 vectorp =3D 0x14dca90 stack =3D { pc =3D 0x10584c4 "\210\002\204:\001\004\374N\324\006\b\375\376\00= 6\v\310\006\006\206*\001\377&\006\330\006\t\201@",=20 byte_string =3D { i =3D 28080308 },=20 byte_string_start =3D 0x10583b0 "\306\001\307\"\306\002\310\"\306= \003\311\"\206\022",=20 next =3D 0x7fffffff9360 } top =3D 0x7fffffff8350 result =3D { i =3D 28198083 } type =3D CATCHER #29 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff8c38) at eval.c:2855 size =3D 5 val =3D { i =3D 21859661 } syms_left =3D { i =3D 1030 } next =3D { i =3D 60157741873 } lexenv =3D { i =3D 140737488325168 } count =3D 26 i =3D 60143831280 optional =3D false rest =3D false #30 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff8c30) at ev= al.c:2742 fun =3D { i =3D 21859661 } original_fun =3D { i =3D 13736416 } funcar =3D { i =3D 140737488325328 } numargs =3D 1 lisp_numargs =3D { i =3D 140737488325360 } val =3D { i =3D 0 } internal_args =3D 0xda08f0 count =3D 25 #31 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff8c30) at eval= .c:2274 i =3D 5740786 numargs =3D 0 funcall_nargs =3D 13443920 funcall_args =3D 0x0 spread_arg =3D { i =3D 0 } fun =3D { i =3D 13736416 } retval =3D { i =3D 140737488325520 } sa_avail =3D 16384 sa_count =3D 25 sa_must_free =3D false #32 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff8d88) = at fns.c:2931 widget =3D { i =3D 28198227 } property =3D { i =3D 13443920 } propval =3D { i =3D 13736416 } trailing_args =3D { i =3D 0 } result =3D { i =3D 13750941 } #33 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff8d80) at ev= al.c:2673 fun =3D { i =3D 13750941 } original_fun =3D { i =3D 209904 } funcar =3D { i =3D 256 } numargs =3D 2 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 0 } internal_args =3D 0x3fe count =3D 24 #34 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff9620) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 21 op =3D 2 vectorp =3D 0x152f188 stack =3D { pc =3D 0x1cae31a "\210\266\b\354 \355 \356\002\302\"\210\356\001\= 303\"\210\357\003\360\004#\210\357\003\361\003#\266\003db\210+\362 \207",=20 byte_string =3D { i =3D 27692132 },=20 byte_string_start =3D 0x1cae1a8 "\214\302\211\030\031``}\210`=C3= =89\211\211\211\211\211\304\006\t\305\"c\210\006\ab\210\306\307\303\302#\20= 3\064\001=C8=94f\311\312!\210\211\313=3D\203\067",=20 next =3D 0x7fffffff9cf0 } top =3D 0x7fffffff8d80 result =3D { i =3D 0 } type =3D (CONDITION_CASE | CATCHER_ALL | unknown: 32764) #35 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff9618) at eval.c:2855 size =3D 5 val =3D { i =3D 21320085 } syms_left =3D { i =3D 1030 } next =3D { i =3D 60150829029 } lexenv =3D { i =3D 140737488327696 } count =3D 21 i =3D 60143831280 optional =3D false rest =3D false #36 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff9610) at ev= al.c:2742 fun =3D { i =3D 21320085 } original_fun =3D { i =3D 13340640 } funcar =3D { i =3D 140737488328000 } numargs =3D 1 lisp_numargs =3D { i =3D 140737488327888 } val =3D { i =3D 0 } internal_args =3D 0xda08f0 count =3D 20 #37 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff9610) at eval= .c:2274 i =3D 5740786 numargs =3D 0 funcall_nargs =3D 13340592 funcall_args =3D 0x0 spread_arg =3D { i =3D 0 } fun =3D { i =3D 13340640 } retval =3D { i =3D 140737488328048 } sa_avail =3D 16384 sa_count =3D 20 sa_must_free =3D false #38 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff9738) = at fns.c:2931 widget =3D { i =3D 28198227 } property =3D { i =3D 13340592 } propval =3D { i =3D 13340640 } trailing_args =3D { i =3D 0 } result =3D { i =3D 13750941 } #39 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff9730) at ev= al.c:2673 fun =3D { i =3D 13750941 } original_fun =3D { i =3D 209904 } funcar =3D { i =3D 140737488328400 } numargs =3D 2 lisp_numargs =3D { i =3D 140737488328400 } val =3D { i =3D 28198227 } internal_args =3D 0xda08f0 count =3D 19 #40 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D9, args=3D0x7fffffff9ec0) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 19 op =3D 2 vectorp =3D 0x152f160 stack =3D { pc =3D 0x1cae149 "\210\211\207",=20 byte_string =3D { i =3D 27924884 },=20 byte_string_start =3D 0x1cae140 "\300\301\003\003#\302\001\303\"\= 210\211\207",=20 next =3D 0x7fffffffa4a0 } top =3D 0x7fffffff9730 result =3D { i =3D 23327188 } type =3D CATCHER #41 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D9, arg_vector= =3D0x7fffffff9eb8) at eval.c:2855 size =3D 5 val =3D { i =3D 21283085 } syms_left =3D { i =3D 1542 } next =3D { i =3D 64424484544 } lexenv =3D { i =3D 140737488330144 } count =3D 19 i =3D 60143831280 optional =3D false rest =3D false #42 0x0000000000637fbb in Ffuncall (nargs=3D10, args=3D0x7fffffff9eb0) at e= val.c:2742 fun =3D { i =3D 21283085 } original_fun =3D { i =3D 5048688 } funcar =3D { i =3D 73014444049 } numargs =3D 9 lisp_numargs =3D { i =3D 32 } val =3D { i =3D 23327188 } internal_args =3D 0x11824f0 count =3D 18 #43 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffa680) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 18 op =3D 9 vectorp =3D 0x145c2d0 stack =3D { pc =3D 0x1c8d50c "\207",=20 byte_string =3D { i =3D 17198852 },=20 byte_string_start =3D 0x1c8d4f8 "\300\001A@\301\302\303\304\305\3= 06\006\b@!\307\006\t@&\t\207",=20 next =3D 0x7fffffffaeb0 } top =3D 0x7fffffff9eb0 result =3D { i =3D 0 } type =3D CATCHER #44 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffa678) at eval.c:2855 size =3D 5 val =3D { i =3D 21349141 } syms_left =3D { i =3D 1030 } next =3D { i =3D 60147901680 } lexenv =3D { i =3D 140737488332112 } count =3D 18 i =3D 60135282930 optional =3D false rest =3D false #45 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffffa670) at ev= al.c:2742 fun =3D { i =3D 21349141 } original_fun =3D { i =3D 21349141 } funcar =3D { i =3D 30046240 } numargs =3D 1 lisp_numargs =3D { i =3D 140737488332304 } val =3D { i =3D 21221269 } internal_args =3D 0xda08f0 count =3D 17 #46 0x000000000063768c in call1 (fn=3D..., arg1=3D...) at eval.c:2552 No locals. #47 0x0000000000644f36 in mapcar1 (leni=3D1, vals=3D0x7fffffffa720, fn=3D..= ., seq=3D...) at fns.c:2522 tail =3D { i =3D 19025347 } dummy =3D { i =3D 0 } i =3D 0 #48 0x00000000006453c7 in Fmapcar (function=3D..., sequence=3D...) at fns.c= :2587 len =3D { i =3D 1 } leni =3D 1 args =3D 0x7fffffffa720 ret =3D { i =3D 8 } sa_avail =3D 16376 sa_count =3D 17 sa_must_free =3D false #49 0x0000000000637d66 in Ffuncall (nargs=3D3, args=3D0x7fffffffa8a8) at ev= al.c:2696 internal_argbuf =3D {{ i =3D 0 }, { i =3D 5747687 }, { i =3D 140737488332896 }, { i =3D 14289136 }, { i =3D 0 }, { i =3D 6537166 }, { i =3D 140737488332928 }, { i =3D 5740786 }} fun =3D { i =3D 13750461 } original_fun =3D { i =3D 209392 } funcar =3D { i =3D 0 } numargs =3D 2 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 140737488332880 } internal_args =3D 0x7fffffffa8b0 count =3D 16 #50 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D2, args=3D0x7fffffffb098) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 16 op =3D 2 vectorp =3D 0x14a5498 stack =3D { pc =3D 0x1c8d0c9 "\202\f\001\361C\002G\357\362\363\364\365\366\00= 6\a\006\a\"\367\"\370\371%\005\"\266\202\026@h\372=3D\204\030\001\307\325!\= 210\353\373!\210\353\374!\210\016A\375=3D\204-\001\376\377\016@\"\210\353\2= 01B",=20 byte_string =3D { i =3D 17213076 },=20 byte_string_start =3D 0x1c8cfd8 "\306 \210\b\206\b",=20 next =3D 0x7fffffffb640 } top =3D 0x7fffffffa8a8 result =3D { i =3D 30046245 } type =3D CATCHER #51 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D2, arg_vector= =3D0x7fffffffb088) at eval.c:2855 size =3D 5 val =3D { i =3D 21649109 } syms_left =3D { i =3D 2054 } next =3D { i =3D 60133946176 } lexenv =3D { i =3D 140737488334688 } count =3D 16 i =3D 60143831280 optional =3D true rest =3D false #52 0x0000000000637fbb in Ffuncall (nargs=3D3, args=3D0x7fffffffb080) at ev= al.c:2742 fun =3D { i =3D 21649109 } original_fun =3D { i =3D 13482336 } funcar =3D { i =3D 140737488334832 } numargs =3D 2 lisp_numargs =3D { i =3D 0 } val =3D { i =3D 30046245 } internal_args =3D 0x1a58470 count =3D 15 #53 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D2, args=3D0x7fffffffb828) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 15 op =3D 2 vectorp =3D 0x145b220 stack =3D { pc =3D 0x1c8cbc6 "\207",=20 byte_string =3D { i =3D 27807924 },=20 byte_string_start =3D 0x1c8cbb8 "\300\301\003\206\a",=20 next =3D 0x7fffffffbde0 } top =3D 0x7fffffffb080 result =3D { i =3D 29812948 } type =3D CATCHER #54 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D2, arg_vector= =3D0x7fffffffb818) at eval.c:2855 size =3D 5 val =3D { i =3D 21344837 } syms_left =3D { i =3D 3078 } next =3D { i =3D 60143286381 } lexenv =3D { i =3D 140737488336624 } count =3D 15 i =3D 60143831280 optional =3D false rest =3D false #55 0x0000000000637fbb in Ffuncall (nargs=3D3, args=3D0x7fffffffb810) at ev= al.c:2742 fun =3D { i =3D 21344837 } original_fun =3D { i =3D 4911488 } funcar =3D { i =3D 19025347 } numargs =3D 2 lisp_numargs =3D { i =3D 19025267 } val =3D { i =3D 29812852 } internal_args =3D 0x609b49 count =3D 14 #56 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffbec8) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 14 op =3D 2 vectorp =3D 0x1459098 stack =3D { pc =3D 0x1c98a00 "\207",=20 byte_string =3D { i =3D 27970292 },=20 byte_string_start =3D 0x1c989a8 "\001\300\235\203\n",=20 next =3D 0x7fffffffc980 } top =3D 0x7fffffffb810 result =3D { i =3D 0 } type =3D CATCHER #57 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffbec0) at eval.c:2855 size =3D 6 val =3D { i =3D 0 } syms_left =3D { i =3D 2050 } next =3D { i =3D 140737488338544 } lexenv =3D { i =3D 140737488338592 } count =3D 14 i =3D 14289136 optional =3D false rest =3D false #58 0x000000000063839c in apply_lambda (fun=3D..., args=3D..., count=3D13) = at eval.c:2794 args_left =3D { i =3D 0 } i =3D 1 numargs =3D 1 arg_vector =3D 0x7fffffffbec0 tem =3D { i =3D 43632 } sa_avail =3D 16376 sa_count =3D 14 sa_must_free =3D false #59 0x0000000000636629 in eval_sub (form=3D...) at eval.c:2211 fun =3D { i =3D 21332837 } val =3D { i =3D 43632 } original_fun =3D { i =3D 4911008 } original_args =3D { i =3D 18499859 } funcar =3D { i =3D 9168 } count =3D 13 argvals =3D {{ i =3D 18499603 }, { i =3D 13744888 }, { i =3D 140737488339072 }, { i =3D 14289136 }, { i =3D 0 }, { i =3D 42963417848 }, { i =3D 140737488339088 }, { i =3D 5740786 }} #60 0x00000000006312fa in Fprogn (body=3D...) at eval.c:426 val =3D { i =3D 43632 } #61 0x0000000000636035 in eval_sub (form=3D...) at eval.c:2119 args_left =3D { i =3D 18500019 } numargs =3D { i =3D 10 } fun =3D { i =3D 13744893 } val =3D { i =3D 21474836480 } original_fun =3D { i =3D 37296 } original_args =3D { i =3D 18500019 } funcar =3D { i =3D 0 } count =3D 12 argvals =3D {{ i =3D 140737488339440 }, { i =3D 6525521 }, { i =3D 0 }, { i =3D 14316352 }, { i =3D 27216 }, { i =3D 13746040 }, { i =3D 0 }, { i =3D 14316352 }} #62 0x0000000000635a13 in Feval (form=3D..., lexical=3D...) at eval.c:1988 count =3D 11 #63 0x0000000000637d66 in Ffuncall (nargs=3D2, args=3D0x7fffffffc390) at ev= al.c:2696 internal_argbuf =3D {{ i =3D 18500259 }, { i =3D 0 }, { i =3D 140737488339696 }, { i =3D 14289136 }, { i =3D 23258208 }, { i =3D 6569068 }, { i =3D 140737488339728 }, { i =3D 5740786 }} fun =3D { i =3D 13746045 } original_fun =3D { i =3D 18144 } funcar =3D { i =3D 0 } numargs =3D 1 lisp_numargs =3D { i =3D 18500259 } val =3D { i =3D 18500259 } internal_args =3D 0x7fffffffc2c0 count =3D 10 #64 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffcb48) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 8 op =3D 1 vectorp =3D 0xad11d8 stack =3D { pc =3D 0xc9ed21 "\210\202L\003\016A=E6=9D=83\317\0= 01\313\347\350\016C\"\003\206m\001\n\211A\022\242\211\262\r\313\332\036D\32= 2\003\003\003#)\266\203\203\211\001\006\n\327\313O\262\v=DA=B2\001\351\352\= 006\f!!\262\v\211\203\252\001\314\016E\006\fC\"\026E\006\t\203\313\001\016E= \262\n\202\313\001\006\t\203\301\001\006\t\006\v\006\vAB\241\210\006\tA\262= \n\202\313\001\006\n\016EB\211\026E\262\n\210\202L\003\016A=EB=9D=83\367\00= 1\352\002\206\340\001\n\211A\022\242!\351\001!\354\001!\203\355\001\211\262= \002\355\002\313\332#\266\003\202L\003\016A=EE=9D=83\027\002\352\002\206\b\= 002\n\211A\022\242!\351\001!\355\001\313=DA=89$\266\003\202L\003\016", ...,=20 byte_string =3D { i =3D 11342260 },=20 byte_string_start =3D 0xc9ebce "\306 \210\b\203\02= 1",=20 next =3D 0x7fffffffd180 } top =3D 0x7fffffffc390 result =3D { i =3D 0 } type =3D CATCHER #65 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffcb40) at eval.c:2855 size =3D 5 val =3D { i =3D 11342213 } syms_left =3D { i =3D 1030 } next =3D { i =3D 64424495632 } lexenv =3D { i =3D 140737488341552 } count =3D 8 i =3D 60143831280 optional =3D false rest =3D false #66 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffffcb38) at ev= al.c:2742 fun =3D { i =3D 11342213 } original_fun =3D { i =3D 9027824 } funcar =3D { i =3D 28191699 } numargs =3D 1 lisp_numargs =3D { i =3D 14936768 } val =3D { i =3D 45936 } internal_args =3D 0x61560f count =3D 7 #67 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D0, args=3D0x7fffffffd348) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 7 op =3D 1 vectorp =3D 0xacb7e8 stack =3D { pc =3D 0xca176d "\210\307\016@\211\203k\006\211@\0= 02\204d\006\211;\203d\006\201", ,=20 byte_string =3D { i =3D 11319236 },=20 byte_string_start =3D 0xca114c "\306 \020\307\021\= n\023\307\024\310\311!\211\307=3D\204\060",=20 next =3D 0x7fffffffd940 } top =3D 0x7fffffffcb38 result =3D { i =3D 28191699 } type =3D CONDITION_CASE #68 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D0, arg_vector= =3D0x7fffffffd348) at eval.c:2855 size =3D 5 val =3D { i =3D 11319189 } syms_left =3D { i =3D 2 } next =3D { i =3D 60143277141 } lexenv =3D { i =3D 140737488343600 } count =3D 7 i =3D 60143831280 optional =3D false rest =3D false #69 0x0000000000637fbb in Ffuncall (nargs=3D1, args=3D0x7fffffffd340) at ev= al.c:2742 fun =3D { i =3D 11319189 } original_fun =3D { i =3D 9025296 } funcar =3D { i =3D 18594869 } numargs =3D 0 lisp_numargs =3D { i =3D 43248 } val =3D { i =3D 18594869 } internal_args =3D 0x61560f count =3D 6 #70 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D0, args=3D0x7fffffffda20) at bytec= ode.c:880 targets =3D {0x68989f , 0x68990c , 0x68990e , 0x689910 , 0x689912 , 0x689912 , 0x6899= 78 , 0x6899e8 , 0x685480 , 0x685482 , 0x685484 , 0x685486 , 0x685488 , 0x685= 488 , 0x685491 , 0x68544b , 0x685a8d , 0x685a8f , 0x685a91 , 0x685a93 , 0x685a= 95 , 0x685a95 , 0x685ad3 , 0x685a9e , 0x685da3 , 0x685da5 , 0x685da7 , 0x685da= 9 , 0x685dab , 0x685dab , 0x685d54 , 0x685d6e , 0x685e66 , 0x685e68 , 0x685e6a= , 0x685e6c , 0x685e6e , 0x685e6e , 0x685e17 = , 0x685e31 , 0x685f31 , 0x685f33 = , 0x685f35 , 0x685f37 , 0x685f39 , 0x685f39 ,= 0x685ee2 , 0x685efc , 0x686eee <= exec_byte_code+8041>, 0x686da0 , 0x686d94 , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989= f , 0x687135 , 0x687260 , 0x6872ce , 0x68733d , 0x6873ad , 0x6858a8 , 0x68593= 7 , 0x687435 , 0x6857c2 , 0x6859a6 , 0x6874ab , 0x68751a , 0x687563 , 0x6875d2= , 0x687628 , 0x68770a , 0x687753 , 0x6877c2 , 0x687854 , 0x68789d , 0x68= 78e6 , 0x687955 , 0x6879c4 , 0x687a33 , 0x687ac5 , 0x687b1b , 0x687b71 = , 0x687c53 , 0x687ced , 0x687d8= 7 , 0x688027 , 0x68809b , 0x68810f , 0x688183 , 0x6881f7 , 0x68824d , 0= x6882eb , 0x688341 , 0x688397 <= exec_byte_code+13330>, 0x6883ed , 0x688508 , 0x686c2b , 0x68856b , 0x6885b4 , 0x68868e , 0x688= 6f1 , 0x688754 , 0x68879d , 0x6887ef , 0x688841 , 0x68889b , 0x68989f ,= 0x6888f4 , 0x68893b , 0x688982= , 0x6889c9 , 0x688a10 , 0x688a57 , 0x686c2b , 0x68989f , 0x688aa0 , 0x6= 88af4 , 0x688b3d , 0x688b86 , 0x688bf5 , 0x688c64 , 0x688cad , 0x688ddd , 0x688e4c , 0x688ebb , 0x688f= 2a , 0x688f71 , 0x68989f , 0x686b5f , 0x685fe2 , 0x685665 , 0x686109 , 0x68= 6266 , 0x6863b4 , 0x686ae4 , 0x686b2a , 0x685cfd , 0x686bec , 0x686c5d , 0x686= ce4 , 0x686d23 , 0x686f2d , 0x686fb5 , 0x687047 , 0x6870ab , 0x685f96 , 0x688f= ba , 0x68904c , 0x689095 , 0x6890de , 0x689127 , 0x689170 , 0x6891df , = 0x68924e , 0x6892bd , 0x68932c = , 0x6894b1 , 0x689520 , 0x68958f , 0x6895d8 , 0x689647 , 0x6896b6 , 0x6= 89710 , 0x68976a , 0x688443 , 0x688499 , 0x6897c0 , 0x689830 , 0x68989f , 0x686502 , 0x6865fc , 0x686738= , 0x686874 , 0x6869ac , 0x68767e , 0x687bc7 , 0x688602 , 0x689a7f , 0x689a= f2 , 0x68989f , 0x68989f , 0x689b8c , 0x68989f , 0x68989f , 0x68989f , = 0x68989f , 0x68989f , 0x68989f = , 0x68989f , 0x68989f , 0x68989f , 0x689c26 } count =3D 5 op =3D 0 vectorp =3D 0xaca850 stack =3D { pc =3D 0xca1e51 "\210)\210\375\376\377\"\210\201H"= ,=20 byte_string =3D { i =3D 11315244 },=20 byte_string_start =3D 0xca1cdd "\b\203\b",=20 next =3D 0x0 } top =3D 0x7fffffffd340 result =3D { i =3D 15079300 } type =3D CATCHER #71 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D0, arg_vector= =3D0x7fffffffda20) at eval.c:2855 size =3D 5 val =3D { i =3D 140737488345584 } syms_left =3D { i =3D 2 } next =3D { i =3D 0 } lexenv =3D { i =3D 0 } count =3D 5 i =3D 0 optional =3D false rest =3D false #72 0x000000000063839c in apply_lambda (fun=3D..., args=3D..., count=3D4) a= t eval.c:2794 args_left =3D { i =3D 0 } i =3D 0 numargs =3D 0 arg_vector =3D 0x7fffffffda20 tem =3D { i =3D 0 } sa_avail =3D 16384 sa_count =3D 5 sa_must_free =3D false #73 0x0000000000636629 in eval_sub (form=3D...) at eval.c:2211 fun =3D { i =3D 11315197 } val =3D { i =3D 21474836480 } original_fun =3D { i =3D 8974768 } original_args =3D { i =3D 0 } funcar =3D { i =3D 0 } count =3D 4 argvals =3D {{ i =3D 140737488346080 }, { i =3D 6525521 }, { i =3D 0 }, { i =3D 14316352 }, { i =3D 27216 }, { i =3D 5740786 }, { i =3D 0 }, { i =3D 14316352 }} #74 0x0000000000635a13 in Feval (form=3D..., lexical=3D...) at eval.c:1988 count =3D 3 #75 0x00000000005838b8 in top_level_2 () at keyboard.c:1116 No locals. #76 0x0000000000633fcb in internal_condition_case (bfun=3D0x58389b , handlers=3D..., hfun=3D0x583296 ) at eval.c:1309 val =3D { i =3D 18149064 } c =3D 0x114efc0 #77 0x00000000005838f9 in top_level_1 (ignore=3D...) at keyboard.c:1124 No locals. #78 0x0000000000633539 in internal_catch (tag=3D..., func=3D0x5838ba , arg=3D...) at eval.c:1074 val =3D { i =3D 140737278924728 } c =3D 0x114ee90 #79 0x00000000005837f1 in command_loop () at keyboard.c:1085 No locals. #80 0x0000000000582d8d in recursive_edit_1 () at keyboard.c:692 count =3D 1 val =3D { i =3D 140737488346448 } #81 0x0000000000582f89 in Frecursive_edit () at keyboard.c:763 count =3D 0 buffer =3D { i =3D 0 } #82 0x0000000000580bfb in main (argc=3D4, argv=3D0x7fffffffdf38) at emacs.c= :1626 dummy =3D { i =3D 4131212846 } stack_bottom_variable =3D -1 '\377' do_initial_setlocale =3D true dumping =3D false skip_args =3D 0 rlim =3D { rlim_cur =3D 8720000,=20 rlim_max =3D 18446744073709551615 } no_loadup =3D false junk =3D 0x0 dname_arg =3D 0x0 ch_to_dir =3D 0x0 original_pwd =3D 0x0 Lisp Backtrace: "string-match" (0xffff5df8) "widget-documentation-string-value-create" (0xffff66d8) "widget-apply" (0xffff6828) "widget-default-create" (0xffff70b8) "widget-apply" (0xffff71e0) "widget-create-child-and-convert" (0xffff7978) "apply" (0xffff7b80) "widget-add-documentation-string-button" (0xffff8358) "custom-face-value-create" (0xffff8c38) "widget-apply" (0xffff8d88) "widget-default-create" (0xffff9618) "widget-apply" (0xffff9738) "widget-create" (0xffff9eb8) 0x145c310 PVEC_COMPILED "mapcar" (0xffffa8b0) "custom-buffer-create-internal" (0xffffb088) "custom-buffer-create" (0xffffb818) "customize-face" (0xffffbec0) "progn" (0xffffc120) "eval" (0xffffc398) "command-line-1" (0xffffcb40) "command-line" (0xffffd348) "normal-top-level" (0xffffda20) (gdb) backtrace #0 terminate_due_to_signal (sig=3D6, backtrace_limit=3D2147483647) at emac= s.c:354 #1 0x00000000006122e6 in die (msg=3D0x732ed0 "CHAR_VALID_P (ch)", file=3D0= x732ec4 "character.h", line=3D703) at alloc.c:7223 #2 0x000000000057c60d in char_table_translate (obj=3D..., ch=3D4195776) at= character.h:703 #3 0x00000000005fe182 in re_search_2 (bufp=3D0xd76160 , s= tr1=3D0x0, size1=3D0, str2=3D0x1ae6898 "=E2=80=98\240=E2=80=99", size2=3D7,= startpos=3D0, range=3D1, regs=3D0xd766f0 , stop=3D7) at regex= .c:4370 #4 0x00000000005fdcef in re_search (bufp=3D0xd76160 , str= ing=3D0x1ae6898 "=E2=80=98\240=E2=80=99", size=3D7, startpos=3D0, range=3D7= , regs=3D0xd766f0 ) at regex.c:4228 #5 0x00000000005ea018 in string_match_1 (regexp=3D..., string=3D..., start= =3D..., posix=3Dfalse) at search.c:404 #6 0x00000000005ea18d in Fstring_match (regexp=3D..., string=3D..., start= =3D...) at search.c:444 #7 0x0000000000637da1 in Ffuncall (nargs=3D3, args=3D0x7fffffff5df0) at ev= al.c:2700 #8 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff66e0) at bytec= ode.c:880 #9 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff66d8) at eval.c:2855 #10 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff66d0) at ev= al.c:2742 #11 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff66d0) at eval= .c:2274 #12 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff6828) = at fns.c:2931 #13 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff6820) at ev= al.c:2673 #14 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff70c0) at bytec= ode.c:880 #15 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff70b8) at eval.c:2855 #16 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff70b0) at ev= al.c:2742 #17 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff70b0) at eval= .c:2274 #18 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff71e0) = at fns.c:2931 #19 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff71d8) at ev= al.c:2673 #20 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D7, args=3D0x7fffffff7988) at bytec= ode.c:880 #21 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D7, arg_vector= =3D0x7fffffff7978) at eval.c:2855 #22 0x0000000000637fbb in Ffuncall (nargs=3D8, args=3D0x7fffffff7970) at ev= al.c:2742 #23 0x0000000000636fb6 in Fapply (nargs=3D6, args=3D0x7fffffff7b80) at eval= .c:2321 #24 0x0000000000637bef in Ffuncall (nargs=3D7, args=3D0x7fffffff7b78) at ev= al.c:2673 #25 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D3, args=3D0x7fffffff8360) at bytec= ode.c:880 #26 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D3, arg_vector= =3D0x7fffffff8358) at eval.c:2855 #27 0x0000000000637fbb in Ffuncall (nargs=3D4, args=3D0x7fffffff8350) at ev= al.c:2742 #28 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff8c40) at bytec= ode.c:880 #29 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff8c38) at eval.c:2855 #30 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff8c30) at ev= al.c:2742 #31 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff8c30) at eval= .c:2274 #32 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff8d88) = at fns.c:2931 #33 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff8d80) at ev= al.c:2673 #34 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffff9620) at bytec= ode.c:880 #35 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffff9618) at eval.c:2855 #36 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffff9610) at ev= al.c:2742 #37 0x000000000063697b in Fapply (nargs=3D3, args=3D0x7fffffff9610) at eval= .c:2274 #38 0x000000000064631d in Fwidget_apply (nargs=3D2, args=3D0x7fffffff9738) = at fns.c:2931 #39 0x0000000000637bef in Ffuncall (nargs=3D3, args=3D0x7fffffff9730) at ev= al.c:2673 #40 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D9, args=3D0x7fffffff9ec0) at bytec= ode.c:880 #41 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D9, arg_vector= =3D0x7fffffff9eb8) at eval.c:2855 #42 0x0000000000637fbb in Ffuncall (nargs=3D10, args=3D0x7fffffff9eb0) at e= val.c:2742 #43 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffa680) at bytec= ode.c:880 #44 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffa678) at eval.c:2855 #45 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffffa670) at ev= al.c:2742 #46 0x000000000063768c in call1 (fn=3D..., arg1=3D...) at eval.c:2552 #47 0x0000000000644f36 in mapcar1 (leni=3D1, vals=3D0x7fffffffa720, fn=3D..= ., seq=3D...) at fns.c:2522 #48 0x00000000006453c7 in Fmapcar (function=3D..., sequence=3D...) at fns.c= :2587 #49 0x0000000000637d66 in Ffuncall (nargs=3D3, args=3D0x7fffffffa8a8) at ev= al.c:2696 #50 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D2, args=3D0x7fffffffb098) at bytec= ode.c:880 #51 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D2, arg_vector= =3D0x7fffffffb088) at eval.c:2855 #52 0x0000000000637fbb in Ffuncall (nargs=3D3, args=3D0x7fffffffb080) at ev= al.c:2742 #53 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D2, args=3D0x7fffffffb828) at bytec= ode.c:880 #54 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D2, arg_vector= =3D0x7fffffffb818) at eval.c:2855 #55 0x0000000000637fbb in Ffuncall (nargs=3D3, args=3D0x7fffffffb810) at ev= al.c:2742 #56 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffbec8) at bytec= ode.c:880 #57 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffbec0) at eval.c:2855 #58 0x000000000063839c in apply_lambda (fun=3D..., args=3D..., count=3D13) = at eval.c:2794 #59 0x0000000000636629 in eval_sub (form=3D...) at eval.c:2211 #60 0x00000000006312fa in Fprogn (body=3D...) at eval.c:426 #61 0x0000000000636035 in eval_sub (form=3D...) at eval.c:2119 #62 0x0000000000635a13 in Feval (form=3D..., lexical=3D...) at eval.c:1988 #63 0x0000000000637d66 in Ffuncall (nargs=3D2, args=3D0x7fffffffc390) at ev= al.c:2696 #64 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D1, args=3D0x7fffffffcb48) at bytec= ode.c:880 #65 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D1, arg_vector= =3D0x7fffffffcb40) at eval.c:2855 #66 0x0000000000637fbb in Ffuncall (nargs=3D2, args=3D0x7fffffffcb38) at ev= al.c:2742 #67 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D0, args=3D0x7fffffffd348) at bytec= ode.c:880 #68 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D0, arg_vector= =3D0x7fffffffd348) at eval.c:2855 #69 0x0000000000637fbb in Ffuncall (nargs=3D1, args=3D0x7fffffffd340) at ev= al.c:2742 #70 0x0000000000685ea8 in exec_byte_code (bytestr=3D..., vector=3D..., maxd= epth=3D..., args_template=3D..., nargs=3D0, args=3D0x7fffffffda20) at bytec= ode.c:880 #71 0x000000000063873d in funcall_lambda (fun=3D..., nargs=3D0, arg_vector= =3D0x7fffffffda20) at eval.c:2855 #72 0x000000000063839c in apply_lambda (fun=3D..., args=3D..., count=3D4) a= t eval.c:2794 #73 0x0000000000636629 in eval_sub (form=3D...) at eval.c:2211 #74 0x0000000000635a13 in Feval (form=3D..., lexical=3D...) at eval.c:1988 #75 0x00000000005838b8 in top_level_2 () at keyboard.c:1116 #76 0x0000000000633fcb in internal_condition_case (bfun=3D0x58389b , handlers=3D..., hfun=3D0x583296 ) at eval.c:1309 #77 0x00000000005838f9 in top_level_1 (ignore=3D...) at keyboard.c:1124 #78 0x0000000000633539 in internal_catch (tag=3D..., func=3D0x5838ba , arg=3D...) at eval.c:1074 #79 0x00000000005837f1 in command_loop () at keyboard.c:1085 #80 0x0000000000582d8d in recursive_edit_1 () at keyboard.c:692 #81 0x0000000000582f89 in Frecursive_edit () at keyboard.c:763 #82 0x0000000000580bfb in main (argc=3D4, argv=3D0x7fffffffdf38) at emacs.c= :1626 Lisp Backtrace: "string-match" (0xffff5df8) "widget-documentation-string-value-create" (0xffff66d8) "widget-apply" (0xffff6828) "widget-default-create" (0xffff70b8) "widget-apply" (0xffff71e0) "widget-create-child-and-convert" (0xffff7978) "apply" (0xffff7b80) "widget-add-documentation-string-button" (0xffff8358) "custom-face-value-create" (0xffff8c38) "widget-apply" (0xffff8d88) "widget-default-create" (0xffff9618) "widget-apply" (0xffff9738) "widget-create" (0xffff9eb8) 0x145c310 PVEC_COMPILED "mapcar" (0xffffa8b0) "custom-buffer-create-internal" (0xffffb088) "custom-buffer-create" (0xffffb818) "customize-face" (0xffffbec0) "progn" (0xffffc120) "eval" (0xffffc398) "command-line-1" (0xffffcb40) "command-line" (0xffffd348) "normal-top-level" (0xffffda20) (gdb)=20 In GNU Emacs 25.1.53 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) of 2016-08-11 built on unknown Repository revision: d2db5dd8358f132252c8d11d40b1457615c43a57 Windowing system distributor 'The X.Org Foundation', version 11.0.11702000 System Description: Ubuntu 14.04 LTS Configured using: 'configure --enable-checking --enable-check-lisp-object-type 'CFLAGS=3D-g3 -O0 -gdwarf-4'' Configured features: XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 88111 5027) (symbols 48 19695 0) (miscs 40 298 147) (strings 32 14560 4939) (string-bytes 1 425838) (vectors 16 12636) (vector-slots 8 440301 4619) (floats 8 164 22) (intervals 56 196 0) (buffers 976 20) (heap 1024 40436 1149)) From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 16:05:49 2016 Received: (at 24206) by debbugs.gnu.org; 11 Aug 2016 20:05:49 +0000 Received: from localhost ([127.0.0.1]:54385 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXwEf-0004w5-Di for submit@debbugs.gnu.org; Thu, 11 Aug 2016 16:05:49 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42577) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXwEd-0004vn-Ee for 24206@debbugs.gnu.org; Thu, 11 Aug 2016 16:05:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXwET-0003Ob-0G for 24206@debbugs.gnu.org; Thu, 11 Aug 2016 16:05:42 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXwES-0003OU-Ns; Thu, 11 Aug 2016 16:05:36 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2200 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bXwEN-0005A5-Jg; Thu, 11 Aug 2016 16:05:35 -0400 Date: Thu, 11 Aug 2016 23:05:08 +0300 Message-Id: <83y443dqbv.fsf@gnu.org> From: Eli Zaretskii To: Phil In-reply-to: (message from Phil on Thu, 11 Aug 2016 11:55:05 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.5 (-----) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.5 (-----) > From: Phil > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > Build is from the emacs-25 branch. > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face 'test))" > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > Fatal error 6: Aborted > > I think this is serious enough to be release-blocking. Seen in the wild > with older versions of show-wspace.el. Please show the real-life example where this rears its ugly head. The recipe (which is appreciated) is obscure enough to be easily avoided, so it doesn't yet convince me this should block a release. There's always one more crash out there. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 19:51:59 2016 Received: (at 24206) by debbugs.gnu.org; 11 Aug 2016 23:51:59 +0000 Received: from localhost ([127.0.0.1]:54506 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXzlW-000402-Vb for submit@debbugs.gnu.org; Thu, 11 Aug 2016 19:51:59 -0400 Received: from mail-oi0-f46.google.com ([209.85.218.46]:32912) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXzlV-0003zp-Ru for 24206@debbugs.gnu.org; Thu, 11 Aug 2016 19:51:58 -0400 Received: by mail-oi0-f46.google.com with SMTP id c15so15359746oig.0 for <24206@debbugs.gnu.org>; Thu, 11 Aug 2016 16:51:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7FOmjkYTWDjSxxj4eo7cRE3dO26mRYt/+moI4FFu9GQ=; b=yZ9QIFCo7DNIvwB6nk3tgui35b/xkH2xxJ2rg902lIg2PyyhygzlQMBZdk4tyIhdi3 NOZajoyWPowXUVLz0958eD5RUCkx3koVyg3w4ytoJaMYk32VsF1P0ySSzSY0+y+KSRD1 Inn/CV83dNCWhy2gWGhOr56D2XRQugF2YFjklftx+Zn4Ag2KDcd9WIYqL32USNa5nXYl H5NSbRB5L0b53grMDKqWPsxE7LR7k85D55UDXNQisoLbyk9JmNsgNygTvqnCP0ptgEhJ bJrbM1swWDLVTYVRo2TJjlQq/E9YpdN7BQx46A40sJU8F1isfb8BmWyOGbM8j6X/SNUQ EBUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7FOmjkYTWDjSxxj4eo7cRE3dO26mRYt/+moI4FFu9GQ=; b=e8AekA+CXGWYpcyuWWb0bvuqmH4C/PX5mzcwcGEQdf0vfJMaZN9vYDMEwRWkqavxpL 4GRF6CzngPjWscsqy9w9sYfWeJJXb9eh9gvKTk11/BO5nro5bkhNKNA9vcYK+bFEtlbb IULUKm1rpd/44pxuYpGf/9EglQ0Nu/9EPEwjoebuPNVPaFNCyK8sifoyMV/OPs/2gpFd tOWKlPXoISgnkCNthDG7hmG+lf3uQR4MfNMyk9/y+vCeQKwtu14pngiz3LNHJFBCyklb 7LQFcF4Cv33alX+ae+F/+kFbQeVAFiYr+yyKbw/tjqKfO/RNdWTVoDtOLWUcUcohqWeR 8HDg== X-Gm-Message-State: AEkoouuk76uIO4ASciCn+MvlH0WjB6IztX/XZJXdT26al++gBCF3IlIPTcsEvnU8fe2IfI6VHlNCiffMGZxLDA== X-Received: by 10.202.236.146 with SMTP id k140mr6627085oih.191.1470959512153; Thu, 11 Aug 2016 16:51:52 -0700 (PDT) MIME-Version: 1.0 References: <83y443dqbv.fsf@gnu.org> In-Reply-To: <83y443dqbv.fsf@gnu.org> From: Philipp Stephani Date: Thu, 11 Aug 2016 23:51:41 +0000 Message-ID: Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii Content-Type: multipart/alternative; boundary=001a11c183d83375180539d47326 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) --001a11c183d83375180539d47326 Content-Type: text/plain; charset=UTF-8 Eli Zaretskii schrieb am Do., 11. Aug. 2016 um 13:05 Uhr: > > From: Phil > > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > > > > Build is from the emacs-25 branch. > > > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") > (customize-face 'test))" > > > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > > Fatal error 6: Aborted > > > > I think this is serious enough to be release-blocking. Seen in the wild > > with older versions of show-wspace.el. > > Please show the real-life example where this rears its ugly head. The > recipe (which is appreciated) is obscure enough to be easily avoided, > so it doesn't yet convince me this should block a release. There's > always one more crash out there. > > Ubuntu Trusty Tahr (supported until 2019) contains a package emacs-goodies-el, which contains a file show-wspace.el, which contains a face with the docstring "*Face for highlighting non-breaking spaces (`\240')in Font-Lock mode." Attempting to customize that face leads to the segfault. --001a11c183d83375180539d47326 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Eli Za= retskii <eliz@gnu.org> schrieb am= Do., 11. Aug. 2016 um 13:05=C2=A0Uhr:
> From: Phil <p.stephani2@gmail.com>
> Date: Thu, 11 Aug 2016 11:55:05 -0700
>
>
> Build is from the emacs-25 branch.
>
> $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\= ") (customize-face 'test))"
>
> character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch= )
> Fatal error 6: Aborted
>
> I think this is serious enough to be release-blocking.=C2=A0 Seen in t= he wild
> with older versions of show-wspace.el.

Please show the real-life example where this rears its ugly head.=C2=A0 The=
recipe (which is appreciated) is obscure enough to be easily avoided,
so it doesn't yet convince me this should block a release.=C2=A0 There&= #39;s
always one more crash out there.


Ubuntu Trusty Tahr (supported until 20= 19) contains a package emacs-goodies-el, which contains a file show-wspace.= el, which contains a face with the docstring "*Face for highlighting n= on-breaking spaces (`\240')in Font-Lock mode." Attempting to custo= mize that face leads to the segfault.=C2=A0=
--001a11c183d83375180539d47326-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 13 04:33:05 2016 Received: (at 24206) by debbugs.gnu.org; 13 Aug 2016 08:33:05 +0000 Received: from localhost ([127.0.0.1]:55715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYUNN-0000nV-Dy for submit@debbugs.gnu.org; Sat, 13 Aug 2016 04:33:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:57736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYUNM-0000my-3I for 24206@debbugs.gnu.org; Sat, 13 Aug 2016 04:33:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bYUNG-0007vQ-78 for 24206@debbugs.gnu.org; Sat, 13 Aug 2016 04:32:59 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59804) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bYUNB-0007ug-EO; Sat, 13 Aug 2016 04:32:53 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4726 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bYUNA-0005ld-HF; Sat, 13 Aug 2016 04:32:52 -0400 Date: Sat, 13 Aug 2016 11:32:47 +0300 Message-Id: <8360r5dq6o.fsf@gnu.org> From: Eli Zaretskii To: Philipp Stephani , John Wiegley In-reply-to: (message from Philipp Stephani on Thu, 11 Aug 2016 23:51:41 +0000) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <83y443dqbv.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.5 (-----) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.5 (-----) > From: Philipp Stephani > Date: Thu, 11 Aug 2016 23:51:41 +0000 > Cc: 24206@debbugs.gnu.org > > Eli Zaretskii schrieb am Do., 11. Aug. 2016 um 13:05 Uhr: > > > From: Phil > > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > > > > Build is from the emacs-25 branch. > > > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face 'test))" > > > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > > Fatal error 6: Aborted > > > > I think this is serious enough to be release-blocking. Seen in the wild > > with older versions of show-wspace.el. > > Please show the real-life example where this rears its ugly head. The > recipe (which is appreciated) is obscure enough to be easily avoided, > so it doesn't yet convince me this should block a release. There's > always one more crash out there. > > Ubuntu Trusty Tahr (supported until 2019) contains a package emacs-goodies-el, which contains a file > show-wspace.el, which contains a face with the docstring "*Face for highlighting non-breaking spaces > (`\240')in Font-Lock mode." Attempting to customize that face leads to the segfault. John, do you want us to wait with the next RC until this is fixed? From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 13 08:25:30 2016 Received: (at 24206) by debbugs.gnu.org; 13 Aug 2016 12:25:30 +0000 Received: from localhost ([127.0.0.1]:55785 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYY0I-0008D1-CX for submit@debbugs.gnu.org; Sat, 13 Aug 2016 08:25:30 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:39537) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYY0H-0008Ct-2T for 24206@debbugs.gnu.org; Sat, 13 Aug 2016 08:25:29 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id B2A9720316; Sat, 13 Aug 2016 08:25:28 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute5.internal (MEProxy); Sat, 13 Aug 2016 08:25:28 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=u0bEyaXPmDXTFHWnakHtBX2/RoQ=; b=aGdOe /VJbXTr+ifBdJ6Qo6UTaUNHQYJ3vm1qeHJkyAm/pSh3eYqnAdaHCFIztkcn7Lh4J 75f4cBOamMFyJRH5ePSzxxkL5P1SHuhYsOuNfFlkNd2QLFMEraUf341VO6FJy/fG /WCqcqc6xh1jNpzktaPpJ2VBuRxbVz+dzpWhXk= X-Sasl-enc: 37s4LcrU6IE3ZfFmLcDppQQmtF8q+lRw1sSFGXQlhABA 1471091128 Received: from strawberry (lfbn-1-7726-61.w92-167.abo.wanadoo.fr [92.167.139.61]) by mail.messagingengine.com (Postfix) with ESMTPA id DE3CCCCE6B; Sat, 13 Aug 2016 08:25:27 -0400 (EDT) From: Nicolas Petton To: Eli Zaretskii , Philipp Stephani , John Wiegley Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <8360r5dq6o.fsf@gnu.org> References: <83y443dqbv.fsf@gnu.org> <8360r5dq6o.fsf@gnu.org> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Emacs/25.1.50.1 (x86_64-unknown-linux-gnu) Date: Sat, 13 Aug 2016 14:25:11 +0200 Message-ID: <87shu897q0.fsf@petton.fr> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Eli Zaretskii writes: > John, do you want us to wait with the next RC until this is fixed? I'll wait for your decision regarding this issue. Cheers, Nico --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: GPGTools - http://gpgtools.org iQEcBAEBCAAGBQJXrxGnAAoJECM1h6R8IHkQhyoH/ji4e/Lb+PRJQ3zgnOpYEHdn +q6ZFeBZb7/MvsmLkUMXc0Gw9nM6gG8mnKBVwNXnh+2+UKhdDR0Ju3cIiDj9ISOt 9xnIlhYLSU7CUhz4+FbMt+5m3ztaCa65ore2cPuRZ232zQG0YRbcfDBDeX1Sgwx3 /r9BdJjTBin/BjWOJclaGxbyp8mEFQyuGbCJlNpiv0++0b9cfXktRdcj0DdiPKyz XWwq4YsK95onBbFQn4dJaymUnSeOm5p2KRNkrYghKhbKR6hohGt9mfyAFliVq6GH XBTSdQg1PBWm4cFvyh4DQiEjp55F+Xj0x2CxGpGUAKuECFs0cyNEN6fhs7hs4Gg= =tMUm -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 00:55:00 2016 Received: (at 24206-done) by debbugs.gnu.org; 14 Aug 2016 04:55:00 +0000 Received: from localhost ([127.0.0.1]:56713 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYnRs-0008Cr-Mu for submit@debbugs.gnu.org; Sun, 14 Aug 2016 00:55:00 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:38154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYnRq-0008Cd-Te for 24206-done@debbugs.gnu.org; Sun, 14 Aug 2016 00:54:59 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id EC3231610DB; Sat, 13 Aug 2016 21:54:52 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Sg4ULxhzDFoX; Sat, 13 Aug 2016 21:54:52 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E68FD16121E; Sat, 13 Aug 2016 21:54:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id eDN3Hk14a3zA; Sat, 13 Aug 2016 21:54:51 -0700 (PDT) Received: from [192.168.4.53] (ip-64-134-48-64.public.wayport.net [64.134.48.64]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2BDAD1610DB; Sat, 13 Aug 2016 21:54:51 -0700 (PDT) To: Phil From: Paul Eggert Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Message-ID: Date: Sat, 13 Aug 2016 23:54:43 -0500 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------8FA4D93C2958716CD26FD1B2" X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206-done Cc: Eli Zaretskii , John Wiegley , Nicolas Petton , 24206-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) This is a multi-part message in MIME format. --------------8FA4D93C2958716CD26FD1B2 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Thanks forreporting that, Phil. Ituncovered several bugs in substitute-command-keys,some predating the curved-quote changes in Emacs 25. I installed a patch into Emacs master as commit 2791580f5eaa65948a13ea4ea4952d03b4da795b and am closing the bug as fixed. For Emacs 25 I propose installing the attached patch, which should avoid the emacs-goodies-el problem though it does not fix the other (presumably less-likely) bugs in this area. This patch is considerably simpler than what I just installed into master. --------------8FA4D93C2958716CD26FD1B2 Content-Type: text/x-patch; name="0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Fix-core-dump-with-unibyte-substitute-command-keys.patc"; filename*1="h" >From 2cbfb2adb97b086e24c05b24ebf6349a3b3b94c9 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 13 Aug 2016 23:38:33 -0500 Subject: [PATCH] Fix core dump with unibyte substitute-command-keys * src/doc.c (Fsubstitute_command_keys): Convert string to multibyte first (Bug#24206). Do not merge to master. --- src/doc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/doc.c b/src/doc.c index 7cdb0d0..f664e0e 100644 --- a/src/doc.c +++ b/src/doc.c @@ -757,6 +757,7 @@ Otherwise, return a new string. */) return Qnil; CHECK_STRING (string); + string = Fstring_make_multibyte (string); tem = Qnil; keymap = Qnil; name = Qnil; -- 2.5.5 --------------8FA4D93C2958716CD26FD1B2-- From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 02:33:20 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 06:33:20 +0000 Received: from localhost ([127.0.0.1]:56754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYoz1-0002Sj-Rd for submit@debbugs.gnu.org; Sun, 14 Aug 2016 02:33:20 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:35817) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYoz0-0002SV-3q for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 02:33:18 -0400 Received: by mail-pa0-f41.google.com with SMTP id i5so7957059pat.2 for <24206@debbugs.gnu.org>; Sat, 13 Aug 2016 23:33:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=lIK3xvi0+y0ybkdkCDjH9xcdfmKsonEnxZHZaHPZq5I=; b=mb4pzNPsqd6KV+jhFI7KeFuDcrb55sd7KTeUDAi1ostEwo8Xte6kp4GoKfI5zLTpgE 3kA2pi5RxjJpc+rNzj5rSdYscT6LARYXvSpb1LkETAsQ+co7cNkD5TcrSXTsvLDlnkss B/qz7yljSZc8dbCb8EYa2hzh29z6LdURJB2+GwtZ0NVVswX8GjwCHDylNdUMK01Lruj9 Jy8pZ2EhodmIl0DK/su1qa/vZcM/CFtVM8ozNgZV2KXcdZfZwQZxIyvd5llnKky9Vfad qpWdoq8ODXrZz8yXQ1TLnwybmTCREFrifo1Gv1343P7ImTh6U9CTGp+3iBlFKOfMPibZ eMuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=lIK3xvi0+y0ybkdkCDjH9xcdfmKsonEnxZHZaHPZq5I=; b=DeNsvPclfrQb7YnZ+2BtM90P+SxHQ29CxW2Yo9a9iSCM+H543bIJmSRS7XqNG/hqYM a+4Ig2pSqKamqqn0JgUpR1ZarPItoMVBKHMAq40GBomIU3qvvYUARz5/bJHkDlk1nta4 eJbhv6JrI9Y2mvCmpk9BB6OoDKRU9XRtrQc7Q5Xm/m7mZ+xL7SH+Ap4lA1znJxAQRURH ScNVcz5eWuTVhp+c/AdkuZWB11geT8WDes8MAP3IvBMuwraU6ZhXVnSGlgHESI4OV1J/ Yc8ERDzqynNP1CMlOnTiJALLj/KskX133kKjtpHK5ZIng6FQhUXmXMDfJhf+AVG2rgbj I67g== X-Gm-Message-State: AEkoousjY6yXPHtHi2WwQ681mgKeEMGltzMPDq51BlKrLTNc6FrnGyEh2R0VIbHZKYE2MQ== X-Received: by 10.66.222.202 with SMTP id qo10mr42065509pac.76.1471156392436; Sat, 13 Aug 2016 23:33:12 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id g5sm24071976pfg.0.2016.08.13.23.33.11 (version=TLS1 cipher=AES128-SHA bits=128/128); Sat, 13 Aug 2016 23:33:11 -0700 (PDT) From: John Wiegley X-Google-Original-From: John Wiegley Received: by Vulcan.local (Postfix, from userid 501) id DA3F11D9CB52; Sat, 13 Aug 2016 23:33:10 -0700 (PDT) To: Nicolas Petton Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <87shu897q0.fsf@petton.fr> (Nicolas Petton's message of "Sat, 13 Aug 2016 14:25:11 +0200") Date: Sat, 13 Aug 2016 23:33:08 -0700 Message-ID: References: <83y443dqbv.fsf@gnu.org> <8360r5dq6o.fsf@gnu.org> <87shu897q0.fsf@petton.fr> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: Eli Zaretskii , Philipp Stephani , 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> Nicolas Petton writes: > Eli Zaretskii writes: >> John, do you want us to wait with the next RC until this is fixed? > I'll wait for your decision regarding this issue. Yes, let's wait. =2D-=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGcBAEBCgAGBQJXsBCkAAoJEMFE2PTxn+Yw98sL/2oQquKANgRGH9RqtRvJ5bVn QrthIlqCCpIMUzf9c4tlAyoWuf/aPLU8Gu3ffqIC57bXrhvurtilLeepFlLNIIk5 5o3pVuFs0ZYBiZdjU3X7/QhmiHW5vHdsGdx9q7Ul48+2uTg9rizNhiTAN6AVOcXv N8gQm201XpAeTqNZ6vSdiOCdC+PGrAP5lAq9HbfHcXD5KEPVF7SD3yrELOivYvQr I2TctROtVjQ/s7HmTUA8fcPUdZQS0Yo7qqJSTNFWi8H6AmoGJIwGjsuM3F+x0Jdo Jal9Wko47Z4sg5DaJvcnKuqy38nP2msZ6kHNQHcF0fNLfmr0W7h2rL1ZeYTMamqc 7t3Q9R2EaG9NrPcvA1CyJf+TStFjJlcsQqD2SwQDe1fj8jqOKRJSwh1H2Arq+p8N m9S8xSDj3v4PozyQ+9NwJG5YxDcWOW/y53bCiOdF6rHn4z88ZAI5vb6tZ8WfSE3F NWSo0ygl9mo6fKFozo6MGoUMeg+bbLEZtC6xtfvlJw== =JK6a -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 10:28:07 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 14:28:07 +0000 Received: from localhost ([127.0.0.1]:57389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYwOV-0000Bk-0P for submit@debbugs.gnu.org; Sun, 14 Aug 2016 10:28:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYwOT-0000B7-7v for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 10:28:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bYwOJ-00045b-Og for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 10:27:59 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48606) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bYwO1-00044I-VE; Sun, 14 Aug 2016 10:27:37 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1157 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bYwNx-0004Sc-O3; Sun, 14 Aug 2016 10:27:36 -0400 Date: Sun, 14 Aug 2016 17:27:14 +0300 Message-Id: <8337m7h1dp.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Sat, 13 Aug 2016 23:54:43 -0500) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: 24206-done@debbugs.gnu.org, Eli Zaretskii , > John Wiegley , Nicolas Petton > From: Paul Eggert > Date: Sat, 13 Aug 2016 23:54:43 -0500 > > Thanks forreporting that, Phil. Ituncovered several bugs in > substitute-command-keys,some predating the curved-quote changes in Emacs > 25. I installed a patch into Emacs master as commit > 2791580f5eaa65948a13ea4ea4952d03b4da795b and am closing the bug as fixed. > > For Emacs 25 I propose installing the attached patch, which should avoid > the emacs-goodies-el problem though it does not fix the other > (presumably less-likely) bugs in this area. This patch is considerably > simpler than what I just installed into master. Thanks for fixing this. However, I'm not sure I agree with the fix: it looks like it loses support for unibyte strings in substitute-command-keys? If so, I don't think we should go that way: Emacs in general tries to support both unibyte and multibyte strings alike in all the primitives that handle strings (with the obvious exception of encoding and decoding them), so losing that here would be a regression. Isn't it true that the problem was in this fragment: else if ((strp[0] == '`' || strp[0] == '\'') && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); length = 1; length_byte = sizeof uLSQM - 1; idx = strp - SDATA (string) + 1; goto subst_quote; } The "length = 1" part is only correct if the argument string is multibyte, and should otherwise count the number of bytes in uLSQM/uRSQ, right? If this is not the reason for the crash, could you please describe the reason(s) in more detail, so that we could try to find a solution that doesn't lose unibyte string support? From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 10:51:58 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 14:51:58 +0000 Received: from localhost ([127.0.0.1]:57398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYwla-0000k8-FX for submit@debbugs.gnu.org; Sun, 14 Aug 2016 10:51:58 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYwlT-0000jq-Ut for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 10:51:57 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 0CD751611E4; Sun, 14 Aug 2016 07:51:46 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id mEXkEePKRFDm; Sun, 14 Aug 2016 07:51:45 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 54870161220; Sun, 14 Aug 2016 07:51:45 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id hH_2M8aW8zrw; Sun, 14 Aug 2016 07:51:45 -0700 (PDT) Received: from [192.168.4.53] (ip-64-134-49-17.public.wayport.net [64.134.49.17]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A3AB11611E4; Sun, 14 Aug 2016 07:51:44 -0700 (PDT) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> From: Paul Eggert Message-ID: Date: Sun, 14 Aug 2016 09:51:43 -0500 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <8337m7h1dp.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 08/14/2016 09:27 AM, Eli Zaretskii wrote: > The "length = 1" part is only correct if the argument string is > multibyte, and should otherwise count the number of bytes in > uLSQM/uRSQ, right? This string is by definition multibyte at that point, since that part of the code is inserting a Unicode character that is not ASCII. More generally, Fsubstitute_command_keys is quite confused about unibyte versus multibyte issues. It merges together a number of strings, and assumes that they are all multibyte iff the original string is multibyte, which is obviously not true in general. (This problem is not limited to the requoting part of the code.) In master, I've altered the implementation to always generate either the original string, or an ASCII string, or a multibyte string. Since substitute-command-keys is not intended to be used on encoded unibyte text, that's good enough. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 11:21:39 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 15:21:39 +0000 Received: from localhost ([127.0.0.1]:57408 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYxEI-0001RB-Tx for submit@debbugs.gnu.org; Sun, 14 Aug 2016 11:21:39 -0400 Received: from mail-wm0-f48.google.com ([74.125.82.48]:36824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYxEH-0001Qx-3j for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 11:21:37 -0400 Received: by mail-wm0-f48.google.com with SMTP id q128so54086075wma.1 for <24206@debbugs.gnu.org>; Sun, 14 Aug 2016 08:21:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=zrh8UGZFA37ol3zn0BlNX2UG8X/X2erBrliLqlz5Euw=; b=KKXjE+aj12wRJU8JG8x6AX/vY5Z8aw2DrAsmA0/EK2ydlyk1OVa2Ool5wUopPwmm9r Tz4JC+yKr6KsnM1rxRqcs1vEoXqSecd+CjCLZIlbWkPryiHQKlmRb+rsy8YWKnL3Qwyv sFitusTNfg25qFqBlAj6KFLXLw/uhdt1Q3iWS5v9j/ueJiv37qLq/bEEYq6OxDpkBh5S t1VsCkFYJpIvQ7nzVnRh7owVbk6QNKC/nY7+FfyTL5rVUMxX0T4DOpEOqOnJ7u0cm4r/ Nhx05hC7EDzwhc+nOIzFEq6vBowC0ZdhlIPVOi56etYYCEJx4e71RTYgr576jiYlg7qz kowg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=zrh8UGZFA37ol3zn0BlNX2UG8X/X2erBrliLqlz5Euw=; b=hDVVEjKgr6lnvlDC+P3rippxCLg4gZAy0h84IOnT5BMQ5OJPCjdFasbsbQosjGZaNK QGNlAKy8jkSxlznnXUhySb/U+kqqzdqiP+Fw5yTVzqzJv8xE4fzK8hTqTB+36hs7PryU NIZtw3Z8MBH27aTziZQil58AypsfV5+9rrCaZlwfpAY1Sm87gLNdfKHefvE918F+93jP +Wr4ZUNYt+wwT+8BryyFUhs+9Qb+loFVp4NF/zXwGvZrQXPtutM3o9mEl8lMlppzTYFl ST4uWYnzpiqUisAcSwedr+gxpOIW9FkAp7NYhsiPxBdUraBGsGVuCpRynwjbCj5S8VCk nrEA== X-Gm-Message-State: AEkoouvgupr7SHW/pm3ZV1SvHFYW4nKRnnam6ouNs0x8vxhQ+IJqo7ubT+xI/5RAdRhvrw== X-Received: by 10.46.5.23 with SMTP id 23mr4232150ljf.64.1471188091140; Sun, 14 Aug 2016 08:21:31 -0700 (PDT) Received: from [192.168.1.190] ([178.252.127.239]) by smtp.googlemail.com with ESMTPSA id 85sm3090231ljf.6.2016.08.14.08.21.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Aug 2016 08:21:30 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: 24206@debbugs.gnu.org, eggert@cs.ucla.edu, p.stephani2@gmail.com References: From: Dmitry Gutov Message-ID: <4dd454bb-fc26-60c0-5c50-fbddb09fd231@yandex.ru> Date: Sun, 14 Aug 2016 18:21:29 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: 24206 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) On 08/14/2016 07:54 AM, Paul Eggert wrote: > Thanks forreporting that, Phil. Ituncovered several bugs in > substitute-command-keys,some predating the curved-quote changes in Emacs > 25. So much for "this is a simple feature that's easy to implement in C". Could you please at least add some tests corresponding to the fix? Instead of just hoping that nobody breaks it later. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 13:19:02 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 17:19:02 +0000 Received: from localhost ([127.0.0.1]:57438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYz3u-00048h-J7 for submit@debbugs.gnu.org; Sun, 14 Aug 2016 13:19:02 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34183) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYz3t-00048D-KB for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 13:19:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bYz3l-00053R-3K for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 13:18:56 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bYz3Z-00052j-RG; Sun, 14 Aug 2016 13:18:41 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1356 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bYz3V-0002Hk-Ru; Sun, 14 Aug 2016 13:18:40 -0400 Date: Sun, 14 Aug 2016 20:18:18 +0300 Message-Id: <83zioffew5.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Sun, 14 Aug 2016 09:51:43 -0500) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: p.stephani2@gmail.com, 24206@debbugs.gnu.org, johnw@gnu.org, > nicolas@petton.fr > From: Paul Eggert > Date: Sun, 14 Aug 2016 09:51:43 -0500 > > On 08/14/2016 09:27 AM, Eli Zaretskii wrote: > > The "length = 1" part is only correct if the argument string is > > multibyte, and should otherwise count the number of bytes in > > uLSQM/uRSQ, right? > > This string is by definition multibyte at that point, since that part of > the code is inserting a Unicode character that is not ASCII. Sorry, I don't understand what you are saying. The sequence of bytes "\xE2\x80\x98" can be either a sequence of unibyte bytes or a single multibyte character, depending on whether a string it is in is unibyte or multibyte. More generally, a Lisp string with the same sequence of bytes as its data can be treated either as unibyte or as multibyte, I'm sure you know that. Its multibyteness is entirely in Emacs's imagination. > More generally, Fsubstitute_command_keys is quite confused about unibyte > versus multibyte issues. It merges together a number of strings, and > assumes that they are all multibyte iff the original string is > multibyte, which is obviously not true in general. Could you please point out the specific places where this is done? Because I'm not sure I agree with your interpretation. (Let's use the code on emacs-25, where it was still not changed, for the purposes of this discussion.) Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 13:22:28 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 17:22:28 +0000 Received: from localhost ([127.0.0.1]:57442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYz7E-0004Dw-4r for submit@debbugs.gnu.org; Sun, 14 Aug 2016 13:22:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYz7C-0004Dh-F9 for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 13:22:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bYz74-0005Yp-7e for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 13:22:21 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51057) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bYz6s-0005Ua-1a; Sun, 14 Aug 2016 13:22:06 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1357 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bYz6n-0002Vz-RW; Sun, 14 Aug 2016 13:22:04 -0400 Date: Sun, 14 Aug 2016 20:21:43 +0300 Message-Id: <83y43zfeqg.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Sat, 13 Aug 2016 23:54:43 -0500) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: 24206-done@debbugs.gnu.org, Eli Zaretskii , > John Wiegley , Nicolas Petton > From: Paul Eggert > Date: Sat, 13 Aug 2016 23:54:43 -0500 > > For Emacs 25 I propose installing the attached patch, which should avoid > the emacs-goodies-el problem though it does not fix the other > (presumably less-likely) bugs in this area. This patch is considerably > simpler than what I just installed into master. Paul, would you agree with the following alternative patch for the release branch? Phil, is the recipe you presented in this bug _exactly_ what emacs-goodies-el does? If not, could you please see if the proposed patch below fixes the real-life use case as well, and if not, show that use case? TIA. diff --git a/src/doc.c b/src/doc.c index 7cdb0d0..bba30b4 100644 --- a/src/doc.c +++ b/src/doc.c @@ -965,7 +965,8 @@ Otherwise, return a new string. */) } } else if ((strp[0] == '`' || strp[0] == '\'') - && quoting_style == CURVE_QUOTING_STYLE) + && quoting_style == CURVE_QUOTING_STYLE + && multibyte) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); length = 1; From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 16:17:13 2016 Received: (at 24206) by debbugs.gnu.org; 14 Aug 2016 20:17:13 +0000 Received: from localhost ([127.0.0.1]:57505 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ1qL-0001b8-B5 for submit@debbugs.gnu.org; Sun, 14 Aug 2016 16:17:13 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:33257) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ1qK-0001ad-9b for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 16:17:12 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 318C71611D9; Sun, 14 Aug 2016 13:17:06 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id wnbRPGsFoWIy; Sun, 14 Aug 2016 13:17:05 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 833F616121E; Sun, 14 Aug 2016 13:17:05 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id TpI4ORA9h6Ox; Sun, 14 Aug 2016 13:17:05 -0700 (PDT) Received: from [192.168.134.191] (unknown [208.184.3.186]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id EC4CD1611D9; Sun, 14 Aug 2016 13:17:04 -0700 (PDT) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <83y43zfeqg.fsf@gnu.org> From: Paul Eggert Message-ID: <1e16ff28-953a-9081-d9be-dc14b3e3e6ea@cs.ucla.edu> Date: Sun, 14 Aug 2016 15:16:47 -0500 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83y43zfeqg.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 08/14/2016 12:21 PM, Eli Zaretskii wrote: > Paul, would you agree with the following alternative patch for the > release branch? Sure, that patch should also prevent crash that initiated this bug report (though it does not fix the problem in general). Please mark it with "Do not merge to master". From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 21:12:38 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 01:12:38 +0000 Received: from localhost ([127.0.0.1]:57718 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ6SE-0001pK-5j for submit@debbugs.gnu.org; Sun, 14 Aug 2016 21:12:38 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:41487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ6SC-0001p5-FW for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 21:12:37 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 8D7781611D9; Sun, 14 Aug 2016 18:12:30 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id nh3VVk8cia3Y; Sun, 14 Aug 2016 18:12:29 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 744E71611DF; Sun, 14 Aug 2016 18:12:29 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id qILrkojYGw2O; Sun, 14 Aug 2016 18:12:29 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 503FC1611D9; Sun, 14 Aug 2016 18:12:29 -0700 (PDT) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <83y43zfeqg.fsf@gnu.org> <1e16ff28-953a-9081-d9be-dc14b3e3e6ea@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <78989077-be2e-1618-0ec7-a543b75442ca@cs.ucla.edu> Date: Sun, 14 Aug 2016 18:12:25 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1e16ff28-953a-9081-d9be-dc14b3e3e6ea@cs.ucla.edu> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Paul Eggert wrote: > On 08/14/2016 12:21 PM, Eli Zaretskii wrote: >> Paul, would you agree with the following alternative patch for the >> release branch? > > Sure, that patch should also prevent crash that initiated this bug report > (though it does not fix the problem in general). Please mark it with "Do not > merge to master". > Whoops, I spoke too soon. Although your patch would prevent the crash, it has the unfortunate side effect of almost always disabling text-quoting-style, as the input to substitute-command-keys is normally not multibyte. So we really need some other fix, such as the one in . From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 21:53:31 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 01:53:31 +0000 Received: from localhost ([127.0.0.1]:57733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ75n-0002pW-N1 for submit@debbugs.gnu.org; Sun, 14 Aug 2016 21:53:31 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ75l-0002pJ-OG for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 21:53:30 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5EB931611D9; Sun, 14 Aug 2016 18:53:23 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 9TjNUz3iupyt; Sun, 14 Aug 2016 18:53:22 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B3E09161218; Sun, 14 Aug 2016 18:53:22 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QEJpBVBHAQct; Sun, 14 Aug 2016 18:53:22 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 948FE1611D9; Sun, 14 Aug 2016 18:53:22 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Dmitry Gutov , 24206@debbugs.gnu.org, p.stephani2@gmail.com References: <4dd454bb-fc26-60c0-5c50-fbddb09fd231@yandex.ru> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Sun, 14 Aug 2016 18:53:22 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <4dd454bb-fc26-60c0-5c50-fbddb09fd231@yandex.ru> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Dmitry Gutov wrote: > So much for "this is a simple feature that's easy to implement in C". :-) In my defense, my error was assuming that the original C implementat= ion was=20 correct, and copying its mistakes in my additions. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 21:57:49 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 01:57:49 +0000 Received: from localhost ([127.0.0.1]:57737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ79x-0002vj-8R for submit@debbugs.gnu.org; Sun, 14 Aug 2016 21:57:49 -0400 Received: from mail-wm0-f54.google.com ([74.125.82.54]:38760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ79v-0002vX-R8 for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 21:57:48 -0400 Received: by mail-wm0-f54.google.com with SMTP id o80so77497896wme.1 for <24206@debbugs.gnu.org>; Sun, 14 Aug 2016 18:57:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=cMtXowQQYQyf9rF8GBOAkMbV6KIxef682l+Thx9LGQM=; b=UymQXS1sRATevtDMf/0DGrWu+Lzs+hztcipv0UQzbaS7LiJvnNAv5zZUv1ycxaGjT9 VXVGS+V4ISVRQsDqtx4S0RYGDC2vFel01phW4ySRzU154LfP+oBA2DzQWNH3JJ3dFsHd XDJf85A0JWqxXtAROnJMHo+lyM8leyF/dpKCcVe/yT4HhXRb1iVlmugcNR4tBe7CGCmc oGDAOepjwVcayzQXp0jUtk8ibzg3IJboEulcJzVBmhQJbQs1MJfoySMMh8gi7RyrkNzH Z/MACrO9AddnbS5Qa31sDcmkz2mkBY1j+7rRq7dIGX3L52G4/TLdsqkGVHuz0Mfu5CZ3 NRxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=cMtXowQQYQyf9rF8GBOAkMbV6KIxef682l+Thx9LGQM=; b=IIGpx8xu5h9HTBrKVY/MaHGZgCNihHiba5Ls8kpfbi2OOrPav7qn1gGt3epFkItlLB SsFLtujcckZCYMu61HNatKGYH3/5iYqdtAH9BgcbCEeD9qqWStM+WtuRDcPDobNBPMgV 6Y00nC27gyGKc5V07Q7j0Eef7+WBXSCkP/CZmaqAGyoT8ugUTW1seXIDSkirB+lCAheu RW9e/iJ/YuPSn6OSYaXNym4a3TbLZjZJV37MAACD1g5ABOJTdIQ+82MRMnzV0TCdV7cC ZEnn7Il/62KQU804PbOsiB7UPjkKhTo2N0dY3zBqwof9EtDVmsScxH+YLObCTu+G0Xm/ dIKA== X-Gm-Message-State: AEkooutJezZiRrpSZ/pEy2Fpgu07ZHZCX3d+GPIoXuH80m0AE4JN45g0TtYryqpJYZuxmg== X-Received: by 10.25.30.76 with SMTP id e73mr5109707lfe.202.1471226261992; Sun, 14 Aug 2016 18:57:41 -0700 (PDT) Received: from [192.168.1.190] ([178.252.127.239]) by smtp.googlemail.com with ESMTPSA id h62sm3444104lji.28.2016.08.14.18.57.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Aug 2016 18:57:41 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Paul Eggert , 24206@debbugs.gnu.org, p.stephani2@gmail.com References: <4dd454bb-fc26-60c0-5c50-fbddb09fd231@yandex.ru> From: Dmitry Gutov Message-ID: Date: Mon, 15 Aug 2016 04:57:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: 24206 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) On 08/15/2016 04:53 AM, Paul Eggert wrote: > :-) In my defense, my error was assuming that the original C > implementation was correct, and copying its mistakes in my additions. Is it possible to trigger a segfault in the previous version, too? From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 22:04:51 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 02:04:51 +0000 Received: from localhost ([127.0.0.1]:57741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ7Gk-00036s-Vh for submit@debbugs.gnu.org; Sun, 14 Aug 2016 22:04:51 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43378) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ7Gi-00036d-MD for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 22:04:48 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3E0B11611D9; Sun, 14 Aug 2016 19:04:43 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id B54og0y647Hd; Sun, 14 Aug 2016 19:04:42 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 7A92C161218; Sun, 14 Aug 2016 19:04:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2MQpU996tW-a; Sun, 14 Aug 2016 19:04:42 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 549E61611D9; Sun, 14 Aug 2016 19:04:42 -0700 (PDT) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Sun, 14 Aug 2016 19:04:42 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83zioffew5.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Eli Zaretskii wrote: > Its multibyteness is entirely in Emacs's imagination. Sure, but Emacs should not substitute "\342\200\230" for "`". The point o= f=20 text-quoting-style is to substitute quotes, not byte string encodings of = quotes. >> > More generally, Fsubstitute_command_keys is quite confused about uni= byte >> > versus multibyte issues. It merges together a number of strings, and >> > assumes that they are all multibyte iff the original string is >> > multibyte, which is obviously not true in general. > Could you please point out the specific places where this is done? OK, here's a contrived example. Run this code in emacs-25: (progn (setq km (make-keymap)) (define-key km "=E2=89=A0" 'global-set-key) (substitute-command-keys "\200\\\\[global-set-key]")) This should return a 2-character string equal to "\200=E2=89=A0". But in = Emacs 25 it=20 dumps core, at least on my platform (Fedora 23 x86-64). And in Emacs 24 o= n my=20 platform it returns a malformed string that prints as "\242\1340" but has= length=20 2. I suppose we could make Emacs 24 dump core too, though I haven't tried= hard=20 to do that. The problem is that the older Emacs code incorrectly assumes that the out= put of=20 substitution must be properly-encoded if the substitution changes somethi= ng.=20 This assumption can fail if the input is unibyte and contains bytes that = are not=20 properly-encoded for UTF-8. (There are other ways the assumption can fail= .) From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 22:05:43 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 02:05:43 +0000 Received: from localhost ([127.0.0.1]:57745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ7Hb-00038N-9k for submit@debbugs.gnu.org; Sun, 14 Aug 2016 22:05:43 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43413) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZ7Ha-00038A-0P for 24206@debbugs.gnu.org; Sun, 14 Aug 2016 22:05:42 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BB27F1611D9; Sun, 14 Aug 2016 19:05:36 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id tZYQssxYlfxZ; Sun, 14 Aug 2016 19:05:36 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 16A43161218; Sun, 14 Aug 2016 19:05:36 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id cq_BH4urJaL5; Sun, 14 Aug 2016 19:05:36 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id E991B1611D9; Sun, 14 Aug 2016 19:05:35 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Dmitry Gutov , 24206@debbugs.gnu.org, p.stephani2@gmail.com References: <4dd454bb-fc26-60c0-5c50-fbddb09fd231@yandex.ru> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <65d48da7-b407-1b54-b4c7-3440b1b982be@cs.ucla.edu> Date: Sun, 14 Aug 2016 19:05:35 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Dmitry Gutov wrote: > Is it possible to trigger a segfault in the previous version, too? I haven't tried hard to do that. My guess is that one can make Emacs abort, though. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 12:10:08 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 16:10:08 +0000 Received: from localhost ([127.0.0.1]:58482 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZKSm-000862-7c for submit@debbugs.gnu.org; Mon, 15 Aug 2016 12:10:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38958) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZKSk-00085b-DX for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 12:10:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZKSa-0003mQ-Sr for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 12:10:01 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37039) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZKSO-0003jH-E6; Mon, 15 Aug 2016 12:09:44 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1936 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZKSM-0004jC-FX; Mon, 15 Aug 2016 12:09:42 -0400 Date: Mon, 15 Aug 2016 19:09:40 +0300 Message-Id: <83popaf1yz.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Sun, 14 Aug 2016 19:04:42 -0700) Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: p.stephani2@gmail.com, 24206@debbugs.gnu.org, johnw@gnu.org, > nicolas@petton.fr > From: Paul Eggert > Date: Sun, 14 Aug 2016 19:04:42 -0700 > > Eli Zaretskii wrote: > > Its multibyteness is entirely in Emacs's imagination. > > Sure, but Emacs should not substitute "\342\200\230" for "`". The point of > text-quoting-style is to substitute quotes, not byte string encodings of quotes. I'm not sure. We never discussed what should Emacs do when substitute-command-keys is called on a unibyte non-ASCII string which requires quote substitution. Other substitutions, including those that produce ASCII quote characters, previously would leave the unibyte string unibyte. But with your changes, any substitution converts the string into multibyte: (multibyte-string-p (substitute-command-keys "\200\\[goto-char]")) => t I think this is might be a subtle regression, because some code might just find itself mixing multibyte and unibyte strings where previously there were only unibyte strings. > >> > More generally, Fsubstitute_command_keys is quite confused about unibyte > >> > versus multibyte issues. It merges together a number of strings, and > >> > assumes that they are all multibyte iff the original string is > >> > multibyte, which is obviously not true in general. > > Could you please point out the specific places where this is done? > > OK, here's a contrived example. Run this code in emacs-25: > > (progn > (setq km (make-keymap)) > (define-key km "≠" 'global-set-key) > (substitute-command-keys "\200\\\\[global-set-key]")) > > This should return a 2-character string equal to "\200≠". I'm not sure your expectations are correct: as the original string is unibyte, the output of "\200≠", which is multibyte, might not be what the users expect. They might expect "\200\342\211\240" instead. > But in Emacs 25 it dumps core, at least on my platform (Fedora 23 > x86-64). And in Emacs 24 on my platform it returns a malformed > string that prints as "\242\1340" but has length 2. I suppose we > could make Emacs 24 dump core too, though I haven't tried hard to do > that. The errors are easily fixed, though. Below I show 2 patches. The first one should go to master (after reverting yours), and IMO is also safe enough for emacs-25. But if it is deemed not safe enough for the release, the second patch is safer. The second patch doesn't produce "\200≠" in your test case, but neither did Emacs 24, so this is not a regression. Comments? Let's decide on what to do with emacs-25 first, since that blocks the release, and then discuss master if needed. Thanks. --- src/doc.c~0 2016-06-20 08:49:44.000000000 +0300 +++ src/doc.c 2016-08-15 11:24:07.894579900 +0300 @@ -738,8 +738,9 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; + Lisp_Object orig_string = Qnil; if (NILP (string)) return Qnil; @@ -752,6 +753,20 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); + /* If the input string is unibyte and includes non-ASCII characters, + make a multibyte copy, so as to be able to return the original + unibyte string if no substitution eventually happens. */ + if (!multibyte && !pure_ascii) + { + orig_string = string; + string = Fstring_make_multibyte (Fcopy_sequence (string)); + multibyte = true; + } nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -933,8 +948,8 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + length = SCHARS (tem); subst: nonquotes_changed = true; subst_quote: @@ -956,8 +971,8 @@ Otherwise, return a new string. */) && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + length = 1; idx = strp - SDATA (string) + 1; goto subst_quote; } @@ -995,6 +1010,8 @@ Otherwise, return a new string. */) } } } + else if (!NILP (orig_string)) + tem = orig_string; else tem = string; xfree (buf); --- src/doc.c~0 2016-06-20 08:49:44.000000000 +0300 +++ src/doc.c 2016-08-15 11:13:15.132137200 +0300 @@ -738,7 +738,7 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; if (NILP (string)) @@ -752,6 +752,11 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -933,8 +938,11 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + if (multibyte || pure_ascii) + length = SCHARS (tem); + else + length = length_byte; subst: nonquotes_changed = true; subst_quote: @@ -956,8 +964,11 @@ Otherwise, return a new string. */) && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + if (multibyte || pure_ascii) + length = 1; + else + length = length_byte; idx = strp - SDATA (string) + 1; goto subst_quote; } From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 12:46:30 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 16:46:30 +0000 Received: from localhost ([127.0.0.1]:58489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZL1t-0000V3-DC for submit@debbugs.gnu.org; Mon, 15 Aug 2016 12:46:30 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:46602) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZL1r-0000Uv-QV for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 12:46:24 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3sChG60Bf6z3hjkb; Mon, 15 Aug 2016 18:46:21 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3sChG536XgzvkRh; Mon, 15 Aug 2016 18:46:21 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id KzIoZgKZXTlq; Mon, 15 Aug 2016 18:46:20 +0200 (CEST) X-Auth-Info: LkibYMw6U2acMQQChkgKdNQtcK9zM0Z9LxUXLguPBFpuZ20Mm70t/hEscKbwBfOy Received: from igel.home (ppp-88-217-19-168.dynamic.mnet-online.de [88.217.19.168]) by mail.mnet-online.de (Postfix) with ESMTPA; Mon, 15 Aug 2016 18:46:20 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id EDF552C3764; Mon, 15 Aug 2016 18:46:19 +0200 (CEST) From: Andreas Schwab To: Eli Zaretskii Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> X-Yow: Why are these athletic shoe salesmen following me?? Date: Mon, 15 Aug 2016 18:46:19 +0200 In-Reply-To: <83popaf1yz.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 15 Aug 2016 19:09:40 +0300") Message-ID: <87bn0u3rqc.fsf@linux-m68k.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, Paul Eggert , nicolas@petton.fr, johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Aug 15 2016, Eli Zaretskii wrote: > I'm not sure. We never discussed what should Emacs do when > substitute-command-keys is called on a unibyte non-ASCII string which > requires quote substitution. Unibyte strings should not be used for anything but pre-decoding / post-encoding situations directly after / before doing the actual I/O operation. Thus substitute-command-keys should never be called with an undecoded unibyte string. IMHO it would be ok to return something useless in this case (but it shouldn't cause Emacs to crash, of course). Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:43:33 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 18:43:33 +0000 Received: from localhost ([127.0.0.1]:58529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZMrF-0003Ph-5G for submit@debbugs.gnu.org; Mon, 15 Aug 2016 14:43:33 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58098) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZMrD-0003PT-5p for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 14:43:31 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5DEE216114A; Mon, 15 Aug 2016 11:43:25 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id icsGi8hl4kAz; Mon, 15 Aug 2016 11:43:24 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 2A1B71611D9; Mon, 15 Aug 2016 11:43:24 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Huaw36BTTXY3; Mon, 15 Aug 2016 11:43:24 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id EFD51161109; Mon, 15 Aug 2016 11:43:23 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Andreas Schwab , Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Mon, 15 Aug 2016 11:43:16 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <87bn0u3rqc.fsf@linux-m68k.org> Content-Type: multipart/mixed; boundary="------------37754B6665D14531A11850BB" X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) This is a multi-part message in MIME format. --------------37754B6665D14531A11850BB Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Andreas Schwab wrote: > Unibyte strings should not be used for anything but pre-decoding / > post-encoding situations directly after / before doing the actual I/O > operation. Thus substitute-command-keys should never be called with an > undecoded unibyte string. IMHO it would be ok to return something > useless in this case (but it shouldn't cause Emacs to crash, of course)= . Yes. This is in the Elisp manual, which says "We recommend that you never use unibyte buffers and strings except for manipulating encoded text or binary non-text data." Eli Zaretskii wrote: > as the original string is > unibyte, the output of "\200=E2=89=A0", which is multibyte, might not b= e what > the users expect. They might expect "\200\342\211\240" instead. No, as per Andreas's comment and the Elisp reference manual, users should= not=20 expect substitute-command-keys to do that. As long as it doesn't crash on= =20 non-ASCII unibyte data we needn't sweat the details about whether it retu= rns=20 unibyte or multibyte strings for such data. That being said, it shouldn't hurt to return the original string if there= is no=20 substitution. Although I think your first patch in=20 should work, it'd be safer and simpler to=20 backport that part of master, as in the attached patch to emacs-25. --------------37754B6665D14531A11850BB Content-Type: text/x-diff; name="0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0001-Fix-core-dump-with-unibyte-substitute-command-keys.patc"; filename*1="h" =46rom c4cdebc78783f337cb504b6fea71295cfcaaa516 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 15 Aug 2016 11:34:57 -0700 Subject: [PATCH] Fix core dump with unibyte substitute-command-keys Backport from master (Bug#24206). * src/doc.c (Fsubstitute_command_keys): Convert string to multibyte first, but return the original if there is no substitution. --- src/doc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/doc.c b/src/doc.c index 7cdb0d0..4f5f7a4 100644 --- a/src/doc.c +++ b/src/doc.c @@ -763,6 +763,8 @@ Otherwise, return a new string. */) =20 enum text_quoting_style quoting_style =3D text_quoting_style (); =20 + Lisp_Object orig_string =3D string; + string =3D Fstring_make_multibyte (string); multibyte =3D STRING_MULTIBYTE (string); nchars =3D 0; =20 @@ -1024,7 +1026,7 @@ Otherwise, return a new string. */) } } else - tem =3D string; + tem =3D orig_string; xfree (buf); return tem; } --=20 2.7.4 --------------37754B6665D14531A11850BB-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:52:25 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 18:52:25 +0000 Received: from localhost ([127.0.0.1]:58535 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZMzp-0003cS-2j for submit@debbugs.gnu.org; Mon, 15 Aug 2016 14:52:25 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43618) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZMzn-0003cD-LD for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 14:52:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZMze-0000U4-C6 for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 14:52:18 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38897) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZMzZ-0000Tk-OY; Mon, 15 Aug 2016 14:52:09 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2009 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZMzV-0006bj-M8; Mon, 15 Aug 2016 14:52:08 -0400 Date: Mon, 15 Aug 2016 21:51:37 +0300 Message-Id: <83mvkdg91i.fsf@gnu.org> From: Eli Zaretskii To: Andreas Schwab In-reply-to: <87bn0u3rqc.fsf@linux-m68k.org> (message from Andreas Schwab on Mon, 15 Aug 2016 18:46:19 +0200) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, eggert@cs.ucla.edu, nicolas@petton.fr, johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > From: Andreas Schwab > Cc: Paul Eggert , p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org > Date: Mon, 15 Aug 2016 18:46:19 +0200 > > Unibyte strings should not be used for anything but pre-decoding / > post-encoding situations directly after / before doing the actual I/O > operation. Thus substitute-command-keys should never be called with an > undecoded unibyte string. IMHO it would be ok to return something > useless in this case (but it shouldn't cause Emacs to crash, of course). I mostly agree, but there's one situation where the above cannot hold: during startup, before Emacs sets up its encoding/decoding machinery and defaults, and decodes the relevant variables (such as load-path) after that. Until that is done, we cannot have multibyte strings in Emacs, because we don't know how to decode them. During that short period, Emacs still calls various primitives that manipulate strings, and they need to work with unibyte strings, because Emacs must be able to start up in directories with non-ASCII names. Granted, substitute-command-keys are not supposed to be called during that period. Or at least I think so. But who knows? We definitely call it when we construct the menu-bar menus, and some user could perhaps cause it to be called in some startup hook. So I'm okay with changing the output for unibyte strings on master, but I think emacs-25 should not produce multibyte strings from substitute-command-keys more eagerly than previous versions. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 15:04:57 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 19:04:57 +0000 Received: from localhost ([127.0.0.1]:58557 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZNBx-0003zl-CR for submit@debbugs.gnu.org; Mon, 15 Aug 2016 15:04:57 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47147) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZNBu-0003zX-Tx for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 15:04:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZNBo-0003Ho-UT for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 15:04:49 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39058) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZNBk-0003H3-Ab; Mon, 15 Aug 2016 15:04:44 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2024 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZNBf-0005Bj-UG; Mon, 15 Aug 2016 15:04:42 -0400 Date: Mon, 15 Aug 2016 22:04:18 +0300 Message-Id: <83k2fhg8gd.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Mon, 15 Aug 2016 11:43:16 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, > 24206@debbugs.gnu.org > From: Paul Eggert > Date: Mon, 15 Aug 2016 11:43:16 -0700 > > Yes. This is in the Elisp manual, which says "We recommend that > you never use unibyte buffers and strings except for manipulating > encoded text or binary non-text data." That advice is for Lisp programmers, so it's only tangentially relevant in this case. > Eli Zaretskii wrote: > > as the original string is > > unibyte, the output of "\200≠", which is multibyte, might not be what > > the users expect. They might expect "\200\342\211\240" instead. > > No, as per Andreas's comment and the Elisp reference manual, users should not > expect substitute-command-keys to do that. We still want them to be as little surprised as possible, do we? > As long as it doesn't crash on non-ASCII unibyte data we needn't > sweat the details about whether it returns unibyte or multibyte > strings for such data. I explained why this cannot be 100% true. So I'd like to avoid converting unibyte strings to multibyte as much as reasonably possible. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 15:05:56 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 19:05:57 +0000 Received: from localhost ([127.0.0.1]:58562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZNCu-00044x-NH for submit@debbugs.gnu.org; Mon, 15 Aug 2016 15:05:56 -0400 Received: from mail-pa0-f47.google.com ([209.85.220.47]:34567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZNCt-00044i-FF for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 15:05:55 -0400 Received: by mail-pa0-f47.google.com with SMTP id fi15so18470667pac.1 for <24206@debbugs.gnu.org>; Mon, 15 Aug 2016 12:05:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=9iFlzFoDWIRAe+HgEg40+TIcLx440JFT+U21rorD12s=; b=UWPZI6PY2Mtzzn3kpZ/BdKtjBHEW9qHsmhCmdFefUEV7vTsU1rR6kpkcJXN1ikRmNv 5J325IKKFTMja1/Q+uFRjU97a/C0SKnVe0KcKMigofOH0rVtAkZ9XWHAqcAUEf3ZU7G9 wRFx4B0a++ON8aJcHiX+O7jnRirfrq1xgKU1FK9ujyO0TAJQhe9qmHrEmwleLYrCme3P CsK/kailBMZgXd9ZoB/2FXQ+FJZ1I2VJ7RDwZZV6+fUkILZARoDt+MPBzlXW5fwhPl6G noy2I5+pavAqkYOSMsnzCSXlR9VNFIlnbeDnthiA75ZMcCfeGSgGexQeYTr3yF+To+mJ 4mEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=9iFlzFoDWIRAe+HgEg40+TIcLx440JFT+U21rorD12s=; b=YUUqePdM1rTqHQUaXojI5/KIyZSgvUiycNLU0BrQAeqMwR7GWpK11xk/v4x8qhffpN q0mMBAp5eTks+du9nOtN1wGrJFuSeNmv+WIhAAdhVNoi3rV3KzUlLoEMyGU+GhCk4lfc BfMm4TPYuYLpOsaMUyVnEVi1aYcHdq5DWMVDfS1IycqhqNN25VUx2klUPl+q9AEkbEDy XVWPKgY/k1nJhqvBYjhKbbh4v2kcKORGOXSkSC/zAldivo8nMat+4aFBjdXScLG8gxGc qkAp0AiQ49Tzes1j60UlsLWP184F9TVYHnJ8GISd1HoF2efSAKIZAlzMwQAl56xuJEEz Lx1w== X-Gm-Message-State: AEkoouvpjGZtJdd6tnBRho8zIaNJZrVTfDLmiLZSmmjNOuytzFa8mteabVE5SBxkkUF7xg== X-Received: by 10.66.228.135 with SMTP id si7mr56756166pac.124.1471287949624; Mon, 15 Aug 2016 12:05:49 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id g21sm33211504pfj.88.2016.08.15.12.05.48 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 15 Aug 2016 12:05:48 -0700 (PDT) From: John Wiegley X-Google-Original-From: John Wiegley Received: by Vulcan.local (Postfix, from userid 501) id 116EF1F944D7; Mon, 15 Aug 2016 12:05:48 -0700 (PDT) To: Eli Zaretskii Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <83mvkdg91i.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 15 Aug 2016 21:51:37 +0300") Date: Mon, 15 Aug 2016 12:05:44 -0700 Message-ID: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, eggert@cs.ucla.edu, Andreas Schwab , nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) >>>>> Eli Zaretskii writes: > So I'm okay with changing the output for unibyte strings on master, but I > think emacs-25 should not produce multibyte strings from > substitute-command-keys more eagerly than previous versions. Very much agreed. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 16:41:55 2016 Received: (at 24206) by debbugs.gnu.org; 15 Aug 2016 20:41:55 +0000 Received: from localhost ([127.0.0.1]:58580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZOhn-0006VN-Bf for submit@debbugs.gnu.org; Mon, 15 Aug 2016 16:41:55 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:38198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZOhk-0006VA-Rv for 24206@debbugs.gnu.org; Mon, 15 Aug 2016 16:41:54 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 124F4161144; Mon, 15 Aug 2016 13:41:46 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id u4bJTf6zXd6b; Mon, 15 Aug 2016 13:41:44 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BD35216112A; Mon, 15 Aug 2016 13:41:44 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6TIKgCQihCvr; Mon, 15 Aug 2016 13:41:44 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 95EC2160095; Mon, 15 Aug 2016 13:41:44 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii , Andreas Schwab References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> Date: Mon, 15 Aug 2016 13:41:44 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83mvkdg91i.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Eli Zaretskii wrote: > So I'm okay with changing the output for unibyte strings on master, > but I think emacs-25 should not produce multibyte strings from > substitute-command-keys more eagerly than previous versions. OK, in that case the emacs-25 patch just I proposed should suffice . From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 10:39:05 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 14:39:05 +0000 Received: from localhost ([127.0.0.1]:59386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZfWD-0006mQ-DO for submit@debbugs.gnu.org; Tue, 16 Aug 2016 10:39:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55627) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZfWB-0006lq-5D for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 10:39:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZfW4-00007J-Qt for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 10:38:57 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52456) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZfW1-00005i-3S; Tue, 16 Aug 2016 10:38:53 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2628 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZfVy-0003HX-Vq; Tue, 16 Aug 2016 10:38:51 -0400 Date: Tue, 16 Aug 2016 17:38:50 +0300 Message-Id: <83eg5og4n9.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> (message from Paul Eggert on Mon, 15 Aug 2016 13:41:44 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, > 24206@debbugs.gnu.org > From: Paul Eggert > Date: Mon, 15 Aug 2016 13:41:44 -0700 > > Eli Zaretskii wrote: > > So I'm okay with changing the output for unibyte strings on master, > > but I think emacs-25 should not produce multibyte strings from > > substitute-command-keys more eagerly than previous versions. > > OK, in that case the emacs-25 patch just I proposed should suffice > . Thanks, I preferred to install one of the 2 patches I posted yesterday. The emacs-25 branch is ready for another RC, from my POV. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 10:53:12 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 14:53:12 +0000 Received: from localhost ([127.0.0.1]:59398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZfjr-00079A-VO for submit@debbugs.gnu.org; Tue, 16 Aug 2016 10:53:12 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58902) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZfjr-00078x-3e for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 10:53:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZfjl-0002zt-1N for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 10:53:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52593) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZfjf-0002z9-Ij; Tue, 16 Aug 2016 10:52:59 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2634 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZfjd-0004MY-HT; Tue, 16 Aug 2016 10:52:58 -0400 Date: Tue, 16 Aug 2016 17:52:55 +0300 Message-Id: <83d1l8g3zs.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> (message from Paul Eggert on Mon, 15 Aug 2016 13:41:44 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) Paul, I've reviewed the changes you pushed to master for fixing this bug, and I must say that most of them look like purely stylistic changes, to make the code more to your personal liking. The actual bugs were very few and minor, and didn't necessitate such thorough changes. I think we should try to avoid such thorough changes due to style, because they risk introducing regressions into code that was working fine for many years. This is especially true in the absence of test coverage for the functionality of the code that gets refactored. One thing I find suboptimal in the new code is that you removed all the unibyte code, and instead rely on this: Lisp_Object str = Fstring_make_multibyte (string); But string-make-multibyte doesn't necessarily produce a multibyte string, e.g.: (multibyte-string-p (string-make-multibyte "abcd")) => nil So without any comments as to why we handle the input string as multibyte for the rest of the function, I think this will confuse someone down the road. More importantly, I think the refactoring already introduced a regression. On the emacs-25 branch we have: (let ((text-quoting-style 'straight)) (substitute-command-keys "‘balls’")) => "'balls'" But on master: (let ((text-quoting-style 'straight)) (substitute-command-keys "‘balls’")) => "‘balls’" I think that's because this chunk of code from the original implementation disappeared without a trace: int len; int ch = STRING_CHAR_AND_LENGTH (strp, len); if ((ch == LEFT_SINGLE_QUOTATION_MARK || ch == RIGHT_SINGLE_QUOTATION_MARK) && quoting_style != CURVE_QUOTING_STYLE) { *bufp++ = ((ch == LEFT_SINGLE_QUOTATION_MARK && quoting_style == GRAVE_QUOTING_STYLE) ? '`' : '\''); strp += len; changed = true; } Once again, we should have a test covering functionality before we attempt such refactoring. Or maybe we should just go to the original code, after fixing the immediate bugs, as I proposed in a patch yesterday? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 11:25:29 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 15:25:30 +0000 Received: from localhost ([127.0.0.1]:59415 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZgF7-000829-Ob for submit@debbugs.gnu.org; Tue, 16 Aug 2016 11:25:29 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:35954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZgF5-00081u-7T for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 11:25:28 -0400 Received: by mail-pa0-f46.google.com with SMTP id pp5so27334969pac.3 for <24206@debbugs.gnu.org>; Tue, 16 Aug 2016 08:25:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=+XOwnyY8SfDTNz6MEtopVXcI6RoInexu8BokNEaIVPg=; b=u/0Rx/Te3vwPvm3j8kCe3Sn3GsIcYtPqWQFVhXZrY+HlLXHI7X3lro55RWM2mMIBa7 7iNiz2liJdZkqEQ18AmICPbjnnRTTU9wNSjH4TamrW53xSlCSmlEr9tzbIWjWSzLg0Qn rN4vYuUZB1/+8JB7DhuJr6BrVktxlDKCpMNuEwfpGV0ehAWZK19r6N+RAlQGuXBz9HRy t6qF8LyksApt8dbeV241B4ubAp5EYvZKLPPTO/r7zFVNwOxqQo9OshC8vcnGudy1Cx5W o/a5snuZPvrl/AZk15bo3tMO22/WjemiOwVu42X8kzo/OVjsuIWMG4Aj/lpcHhfcnOfw xT7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=+XOwnyY8SfDTNz6MEtopVXcI6RoInexu8BokNEaIVPg=; b=juNiy9kcyUaiuJJ4gmevT8HBd83dPQqxwMLKxHsrmPoibTgISqfx5404dvp48li8Fx vCknQF3f5k1KK0m/iZpiZFgAuOZ5f5rdsN1HXILz8vVt1BIFMc9k2dhd20aPfL199KOl K4PeF44OaXce1AZZpyANFzUAaumQ3f8TsYbf636gBHCLH7mqgLfspMVR+ygMHYuNuUZq XnisXXnwPr2DEXYjW3ECgMG2NzwW/nySMqay/QsukwxusxnjlwRwG96Wbl6RlF/XJ45w Z60wZpO8dQ1cjebKEhVdsqOsVCmp8Sq2TKW/06WgVaiFR+tGHRt8YZpwgZevIcartYs5 mxNw== X-Gm-Message-State: AEkoousc10uGs1SyEPh4lZcbmvxvSd+NS6+OsazqcoioMjLCF5glARjNolh1qgKp1sbJ6A== X-Received: by 10.66.25.135 with SMTP id c7mr64334367pag.24.1471361121272; Tue, 16 Aug 2016 08:25:21 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id dz13sm40294297pac.44.2016.08.16.08.25.19 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Aug 2016 08:25:20 -0700 (PDT) From: John Wiegley X-Google-Original-From: John Wiegley Received: by Vulcan.local (Postfix, from userid 501) id 93B511F9F4C0; Tue, 16 Aug 2016 08:25:18 -0700 (PDT) To: Eli Zaretskii Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <83eg5og4n9.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 16 Aug 2016 17:38:50 +0300") Date: Tue, 16 Aug 2016 08:25:11 -0700 Message-ID: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, Paul Eggert , schwab@linux-m68k.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> Eli Zaretskii writes: > The emacs-25 branch is ready for another RC, from my POV. Good, can you cut one for us, Nicolas? =2D-=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGcBAEBCgAGBQJXszBXAAoJEMFE2PTxn+YwOx4MALblJ8uCCWMLUUaE7ivHR0fg 0L4eYY9/7GkT9W2K68kLt9vp65+ANZ3TXp+dvRPiGg2rZPH6/c1F2+K3Q1uhwG5s AnC49s0yQXq4iZC9ODphcK2HD2mBLsYFPI8SjaQn/Wpi2N/EQWZISWaM2ChEogFB uzdFMwTNy7ddr0gH1ex4Fw2iE9bXBLicmHSYex6Kq1kmtvX0yglBAjnOI41Amx+E n2UdQ230RvqCagpOSncmtU11yS1cYseMrpoZnCxNJmQVlgKDZVLYdfnvphIsinPb fYuiEvLoYElKH0NK9YIBi3SCnpoljpu5tO0sPGUyk7t7mn675IoFnFS8jSWxqwYy JMIuYVM3Z1WBpGWiAkBXypBYSwC1f7k5W8Ric/Cecyjzchc4QBQz0QtqBVGFvEna vMKd/LbWoWKEyYNT1k4jD5Md3wAKRlWX6gwh+oBydQtch/PQ3FEhzAM34HbZ5We5 doE65l9QCQiJxCuLE/97jZjwNOAoceoiwVDY0yeM8A== =9QeU -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 12:09:13 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 16:09:13 +0000 Received: from localhost ([127.0.0.1]:59438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZgvR-0002JT-28 for submit@debbugs.gnu.org; Tue, 16 Aug 2016 12:09:13 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:41034) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZgvP-0002JL-UB for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 12:09:12 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 843B920446; Tue, 16 Aug 2016 12:09:11 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute5.internal (MEProxy); Tue, 16 Aug 2016 12:09:11 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=c4ppeXsAiDynuaOCAadbf3lbTws=; b=Ws6DN 3rrOET/a5rTwkwW2G9imQ6T7+y53zLXykUGLyodFA/KGvxeAnHehfAtZjGJfI01b 0IYSdNO5ruQjpJhey/FSumncqBLCd2ITK7CXbRGwFaxLQqlbjOZiLpR8Ec4Wd9FA HRv+Uo4653sVbejIpWxSMixfe8pvlVIb7evb4I= X-Sasl-enc: oSV1EBgk11HQ5ONH1hniRSEj0P7Z/HqPSP71avos0Nwy 1471363751 Received: from blueberry (175.108.89.92.rev.sfr.net [92.89.108.175]) by mail.messagingengine.com (Postfix) with ESMTPA id 5E098CC07A; Tue, 16 Aug 2016 12:09:10 -0400 (EDT) From: Nicolas Petton To: John Wiegley , Eli Zaretskii Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Emacs/25.1.1 (x86_64-redhat-linux-gnu) Date: Tue, 16 Aug 2016 18:09:08 +0200 Message-ID: <87a8gczoez.fsf@petton.fr> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, Paul Eggert , schwab@linux-m68k.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain John Wiegley writes: > Good, can you cut one for us, Nicolas? Yes! You'll have to wait until tomorrow though. Cheers, Nico --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: GPGTools - http://gpgtools.org iQEcBAEBCAAGBQJXszqkAAoJECM1h6R8IHkQ/CwH/3xuCzctYBbXYFT6VC+4Kdq0 Uu3gibpOAgfFa3m4TGBxMtfTT845OcmqQ1XI0xDzUm8t6D70s2sHOhd2dyAVoiaQ bczEbCfYAC4EaL3V/yQcemF2axXfjvk2D6jjXfSU/RNGffhTGEziglKXi1rJb2nC 7iWliAN/o30+oFRUC2A8Hj9IacONSJtb5wPLRI15rG3Y6wJy2NtRtPTWX2OC1WVI zJXeSdIXGKOY6iJyWr4NDu20gLJ5pD+MNFRs1tWShqyt/+mVyEam+8N4MWGgNVoH s4BEg1lxW/Zzb0mpWbSJm8tB2dltrX8YlCxF4isoRdDW4zq8iXZwz3SHpv9wRc0= =qC8M -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:37:52 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 17:37:52 +0000 Received: from localhost ([127.0.0.1]:59457 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiJD-0004RO-W6 for submit@debbugs.gnu.org; Tue, 16 Aug 2016 13:37:52 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiJC-0004RB-5T for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 13:37:50 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 67692161273; Tue, 16 Aug 2016 10:37:44 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id DxcYdhB4w_w9; Tue, 16 Aug 2016 10:37:43 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 7756B1612E8; Tue, 16 Aug 2016 10:37:43 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id k5R3zby6rP_a; Tue, 16 Aug 2016 10:37:43 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 4E0E9161273; Tue, 16 Aug 2016 10:37:43 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> Date: Tue, 16 Aug 2016 10:37:39 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83eg5og4n9.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------43C5A9FCFECE2AF1261B9F31" X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) This is a multi-part message in MIME format. --------------43C5A9FCFECE2AF1261B9F31 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Eli Zaretskii wrote: > I preferred to install one of the 2 patches I posted yesterday. Let's not cut the RC now, as unfortunately that patch fails spectacularly= . (I=20 didn't test it yesterday; I tested your other patch, which is obviously b= etter.)=20 To reproduce the problem, run emacs -Q and "C-h f car RET"; Emacs will di= splay=20 "Wrong type argument: integer-or-marker-p, nil" instead of help. The attached patch to emacs-25 fixes the problem. It makes the code funct= ionally=20 equivalent to the other of the 2 patches that you posted yesterday, and i= s=20 simpler. OK to install in emacs-25? --------------43C5A9FCFECE2AF1261B9F31 Content-Type: text/x-diff; name="0001-Fix-wrong-type-argument-bug-with-C-h-f.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Fix-wrong-type-argument-bug-with-C-h-f.patch" =46rom 36a8eec4e8f07724e5ed202b0c68233019975e85 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 16 Aug 2016 10:36:14 -0700 Subject: [PATCH] =3D?UTF-8?q?Fix=3D20=3DE2=3D80=3D98wrong=3D20type=3D20ar= gument=3DE2=3D80=3D99?=3D =3D?UTF-8?q?=3D20bug=3D20with=3D20C-h=3D20f?=3D MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit * src/doc.c (Fsubstitute_command_keys): Revert previous change. Instead, to fix the core dump, first convert source string to a multibyte temporary if it is not multibyte already. As before, keep the original string if there are no changes (Bug#24206). --- src/doc.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/doc.c b/src/doc.c index 86e1e0d..4f5f7a4 100644 --- a/src/doc.c +++ b/src/doc.c @@ -750,7 +750,7 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte, pure_ascii; + bool multibyte; ptrdiff_t nchars; =20 if (NILP (string)) @@ -763,12 +763,9 @@ Otherwise, return a new string. */) =20 enum text_quoting_style quoting_style =3D text_quoting_style (); =20 + Lisp_Object orig_string =3D string; + string =3D Fstring_make_multibyte (string); multibyte =3D STRING_MULTIBYTE (string); - /* Pure-ASCII unibyte input strings should produce unibyte strings - if substitution doesn't yield non-ASCII bytes, otherwise they - should produce multibyte strings. */ - pure_ascii =3D SBYTES (string) =3D=3D count_size_as_multibyte (SDATA (= string), - SCHARS (string)); nchars =3D 0; =20 /* KEYMAP is either nil (which means search all the active keymaps) @@ -950,11 +947,8 @@ Otherwise, return a new string. */) =20 subst_string: start =3D SDATA (tem); + length =3D SCHARS (tem); length_byte =3D SBYTES (tem); - if (multibyte || pure_ascii) - length =3D SCHARS (tem); - else - length =3D length_byte; subst: nonquotes_changed =3D true; subst_quote: @@ -973,15 +967,11 @@ Otherwise, return a new string. */) } } else if ((strp[0] =3D=3D '`' || strp[0] =3D=3D '\'') - && quoting_style =3D=3D CURVE_QUOTING_STYLE - && multibyte) + && quoting_style =3D=3D CURVE_QUOTING_STYLE) { start =3D (unsigned char const *) (strp[0] =3D=3D '`' ? uLSQM : uRSQM= ); + length =3D 1; length_byte =3D sizeof uLSQM - 1; - if (multibyte || pure_ascii) - length =3D 1; - else - length =3D length_byte; idx =3D strp - SDATA (string) + 1; goto subst_quote; } @@ -1036,7 +1026,7 @@ Otherwise, return a new string. */) } } else - tem =3D string; + tem =3D orig_string; xfree (buf); return tem; } --=20 2.5.5 --------------43C5A9FCFECE2AF1261B9F31-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:45:19 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 17:45:19 +0000 Received: from localhost ([127.0.0.1]:59462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiQQ-0004c5-RI for submit@debbugs.gnu.org; Tue, 16 Aug 2016 13:45:19 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:34285) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiQP-0004br-CU for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 13:45:17 -0400 Received: by mail-pa0-f41.google.com with SMTP id fi15so28405053pac.1 for <24206@debbugs.gnu.org>; Tue, 16 Aug 2016 10:45:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=sVeMQQGXJFdmxWnod374hAiJVgblq7+Ec9Y0p1eBUz0=; b=K3xA0adgb1Xmf+vMrshPadU8weXf06WHvvwZIUy8RXApsRFQdyLW9SWMDqG7DL9Mw2 LYbHGIB9H7yGkrwAAPfZywv2j63kfvrLJBj5K94H2hoyQ+0vNXBKXsuMN8BKFKh8IHfr Tw/vqGGWasdVruR3z/Mv4d+7wQKFo37FaBhFBOHsJTBLjA2aqpDTRbZkW2nAsiwY8UVn C7eFIw1z1nw5pCnz4UpXwZ5QVNmyZ6tFmuCiJb+ATO/A+OM4TU9n23uD2/VKnDzwM02z yUQF56Q7Mbm90VQiOzSpmQHPDQLwOjmEK4cLfIaQu9ArqPStETuOH4UqCLdtGEDY4Yf4 ppAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=sVeMQQGXJFdmxWnod374hAiJVgblq7+Ec9Y0p1eBUz0=; b=VDDFhZ9kz67ksWwItHB+Xbo6vUb9T3Nt4OY32a57UhVsoY6139fMqcoHb3vUnNALcz 3WmwXY0JUJI0I9EcdjLZVRVagP1slWryOsNrvpZCn6DF0doc5WYd/ETbuDvh5kPKw3zo z4pVj6nLRmlJm2JOFWHR+ImTtOUB+e0E1li33zlTtUR373ImBBTcEB7aGIFrM0DTJL+c AN0PzLWrRnpNWRiIZUyrZmrI6v1Wl4c7Y6ERuRn70wMW7O/DAH6JNuosTB0sLQV6ewNe XX9h9Q7uRIpdiPojh67sbxNjTgkjI/BLApUTa5+gQt+iuCT8QwrXODJifVvYbvPBwie4 oAOw== X-Gm-Message-State: AEkoousokOhX/D+yW6GGOB3uPMDM0jHH7abcXS7fCbZHNp2H5TrdagXF4YGd8abNTAJgdw== X-Received: by 10.66.88.131 with SMTP id bg3mr67048294pab.43.1471369511582; Tue, 16 Aug 2016 10:45:11 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id f6sm40882664pfa.17.2016.08.16.10.45.09 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Aug 2016 10:45:10 -0700 (PDT) From: John Wiegley X-Google-Original-From: John Wiegley Received: by Vulcan.local (Postfix, from userid 501) id E16881FA0DAB; Tue, 16 Aug 2016 10:45:08 -0700 (PDT) To: Paul Eggert Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> (Paul Eggert's message of "Tue, 16 Aug 2016 10:37:39 -0700") Date: Tue, 16 Aug 2016 10:45:06 -0700 Message-ID: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org, Eli Zaretskii , schwab@linux-m68k.org, p.stephani2@gmail.com, nicolas@petton.fr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> Paul Eggert writes: > Let's not cut the RC now, as unfortunately that patch fails spectacularly. I'm rather disturbed by patches being added to emacs-25 which "fail spectacularly". Can you please ensure that there is intensive testing being done on these patches before pushing them to our release branch? Thanks! =2D-=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGcBAEBCgAGBQJXs1EiAAoJEMFE2PTxn+Ywut4MANGIKrjxOW3BAz5yqQoOKdJ6 XA59iHIiL6i3AxJaPcFJvvaM7NmYyRZhDAXXYo/ZGwI2xGfgJiseezZwou2psK5/ 1FXNuRaZR6yx6b5g2DPsrNlmYaVlexGDU89C6O9PYkIZXm73v5p/klN9F1/jWg6i OHcdiWIc4OdTud+uiexFdvs9zURK3AE3ndXEcsLw/4P/+4hljFSKtrA0M19WwdVk 6wxcXhd7rEp5ialHStDNNEzR/cdbISmIl1khtLfZiWQNi4YmUQTfs/HosPaTymtd feNjx49jkvFZ3vsK+cZGo4bvREpkbDZvOh70IUAUcQRC8B58kSOGJzwDYi2qMG+3 BIHkyTLVaHf++sDXFsml8MYa4IhnvTb9Wpqgfo4RJ3hbeqBsgYblgKKRBbCjB911 fmEU9FGG88OOgvJxOgCm6QdMfG6frkOkpu5DBuH+S7qo5J891bqmwI72fogNYUHF b1/pFOewytC0XMPKbcP5uRSYeaLfQsZAd7thHW3Oww== =VKm+ -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:55:56 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 17:55:56 +0000 Received: from localhost ([127.0.0.1]:59468 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiah-0004q8-Ry for submit@debbugs.gnu.org; Tue, 16 Aug 2016 13:55:56 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:44744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZiag-0004pv-6Z for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 13:55:54 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BE1521612E8; Tue, 16 Aug 2016 10:55:47 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id NfzfvGc30Rw9; Tue, 16 Aug 2016 10:55:47 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1341B161309; Tue, 16 Aug 2016 10:55:47 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id YqB-ONZB274F; Tue, 16 Aug 2016 10:55:46 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id E3A4A1612E8; Tue, 16 Aug 2016 10:55:46 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: John Wiegley References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Tue, 16 Aug 2016 10:55:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org, Eli Zaretskii , schwab@linux-m68k.org, p.stephani2@gmail.com, nicolas@petton.fr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) John Wiegley wrote: > I'm rather disturbed by patches being added to emacs-25 which "fail > spectacularly". So am I. > Can you please ensure that there is intensive testing being > done on these patches before pushing them to our release branch? My name is on the "To:" line of your email, so are you under the impressi= on that=20 I pushed the patch? I did not, and would not have done so. Eli wrote and=20 installed the patch, despite my recommendation of a different patch that = would=20 have avoided the failure. So this is really more a matter for Eli. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:57:54 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 17:57:54 +0000 Received: from localhost ([127.0.0.1]:59472 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZicc-0004sz-BD for submit@debbugs.gnu.org; Tue, 16 Aug 2016 13:57:54 -0400 Received: from mail-pf0-f182.google.com ([209.85.192.182]:34957) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZicb-0004sl-8e for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 13:57:53 -0400 Received: by mail-pf0-f182.google.com with SMTP id x72so29799092pfd.2 for <24206@debbugs.gnu.org>; Tue, 16 Aug 2016 10:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=tF1u+Axvizhiq0udmiYmPY3K8eagwmZ13ayeavvvgtM=; b=eiz99S9blbM0k0uotC7pdLgJ3DHvHMjpqldirdVIC266GDnwnqnbZro0nWCdM/2DYk WVUNr/tQ4LpuUH1xi5LKw8Wv7lMYwtdhz1WKUW8R6yIrCbekhhtGKMypcu6GNWZGlJXT bmzosYX1kGuEwDS19w8S6nw0MV0vQ3fHmMy7s2pcYXg6iD3WNDXLhOsLUsC/hIaHRotx kCkY4m2m6teYDAgodtrpuslskNqJKvO9SFG/ILIkFXnf8FpZ2tobfZcw8+mvoQbNPXfF BZX/FqXXJaSyJUB42SLsiaBurjWeN3soz2B5gKpG+ur3mvLLt8svElimwcoRvLKqVMcz LWqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=tF1u+Axvizhiq0udmiYmPY3K8eagwmZ13ayeavvvgtM=; b=CjU4Wxv5aogXkRHngaFmUffYddqfDKvV6FxffjPvpxgYfmOuVPHpBMBqHSHzrsTE1w wgtIk67kYdegOh6OO2hshy7SHgnsjEohb+63OR8FL6U/IdMbdyNGLO0ynpAqwKBEVjJV cFaECjP0fL8RvstGHBJevS0rC5rj0r5T9VMEwWFJVpwc85hNgsAuYKKKYbnox3XaBK82 fKAaWn+uL37ZKO2WLVDfH3X9gnM12+44RqbaO4my3vnvlXUgAtHyJEMF4c4GWqpb3kKW Otpf2Pn3rT1u3pxGeDhkdUnvvPOMFzaIEWKp8h+cJSWyFEUOWYaKruLuQEEySEpmOx75 wR4w== X-Gm-Message-State: AEkoouvndpOQXXpyhFamexHsbphi2zl7C4dRIkFv5s3YsHJSya5G3+BnDtaWwdu5pQn+jQ== X-Received: by 10.98.97.7 with SMTP id v7mr14267030pfb.49.1471370267352; Tue, 16 Aug 2016 10:57:47 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id y9sm17317997pay.25.2016.08.16.10.57.45 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Aug 2016 10:57:45 -0700 (PDT) From: John Wiegley X-Google-Original-From: "John Wiegley" Received: by Vulcan.local (Postfix, from userid 501) id 8CD021FA1004; Tue, 16 Aug 2016 10:57:44 -0700 (PDT) To: Paul Eggert Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: (Paul Eggert's message of "Tue, 16 Aug 2016 10:55:46 -0700") Date: Tue, 16 Aug 2016 10:57:43 -0700 Message-ID: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: 24206@debbugs.gnu.org, Eli Zaretskii , schwab@linux-m68k.org, p.stephani2@gmail.com, nicolas@petton.fr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) >>>>> Paul Eggert writes: >> Can you please ensure that there is intensive testing being done on these >> patches before pushing them to our release branch? > My name is on the "To:" line of your email, so are you under the impression > that I pushed the patch? I did not, and would not have done so. Eli wrote > and installed the patch, despite my recommendation of a different patch that > would have avoided the failure. So this is really more a matter for Eli. I trust Eli to have chastised himself sufficiently in that case, and expectantly await correction of the problem. :) -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 14:32:15 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 18:32:15 +0000 Received: from localhost ([127.0.0.1]:59478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZj9r-0005gQ-5Y for submit@debbugs.gnu.org; Tue, 16 Aug 2016 14:32:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZj9q-0005gE-1P for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 14:32:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZj9j-0004HY-Tw for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 14:32:08 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZj9g-0004Gu-1n; Tue, 16 Aug 2016 14:32:04 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4762 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bZj9b-0006cb-T7; Tue, 16 Aug 2016 14:32:02 -0400 Date: Tue, 16 Aug 2016 21:31:40 +0300 Message-Id: <838tvwftv7.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> (message from Paul Eggert on Tue, 16 Aug 2016 10:37:39 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, nicolas@petton.fr, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: schwab@linux-m68k.org, p.stephani2@gmail.com, johnw@gnu.org, > nicolas@petton.fr, 24206@debbugs.gnu.org > From: Paul Eggert > Date: Tue, 16 Aug 2016 10:37:39 -0700 > > Let's not cut the RC now, as unfortunately that patch fails spectacularly. (I > didn't test it yesterday; I tested your other patch, which is obviously better.) > To reproduce the problem, run emacs -Q and "C-h f car RET"; Emacs will display > "Wrong type argument: integer-or-marker-p, nil" instead of help. Thanks, that blunder should be fixed now. > The attached patch to emacs-25 fixes the problem. It makes the code functionally > equivalent to the other of the 2 patches that you posted yesterday, and is > simpler. OK to install in emacs-25? Sorry, no. I don't want to indiscriminately convert unibyte strings to multibyte in substitute-command-keys. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 14:44:35 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 18:44:35 +0000 Received: from localhost ([127.0.0.1]:59482 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZjLn-0005wl-EF for submit@debbugs.gnu.org; Tue, 16 Aug 2016 14:44:35 -0400 Received: from mail-wm0-f43.google.com ([74.125.82.43]:38833) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZjLl-0005wY-Da for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 14:44:33 -0400 Received: by mail-wm0-f43.google.com with SMTP id o80so187010888wme.1 for <24206@debbugs.gnu.org>; Tue, 16 Aug 2016 11:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=ao1fAUtWn2hQo9ew39LqflRs6JNLuzXb+ig5CKbk9tQ=; b=wE1kfBt6s7I+zMtlEBJhQG2pbHfYSkuUQPRv9cCyj1uDtaNfowxqaUNRfZ3rSwTwQC Tvw0FP7bSTj0KrVpgtWHpsFo1Lp5fN43vus9ahBF3eYGsUJ4JoKwq/Lp7bqJ7VrZToMk yRnGeiweXkjB9d6QaGq5zJ+rtZPb+QvRQsZuGdq8x/InKfVmTuihK0ygg8ztcxOzOVlD EIaOFP1xM3dpa9Qyee8dtW3cfL3iHXnjxA+y8hZlVsUJP3oKo0SByPh2Eb6TqxoNoiCa Wsbs8vkvU6ZoK2mRhe8QVb2jlD2Gu2T1TCXQ6yXK+udevOhJyrjTocVfRro2quaFFwSz s3rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=ao1fAUtWn2hQo9ew39LqflRs6JNLuzXb+ig5CKbk9tQ=; b=LhLtD1fmKXLdEFwCy/1z9hST+3LO9cfDlceDm1+iMGYpuwGj4LNrSOztSC4Q+vRwmH RDR95ft7mHVBPjN0dF9GMei+Hko382M3gTh03sL340/P4Vy3Xge+8YvzJq9M6dvOgWgj w5PwkajbF5/jC3jnoVHisJq0v+zTUVdteBlJ0MG87BAZKAzxCQbVrhUgqOKjzJs2eU7v FhCAWGfAq/W8WU5E7NOkKYirKUnyRDd9R8ECdfiZzZu4ewcm2x7VHRhBaUMUo3JzuZSr utcr4cLSG1tT5PfWZCfSKKfL+ZfOk7aY4VYPLoOJH76bYOPDSzt5TUHA7jAmQobgcQsw bP5Q== X-Gm-Message-State: AEkoouud/1VcJ17GE6zIvTTx8l6t0Su8jdAs5oIdxm499vp7eRNxIOfM5+elpqtjMH/0rQ== X-Received: by 10.46.33.8 with SMTP id h8mr6198924ljh.36.1471373067522; Tue, 16 Aug 2016 11:44:27 -0700 (PDT) Received: from [192.168.1.190] ([178.252.127.239]) by smtp.googlemail.com with ESMTPSA id l70sm4364528lfe.28.2016.08.16.11.44.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Aug 2016 11:44:26 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Paul Eggert , John Wiegley References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <17f39e7e-31d1-62e5-367d-833b957a39e3@cs.ucla.edu> From: Dmitry Gutov Message-ID: Date: Tue, 16 Aug 2016 21:44:25 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, schwab@linux-m68k.org, 24206@debbugs.gnu.org, nicolas@petton.fr X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) On 08/16/2016 08:55 PM, Paul Eggert wrote: > John Wiegley wrote: >> I'm rather disturbed by patches being added to emacs-25 which "fail >> spectacularly". > > So am I. I'm disturbed by the lack of tests (in all proposed patches, as well as the one that was pushed), even when this bug report shows that the function is question is easy to get wrong. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 17:07:18 2016 Received: (at 24206) by debbugs.gnu.org; 16 Aug 2016 21:07:18 +0000 Received: from localhost ([127.0.0.1]:59535 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZlZu-0002Pa-ED for submit@debbugs.gnu.org; Tue, 16 Aug 2016 17:07:18 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58865) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZlZs-0002PE-9Q for 24206@debbugs.gnu.org; Tue, 16 Aug 2016 17:07:16 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 8EC18161165; Tue, 16 Aug 2016 14:07:09 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ymJSgNXid21K; Tue, 16 Aug 2016 14:07:08 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9687B161308; Tue, 16 Aug 2016 14:07:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id qcIDBu5g979h; Tue, 16 Aug 2016 14:07:08 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 6E7D3161165; Tue, 16 Aug 2016 14:07:08 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> Date: Tue, 16 Aug 2016 14:07:05 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83d1l8g3zs.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------293763337082D1FF79ACA8AC" X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) This is a multi-part message in MIME format. --------------293763337082D1FF79ACA8AC Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Eli Zaretskii wrote: > I've reviewed the changes you pushed to master for fixing this bug, > and I must say that most of them look like purely stylistic changes, > to make the code more to your personal liking. The actual bugs were > very few and minor, and didn't necessitate such thorough changes. The changes were motivated by bug fixes, not style. Although the bugs wer= e=20 mostly minor (e.g., generating bogus NUL bytes due to miscounting) it's f= ine to=20 fix minor bugs. I did change nearby style (indenting as per GNU style, sw= itching=20 some locals to C99-style decl-after-statement, etc.) but none of the chan= ges=20 were pervasive or were intended for the emacs-25 branch, and it's fine to= make=20 such changes in master. One of the bugs was O(N**2) performance when reallocating a temporary buf= fer.=20 While I was at it, I changed the code to allocate a small temp buffer on = the=20 stack to avoid a malloc/free in the usual case, which should be a small w= in.=20 This accounts for many changes that a quick glance might give the mistake= n=20 impression of being stylistic. > without any comments as to why we handle the input string as > multibyte for the rest of the function, I think this will confuse > someone down the road. OK, I added some comments along those lines (see attached patch). > I think the refactoring already introduced a > regression. This comment appears to be about changes made in May for Bug#23425, not a= bout=20 code changes I made recently. The May changes were not a regression; they= were=20 intended and are documented in etc/NEWS. Alan Mackenzie felt strongly tha= t some=20 changes were needed in this area. See commit=20 433d366dc7b053048abf710d790ff62421dd1570. > maybe we should just go to the original code, after fixing the > immediate bugs, as I proposed in a patch yesterday? No, the code in master should be uniformly better than what's in emacs-25= . It would be nice to have good tests for substitute-command-keys, of cours= e. (We=20 can all add this to our lists of things to do. :-) --------------293763337082D1FF79ACA8AC Content-Type: text/x-diff; name="0001-Omit-substitute-command-keys-code-no-longer-needed.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0001-Omit-substitute-command-keys-code-no-longer-needed.patc"; filename*1="h" =46rom bc5a55262382da9cc4b1999df7ce195b7f825d4b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 16 Aug 2016 13:16:49 -0700 Subject: [PATCH] Omit substitute-command-keys code no longer needed * src/doc.c (Fsubstitute_command_keys): Remove duplicate initializations. --- src/doc.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/doc.c b/src/doc.c index 37a731b..4b91831 100644 --- a/src/doc.c +++ b/src/doc.c @@ -743,10 +743,12 @@ Otherwise, return a new string. */) if (NILP (string)) return Qnil; =20 + /* If STRING contains non-ASCII unibyte data, process its + properly-encoded multibyte equivalent instead. This simplifies + the implementation and is OK since substitute-command-keys is + intended for use only on text strings. Keep STRING around, since + it will be returned if no changes occur. */ Lisp_Object str =3D Fstring_make_multibyte (string); - tem =3D Qnil; - keymap =3D Qnil; - name =3D Qnil; =20 enum text_quoting_style quoting_style =3D text_quoting_style (); =20 @@ -905,6 +907,8 @@ Otherwise, return a new string. */) } =20 subst_string: + /* Convert non-ASCII unibyte data to properly-encoded multibyte, + for the same reason STRING was converted to STR. */ tem =3D Fstring_make_multibyte (tem); start =3D SDATA (tem); length =3D SCHARS (tem); --=20 2.7.4 --------------293763337082D1FF79ACA8AC-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 11:12:59 2016 Received: (at 24206) by debbugs.gnu.org; 17 Aug 2016 15:12:59 +0000 Received: from localhost ([127.0.0.1]:60393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba2WZ-0003Gh-F9 for submit@debbugs.gnu.org; Wed, 17 Aug 2016 11:12:59 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55126) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba2WY-0003GV-0W for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 11:12:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ba2WR-0006lo-Jq for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 11:12:52 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41337) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ba2WN-0006kg-Qu; Wed, 17 Aug 2016 11:12:47 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1462 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1ba2WL-0004Ut-Uh; Wed, 17 Aug 2016 11:12:46 -0400 Date: Wed, 17 Aug 2016 18:12:48 +0300 Message-Id: <8360qzfmz3.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> (message from Paul Eggert on Tue, 16 Aug 2016 14:07:05 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: schwab@linux-m68k.org, p.stephani2@gmail.com, johnw@gnu.org, > 24206@debbugs.gnu.org > From: Paul Eggert > Date: Tue, 16 Aug 2016 14:07:05 -0700 > > The changes were motivated by bug fixes, not style. That's not what I see. E.g., this hunk simply replaces valid code by an equivalently valid code: - if (multibyte) - { - int len; - - STRING_CHAR_AND_LENGTH (strp, len); - if (len == 1) - *bufp = *strp; - else - memcpy (bufp, strp, len); - strp += len; - bufp += len; - nchars++; - } - else - *bufp++ = *strp++, nchars++; + /* Fall through to copy one char. */ Same here: - else if (strp[0] == '\\' && strp[1] == '[') + else if (strp[0] == '\\' && strp[1] == '[' + && (close_bracket + = memchr (strp + 2, ']', + SDATA (str) + strbytes - (strp + 2)))) { - ptrdiff_t start_idx; bool follow_remap = 1; - strp += 2; /* skip \[ */ - start = strp; - start_idx = start - SDATA (string); - - while ((strp - SDATA (string) - < SBYTES (string)) - && *strp != ']') - strp++; - length_byte = strp - start; - - strp++; /* skip ] */ and here (which, for some reason, loses part of a comment, and IMO makes it half a riddle for the uninitiated): - /* Note the Fwhere_is_internal can GC, so we have to take - relocation of string contents into account. */ - strp = SDATA (string) + idx; - start = SDATA (string) + start_idx; + /* Take relocation of string contents into account. */ + strp = SDATA (str) + idx; + start = strp - length_byte - 1; etc. etc. -- I see a lot of changes that have nothing to do with the real bugs in this function, they just rearrange valid code, change the way intermediate variables are used, etc. > Although the bugs were mostly minor (e.g., generating bogus NUL bytes due to miscounting) it's fine to fix minor bugs. I did change nearby style (indenting as per GNU style, switching some locals to C99-style decl-after-statement, etc.) but none of the changes were pervasive or were intended for the emacs-25 branch, and it's fine to make such changes in master. What code generated bogus null bytes? I'm not saying it isn't fine to make such changes, I'm urging you and the others to resist the temptation of doing so unless really necessary. We are operating in the area of diminishing returns, and too many times introduce regressions into code that was working properly for decades. We should try to minimize that. Emacs is not supposed to become less stable in core code, unless its gets significant improvements or new features. > One of the bugs was O(N**2) performance when reallocating a temporary buffer. While I was at it, I changed the code to allocate a small temp buffer on the stack to avoid a malloc/free in the usual case, which should be a small win. This accounts for many changes that a quick glance might give the mistaken impression of being stylistic. Where's the O(N**2) performance, and why does performance matter in this function anyway? I don't think we ever had complaints about this being slow. The new code is more complex, because it sometimes uses the stack and sometimes the heap, so more opportunities for bugs in it. I don't see any net gains, sorry. > without any comments as to why we handle the input string as > multibyte for the rest of the function, I think this will confuse > someone down the road. > > OK, I added some comments along those lines (see attached patch). Thanks. > I think the refactoring already introduced a > regression. > > This comment appears to be about changes made in May for Bug#23425, not about code changes I made recently. The May changes were not a regression; they were intended and are documented in etc/NEWS. Alan Mackenzie felt strongly that some changes were needed in this area. See commit 433d366dc7b053048abf710d790ff62421dd1570. Right, sorry I forgot about that. Unlike at that time, I now think this was a bad move, because Emacs 25.1 will have the disabled conversion in it, so by the time we release the code in master, it would be an incompatible change. Also, ‘..’ is left unchanged, but '..' is not, which is inconsistent. So I think that change should be reverted on master. (I also don't see how it is related to the original bug report, which AFAIU was about (message "`foo'") that still behaves as in the bug report.) > maybe we should just go to the original code, after fixing the > immediate bugs, as I proposed in a patch yesterday? > > No, the code in master should be uniformly better than what's in emacs-25. I can't say I see that, sorry. > It would be nice to have good tests for substitute-command-keys, of course. (We can all add this to our lists of things to do. :-) Which seems to be just another way of saying NO, sigh. (Mumbles something about Emacs maintenance being a lonely business...) From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 13:42:09 2016 Received: (at 24206) by debbugs.gnu.org; 17 Aug 2016 17:42:09 +0000 Received: from localhost ([127.0.0.1]:60490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba4qu-0006qK-H5 for submit@debbugs.gnu.org; Wed, 17 Aug 2016 13:42:08 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58811) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba4qs-0006ph-5P for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 13:42:06 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 50165161125; Wed, 17 Aug 2016 10:42:00 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id iRojNpDdD23m; Wed, 17 Aug 2016 10:41:59 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 34BD4161199; Wed, 17 Aug 2016 10:41:59 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id DqeukgDDrOAb; Wed, 17 Aug 2016 10:41:59 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 1055C161125; Wed, 17 Aug 2016 10:41:59 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> Date: Wed, 17 Aug 2016 10:41:52 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <8360qzfmz3.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------B82A6C0CA66137FDC9048D00" X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) This is a multi-part message in MIME format. --------------B82A6C0CA66137FDC9048D00 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Eli Zaretskii wrote: >> The changes were motivated by bug fixes, not style. > > That's not what I see. E.g., this hunk simply replaces valid code by > an equivalently valid code: > > - if (multibyte) > - { > - int len; > - > - STRING_CHAR_AND_LENGTH (strp, len); > - if (len =3D=3D 1) > - *bufp =3D *strp; > - else > - memcpy (bufp, strp, len); > - strp +=3D len; > - bufp +=3D len; > - nchars++; > - } > - else > - *bufp++ =3D *strp++, nchars++; > + /* Fall through to copy one char. */ Some change in this area was needed because the 'multibyte' flag went awa= y.=20 While doing that, I noticed that discarding all the code made this=20 somewhat-tricky area easier to follow. It's not merely that the old multi= byte=20 code is unnecessarily long and hard to follow; it's that the old code doe= s=20 something fairly-typical (copy a multibyte character) in an unusual way, = which=20 is too likely to lead the reader into incorrectly thinking that there is=20 something actually unusual about the action. Misleading code like this re= ally=20 cries out to be rewritten, particularly if the rewriting simply ionvolves= =20 deleting it. In short, the main motivation here was clarity, not merely style. (I hope I don't have to go into such details to defend every code change = I=20 install! I'm finding it difficult-enough now to find time to improve Emac= s.) > Same here: > > - else if (strp[0] =3D=3D '\\' && strp[1] =3D=3D '[') > + else if (strp[0] =3D=3D '\\' && strp[1] =3D=3D '[' > + && (close_bracket > + =3D memchr (strp + 2, ']', > + SDATA (str) + strbytes - (strp + 2)))) > { > - ptrdiff_t start_idx; > bool follow_remap =3D 1; > > - strp +=3D 2; /* skip \[ */ > - start =3D strp; > - start_idx =3D start - SDATA (string); > - > - while ((strp - SDATA (string) > - < SBYTES (string)) > - && *strp !=3D ']') > - strp++; > - length_byte =3D strp - start; > - > - strp++; /* skip ] */ This one is not merely a style change. The old code matched \[ even if no= t=20 followed by ], the new code does not. This is an intended improvement. I = plead=20 guilty to the charge that the new code is also shorter and clearer. > and here (which, for some reason, loses part of a comment, and IMO > makes it half a riddle for the uninitiated): > > - /* Note the Fwhere_is_internal can GC, so we have to take > - relocation of string contents into account. */ > - strp =3D SDATA (string) + idx; > - start =3D SDATA (string) + start_idx; > + /* Take relocation of string contents into account. */ > + strp =3D SDATA (str) + idx; > + start =3D strp - length_byte - 1; The new comment came because I copied it from somewhere else in the inter= est of=20 consistency. You're right, I omitted some commentary in the process. I th= ought=20 the omitted info obvious, but evidently you think otherwise. It's obvious= ly no=20 big deal, so I brought it back by applying the attached patch to master. > What code generated bogus null bytes? For example, (substitute-command-keys "\\=3D") generated "\0". > I'm not saying it isn't fine to make such changes, I'm urging you and > the others to resist the temptation of doing so unless really > necessary. We are operating in the area of diminishing returns, and > too many times introduce regressions into code that was working > properly for decades. This particular code has been buggy for decades in unusual areas. There i= s no=20 harm in simplifying it when fixing the bugs. On the contrary, we should=20 encourage bug fixes that simplify code. > Where's the O(N**2) performance When the buffer grew slightly, it was reallocated to be slightly bigger a= nd the=20 old data was copied to the new; this is an O(N**2) algorithm, where N is = the=20 final buffer size. The new approach doubles the buffer size instead (actu= ally,=20 multiplies it by 1.5, but that's good enough to bring worst-case behavior= down=20 to O(N)). This sort of thing is standard programming practice when growin= g a=20 buffer whose eventual size is not yet known. > and why does performance matter in this function anyway? It usually doesn't, but it might in the worst case, so I figured I might = as well=20 fix the O(N**2) problem while I was fixing related bugs. This is a good t= hing to=20 do in master. > Unlike at that time, I now think > this was a bad move, because Emacs 25.1 will have the disabled > conversion in it, so by the time we release the code in master, it > would be an incompatible change. If that's the main objection, then let's change Emacs 25 to behave simila= rly.=20 This would be a simple and conservative change to Emacs 25. But even if y= ou=20 don't want to change Emacs 25 (and thus you want to Emacs 25 to continue = to be=20 less-compatible with Emacs 24), it's OK to change this minor detail back = to the=20 way Emacs 24 does things. > (I also don't see how it is related to the > original bug report, which AFAIU was about (message "`foo'") that > still behaves as in the bug report.) Alan wanted something that he could put into his .emacs that would cause=20 (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming=20 PERCENTLESS lacks %. This was the point of his original bug report; his o= riginal=20 example involved ` and ' but he wanted the same behavior for =E2=80=98 an= d =E2=80=99, a point=20 that became clear during the discussion of Bug#23425. In Message #95 of t= hat bug=20 report I proposed the change in question, and in Message #104 you said it= =20 sounded good to you. This is a contentious area, and unless there's good reason I'd rather let= =20 sleeping dogs lie and stick with master's current behavior here. > (Mumbles something about Emacs maintenance being a lonely business...) But we have all these nice conversations! :-) --------------B82A6C0CA66137FDC9048D00 Content-Type: text/x-diff; name="0001-src-doc.c-Fsubstitute_command_keys-Clarify-GC-commen.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0001-src-doc.c-Fsubstitute_command_keys-Clarify-GC-commen.pa"; filename*1="tch" =46rom 70a5e67e9a072b6f22343fc0c7eed91dfdaf8025 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 17 Aug 2016 10:15:53 -0700 Subject: [PATCH] * src/doc.c (Fsubstitute_command_keys): Clarify GC comme= nts. --- src/doc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/doc.c b/src/doc.c index 4b91831..6376398 100644 --- a/src/doc.c +++ b/src/doc.c @@ -821,7 +821,8 @@ Otherwise, return a new string. */) goto do_remap; } =20 - /* Take relocation of string contents into account. */ + /* Fwhere_is_internal can GC, so take relocation of string + contents into account. */ strp =3D SDATA (str) + idx; start =3D strp - length_byte - 1; =20 @@ -936,7 +937,8 @@ Otherwise, return a new string. */) bufp +=3D length_byte; nchars +=3D length; =20 - /* Take relocation of string contents into account. */ + /* Some of the previous code can GC, so take relocation of + string contents into account. */ strp =3D SDATA (str) + idx; =20 continue; --=20 2.5.5 --------------B82A6C0CA66137FDC9048D00-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 13:50:39 2016 Received: (at 24206) by debbugs.gnu.org; 17 Aug 2016 17:50:39 +0000 Received: from localhost ([127.0.0.1]:60503 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba4z9-00076x-Dk for submit@debbugs.gnu.org; Wed, 17 Aug 2016 13:50:39 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba4z7-00076j-Gi for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 13:50:37 -0400 Received: by mail-wm0-f65.google.com with SMTP id i5so26565335wmg.2 for <24206@debbugs.gnu.org>; Wed, 17 Aug 2016 10:50:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=OLdBAMdpvYc83ymoFusoAH45cWKiLzRvUg+4tfhAw9g=; b=thvh56f4f+f62glJ7nIJEo4bxeyW31fLL1sd6KtCN6J6DkTwEegc3F0I5bWiNgiz0+ ELuSPvr9YetazceXKYc6tkLgQxMi4Wk1Qd6VvxRjUsFWSglwcgJwBEqkxqUuCMrXjNqS MGFursmHmMoYD5JDUjUFTItmXu8hfjnc2wgtOjvniEOMEKMdNhQYKiDh5x3th+SZe/EL vc/mOQiaEED7gH26PP0GB4zRbU/qjX7wNnV13Q6r+Al7hH3KO2uBgaBqscU7HG7NdeWm QG+8eS6jD8gmZclNH5t/9pG2g9Y2bXpE3Ux7hEteQUkRA0gA5Oyk+tAkPZw0VEABwSYV Eg9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=OLdBAMdpvYc83ymoFusoAH45cWKiLzRvUg+4tfhAw9g=; b=gNuNf2ecDUdd7TSiRwNaTxXKk9KL8Zb5qszcmkh3lp51/F4ZrhyLlLSGhHe+wHkDLd g1+sFDkdBvwEJ/5R/tP0cnfhTIf1LGKQIrGK5PBn9dkePnbrYDDOQrHOYB5E3ABSlxt9 iaWCrllFRbKOwBqmLBLdC39xVz3wwFTKP/IoRF2B9Se2xccqP2bMshInbisFmszakK95 wvNSekyYUNgcVI3Hq98eJnI1VmwVV3NZzCCC3I5wdNNLEzsDpxkFzm+KK7dVX9QxHiJp KkPs2FA2Km5m4hORXDIenQAxMlsTVjjHkKMzXYRTA2WqrSH3v0XE6Fa8geKEuGKINl1U 2WBQ== X-Gm-Message-State: AEkoous+HF3mNv4IfQTGlms58reMFFSuG45T3SNf9zWnSdhj1/7dR5AojLo9cnvxE99Qqg== X-Received: by 10.25.17.37 with SMTP id g37mr7225962lfi.113.1471456231758; Wed, 17 Aug 2016 10:50:31 -0700 (PDT) Received: from [192.168.1.190] ([178.252.127.239]) by smtp.googlemail.com with ESMTPSA id 142sm1729751ljf.9.2016.08.17.10.50.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Aug 2016 10:50:30 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Paul Eggert , Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> From: Dmitry Gutov Message-ID: Date: Wed, 17 Aug 2016 20:50:29 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, johnw@gnu.org, schwab@linux-m68k.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) On 08/17/2016 12:07 AM, Paul Eggert wrote: > It would be nice to have good tests for substitute-command-keys, of > course. (We can all add this to our lists of things to do. :-) Tests written after the fact are often less than helpful, because you don't see the problem anymore. Not to mention that there's little motivation for anyone to do that. Never mind "good" tests, let's at least have _some_ tests first. It should be the responsibility of the person who fixes the bug, or the one who introduced it, at least. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 14:07:18 2016 Received: (at 24206) by debbugs.gnu.org; 17 Aug 2016 18:07:18 +0000 Received: from localhost ([127.0.0.1]:60512 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba5FG-0007W5-1E for submit@debbugs.gnu.org; Wed, 17 Aug 2016 14:07:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43163) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba5FF-0007Vt-CB for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 14:07:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ba5F8-0004bO-RL for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 14:07:12 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43615) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ba5F4-0004aW-SR; Wed, 17 Aug 2016 14:07:06 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1716 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1ba5Et-0007fF-Ad; Wed, 17 Aug 2016 14:07:05 -0400 Date: Wed, 17 Aug 2016 21:06:42 +0300 Message-Id: <83tweje0ct.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> (message from Paul Eggert on Wed, 17 Aug 2016 10:41:52 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: johnw@gnu.org, 24206@debbugs.gnu.org > From: Paul Eggert > Date: Wed, 17 Aug 2016 10:41:52 -0700 > > > - if (multibyte) > > - { > > - int len; > > - > > - STRING_CHAR_AND_LENGTH (strp, len); > > - if (len == 1) > > - *bufp = *strp; > > - else > > - memcpy (bufp, strp, len); > > - strp += len; > > - bufp += len; > > - nchars++; > > - } > > - else > > - *bufp++ = *strp++, nchars++; > > + /* Fall through to copy one char. */ > > Some change in this area was needed because the 'multibyte' flag went away. Only because you removed it. You could have left it alone, it would have worked even after the call to Fstring_make_multibyte, for the reasons I explained earlier: the result is not necessarily a multibyte string. > While doing that, I noticed that discarding all the code made this > somewhat-tricky area easier to follow. It's not merely that the old multibyte > code is unnecessarily long and hard to follow; it's that the old code does > something fairly-typical (copy a multibyte character) in an unusual way, which > is too likely to lead the reader into incorrectly thinking that there is > something actually unusual about the action. Misleading code like this really > cries out to be rewritten, particularly if the rewriting simply ionvolves > deleting it. I don't see why it is tricky, we do that in Emacs in other places. It's pretty boilerplate. > In short, the main motivation here was clarity, not merely style. That's exactly my point: it's more clear for you, but that alone is not reason good enough to make such changes in code that worked for many years. > (I hope I don't have to go into such details to defend every code change I > install! I'm finding it difficult-enough now to find time to improve Emacs.) I could simply revert your commit, it would have saved us both quite some time. Would you prefer that? > This one is not merely a style change. The old code matched \[ even if not > followed by ], the new code does not. This is an intended improvement. I plead > guilty to the charge that the new code is also shorter and clearer. Then why is there nothing about this in the log entry? > > - /* Note the Fwhere_is_internal can GC, so we have to take > > - relocation of string contents into account. */ > > - strp = SDATA (string) + idx; > > - start = SDATA (string) + start_idx; > > + /* Take relocation of string contents into account. */ > > + strp = SDATA (str) + idx; > > + start = strp - length_byte - 1; > > The new comment came because I copied it from somewhere else in the interest of > consistency. You're right, I omitted some commentary in the process. I thought > the omitted info obvious, but evidently you think otherwise. It's obviously no > big deal, so I brought it back by applying the attached patch to master. Thanks. > > Unlike at that time, I now think > > this was a bad move, because Emacs 25.1 will have the disabled > > conversion in it, so by the time we release the code in master, it > > would be an incompatible change. > > If that's the main objection, then let's change Emacs 25 to behave similarly. > This would be a simple and conservative change to Emacs 25. But even if you > don't want to change Emacs 25 (and thus you want to Emacs 25 to continue to be > less-compatible with Emacs 24), it's OK to change this minor detail back to the > way Emacs 24 does things. Alas, it's too late to change Emacs 25.1. > > (I also don't see how it is related to the > > original bug report, which AFAIU was about (message "`foo'") that > > still behaves as in the bug report.) > > Alan wanted something that he could put into his .emacs that would cause > (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming > PERCENTLESS lacks %. This was the point of his original bug report; his original > example involved ` and ' but he wanted the same behavior for ‘ and ’, a point > that became clear during the discussion of Bug#23425. Then why not for '..' as well? How is that different from ‘..’? What we have now on master is inconsistent and cannot be defended, IMO. > > (Mumbles something about Emacs maintenance being a lonely business...) > > But we have all these nice conversations! :-) Oh yes, what a relief! From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 16:52:52 2016 Received: (at 24206) by debbugs.gnu.org; 17 Aug 2016 20:52:52 +0000 Received: from localhost ([127.0.0.1]:60562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba7pT-0003B3-PW for submit@debbugs.gnu.org; Wed, 17 Aug 2016 16:52:51 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43681) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba7pS-0003An-4B for 24206@debbugs.gnu.org; Wed, 17 Aug 2016 16:52:50 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 2E073161325; Wed, 17 Aug 2016 13:52:44 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id wkM5-QOwxQlN; Wed, 17 Aug 2016 13:52:43 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 52CCF161326; Wed, 17 Aug 2016 13:52:43 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7jyeOHRqlBos; Wed, 17 Aug 2016 13:52:43 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 344C9161325; Wed, 17 Aug 2016 13:52:43 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> <83tweje0ct.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Wed, 17 Aug 2016 13:52:42 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83tweje0ct.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Eli Zaretskii wrote: >> Some change in this area was needed because the 'multibyte' flag went = away. > > Only because you removed it. You could have left it alone, it would > have worked Sure, but it was no longer necessary, as the code no longer needs to reco= rd=20 whether the original string was multibyte. Keeping an unnecessary variabl= e=20 around would make the code harder to read. > even after the call to Fstring_make_multibyte, for the > reasons I explained earlier: the result is not necessarily a multibyte > string. That doesn't affect the fact that the 'multibyte' variable is no longer=20 necessary. In emacs-25, 'multibyte' does not mean that the result is a mu= ltibyte=20 string; it means that the input is a multibyte string. There is no need t= o keep=20 track of that in master now, and it simplifies the code to not worry abou= t it. >> While doing that, I noticed that discarding all the code made this >> somewhat-tricky area easier to follow. It's not merely that the old mu= ltibyte >> code is unnecessarily long and hard to follow; it's that the old code = does >> something fairly-typical (copy a multibyte character) in an unusual wa= y, which >> is too likely to lead the reader into incorrectly thinking that there = is >> something actually unusual about the action. > I don't see why it is tricky, we do that in Emacs in other places. Really? A call to STRING_CHAR_AND_LENGTH followed by a length test follow= ed by a=20 call to memcpy for length > 1 and a special case inline copy for length =3D= =3D 1?=20 When copying multibyte data? Where else does Emacs do that? > it's more clear for you Replacing 14 unusually and unnecessarily tricky lines with zero lines sho= uld=20 help clarify things for most readers. > I could simply revert your commit, it would have saved us both quite > some time. Would you prefer that? It'd be even simpler to leave things alone, as the master code works bett= er than=20 emacs-25 does. (Merely reverting the commit wouldn't suffice, of course.) >> This one is not merely a style change. The old code matched \[ even if= not >> followed by ], the new code does not. This is an intended improvement.= I plead >> guilty to the charge that the new code is also shorter and clearer. > > Then why is there nothing about this in the log entry? I didn't think such detail was necessary, since it was a change to undocu= mented=20 behavior. If you think it worth mentioning, I can add a NEWS item. >> Alan wanted something that he could put into his .emacs that would cau= se >> (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming >> PERCENTLESS lacks %. This was the point of his original bug report; hi= s original >> example involved ` and ' but he wanted the same behavior for =E2=80=98= and =E2=80=99, a point >> that became clear during the discussion of Bug#23425. > > Then why not for '..' as well? How is that different from =E2=80=98..=E2= =80=99? It's not different. Alan wanted the same behavior for '..', and he got th= at too. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 10:30:53 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 14:30:53 +0000 Received: from localhost ([127.0.0.1]:33503 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baOLN-0003wC-23 for submit@debbugs.gnu.org; Thu, 18 Aug 2016 10:30:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baOLL-0003w0-47 for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 10:30:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1baOLE-0007H5-TC for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 10:30:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1baOLA-0007GP-GK; Thu, 18 Aug 2016 10:30:40 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2377 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1baOL9-0002We-Kq; Thu, 18 Aug 2016 10:30:40 -0400 Date: Thu, 18 Aug 2016 17:30:44 +0300 Message-Id: <83lgzudu97.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: (message from Paul Eggert on Wed, 17 Aug 2016 13:52:42 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> <83tweje0ct.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: johnw@gnu.org, 24206@debbugs.gnu.org > From: Paul Eggert > Date: Wed, 17 Aug 2016 13:52:42 -0700 > > Some change in this area was needed because the 'multibyte' flag went away. > > Only because you removed it. You could have left it alone, it would > have worked > > Sure, but it was no longer necessary, as the code no longer needs to record whether the original string was multibyte. Keeping an unnecessary variable around would make the code harder to read. The code that got removed was the easy and intuitive part: it dealt with processing single-byte strings one byte at a time. The hard-to-read part of the code is still with us. We have less 'if' conditionals, but that's hardly the main complication in the original code. > even after the call to Fstring_make_multibyte, for the > reasons I explained earlier: the result is not necessarily a multibyte > string. > > That doesn't affect the fact that the 'multibyte' variable is no longer necessary. In emacs-25, 'multibyte' does not mean that the result is a multibyte string You are missing my point: the code on master now processes a string, that could be either unibyte or multibyte, using only multibyte methods. With the flag in place, each kind of string would have used the method that's natural with it. The way things are now, one has to think hard about what the code does to convince oneself it's valid. > I don't see why it is tricky, we do that in Emacs in other places. > > Really? A call to STRING_CHAR_AND_LENGTH followed by a length test followed by a call to memcpy for length > 1 and a special case inline copy for length == 1? When copying multibyte data? Where else does Emacs do that? What exactly confuses you in that snippet? The call to STRING_CHAR_AND_LENGTH itself? we have that in umpteen other places. The single-byte optimization of not calling memcpy? That's standard practice in C. If you need an example for using STRING_CHAR_AND_LENGTH while copying text, you can find it in copy_text, for example. I really don't understand what's your problem with that code. > it's more clear for you > > Replacing 14 unusually and unnecessarily tricky lines with zero lines should help clarify things for most readers. They are not unusually tricky at all. And you replaced it with a fall-through, which is harder to follow and easier to introduce subtle bugs. > I could simply revert your commit, it would have saved us both quite > some time. Would you prefer that? > > It'd be even simpler to leave things alone, as the master code works better than emacs-25 does. Sorry, leaving alone changes that I find questionable or gratuitous is not in the job description. > Alan wanted something that he could put into his .emacs that would cause > (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming > PERCENTLESS lacks %. This was the point of his original bug report; his original > example involved ` and ' but he wanted the same behavior for ‘ and ’, a point > that became clear during the discussion of Bug#23425. > > Then why not for '..' as well? How is that different from ‘..’? > > It's not different. Alan wanted the same behavior for '..', and he got that too. But the behavior is not the same: (let ((text-quoting-style 'curve)) (substitute-command-keys "'foo'")) => ’foo’ but (let ((text-quoting-style 'grave)) (substitute-command-keys "‘foo’")) => ‘foo’ I would have expected the first example to yield 'foo', i.e. leave the apostrophes alone, as we do with curved quotes in the second example. What we have now is inconsistent, and its rationale evades me. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 12:33:23 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 16:33:24 +0000 Received: from localhost ([127.0.0.1]:33575 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baQFv-0006tc-Ne for submit@debbugs.gnu.org; Thu, 18 Aug 2016 12:33:23 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:46984) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baQFt-0006tU-V0 for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 12:33:22 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 6EDBD2037B; Thu, 18 Aug 2016 12:33:21 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Thu, 18 Aug 2016 12:33:21 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=rdl5uTiTZlCFHawQaP8fTrz18zY=; b=W+JrA yQOGiyQFNbHse17dwGY88U3AVFtmfJcauLb09Ph+Fj8SW0fduTFm2BkQOOgJuAZo VhgU4BBVtOGHMddrNXALO94TUjqcj/KFf74xsj71fluihy6tLMXxz99RCoMQy9a9 Zfg9vFTsPJVSXZp0jjBhU95DgSvvo+IQBUnoIw= X-Sasl-enc: 1glDUIoq8Eplsx3+XAQr2LPELkjAgLt7RSk5pSJt4Yaa 1471538000 Received: from strawberry (163-172-5-218.rev.poneytelecom.eu [163.172.5.218]) by mail.messagingengine.com (Postfix) with ESMTPA id B764CF2986; Thu, 18 Aug 2016 12:33:19 -0400 (EDT) From: Nicolas Petton To: John Wiegley , Eli Zaretskii Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: Date: Thu, 18 Aug 2016 18:30:32 +0200 Message-ID: <87lgzuujiv.fsf@petton.fr> References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Emacs/25.1.50.1 (x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: p.stephani2@gmail.com, Paul Eggert , schwab@linux-m68k.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain John Wiegley writes: >> The emacs-25 branch is ready for another RC, from my POV. > > Good, can you cut one for us, Nicolas? I'm at the GNU Hackers Meeting and I haven't followed the latest development regarding this issue, are we ready for another pretest? Cheers, Nico --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: GPGTools - http://gpgtools.org iQEcBAEBCAAGBQJXteNLAAoJECM1h6R8IHkQrkcIALdmlWdByif4coGZXzEyfyqb nDoKbNJ9Y2G3zYjaa08npt1hmdyYa53kR16qIoOtzcswV6wdzAqEhD+O/b59aXuF KRsPtM211vKUCIyOk6071NRFBe1wX6lxWu4x2ic/JH9kjHeXOHu92ZRy0xRohJtW uZpZZCV4vksTqWsA/QMiyZTjs5M6duOQbMBABefxHwoRi98M5E50haZd5gtgMcpw SQ42B5Ua0eINWvYSXyPm9h2K3rSoTfsEmroo7aU0t4YbQ+BgU5G29ceS7UURuBF8 HY3v/DatxMof6pQSXIA3Ln960ga9G9bSBRSinFF/WVjGxIhFGkCJzj3Uqs7sv+8= =QaW7 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 12:43:52 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 16:43:53 +0000 Received: from localhost ([127.0.0.1]:33579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baQQ4-00078N-Nd for submit@debbugs.gnu.org; Thu, 18 Aug 2016 12:43:52 -0400 Received: from mail-pf0-f178.google.com ([209.85.192.178]:32768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baQQ2-000789-2o for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 12:43:50 -0400 Received: by mail-pf0-f178.google.com with SMTP id y134so8047298pfg.0 for <24206@debbugs.gnu.org>; Thu, 18 Aug 2016 09:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mime-version; bh=um3AXYJl8sNJih0Ixd1VG1I1WsKkv/oFukUO2LY2IFA=; b=WbiXo5/MsUrBe43KF0E7NhwMkMLDnFp4N//jdjJGoWvMzzEWgOoMA8yM1cJtfP8Tta wE9x2U5tI1wKwHkJCg0KFYsvyMFsXt36u12lCrRR5i9+cnNivll8mQRf1I191NzZtUZ/ nLBcg3v7hWqBPM/0e8fELY6AiVerAfLBXqQ7+8cYRMbaLc9ozESq67nz/LHjfOHusFwY tUcUYKF9TWAC/Tw+VNdfNDxSNmwkvQcbGJFxjm3QzwB8qlZpv0ijSFRHUQ/nmTmE3bW7 Ykb1Ew2MXIoOV3XMdgkv72hWZv4HpGAd+qcTu0LiZBJElca6+nD5/FeUzY9zVvRmFAUM xDDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mime-version; bh=um3AXYJl8sNJih0Ixd1VG1I1WsKkv/oFukUO2LY2IFA=; b=VotLCEqbNmAFOkHeV0VemM6I+cenCFQDmqtqw4/eFCU9pjUxHxFif91RjlFprxGaPo Ms5c3C/fvljX5tSfZnz5DQIs8emRm3Q2R0wEK+1oJlLP2+pAq3wxQ5XTKlP8IjRXPbw2 OlJcl4UdI3gSW7IqMtSqY1WFgKUPwa+35Y3NGxqNz4biW9jPn9+QlIztc4CUvuRjsTgm 7pblIrt0XavtpiK5CdnFFqIxLp+MM5S8YNTam4DwKaYTvDA36pgl3xGavYluqZ4yG5/I JXww3oMJLfpZ+2ZXy9C0nGR31OfgHxA9dWIFPBoTYi9CGMSlqh/N8pB+uo+czFGJk94Q ZcTw== X-Gm-Message-State: AEkoouvlGvBdKniUkZSgEY5yfyl6EdBtBVTf+xUmDQRDlM10X1f/9Qex8juTHrJbJXo7+Q== X-Received: by 10.98.204.216 with SMTP id j85mr5612893pfk.147.1471538624420; Thu, 18 Aug 2016 09:43:44 -0700 (PDT) Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id t80sm71417pfj.38.2016.08.18.09.43.42 (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 18 Aug 2016 09:43:42 -0700 (PDT) From: John Wiegley X-Google-Original-From: "John Wiegley" Received: by Vulcan.local (Postfix, from userid 501) id 72F2D201516E; Thu, 18 Aug 2016 09:43:41 -0700 (PDT) To: Nicolas Petton Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault In-Reply-To: <87lgzuujiv.fsf@petton.fr> (Nicolas Petton's message of "Thu, 18 Aug 2016 18:30:32 +0200") Date: Thu, 18 Aug 2016 09:41:57 -0700 Message-ID: References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <87lgzuujiv.fsf@petton.fr> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.95 (darwin) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 24206 Cc: Eli Zaretskii , Paul Eggert , schwab@linux-m68k.org, p.stephani2@gmail.com, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> Nicolas Petton writes: > I'm at the GNU Hackers Meeting and I haven't followed the latest developm= ent > regarding this issue, are we ready for another pretest? I had thought so, but I'll let Eli confirm again. =2D-=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGcBAEBCgAGBQJXteVVAAoJEMFE2PTxn+YwFyoMAIUFP03ilIG5a9XFFZYA3cvu bJ0p1/l7E8HTYwJz6BEJ7dWUiY2eeeoZq6mKgwzidOF6WgSok2F5TS7Umo6WHeX1 KnQxQzUr4w2AxYkZz9H4XGGP67MKVU6sWQUhUAzpVQB1wg7f/u9fQszgrz6r1545 hIoddtp4paEOhoXu8BYM/EN7SlFYUP/vH+zTDRc7ezACbir67RSRnxt1cucJvay2 yAaSafyi/mcqAZg9VYOzqLBfRcNLNe+BKhElInOSkuCAtO72W9R2LbA22bphl7m5 GPI90NEn55AvQuQWlPYThu2tUtvKIw9WHEuz8H1yi1r1qxLd+GnxKPzFQe9pvLkv 5y+7w7/S8wUKf+MtN7+Moky2mta0SZo8ZWSKigo0QpEiDJgR4JZCd1F3PrzMq4vo /xHe83jqska9KjFsgxciG2WQVlSaIvC276wtMt2DwfW1qWzdp6KhTV5D4lrbbUNn 5JRMaVxwLdmJWs8ronbMfCZwOMhy9Odo+bscqIe4MQ== =UjUU -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 13:35:54 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 17:35:54 +0000 Received: from localhost ([127.0.0.1]:33600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baREQ-0008PS-5c for submit@debbugs.gnu.org; Thu, 18 Aug 2016 13:35:54 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baREO-0008PH-Um for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 13:35:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1baREG-0005cv-Qo for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 13:35:47 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34688) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1baREG-0005cr-NK; Thu, 18 Aug 2016 13:35:44 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3313 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1baRED-0000sZ-LY; Thu, 18 Aug 2016 13:35:44 -0400 Date: Thu, 18 Aug 2016 20:35:29 +0300 Message-Id: <83h9aidlpa.fsf@gnu.org> From: Eli Zaretskii To: John Wiegley In-reply-to: (message from John Wiegley on Thu, 18 Aug 2016 09:41:57 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83eg5og4n9.fsf@gnu.org> <87lgzuujiv.fsf@petton.fr> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: nicolas@petton.fr, eggert@cs.ucla.edu, schwab@linux-m68k.org, p.stephani2@gmail.com, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > From: John Wiegley > Cc: Eli Zaretskii , Paul Eggert , schwab@linux-m68k.org, p.stephani2@gmail.com, 24206@debbugs.gnu.org > Date: Thu, 18 Aug 2016 09:41:57 -0700 > > >>>>> Nicolas Petton writes: > > > I'm at the GNU Hackers Meeting and I haven't followed the latest development > > regarding this issue, are we ready for another pretest? > > I had thought so, but I'll let Eli confirm again. Confirmed. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 14:33:51 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 18:33:51 +0000 Received: from localhost ([127.0.0.1]:33614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baS8U-0002xM-VV for submit@debbugs.gnu.org; Thu, 18 Aug 2016 14:33:51 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:57967) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baS8T-0002x9-0e for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 14:33:49 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3249C160E3C; Thu, 18 Aug 2016 11:33:42 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 3ZQ6k1wtxh84; Thu, 18 Aug 2016 11:33:41 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 31E6E160E3D; Thu, 18 Aug 2016 11:33:41 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id jQkRogaiGbrw; Thu, 18 Aug 2016 11:33:41 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 11CC0160E3C; Thu, 18 Aug 2016 11:33:41 -0700 (PDT) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault To: Eli Zaretskii References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> <83tweje0ct.fsf@gnu.org> <83lgzudu97.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <7296d150-48aa-0c39-9421-63fffa499d2e@cs.ucla.edu> Date: Thu, 18 Aug 2016 11:33:36 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <83lgzudu97.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Eli Zaretskii wrote: > The code that got removed was the easy and intuitive part: it dealt > with processing single-byte strings one byte at a time. The > hard-to-read part of the code is still with us. We have less 'if' > conditionals, but that's hardly the main complication in the original > code. Sure, but removing unnecessary easy stuff lets the reader see the hard st= uff=20 more clearly. > You are missing my point: the code on master now processes a string, > that could be either unibyte or multibyte, using only multibyte > methods. With the flag in place, each kind of string would have used > the method that's natural with it. The way things are now, one has to > think hard about what the code does to convince oneself it's valid. The way things were before it was even harder, because one had to worry n= ot only=20 about processing Emacs-encoded text, one also had to worry about processi= ng=20 unibyte text containing non-ASCII bytes. The code is simpler now, because= it=20 needs only to process Emacs-encoded text. The old code might have flown despite its problems, if all the input data= were=20 consistent (i.e., either all unibyte, or all with Emacs-encoded text). Bu= t=20 inputs need not be consistent, so the old approach simply did not work. As I take it, your principal objection to the new code is not to its inte= rnals:=20 it's that substitute-command-keys can now return a multibyte string even = when=20 all the input data is unibyte. I don't think that's a big deal, but if th= is is=20 the primary reason for our lengthy conversation, I can move things forwar= d by=20 changing the code so that it instead returns a unibyte string when all th= e input=20 data are unibyte. Would that suffice? >> I don't see why it is tricky, we do that in Emacs in other places. >> >> Really? A call to STRING_CHAR_AND_LENGTH followed by a length test fol= lowed by a call to memcpy for length > 1 and a special case inline copy f= or length =3D=3D 1? When copying multibyte data? Where else does Emacs do= that? > > What exactly confuses you in that snippet? Nothing confuses me in that snippet. I know what the snippet does, now th= at I've=20 read and understood it. It is a longwinded and unnecessarily tricky way o= f doing=20 something simple. > The call to > STRING_CHAR_AND_LENGTH itself? we have that in umpteen other places. > The single-byte optimization of not calling memcpy? That's standard > practice in C. I'm not talking about each individual line of code in that snippet. I am = talking=20 about the entire construction. A reader must look at all 14 lines to dedu= ce what=20 it does, deduce that it's unnecessarily complicated, and deduce that the=20 unnecessary complication is not a sign that something unusual is going on= . No=20 place else in Emacs has this construction. > If you need an example for using > STRING_CHAR_AND_LENGTH while copying text, you can find it in > copy_text, for example. copy_text does something quite different. When copying multibyte text, it= does a=20 single memcpy for the entire string. copy_text does not call memcpy for e= ach=20 multibyte character, and nothing in copy_text is particularly close to th= e=20 snippet in question. > you replaced it with a > fall-through, which is harder to follow and easier to introduce subtle > bugs. True, but the fall-through is clearly marked in comments. The new way is = a bit=20 more efficent (smaller code space, more likely to fit in cache); the old = way=20 duplicated character-copying code, a practice that also introduces subtle= bugs=20 -- in addition to temporarily mystifying the reader because the old code=20 duplicates were not identical (itself a sign of cruft). With all that in = mind,=20 it was reasonable to switch from the old way to the new, despite the=20 disadvantage you mention. >> Alan wanted something that he could put into his .emacs that w= ould cause >> (message PERCENTLESS) to output the string PERCENTLESS as-is, = assuming >> PERCENTLESS lacks %. This was the point of his original bug re= port; his original >> example involved ` and ' but he wanted the same behavior for =E2= =80=98 and =E2=80=99, a point >> that became clear during the discussion of Bug#23425. >> >> Then why not for '..' as well? How is that different from =E2=80=98= ..=E2=80=99? >> >> It's not different. Alan wanted the same behavior for '..', and he got= that too. > > But the behavior is not the same: I was referring to Alan's desire to treat all quotes the same (i.e., to n= ot=20 substitute for any of them), which is now supported by setting=20 text-quoting-style to grave. > (let ((text-quoting-style 'curve)) > (substitute-command-keys "'foo'")) > =3D> =E2=80=99foo=E2=80=99 > > but > > (let ((text-quoting-style 'grave)) > (substitute-command-keys "=E2=80=98foo=E2=80=99")) > =3D> =E2=80=98foo=E2=80=99 > > I would have expected the first example to yield 'foo' No, substitute-command-keys works on each grave accent and apostrophe=20 separately, without looking at the others. As I recall it's worked that w= ay and=20 has been documented that way, in both master and emacs-25, ever since the= =20 feature was installed. One could posit a "smarter" form of substitution, = which=20 leaves 'foo' alone but which translates `foo'. Although we considered tha= t=20 possibility during design, we rejected it because it is more complicated = and has=20 more problems and quirks that are a pain to document and would surprise u= sers in=20 other ways. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 14:58:50 2016 Received: (at 24206) by debbugs.gnu.org; 18 Aug 2016 18:58:50 +0000 Received: from localhost ([127.0.0.1]:33624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baSWg-0003WO-7I for submit@debbugs.gnu.org; Thu, 18 Aug 2016 14:58:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1baSWe-0003WA-SG for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 14:58:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1baSWY-0004wD-QH for 24206@debbugs.gnu.org; Thu, 18 Aug 2016 14:58:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35449) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1baSWT-0004tj-Ow; Thu, 18 Aug 2016 14:58:37 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3454 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1baSWP-000264-Tm; Thu, 18 Aug 2016 14:58:36 -0400 Date: Thu, 18 Aug 2016 21:58:25 +0300 Message-Id: <83eg5lewfi.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-reply-to: <7296d150-48aa-0c39-9421-63fffa499d2e@cs.ucla.edu> (message from Paul Eggert on Thu, 18 Aug 2016 11:33:36 -0700) Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault References: <8337m7h1dp.fsf@gnu.org> <83zioffew5.fsf@gnu.org> <83popaf1yz.fsf@gnu.org> <87bn0u3rqc.fsf@linux-m68k.org> <83mvkdg91i.fsf@gnu.org> <8b78f23f-4a4f-e568-b760-3350ca7bb8d3@cs.ucla.edu> <83d1l8g3zs.fsf@gnu.org> <4822bfeb-c507-a9ff-93bc-1d27ba93b9d7@cs.ucla.edu> <8360qzfmz3.fsf@gnu.org> <11031c1e-c784-0ba2-4b6c-4fab0cb92354@cs.ucla.edu> <83tweje0ct.fsf@gnu.org> <83lgzudu97.fsf@gnu.org> <7296d150-48aa-0c39-9421-63fffa499d2e@cs.ucla.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-Debbugs-Envelope-To: 24206 Cc: johnw@gnu.org, 24206@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) > Cc: johnw@gnu.org, 24206@debbugs.gnu.org > From: Paul Eggert > Date: Thu, 18 Aug 2016 11:33:36 -0700 > > As I take it, your principal objection to the new code is not to its internals: > it's that substitute-command-keys can now return a multibyte string even when > all the input data is unibyte. I don't think that's a big deal, but if this is > the primary reason for our lengthy conversation, I can move things forward by > changing the code so that it instead returns a unibyte string when all the input > data are unibyte. Would that suffice? No, that's not the primary reason. The primary reason is that I think we should avoid changing code that doesn't necessarily need any changes. From unknown Tue Aug 19 14:23:44 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 16 Sep 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator