Use new NSString lisp methods

* src/nsfont.m (ns_otf_to_script):
(ns_registry_to_script):
(ns_get_req_script): Use NSString conversion methods.
* src/nsimage.m ([EmacsImage allocInitFromFile:]): Use NSString
conversion methods.
* src/nsmenu.m (ns_menu_show): Use NSString conversion methods.
* src/nsselect.m (symbol_to_nsstring):
(ns_string_to_pasteboard_internal): Use NSString conversion methods.
* src/nsterm.m (ns_term_init):
([EmacsView initFrameFromEmacs:]): Use NSString conversion methods.
* src/nsxwidget.m (nsxwidget_webkit_uri):
(nsxwidget_webkit_title):
(js_to_lisp): Use NSString conversion methods.
(build_string_with_nsstr): Functionality replaced by NSString
extensions.
This commit is contained in:
Alan Third 2020-12-22 23:28:25 +00:00
parent 6af31fd71f
commit 747a923b9a
6 changed files with 16 additions and 36 deletions

View file

@ -329,7 +329,7 @@ seems to be limited for now (2009/05) to ja, zh, and ko. */
{ {
Lisp_Object script = assq_no_quit (XCAR (otf), Votf_script_alist); Lisp_Object script = assq_no_quit (XCAR (otf), Votf_script_alist);
return CONSP (script) return CONSP (script)
? [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (XCDR ((script))))] ? [NSString stringWithLispString: SYMBOL_NAME (XCDR ((script)))]
: @""; : @"";
} }
@ -345,7 +345,7 @@ seems to be limited for now (2009/05) to ja, zh, and ko. */
if (!strncmp (SSDATA (r), reg, SBYTES (r))) if (!strncmp (SSDATA (r), reg, SBYTES (r)))
{ {
script = XCDR (XCAR (rts)); script = XCDR (XCAR (rts));
return [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (script))]; return [NSString stringWithLispString: SYMBOL_NAME (script)];
} }
rts = XCDR (rts); rts = XCDR (rts);
} }
@ -370,8 +370,7 @@ seems to be limited for now (2009/05) to ja, zh, and ko. */
{ {
Lisp_Object key = XCAR (tmp), val = XCDR (tmp); Lisp_Object key = XCAR (tmp), val = XCDR (tmp);
if (EQ (key, QCscript) && SYMBOLP (val)) if (EQ (key, QCscript) && SYMBOLP (val))
return [NSString stringWithUTF8String: return [NSString stringWithLispString: SYMBOL_NAME (val)];
SSDATA (SYMBOL_NAME (val))];
if (EQ (key, QClang) && SYMBOLP (val)) if (EQ (key, QClang) && SYMBOLP (val))
return ns_lang_to_script (val); return ns_lang_to_script (val);
if (EQ (key, QCotf) && CONSP (val) && SYMBOLP (XCAR (val))) if (EQ (key, QCotf) && CONSP (val) && SYMBOLP (XCAR (val)))

View file

@ -262,7 +262,7 @@ + (instancetype)allocInitFromFile: (Lisp_Object)file
found = ENCODE_FILE (found); found = ENCODE_FILE (found);
image = [[EmacsImage alloc] initByReferencingFile: image = [[EmacsImage alloc] initByReferencingFile:
[NSString stringWithUTF8String: SSDATA (found)]]; [NSString stringWithLispString: found]];
image->bmRep = nil; image->bmRep = nil;
#ifdef NS_IMPL_COCOA #ifdef NS_IMPL_COCOA
@ -278,7 +278,7 @@ + (instancetype)allocInitFromFile: (Lisp_Object)file
[image setSize: NSMakeSize([imgRep pixelsWide], [imgRep pixelsHigh])]; [image setSize: NSMakeSize([imgRep pixelsWide], [imgRep pixelsHigh])];
[image setName: [NSString stringWithUTF8String: SSDATA (file)]]; [image setName: [NSString stringWithLispString: file]];
return image; return image;
} }

View file

@ -970,7 +970,7 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
} }
pmenu = [[EmacsMenu alloc] initWithTitle: pmenu = [[EmacsMenu alloc] initWithTitle:
[NSString stringWithUTF8String: SSDATA (title)]]; [NSString stringWithLispString: title]];
[pmenu fillWithWidgetValue: first_wv->contents]; [pmenu fillWithWidgetValue: first_wv->contents];
free_menubar_widget_value_tree (first_wv); free_menubar_widget_value_tree (first_wv);
unbind_to (specpdl_count, Qnil); unbind_to (specpdl_count, Qnil);

View file

@ -58,7 +58,7 @@ Updated by Christian Limpach (chris@nice.ch)
if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; if (EQ (sym, QPRIMARY)) return NXPrimaryPboard;
if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; if (EQ (sym, QSECONDARY)) return NXSecondaryPboard;
if (EQ (sym, QTEXT)) return NSPasteboardTypeString; if (EQ (sym, QTEXT)) return NSPasteboardTypeString;
return [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (sym))]; return [NSString stringWithLispString: SYMBOL_NAME (sym)];
} }
static NSPasteboard * static NSPasteboard *
@ -170,17 +170,12 @@ Updated by Christian Limpach (chris@nice.ch)
} }
else else
{ {
char *utfStr;
NSString *type, *nsStr; NSString *type, *nsStr;
NSEnumerator *tenum; NSEnumerator *tenum;
CHECK_STRING (str); CHECK_STRING (str);
utfStr = SSDATA (str); nsStr = [NSString stringWithLispString: str];
nsStr = [[NSString alloc] initWithBytesNoCopy: utfStr
length: SBYTES (str)
encoding: NSUTF8StringEncoding
freeWhenDone: NO];
// FIXME: Why those 2 different code paths? // FIXME: Why those 2 different code paths?
if (gtype == nil) if (gtype == nil)
{ {
@ -196,7 +191,6 @@ Updated by Christian Limpach (chris@nice.ch)
eassert (gtype == NSPasteboardTypeString); eassert (gtype == NSPasteboardTypeString);
[pb setString: nsStr forType: gtype]; [pb setString: nsStr forType: gtype];
} }
[nsStr release];
ns_store_pb_change_count (pb); ns_store_pb_change_count (pb);
} }
} }

View file

@ -5541,9 +5541,8 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes.
/* There are 752 colors defined in rgb.txt. */ /* There are 752 colors defined in rgb.txt. */
if ( cl == nil || [[cl allKeys] count] < 752) if ( cl == nil || [[cl allKeys] count] < 752)
{ {
Lisp_Object color_file, color_map, color; Lisp_Object color_file, color_map, color, name;
unsigned long c; unsigned long c;
char *name;
color_file = Fexpand_file_name (build_string ("rgb.txt"), color_file = Fexpand_file_name (build_string ("rgb.txt"),
Fsymbol_value (intern ("data-directory"))); Fsymbol_value (intern ("data-directory")));
@ -5556,14 +5555,14 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes.
for ( ; CONSP (color_map); color_map = XCDR (color_map)) for ( ; CONSP (color_map); color_map = XCDR (color_map))
{ {
color = XCAR (color_map); color = XCAR (color_map);
name = SSDATA (XCAR (color)); name = XCAR (color);
c = XFIXNUM (XCDR (color)); c = XFIXNUM (XCDR (color));
[cl setColor: [cl setColor:
[NSColor colorForEmacsRed: RED_FROM_ULONG (c) / 255.0 [NSColor colorForEmacsRed: RED_FROM_ULONG (c) / 255.0
green: GREEN_FROM_ULONG (c) / 255.0 green: GREEN_FROM_ULONG (c) / 255.0
blue: BLUE_FROM_ULONG (c) / 255.0 blue: BLUE_FROM_ULONG (c) / 255.0
alpha: 1.0] alpha: 1.0]
forKey: [NSString stringWithUTF8String: name]]; forKey: [NSString stringWithLispString: name]];
} }
/* FIXME: Report any errors writing the color file below. */ /* FIXME: Report any errors writing the color file below. */
@ -7619,8 +7618,7 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
[self registerForDraggedTypes: ns_drag_types]; [self registerForDraggedTypes: ns_drag_types];
tem = f->name; tem = f->name;
name = [NSString stringWithUTF8String: name = NILP (tem) ? @"Emacs" : [NSString stringWithLispString:tem];
NILP (tem) ? "Emacs" : SSDATA (tem)];
[win setTitle: name]; [win setTitle: name];
/* toolbar support */ /* toolbar support */

View file

@ -296,8 +296,6 @@ - (void)userContentController:(WKUserContentController *)userContentController
/* Xwidget webkit commands. */ /* Xwidget webkit commands. */
static Lisp_Object build_string_with_nsstr (NSString *nsstr);
bool bool
nsxwidget_is_web_view (struct xwidget *xw) nsxwidget_is_web_view (struct xwidget *xw)
{ {
@ -309,14 +307,14 @@ - (void)userContentController:(WKUserContentController *)userContentController
nsxwidget_webkit_uri (struct xwidget *xw) nsxwidget_webkit_uri (struct xwidget *xw)
{ {
XwWebView *xwWebView = (XwWebView *) xw->xwWidget; XwWebView *xwWebView = (XwWebView *) xw->xwWidget;
return build_string_with_nsstr (xwWebView.URL.absoluteString); return [xwWebView.URL.absoluteString lispString];
} }
Lisp_Object Lisp_Object
nsxwidget_webkit_title (struct xwidget *xw) nsxwidget_webkit_title (struct xwidget *xw)
{ {
XwWebView *xwWebView = (XwWebView *) xw->xwWidget; XwWebView *xwWebView = (XwWebView *) xw->xwWidget;
return build_string_with_nsstr (xwWebView.title); return [xwWebView.title lispString];
} }
/* @Note ATS - Need application transport security in 'Info.plist' or /* @Note ATS - Need application transport security in 'Info.plist' or
@ -350,15 +348,6 @@ - (void)userContentController:(WKUserContentController *)userContentController
/* TODO: setMagnification:centeredAtPoint. */ /* TODO: setMagnification:centeredAtPoint. */
} }
/* Build lisp string */
static Lisp_Object
build_string_with_nsstr (NSString *nsstr)
{
const char *utfstr = [nsstr UTF8String];
NSUInteger bytes = [nsstr lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
return make_string (utfstr, bytes);
}
/* Recursively convert an objc native type JavaScript value to a Lisp /* Recursively convert an objc native type JavaScript value to a Lisp
value. Mostly copied from GTK xwidget 'webkit_js_to_lisp'. */ value. Mostly copied from GTK xwidget 'webkit_js_to_lisp'. */
static Lisp_Object static Lisp_Object
@ -367,7 +356,7 @@ - (void)userContentController:(WKUserContentController *)userContentController
if (value == nil || [value isKindOfClass:NSNull.class]) if (value == nil || [value isKindOfClass:NSNull.class])
return Qnil; return Qnil;
else if ([value isKindOfClass:NSString.class]) else if ([value isKindOfClass:NSString.class])
return build_string_with_nsstr ((NSString *) value); return [(NSString *) value lispString];
else if ([value isKindOfClass:NSNumber.class]) else if ([value isKindOfClass:NSNumber.class])
{ {
NSNumber *nsnum = (NSNumber *) value; NSNumber *nsnum = (NSNumber *) value;
@ -407,7 +396,7 @@ - (void)userContentController:(WKUserContentController *)userContentController
{ {
NSString *prop_key = (NSString *) [keys objectAtIndex:i]; NSString *prop_key = (NSString *) [keys objectAtIndex:i];
id prop_value = [nsdict valueForKey:prop_key]; id prop_value = [nsdict valueForKey:prop_key];
p->contents[i] = Fcons (build_string_with_nsstr (prop_key), p->contents[i] = Fcons ([prop_key lispString],
js_to_lisp (prop_value)); js_to_lisp (prop_value));
} }
XSETVECTOR (obj, p); XSETVECTOR (obj, p);