From: Mattias EngdegÄrd Date: Tue, 18 Jul 2023 13:42:55 +0000 (+0200) Subject: Convert NUL-containing NSString objects to Lisp strings correctly X-Git-Tag: emacs-29.1-rc1~23 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f063f79a4933f21dc72c6a24b60f98197543d3de;p=emacs.git Convert NUL-containing NSString objects to Lisp strings correctly This cures the inability to paste text containing NUL from other applications on macOS, introduced by mistake in 7e3c2b553f (bug#64697). * src/nsfns.m ([NSString lispString]): Use make_string instead of build_string which relies on NUL-termination. --- diff --git a/src/nsfns.m b/src/nsfns.m index 8804a7df7cf..5ae2cc77bb2 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -3829,7 +3829,9 @@ all_nonzero_ascii (unsigned char *str, ptrdiff_t n) /* Make a Lisp string from an NSString. */ - (Lisp_Object)lispString { - return build_string ([self UTF8String]); + // make_string behaves predictably and correctly with UTF-8 input. + return make_string ([self UTF8String], + [self lengthOfBytesUsingEncoding: NSUTF8StringEncoding]); } @end