diff options
author | Yuuki Harano <masm+github@masm11.me> | 2018-05-12 23:49:00 +0900 |
---|---|---|
committer | Jeff Walsh <fejfighter@gmail.com> | 2020-11-22 14:46:55 +1100 |
commit | a9c8a56ba1fdbb6645ddebdabbb826993b6dca23 (patch) | |
tree | 96b9c0c3a323d64a8c997580486eaa0a4233c3ae /src | |
parent | 045e25278bdec3e08c3c069a537e4ae7a66de262 (diff) | |
download | emacs-a9c8a56ba1fdbb6645ddebdabbb826993b6dca23.tar.gz emacs-a9c8a56ba1fdbb6645ddebdabbb826993b6dca23.tar.bz2 emacs-a9c8a56ba1fdbb6645ddebdabbb826993b6dca23.zip |
Fix xdg-open handling
* ../src/pgtkterm.c (pgtk_term_init, NUM_ARGV, pgtk_term_init):
* ../lisp/net/browse-url.el (browse-url):
xdg-open できなかったのを修正。
Diffstat (limited to 'src')
-rw-r--r-- | src/pgtkterm.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 4f2c4542372..d84e3b1ae54 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5846,6 +5846,9 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) struct pgtk_display_info *dpyinfo; static int x_initialized = 0; static unsigned x_display_id = 0; + static char *initial_display = NULL; + char *dpy_name; + Lisp_Object lisp_dpy_name = Qnil; block_input (); @@ -5861,6 +5864,11 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) ++x_initialized; } + dpy_name = SSDATA (display_name); + if (strlen(dpy_name) == 0 && initial_display != NULL) + dpy_name = initial_display; + lisp_dpy_name = build_string (dpy_name); + { #define NUM_ARGV 10 int argc; @@ -5870,7 +5878,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) if (x_initialized++ > 1) { - xg_display_open (SSDATA (display_name), &dpy); + xg_display_open (dpy_name, &dpy); } else { @@ -5883,10 +5891,10 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) argc = 0; argv[argc++] = initial_argv[0]; - if (strlen(SSDATA(display_name)) != 0) + if (strlen(dpy_name) != 0) { argv[argc++] = display_opt; - argv[argc++] = SSDATA (display_name); + argv[argc++] = dpy_name; } argv[argc++] = name_opt; @@ -5910,6 +5918,10 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) xg_initialize (); dpy = DEFAULT_GDK_DISPLAY (); + + initial_display = g_strdup (gdk_display_get_name(dpy)); + dpy_name = initial_display; + lisp_dpy_name = build_string(dpy_name); } } @@ -5929,8 +5941,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) struct pgtk_display_info *share; for (share = x_display_list; share; share = share->next) - if (same_x_server (SSDATA (XCAR (share->name_list_element)), - SSDATA (display_name))) + if (same_x_server (SSDATA (XCAR (share->name_list_element)), dpy_name)) break; if (share) terminal->kboard = share->terminal->kboard; @@ -5951,7 +5962,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) dpyinfo->next = x_display_list; x_display_list = dpyinfo; - dpyinfo->name_list_element = Fcons (display_name, Qnil); + dpyinfo->name_list_element = Fcons (lisp_dpy_name, Qnil); dpyinfo->gdpy = dpy; /* https://lists.gnu.org/r/emacs-devel/2015-11/msg00194.html */ @@ -5959,7 +5970,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name) dpyinfo->smallest_char_width = 1; /* Set the name of the terminal. */ - terminal->name = xlispstrdup (display_name); + terminal->name = xlispstrdup (lisp_dpy_name); Lisp_Object system_name = Fsystem_name (); ptrdiff_t nbytes; |