aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYuuki Harano2018-05-12 23:49:00 +0900
committerJeff Walsh2020-11-22 14:46:55 +1100
commita9c8a56ba1fdbb6645ddebdabbb826993b6dca23 (patch)
tree96b9c0c3a323d64a8c997580486eaa0a4233c3ae /src
parent045e25278bdec3e08c3c069a537e4ae7a66de262 (diff)
downloademacs-a9c8a56ba1fdbb6645ddebdabbb826993b6dca23.tar.gz
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)
5846 struct pgtk_display_info *dpyinfo; 5846 struct pgtk_display_info *dpyinfo;
5847 static int x_initialized = 0; 5847 static int x_initialized = 0;
5848 static unsigned x_display_id = 0; 5848 static unsigned x_display_id = 0;
5849 static char *initial_display = NULL;
5850 char *dpy_name;
5851 Lisp_Object lisp_dpy_name = Qnil;
5849 5852
5850 block_input (); 5853 block_input ();
5851 5854
@@ -5861,6 +5864,11 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5861 ++x_initialized; 5864 ++x_initialized;
5862 } 5865 }
5863 5866
5867 dpy_name = SSDATA (display_name);
5868 if (strlen(dpy_name) == 0 && initial_display != NULL)
5869 dpy_name = initial_display;
5870 lisp_dpy_name = build_string (dpy_name);
5871
5864 { 5872 {
5865#define NUM_ARGV 10 5873#define NUM_ARGV 10
5866 int argc; 5874 int argc;
@@ -5870,7 +5878,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5870 5878
5871 if (x_initialized++ > 1) 5879 if (x_initialized++ > 1)
5872 { 5880 {
5873 xg_display_open (SSDATA (display_name), &dpy); 5881 xg_display_open (dpy_name, &dpy);
5874 } 5882 }
5875 else 5883 else
5876 { 5884 {
@@ -5883,10 +5891,10 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5883 argc = 0; 5891 argc = 0;
5884 argv[argc++] = initial_argv[0]; 5892 argv[argc++] = initial_argv[0];
5885 5893
5886 if (strlen(SSDATA(display_name)) != 0) 5894 if (strlen(dpy_name) != 0)
5887 { 5895 {
5888 argv[argc++] = display_opt; 5896 argv[argc++] = display_opt;
5889 argv[argc++] = SSDATA (display_name); 5897 argv[argc++] = dpy_name;
5890 } 5898 }
5891 5899
5892 argv[argc++] = name_opt; 5900 argv[argc++] = name_opt;
@@ -5910,6 +5918,10 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5910 xg_initialize (); 5918 xg_initialize ();
5911 5919
5912 dpy = DEFAULT_GDK_DISPLAY (); 5920 dpy = DEFAULT_GDK_DISPLAY ();
5921
5922 initial_display = g_strdup (gdk_display_get_name(dpy));
5923 dpy_name = initial_display;
5924 lisp_dpy_name = build_string(dpy_name);
5913 } 5925 }
5914 } 5926 }
5915 5927
@@ -5929,8 +5941,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5929 struct pgtk_display_info *share; 5941 struct pgtk_display_info *share;
5930 5942
5931 for (share = x_display_list; share; share = share->next) 5943 for (share = x_display_list; share; share = share->next)
5932 if (same_x_server (SSDATA (XCAR (share->name_list_element)), 5944 if (same_x_server (SSDATA (XCAR (share->name_list_element)), dpy_name))
5933 SSDATA (display_name)))
5934 break; 5945 break;
5935 if (share) 5946 if (share)
5936 terminal->kboard = share->terminal->kboard; 5947 terminal->kboard = share->terminal->kboard;
@@ -5951,7 +5962,7 @@ pgtk_term_init (Lisp_Object display_name, char *resource_name)
5951 dpyinfo->next = x_display_list; 5962 dpyinfo->next = x_display_list;
5952 x_display_list = dpyinfo; 5963 x_display_list = dpyinfo;
5953 5964
5954 dpyinfo->name_list_element = Fcons (display_name, Qnil); 5965 dpyinfo->name_list_element = Fcons (lisp_dpy_name, Qnil);
5955 dpyinfo->gdpy = dpy; 5966 dpyinfo->gdpy = dpy;
5956 5967
5957 /* https://lists.gnu.org/r/emacs-devel/2015-11/msg00194.html */ 5968 /* 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)
5959 dpyinfo->smallest_char_width = 1; 5970 dpyinfo->smallest_char_width = 1;
5960 5971
5961 /* Set the name of the terminal. */ 5972 /* Set the name of the terminal. */
5962 terminal->name = xlispstrdup (display_name); 5973 terminal->name = xlispstrdup (lisp_dpy_name);
5963 5974
5964 Lisp_Object system_name = Fsystem_name (); 5975 Lisp_Object system_name = Fsystem_name ();
5965 ptrdiff_t nbytes; 5976 ptrdiff_t nbytes;