summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYuuki Harano <masm+github@masm11.me>2018-05-12 23:49:00 +0900
committerJeff Walsh <fejfighter@gmail.com>2020-11-22 14:46:55 +1100
commita9c8a56ba1fdbb6645ddebdabbb826993b6dca23 (patch)
tree96b9c0c3a323d64a8c997580486eaa0a4233c3ae /src
parent045e25278bdec3e08c3c069a537e4ae7a66de262 (diff)
downloademacs-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.c25
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;