annotate src/remote.c @ 2878:8b1c451c8ff2

Additional remote commands --get-filelist:[<FOLDER>] Get list of files and class --get-filelist-recurse:[<FOLDER>] Get list of files and class recursive --get-collection:<COLLECTION> Get collection content --get-collection-list Get list of collections Changed command: --tell Print filename of current image [and Collection, if collection being displayed]
author Colin Clark <colin.clark@cclark.uk>
date Fri, 04 Jan 2019 13:44:58 +0000
parents ed4e22060177
children 288ea5f33bf7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
1 /*
2350
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
2 * Copyright (C) 2004 John Ellis
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
3 * Copyright (C) 2008 - 2016 The Geeqie Team
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
4 *
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
5 * Author: John Ellis
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
6 *
2350
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
7 * This program is free software; you can redistribute it and/or modify
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
8 * it under the terms of the GNU General Public License as published by
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
10 * (at your option) any later version.
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
11 *
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
12 * This program is distributed in the hope that it will be useful,
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
15 * GNU General Public License for more details.
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
16 *
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
17 * You should have received a copy of the GNU General Public License along
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
18 * with this program; if not, write to the Free Software Foundation, Inc.,
95507e596256 Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2290
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
20 */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
21
281
b1c2c2cf19d4 gqview.h -> main.h
Laurent Monin <geeqie@norz.org>
parents: 196
diff changeset
22 #include "main.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
23 #include "remote.h"
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
24
2502
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
25 #include "cache_maint.h"
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
26 #include "collect.h"
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
27 #include "collect-io.h"
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
28 #include "filedata.h"
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
29 #include "filefilter.h"
2418
8ff8a1df17c9 Command line option to print current filename
Colin Clark <cclark@mcb.net>
parents: 2384
diff changeset
30 #include "image.h"
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
31 #include "img-view.h"
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
32 #include "layout.h"
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
33 #include "layout_image.h"
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
34 #include "layout_util.h"
1022
d09059a8b243 Move miscellaneous functions to their own files (new misc.[ch]).
Laurent Monin <geeqie@norz.org>
parents: 1000
diff changeset
35 #include "misc.h"
2731
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
36 #include "pixbuf-renderer.h"
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
37 #include "slideshow.h"
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
38 #include "ui_fileops.h"
1467
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
39 #include "rcfile.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
40
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
41 #include <sys/socket.h>
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
42 #include <sys/un.h>
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
43 #include <signal.h>
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
44 #include <errno.h>
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
45
2639
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
46 #include "glua.h"
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
47
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
48 #define SERVER_MAX_CLIENTS 8
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
49
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
50 #define REMOTE_SERVER_BACKLOG 4
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
51
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
52
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
53 #ifndef UNIX_PATH_MAX
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
54 #define UNIX_PATH_MAX 108
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
55 #endif
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
56
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
57
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
58 static RemoteConnection *remote_client_open(const gchar *path);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
59 static gint remote_client_send(RemoteConnection *rc, const gchar *text);
2464
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
60 static void gr_raise(const gchar *text, GIOChannel *channel, gpointer data);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
61
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
62 static LayoutWindow *lw_id = NULL; /* points to the window set by the --id option */
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
63
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
64 typedef struct _RemoteClient RemoteClient;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
65 struct _RemoteClient {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
66 gint fd;
1523
e52aabe8fc7a Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents: 1484
diff changeset
67 guint channel_id; /* event source id */
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
68 RemoteConnection *rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
69 };
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
70
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
71 typedef struct _RemoteData RemoteData;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
72 struct _RemoteData {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
73 CollectionData *command_collection;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
74 };
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
75
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
76
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
77 static gboolean remote_server_client_cb(GIOChannel *source, GIOCondition condition, gpointer data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
78 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
79 RemoteClient *client = data;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
80 RemoteConnection *rc;
1299
584b947dc5ed hopefully fixed a freeze on solaris
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1291
diff changeset
81 GIOStatus status = G_IO_STATUS_NORMAL;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
82
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
83 lw_id = NULL;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
84 rc = client->rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
85
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
86 if (condition & G_IO_IN)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
87 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
88 gchar *buffer = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
89 GError *error = NULL;
1300
762f043c4ba2 fixed compiler warning
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1299
diff changeset
90 gsize termpos;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
91
1299
584b947dc5ed hopefully fixed a freeze on solaris
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1291
diff changeset
92 while ((status = g_io_channel_read_line(source, &buffer, NULL, &termpos, &error)) == G_IO_STATUS_NORMAL)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
93 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
94 if (buffer)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
95 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
96 buffer[termpos] = '\0';
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
97
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
98 if (strlen(buffer) > 0)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
99 {
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
100 if (rc->read_func) rc->read_func(rc, buffer, source, rc->read_data);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
101 g_io_channel_write_chars(source, "\n", -1, NULL, NULL); /* empty line finishes the command */
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
102 g_io_channel_flush(source, NULL);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
103 }
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
104 g_free(buffer);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
105
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
106 buffer = NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
107 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
108 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
109
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
110 if (error)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
111 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
112 log_printf("error reading socket: %s\n", error->message);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
113 g_error_free(error);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
114 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
115 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
116
1299
584b947dc5ed hopefully fixed a freeze on solaris
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1291
diff changeset
117 if (condition & G_IO_HUP || status == G_IO_STATUS_EOF || status == G_IO_STATUS_ERROR)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
118 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
119 rc->clients = g_list_remove(rc->clients, client);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
120
506
03d66738b225 Handle the newline in DEBUG_N() macro instead of adding one
Laurent Monin <geeqie@norz.org>
parents: 495
diff changeset
121 DEBUG_1("HUP detected, closing client.");
03d66738b225 Handle the newline in DEBUG_N() macro instead of adding one
Laurent Monin <geeqie@norz.org>
parents: 495
diff changeset
122 DEBUG_1("client count %d", g_list_length(rc->clients));
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
123
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
124 g_source_remove(client->channel_id);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
125 close(client->fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
126 g_free(client);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
127 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
128
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
129 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
130 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
131
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
132 static void remote_server_client_add(RemoteConnection *rc, gint fd)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
133 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
134 RemoteClient *client;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
135 GIOChannel *channel;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
136
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
137 if (g_list_length(rc->clients) > SERVER_MAX_CLIENTS)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
138 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
139 log_printf("maximum remote clients of %d exceeded, closing connection\n", SERVER_MAX_CLIENTS);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
140 close(fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
141 return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
142 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
143
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
144 client = g_new0(RemoteClient, 1);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
145 client->rc = rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
146 client->fd = fd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
147
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
148 channel = g_io_channel_unix_new(fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
149 client->channel_id = g_io_add_watch_full(channel, G_PRIORITY_DEFAULT, G_IO_IN | G_IO_HUP,
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
150 remote_server_client_cb, client, NULL);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
151 g_io_channel_unref(channel);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
152
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
153 rc->clients = g_list_append(rc->clients, client);
506
03d66738b225 Handle the newline in DEBUG_N() macro instead of adding one
Laurent Monin <geeqie@norz.org>
parents: 495
diff changeset
154 DEBUG_1("client count %d", g_list_length(rc->clients));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
155 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
156
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
157 static void remote_server_clients_close(RemoteConnection *rc)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
158 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
159 while (rc->clients)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
160 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
161 RemoteClient *client = rc->clients->data;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
162
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
163 rc->clients = g_list_remove(rc->clients, client);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
164
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
165 g_source_remove(client->channel_id);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
166 close(client->fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
167 g_free(client);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
168 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
169 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
170
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
171 static gboolean remote_server_read_cb(GIOChannel *source, GIOCondition condition, gpointer data)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
172 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
173 RemoteConnection *rc = data;
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
174 gint fd;
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
175 guint alen;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
176
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
177 fd = accept(rc->fd, NULL, &alen);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
178 if (fd == -1)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
179 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
180 log_printf("error accepting socket: %s\n", strerror(errno));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
181 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
182 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
183
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
184 remote_server_client_add(rc, fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
185
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
186 return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
187 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
188
2738
c6e5a43c87e5 Fix #162: Cannot symlink file if two geeqie instances are running
Colin Clark <colin.clark@cclark.uk>
parents: 2731
diff changeset
189 gboolean remote_server_exists(const gchar *path)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
190 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
191 RemoteConnection *rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
192
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
193 /* verify server up */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
194 rc = remote_client_open(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
195 remote_close(rc);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
196
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
197 if (rc) return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
198
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
199 /* unable to connect, remove socket file to free up address */
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
200 unlink(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
201 return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
202 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
203
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
204 static RemoteConnection *remote_server_open(const gchar *path)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
205 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
206 RemoteConnection *rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
207 struct sockaddr_un addr;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
208 gint sun_path_len;
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
209 gint fd;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
210 GIOChannel *channel;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
211
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
212 if (remote_server_exists(path))
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
213 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
214 log_printf("Address already in use: %s\n", path);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
215 return NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
216 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
217
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
218 fd = socket(PF_UNIX, SOCK_STREAM, 0);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
219 if (fd == -1) return NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
220
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
221 addr.sun_family = AF_UNIX;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
222 sun_path_len = MIN(strlen(path) + 1, UNIX_PATH_MAX);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
223 strncpy(addr.sun_path, path, sun_path_len);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
224 if (bind(fd, &addr, sizeof(addr)) == -1 ||
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
225 listen(fd, REMOTE_SERVER_BACKLOG) == -1)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
226 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
227 log_printf("error subscribing to socket: %s\n", strerror(errno));
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
228 close(fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
229 return NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
230 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
231
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
232 rc = g_new0(RemoteConnection, 1);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
233
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
234 rc->server = TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
235 rc->fd = fd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
236 rc->path = g_strdup(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
237
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
238 channel = g_io_channel_unix_new(rc->fd);
2184
9cdebd070874 Trim trailing white spaces.
Laurent Monin <zas@norz.org>
parents: 2021
diff changeset
239 g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
240
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
241 rc->channel_id = g_io_add_watch_full(channel, G_PRIORITY_DEFAULT, G_IO_IN,
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
242 remote_server_read_cb, rc, NULL);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
243 g_io_channel_unref(channel);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
244
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
245 return rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
246 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
247
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
248 static void remote_server_subscribe(RemoteConnection *rc, RemoteReadFunc *func, gpointer data)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
249 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
250 if (!rc || !rc->server) return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
251
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
252 rc->read_func = func;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
253 rc->read_data = data;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
254 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
255
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
256
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
257 static RemoteConnection *remote_client_open(const gchar *path)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
258 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
259 RemoteConnection *rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
260 struct stat st;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
261 struct sockaddr_un addr;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
262 gint sun_path_len;
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
263 gint fd;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
264
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
265 if (stat(path, &st) != 0 || !S_ISSOCK(st.st_mode)) return NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
266
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
267 fd = socket(PF_UNIX, SOCK_STREAM, 0);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
268 if (fd == -1) return NULL;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
269
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
270 addr.sun_family = AF_UNIX;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
271 sun_path_len = MIN(strlen(path) + 1, UNIX_PATH_MAX);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
272 strncpy(addr.sun_path, path, sun_path_len);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
273 if (connect(fd, &addr, sizeof(addr)) == -1)
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 371
diff changeset
274 {
506
03d66738b225 Handle the newline in DEBUG_N() macro instead of adding one
Laurent Monin <geeqie@norz.org>
parents: 495
diff changeset
275 DEBUG_1("error connecting to socket: %s", strerror(errno));
442
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 371
diff changeset
276 close(fd);
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 371
diff changeset
277 return NULL;
f698b737556b Big whitespaces cleanup:
Laurent Monin <geeqie@norz.org>
parents: 371
diff changeset
278 }
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
279
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
280 rc = g_new0(RemoteConnection, 1);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
281 rc->server = FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
282 rc->fd = fd;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
283 rc->path = g_strdup(path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
284
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
285 return rc;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
286 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
287
2714
e0251a8eba95 Merge remote-tracking branches 'github/merge-requests/581', 'github/merge-requests/576', 'github/merge-requests/574' and 'github/merge-requests/573'
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2712
diff changeset
288 static sig_atomic_t sigpipe_occurred = FALSE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
289
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
290 static void sighandler_sigpipe(gint sig)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
291 {
2714
e0251a8eba95 Merge remote-tracking branches 'github/merge-requests/581', 'github/merge-requests/576', 'github/merge-requests/574' and 'github/merge-requests/573'
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2712
diff changeset
292 sigpipe_occurred = TRUE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
293 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
294
1444
085515e22a93 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1437
diff changeset
295 static gboolean remote_client_send(RemoteConnection *rc, const gchar *text)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
296 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
297 struct sigaction new_action, old_action;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
298 gboolean ret = FALSE;
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
299 GError *error = NULL;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
300 GIOChannel *channel;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
301
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
302 if (!rc || rc->server) return FALSE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
303 if (!text) return TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
304
2714
e0251a8eba95 Merge remote-tracking branches 'github/merge-requests/581', 'github/merge-requests/576', 'github/merge-requests/574' and 'github/merge-requests/573'
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2712
diff changeset
305 sigpipe_occurred = FALSE;
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
306
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
307 new_action.sa_handler = sighandler_sigpipe;
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 507
diff changeset
308 sigemptyset(&new_action.sa_mask);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
309 new_action.sa_flags = 0;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
310
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
311 /* setup our signal handler */
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 507
diff changeset
312 sigaction(SIGPIPE, &new_action, &old_action);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
313
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
314 channel = g_io_channel_unix_new(rc->fd);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
315
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
316 g_io_channel_write_chars(channel, text, -1, NULL, &error);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
317 g_io_channel_write_chars(channel, "\n", -1, NULL, &error);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
318 g_io_channel_flush(channel, &error);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
319
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
320 if (error)
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
321 {
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
322 log_printf("error reading socket: %s\n", error->message);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
323 g_error_free(error);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
324 ret = FALSE;;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
325 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
326 else
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
327 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
328 ret = TRUE;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
329 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
330
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
331 if (ret)
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
332 {
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
333 gchar *buffer = NULL;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
334 gsize termpos;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
335 while (g_io_channel_read_line(channel, &buffer, NULL, &termpos, &error) == G_IO_STATUS_NORMAL)
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
336 {
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
337 if (buffer)
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
338 {
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
339 if (buffer[0] == '\n') /* empty line finishes the command */
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
340 {
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
341 g_free(buffer);
1556
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
342 fflush(stdout);
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
343 break;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
344 }
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
345 buffer[termpos] = '\0';
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
346 printf("%s\n", buffer);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
347 g_free(buffer);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
348 buffer = NULL;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
349 }
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
350 }
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
351
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
352 if (error)
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
353 {
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
354 log_printf("error reading socket: %s\n", error->message);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
355 g_error_free(error);
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
356 ret = FALSE;
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
357 }
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
358 }
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
359
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
360
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
361 /* restore the original signal handler */
512
0896f486ec6f Remove whitespace between function name and first parenthesis for the sake of consistency.
Laurent Monin <geeqie@norz.org>
parents: 507
diff changeset
362 sigaction(SIGPIPE, &old_action, NULL);
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
363 g_io_channel_unref(channel);
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
364 return ret;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
365 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
366
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
367 void remote_close(RemoteConnection *rc)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
368 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
369 if (!rc) return;
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
370
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
371 if (rc->server)
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
372 {
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
373 remote_server_clients_close(rc);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
374
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
375 g_source_remove(rc->channel_id);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
376 unlink(rc->path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
377 }
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
378
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
379 if (rc->read_data)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
380 g_free(rc->read_data);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
381
9
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
382 close(rc->fd);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
383
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
384 g_free(rc->path);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
385 g_free(rc);
8d9e9edd6fdf Sync to GQview 1.5.9 release.
John Ellis <johne@verizon.net>
parents:
diff changeset
386 }
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
387
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
388 /*
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
389 *-----------------------------------------------------------------------------
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
390 * remote functions
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
391 *-----------------------------------------------------------------------------
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
392 */
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
393
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
394 static void gr_image_next(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
395 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
396 layout_image_next(lw_id);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
397 }
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
398
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
399 static void gr_new_window(const gchar *text, GIOChannel *channel, gpointer data)
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
400 {
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
401 LayoutWindow *lw = NULL;
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
402
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
403 if (!layout_valid(&lw)) return;
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
404
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
405 lw_id = layout_menu_new_window(NULL, lw);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
406 }
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
407
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
408 static gboolean gr_close_window_cb()
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
409 {
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
410 if (!layout_valid(&lw_id)) return FALSE;
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
411
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
412 layout_menu_close_cb(NULL, lw_id);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
413
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
414 return FALSE;
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
415 }
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
416
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
417 static void gr_close_window(const gchar *text, GIOChannel *channel, gpointer data)
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
418 {
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
419 g_idle_add(gr_close_window_cb, NULL);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
420 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
421
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
422 static void gr_image_prev(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
423 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
424 layout_image_prev(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
425 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
426
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
427 static void gr_image_first(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
428 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
429 layout_image_first(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
430 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
431
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
432 static void gr_image_last(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
433 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
434 layout_image_last(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
435 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
436
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
437 static void gr_fullscreen_toggle(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
438 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
439 layout_image_full_screen_toggle(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
440 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
441
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
442 static void gr_fullscreen_start(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
443 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
444 layout_image_full_screen_start(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
445 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
446
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
447 static void gr_fullscreen_stop(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
448 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
449 layout_image_full_screen_stop(lw_id);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
450 }
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
451
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
452 static void gr_lw_id(const gchar *text, GIOChannel *channel, gpointer data)
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
453 {
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
454 lw_id = layout_find_by_layout_id(text);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
455 if (!lw_id)
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
456 {
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
457 log_printf("remote sent window ID that does not exist:\"%s\"\n",text);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
458 }
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
459 layout_valid(&lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
460 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
461
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
462 static void gr_slideshow_start_rec(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
463 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
464 GList *list;
1927
d1a5b8633919 always check for sidecars by readdir
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1868
diff changeset
465 FileData *dir_fd = file_data_new_dir(text);
783
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 781
diff changeset
466 list = filelist_recursive(dir_fd);
0e45ed008a1c replaced directory path with FileData* dir_fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 781
diff changeset
467 file_data_unref(dir_fd);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
468 if (!list) return;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
469 //printf("length: %d\n", g_list_length(list));
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
470 layout_image_slideshow_stop(lw_id);
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
471 layout_image_slideshow_start_from_list(lw_id, list);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
472 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
473
2502
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
474 static void gr_cache_thumb(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
475 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
476 if (!g_strcmp0(text, "clear"))
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
477 cache_maintain_home_remote(FALSE, TRUE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
478 else if (!g_strcmp0(text, "clean"))
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
479 cache_maintain_home_remote(FALSE, FALSE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
480 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
481
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
482 static void gr_cache_shared(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
483 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
484 if (!g_strcmp0(text, "clear"))
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
485 cache_manager_standard_process_remote(TRUE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
486 else if (!g_strcmp0(text, "clean"))
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
487 cache_manager_standard_process_remote(FALSE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
488 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
489
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
490 static void gr_cache_metadata(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
491 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
492 cache_maintain_home_remote(TRUE, FALSE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
493 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
494
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
495 static void gr_cache_render(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
496 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
497 cache_manager_render_remote(text, FALSE, FALSE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
498 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
499
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
500 static void gr_cache_render_recurse(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
501 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
502 cache_manager_render_remote(text, TRUE, FALSE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
503 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
504
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
505 static void gr_cache_render_standard(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
506 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
507 if(options->thumbnails.spec_standard)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
508 cache_manager_render_remote(text, FALSE, TRUE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
509 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
510
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
511 static void gr_cache_render_standard_recurse(const gchar *text, GIOChannel *channel, gpointer data)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
512 {
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
513 if(options->thumbnails.spec_standard)
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
514 cache_manager_render_remote(text, TRUE, TRUE);
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
515 }
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
516
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
517 static void gr_slideshow_toggle(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
518 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
519 layout_image_slideshow_toggle(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
520 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
521
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
522 static void gr_slideshow_start(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
523 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
524 layout_image_slideshow_start(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
525 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
526
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
527 static void gr_slideshow_stop(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
528 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
529 layout_image_slideshow_stop(lw_id);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
530 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
531
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
532 static void gr_slideshow_delay(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
533 {
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
534 gdouble t1, t2, t3, n;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
535 gint res;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
536
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
537 res = sscanf(text, "%lf:%lf:%lf", &t1, &t2, &t3);
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
538 if (res == 3)
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
539 {
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
540 n = (t1 * 3600) + (t2 * 60) + t3;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
541 if (n < SLIDESHOW_MIN_SECONDS || n > SLIDESHOW_MAX_SECONDS ||
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
542 t1 >= 24 || t2 >= 60 || t3 >= 60)
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
543 {
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
544 printf_term(TRUE, "Remote slideshow delay out of range (%.1f to %.1f)\n",
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
545 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS);
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
546 return;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
547 }
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
548 }
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
549 else if (res == 2)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
550 {
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
551 n = t1 * 60 + t2;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
552 if (n < SLIDESHOW_MIN_SECONDS || n > SLIDESHOW_MAX_SECONDS ||
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
553 t1 >= 60 || t2 >= 60)
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
554 {
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
555 printf_term(TRUE, "Remote slideshow delay out of range (%.1f to %.1f)\n",
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
556 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS);
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
557 return;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
558 }
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
559 }
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
560 else if (res == 1)
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
561 {
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
562 n = t1;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
563 if (n < SLIDESHOW_MIN_SECONDS || n > SLIDESHOW_MAX_SECONDS)
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
564 {
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
565 printf_term(TRUE, "Remote slideshow delay out of range (%.1f to %.1f)\n",
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
566 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS);
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
567 return;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
568 }
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
569 }
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
570 else
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
571 {
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
572 n = 0;
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
573 }
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
574
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
575 options->slideshow.delay = (gint)(n * 10.0 + 0.01);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
576 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
577
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
578 static void gr_tools_show(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
579 {
1416
3ba63f325b08 Use gboolean pseudo type where applicable.
Laurent Monin <geeqie@norz.org>
parents: 1367
diff changeset
580 gboolean popped;
3ba63f325b08 Use gboolean pseudo type where applicable.
Laurent Monin <geeqie@norz.org>
parents: 1367
diff changeset
581 gboolean hidden;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
582
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
583 if (layout_tools_float_get(lw_id, &popped, &hidden) && hidden)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
584 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
585 layout_tools_float_set(lw_id, popped, FALSE);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
586 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
587 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
588
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
589 static void gr_tools_hide(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
590 {
1416
3ba63f325b08 Use gboolean pseudo type where applicable.
Laurent Monin <geeqie@norz.org>
parents: 1367
diff changeset
591 gboolean popped;
3ba63f325b08 Use gboolean pseudo type where applicable.
Laurent Monin <geeqie@norz.org>
parents: 1367
diff changeset
592 gboolean hidden;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
593
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
594 if (layout_tools_float_get(lw_id, &popped, &hidden) && !hidden)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
595 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
596 layout_tools_float_set(lw_id, popped, TRUE);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
597 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
598 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
599
1444
085515e22a93 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1437
diff changeset
600 static gboolean gr_quit_idle_cb(gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
601 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
602 exit_program();
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
603
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
604 return FALSE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
605 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
606
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
607 static void gr_quit(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
608 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
609 /* schedule exit when idle, if done from within a
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
610 * remote handler remote_close will crash
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
611 */
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
612 g_idle_add(gr_quit_idle_cb, NULL);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
613 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
614
2464
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
615 static void gr_file_load_no_raise(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
616 {
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
617 gchar *filename = expand_tilde(text);
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
618
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
619 if (isfile(filename))
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
620 {
781
a47bf5b8a85b Replace hardcoded collection filename extension by a macro (GQ_COLLECTION_EXT).
Laurent Monin <geeqie@norz.org>
parents: 713
diff changeset
621 if (file_extension_match(filename, GQ_COLLECTION_EXT))
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
622 {
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
623 collection_window_new(filename);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
624 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
625 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
626 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
627 layout_set_path(lw_id, filename);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
628 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
629 }
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
630 else if (isdir(filename))
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
631 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
632 layout_set_path(lw_id, filename);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
633 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
634 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
635 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
636 log_printf("remote sent filename that does not exist:\"%s\"\n", filename);
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
637 layout_set_path(lw_id, homedir());
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
638 }
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
639
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
640 g_free(filename);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
641 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
642
2464
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
643 static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data)
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
644 {
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
645 gr_file_load_no_raise(text, channel, data);
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
646
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
647 gr_raise(text, channel, data);
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
648 }
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
649
2731
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
650 static void gr_pixel_info(const gchar *text, GIOChannel *channel, gpointer data)
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
651 {
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
652 gchar *pixel_info;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
653 gint x_pixel, y_pixel;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
654 gint width, height;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
655 gint r_mouse, g_mouse, b_mouse;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
656 PixbufRenderer *pr;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
657 LayoutWindow *lw = NULL;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
658
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
659 if (!layout_valid(&lw_id)) return;
2731
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
660
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
661 pr = (PixbufRenderer*)lw_id->image->pr;
2731
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
662
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
663 if (pr)
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
664 {
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
665 pixbuf_renderer_get_image_size(pr, &width, &height);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
666 if (width < 1 || height < 1) return;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
667
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
668 pixbuf_renderer_get_mouse_position(pr, &x_pixel, &y_pixel);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
669
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
670 if (x_pixel >= 0 && y_pixel >= 0)
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
671 {
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
672 pixbuf_renderer_get_pixel_colors(pr, x_pixel, y_pixel,
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
673 &r_mouse, &g_mouse, &b_mouse);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
674
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
675 pixel_info = g_strdup_printf(_("[%d,%d]: RGB(%3d,%3d,%3d)"),
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
676 x_pixel, y_pixel,
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
677 r_mouse, g_mouse, b_mouse);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
678
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
679 g_io_channel_write_chars(channel, pixel_info, -1, NULL, NULL);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
680 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
681
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
682 g_free(pixel_info);
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
683 }
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
684 else
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
685 {
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
686 return;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
687 }
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
688 }
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
689 else
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
690 {
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
691 return;
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
692 }
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
693 }
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
694
2801
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
695 static void gr_rectangle(const gchar *text, GIOChannel *channel, gpointer data)
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
696 {
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
697 gchar *rectangle_info;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
698 PixbufRenderer *pr;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
699 LayoutWindow *lw = NULL;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
700 gint x1, y1, x2, y2;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
701
2820
a58a176761eb Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2801
diff changeset
702 if (!options->draw_rectangle) return;
2801
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
703 if (!layout_valid(&lw_id)) return;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
704
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
705 pr = (PixbufRenderer*)lw_id->image->pr;
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
706
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
707 if (pr)
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
708 {
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
709 image_get_rectangle(&x1, &y1, &x2, &y2);
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
710 rectangle_info = g_strdup_printf(_("%dx%d+%d+%d"),
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
711 (x2 > x1) ? x2 - x1 : x1 - x2,
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
712 (y2 > y1) ? y2 - y1 : y1 - y2,
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
713 (x2 > x1) ? x1 : x2,
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
714 (y2 > y1) ? y1 : y2);
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
715
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
716 g_io_channel_write_chars(channel, rectangle_info, -1, NULL, NULL);
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
717 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
718
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
719 g_free(rectangle_info);
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
720 }
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
721 }
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
722
2848
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
723 static void gr_render_intent(const gchar *text, GIOChannel *channel, gpointer data)
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
724 {
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
725 gchar *render_intent;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
726
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
727 switch (options->color_profile.render_intent)
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
728 {
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
729 case 0:
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
730 render_intent = g_strdup("Perceptual");
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
731 break;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
732 case 1:
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
733 render_intent = g_strdup("Relative Colorimetric");
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
734 break;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
735 case 2:
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
736 render_intent = g_strdup("Saturation");
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
737 break;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
738 case 3:
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
739 render_intent = g_strdup("Absolute Colorimetric");
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
740 break;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
741 default:
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
742 render_intent = g_strdup("none");
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
743 break;
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
744 }
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
745
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
746 g_io_channel_write_chars(channel, render_intent, -1, NULL, NULL);
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
747 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
748
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
749 g_free(render_intent);
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
750 }
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
751
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
752 static void get_filelist(const gchar *text, GIOChannel *channel, gboolean recurse)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
753 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
754 GList *list = NULL;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
755 FileFormatClass class;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
756 FileData *dir_fd;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
757 FileData *fd;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
758 GString *out_string = g_string_new(NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
759 GList *work;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
760
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
761 if (strcmp(text, "") == 0)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
762 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
763 if (layout_valid(&lw_id))
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
764 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
765 dir_fd = file_data_new_dir(lw_id->dir_fd->path);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
766 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
767 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
768 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
769 return;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
770 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
771 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
772 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
773 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
774 if (isdir(text))
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
775 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
776 dir_fd = file_data_new_dir(text);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
777 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
778 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
779 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
780 return;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
781 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
782 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
783
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
784 if (recurse)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
785 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
786 list = filelist_recursive(dir_fd);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
787 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
788 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
789 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
790 filelist_read(dir_fd, &list, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
791 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
792
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
793 work = list;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
794 while (work)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
795 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
796 fd = work->data;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
797 g_string_append_printf(out_string, "%s", fd->path);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
798 class = filter_file_get_class(fd->path);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
799
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
800 switch (class)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
801 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
802 case FORMAT_CLASS_IMAGE:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
803 out_string = g_string_append(out_string, " Class: Image");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
804 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
805 case FORMAT_CLASS_RAWIMAGE:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
806 out_string = g_string_append(out_string, " Class: RAW image");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
807 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
808 case FORMAT_CLASS_META:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
809 out_string = g_string_append(out_string, " Class: Metadata");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
810 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
811 case FORMAT_CLASS_VIDEO:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
812 out_string = g_string_append(out_string, " Class: Video");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
813 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
814 case FORMAT_CLASS_COLLECTION:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
815 out_string = g_string_append(out_string, " Class: Collection");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
816 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
817 case FORMAT_CLASS_PDF:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
818 out_string = g_string_append(out_string, " Class: PDF");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
819 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
820 case FORMAT_CLASS_UNKNOWN:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
821 out_string = g_string_append(out_string, " Class: Unknown");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
822 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
823 default:
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
824 out_string = g_string_append(out_string, " Class: Unknown");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
825 break;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
826 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
827 out_string = g_string_append(out_string, "\n");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
828 work = work->next;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
829 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
830
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
831 g_io_channel_write_chars(channel, out_string->str, -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
832 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
833
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
834 g_string_free(out_string, TRUE);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
835 filelist_free(list);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
836 file_data_unref(dir_fd);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
837 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
838
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
839 static void gr_collection(const gchar *text, GIOChannel *channel, gpointer data)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
840 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
841 GString *contents = g_string_new(NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
842
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
843 if (is_collection(text))
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
844 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
845 collection_contents(text, &contents);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
846 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
847 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
848 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
849 return;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
850 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
851
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
852 g_io_channel_write_chars(channel, contents->str, -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
853 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
854
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
855 g_string_free(contents, TRUE);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
856 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
857
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
858 static void gr_collection_list(const gchar *text, GIOChannel *channel, gpointer data)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
859 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
860
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
861 GList *collection_list = NULL;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
862 GList *work;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
863 GString *out_string = g_string_new(NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
864
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
865 collect_manager_list(&collection_list, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
866
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
867 work = collection_list;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
868 while (work)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
869 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
870 const gchar *collection_name = work->data;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
871 out_string = g_string_append(out_string, g_strdup(collection_name));
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
872 out_string = g_string_append(out_string, "\n");
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
873
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
874 work = work->next;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
875 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
876
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
877 g_io_channel_write_chars(channel, out_string->str, -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
878 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
879
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
880 string_list_free(collection_list);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
881 g_string_free(out_string, TRUE);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
882 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
883
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
884
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
885 static void gr_filelist(const gchar *text, GIOChannel *channel, gpointer data)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
886 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
887 get_filelist(text, channel, FALSE);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
888 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
889
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
890 static void gr_filelist_recurse(const gchar *text, GIOChannel *channel, gpointer data)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
891 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
892 get_filelist(text, channel, TRUE);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
893 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
894
2418
8ff8a1df17c9 Command line option to print current filename
Colin Clark <cclark@mcb.net>
parents: 2384
diff changeset
895 static void gr_file_tell(const gchar *text, GIOChannel *channel, gpointer data)
8ff8a1df17c9 Command line option to print current filename
Colin Clark <cclark@mcb.net>
parents: 2384
diff changeset
896 {
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
897 gchar *out_string;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
898 gchar *collection_name = NULL;
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
899
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
900 if (!layout_valid(&lw_id)) return;
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
901
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
902 if (image_get_path(lw_id->image))
2465
58073aea8bc0 Bug fix: Remote --tell output
Colin Clark <cclark@mcb.net>
parents: 2464
diff changeset
903 {
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
904 if (lw_id->image->collection && lw_id->image->collection->name)
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
905 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
906 collection_name = remove_extension_from_path(lw_id->image->collection->name);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
907 out_string = g_strconcat(image_get_path(lw_id->image), " Collection: ", collection_name, NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
908 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
909 else
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
910 {
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
911 out_string = g_strconcat(image_get_path(lw_id->image), NULL);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
912 }
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
913
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
914 g_io_channel_write_chars(channel, out_string, -1, NULL, NULL);
2465
58073aea8bc0 Bug fix: Remote --tell output
Colin Clark <cclark@mcb.net>
parents: 2464
diff changeset
915 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
916
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
917 g_free(collection_name);
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
918 g_free(out_string);
2465
58073aea8bc0 Bug fix: Remote --tell output
Colin Clark <cclark@mcb.net>
parents: 2464
diff changeset
919 }
2418
8ff8a1df17c9 Command line option to print current filename
Colin Clark <cclark@mcb.net>
parents: 2384
diff changeset
920 }
8ff8a1df17c9 Command line option to print current filename
Colin Clark <cclark@mcb.net>
parents: 2384
diff changeset
921
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
922 static void gr_config_load(const gchar *text, GIOChannel *channel, gpointer data)
1467
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
923 {
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
924 gchar *filename = expand_tilde(text);
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
925
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
926 if (isfile(filename))
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
927 {
1484
f3b033a71fc9 improved sidebar configuration
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1475
diff changeset
928 load_config_from_file(filename, FALSE);
1467
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
929 }
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
930 else
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
931 {
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
932 log_printf("remote sent filename that does not exist:\"%s\"\n", filename);
2384
82d8d3deae03 Bug Fix #426: geeqie -r file:FILE crashes if FILE does not exist
Colin Clark <cclark@mcb.net>
parents: 2350
diff changeset
933 layout_set_path(NULL, homedir());
1467
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
934 }
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
935
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
936 g_free(filename);
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
937 }
bbb656b9b78e added "load config" command to remote control
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1444
diff changeset
938
1556
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
939 static void gr_get_sidecars(const gchar *text, GIOChannel *channel, gpointer data)
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
940 {
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
941 gchar *filename = expand_tilde(text);
1936
ed6aa14b66c9 rename file_data_new_simple to file_data_new_group, filedata.c cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1927
diff changeset
942 FileData *fd = file_data_new_group(filename);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
943
1556
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
944 GList *work;
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
945 if (fd->parent) fd = fd->parent;
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
946
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
947 g_io_channel_write_chars(channel, fd->path, -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
948 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
949
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
950 work = fd->sidecar_files;
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
951
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
952 while (work)
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
953 {
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
954 fd = work->data;
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
955 work = work->next;
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
956 g_io_channel_write_chars(channel, fd->path, -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
957 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
958 }
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
959 g_free(filename);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
960 }
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
961
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
962 static void gr_get_destination(const gchar *text, GIOChannel *channel, gpointer data)
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
963 {
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
964 gchar *filename = expand_tilde(text);
1936
ed6aa14b66c9 rename file_data_new_simple to file_data_new_group, filedata.c cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1927
diff changeset
965 FileData *fd = file_data_new_group(filename);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
966
1556
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
967 if (fd->change && fd->change->dest)
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
968 {
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
969 g_io_channel_write_chars(channel, fd->change->dest, -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
970 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
971 }
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
972 g_free(filename);
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
973 }
62084cfe78f1 added remote interface for exporting additional info (sidecars,
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1554
diff changeset
974
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
975 static void gr_file_view(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
976 {
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
977 gchar *filename = expand_tilde(text);
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
978
1936
ed6aa14b66c9 rename file_data_new_simple to file_data_new_group, filedata.c cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1927
diff changeset
979 view_window_new(file_data_new_group(filename));
653
602bec267255 Expand tilde with file: and view: remote parameters.
Laurent Monin <geeqie@norz.org>
parents: 652
diff changeset
980 g_free(filename);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
981 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
982
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
983 static void gr_list_clear(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
984 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
985 RemoteData *remote_data = data;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
986
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
987 if (remote_data->command_collection)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
988 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
989 collection_unref(remote_data->command_collection);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
990 remote_data->command_collection = NULL;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
991 }
995
401cd18f8d38 Whitespaces cleanup.
Laurent Monin <geeqie@norz.org>
parents: 783
diff changeset
992 }
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
993
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
994 static void gr_list_add(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
995 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
996 RemoteData *remote_data = data;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
997 gboolean new = TRUE;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
998
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
999 if (!remote_data->command_collection)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1000 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1001 CollectionData *cd;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1002
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1003 cd = collection_new("");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1004
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1005 g_free(cd->path);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1006 cd->path = NULL;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1007 g_free(cd->name);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1008 cd->name = g_strdup(_("Command line"));
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1009
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1010 remote_data->command_collection = cd;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1011 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1012 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1013 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1014 new = (!collection_get_first(remote_data->command_collection));
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1015 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1016
1936
ed6aa14b66c9 rename file_data_new_simple to file_data_new_group, filedata.c cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1927
diff changeset
1017 if (collection_add(remote_data->command_collection, file_data_new_group(text), FALSE) && new)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1018 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1019 layout_image_set_collection(NULL, remote_data->command_collection,
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1020 collection_get_first(remote_data->command_collection));
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1021 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1022 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1023
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
1024 static void gr_raise(const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1025 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1026 LayoutWindow *lw = NULL;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1027
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
1028 if (layout_valid(&lw_id))
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1029 {
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
1030 gtk_window_present(GTK_WINDOW(lw_id->window));
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1031 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1032 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1033
2647
9f1adad6c2cf Addl fix 269: Image marks "save" feature
Colin Clark <colin.clark@cclark.uk>
parents: 2639
diff changeset
1034 #ifdef HAVE_LUA
2639
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1035 static void gr_lua(const gchar *text, GIOChannel *channel, gpointer data)
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1036 {
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1037 gchar *result = NULL;
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1038 gchar **lua_command;
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1039
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1040 lua_command = g_strsplit(text, ",", 2);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1041
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1042 if (lua_command[0] && lua_command[1])
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1043 {
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1044 FileData *fd = file_data_new_group(lua_command[0]);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1045 result = g_strdup(lua_callvalue(fd, lua_command[1], NULL));
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1046 if (result)
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1047 {
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1048 g_io_channel_write_chars(channel, result, -1, NULL, NULL);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1049 }
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1050 else
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1051 {
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1052 g_io_channel_write_chars(channel, N_("lua error: no data"), -1, NULL, NULL);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1053 }
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1054 }
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1055 else
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1056 {
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1057 g_io_channel_write_chars(channel, N_("lua error: no data"), -1, NULL, NULL);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1058 }
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1059
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1060 g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1061
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1062 g_strfreev(lua_command);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1063 g_free(result);
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1064 }
2647
9f1adad6c2cf Addl fix 269: Image marks "save" feature
Colin Clark <colin.clark@cclark.uk>
parents: 2639
diff changeset
1065 #endif
2639
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1066
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1067 typedef struct _RemoteCommandEntry RemoteCommandEntry;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1068 struct _RemoteCommandEntry {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1069 gchar *opt_s;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1070 gchar *opt_l;
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
1071 void (*func)(const gchar *text, GIOChannel *channel, gpointer data);
1444
085515e22a93 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1437
diff changeset
1072 gboolean needs_extra;
085515e22a93 gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1437
diff changeset
1073 gboolean prefer_command_line;
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1074 gchar *parameter;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1075 gchar *description;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1076 };
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1077
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1078 static RemoteCommandEntry remote_commands[] = {
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1079 /* short, long callback, extra, prefer, parameter, description */
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1080 { "-n", "--next", gr_image_next, FALSE, FALSE, NULL, N_("next image") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1081 { "-b", "--back", gr_image_prev, FALSE, FALSE, NULL, N_("previous image") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1082 { NULL, "--first", gr_image_first, FALSE, FALSE, NULL, N_("first image") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1083 { NULL, "--last", gr_image_last, FALSE, FALSE, NULL, N_("last image") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1084 { "-f", "--fullscreen", gr_fullscreen_toggle, FALSE, TRUE, NULL, N_("toggle full screen") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1085 { "-fs","--fullscreen-start", gr_fullscreen_start, FALSE, FALSE, NULL, N_("start full screen") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1086 { "-fS","--fullscreen-stop", gr_fullscreen_stop, FALSE, FALSE, NULL, N_("stop full screen") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1087 { "-s", "--slideshow", gr_slideshow_toggle, FALSE, TRUE, NULL, N_("toggle slide show") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1088 { "-ss","--slideshow-start", gr_slideshow_start, FALSE, FALSE, NULL, N_("start slide show") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1089 { "-sS","--slideshow-stop", gr_slideshow_stop, FALSE, FALSE, NULL, N_("stop slide show") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1090 { NULL, "--slideshow-recurse:", gr_slideshow_start_rec, TRUE, FALSE, N_("<FOLDER>"), N_("start recursive slide show in FOLDER") },
2657
cc61621468a9 Slideshow --remote delay in hrs-mins-secs
Colin Clark <colin.clark@cclark.uk>
parents: 2647
diff changeset
1091 { "-d", "--delay=", gr_slideshow_delay, TRUE, FALSE, N_("<[H:][M:][N][.M]>"), N_("set slide show delay to Hrs Mins N.M seconds") },
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1092 { "+t", "--tools-show", gr_tools_show, FALSE, TRUE, NULL, N_("show tools") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1093 { "-t", "--tools-hide", gr_tools_hide, FALSE, TRUE, NULL, N_("hide tools") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1094 { "-q", "--quit", gr_quit, FALSE, FALSE, NULL, N_("quit") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1095 { NULL, "--config-load:", gr_config_load, TRUE, FALSE, N_("<FILE>"), N_("load configuration from FILE") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1096 { NULL, "--get-sidecars:", gr_get_sidecars, TRUE, FALSE, N_("<FILE>"), N_("get list of sidecars of FILE") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1097 { NULL, "--get-destination:", gr_get_destination, TRUE, FALSE, N_("<FILE>"), N_("get destination path of FILE") },
2464
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
1098 { NULL, "file:", gr_file_load, TRUE, FALSE, N_("<FILE>"), N_("open FILE, bring Geeqie window to the top") },
a235aad08c32 Fix #201: Geeqie to pop to top of current windows when open up with -r
Colin Clark <cclark@mcb.net>
parents: 2418
diff changeset
1099 { NULL, "File:", gr_file_load_no_raise, TRUE, FALSE, N_("<FILE>"), N_("open FILE, do not bring Geeqie window to the top") },
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
1100 { NULL, "--tell", gr_file_tell, FALSE, FALSE, NULL, N_("print filename [and Collection] of current image") },
2731
304fbae3fd0f Remote command --pixel-info
Colin Clark <colin.clark@cclark.uk>
parents: 2714
diff changeset
1101 { NULL, "--pixel-info", gr_pixel_info, FALSE, FALSE, NULL, N_("print pixel info of mouse pointer on current image") },
2801
3e9ca298bb1d Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents: 2739
diff changeset
1102 { NULL, "--get-rectangle", gr_rectangle, FALSE, FALSE, NULL, N_("get rectangle co-ordinates") },
2848
ed4e22060177 Fix #635: Export in JPG
Colin Clark <colin.clark@cclark.uk>
parents: 2820
diff changeset
1103 { NULL, "--get-render-intent", gr_render_intent, FALSE, FALSE, NULL, N_("get render intent") },
2878
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
1104 { NULL, "--get-filelist:", gr_filelist, TRUE, FALSE, N_("[<FOLDER>]"), N_("get list of files and class") },
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
1105 { NULL, "--get-filelist-recurse:", gr_filelist_recurse, TRUE, FALSE, N_("[<FOLDER>]"), N_("get list of files and class recursive") },
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
1106 { NULL, "--get-collection:", gr_collection, TRUE, FALSE, N_("<COLLECTION>"), N_("get collection content") },
8b1c451c8ff2 Additional remote commands
Colin Clark <colin.clark@cclark.uk>
parents: 2848
diff changeset
1107 { NULL, "--get-collection-list", gr_collection_list, FALSE, FALSE, NULL, N_("get collection list") },
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1108 { NULL, "view:", gr_file_view, TRUE, FALSE, N_("<FILE>"), N_("open FILE in new window") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1109 { NULL, "--list-clear", gr_list_clear, FALSE, FALSE, NULL, N_("clear command line collection list") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1110 { NULL, "--list-add:", gr_list_add, TRUE, FALSE, N_("<FILE>"), N_("add FILE to command line collection list") },
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1111 { NULL, "raise", gr_raise, FALSE, FALSE, NULL, N_("bring the Geeqie window to the top") },
2739
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
1112 { NULL, "--id:", gr_lw_id, TRUE, FALSE, N_("<ID>"), N_("window id for following commands") },
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
1113 { NULL, "--new-window", gr_new_window, FALSE, FALSE, NULL, N_("new window") },
a03b5446e68f Additional remote commands for layout windows
Colin Clark <colin.clark@cclark.uk>
parents: 2738
diff changeset
1114 { NULL, "--close-window", gr_close_window, FALSE, FALSE, NULL, N_("close window") },
2502
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1115 { "-ct:", "--cache-thumbs:", gr_cache_thumb, TRUE, FALSE, N_("clear|clean"), N_("clear or clean thumbnail cache") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1116 { "-cs:", "--cache-shared:", gr_cache_shared, TRUE, FALSE, N_("clear|clean"), N_("clear or clean shared thumbnail cache") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1117 { "-cm","--cache-metadata", gr_cache_metadata, FALSE, FALSE, NULL, N_(" clean the metadata cache") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1118 { "-cr:", "--cache-render:", gr_cache_render, TRUE, FALSE, N_("<folder> "), N_(" render thumbnails") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1119 { "-crr:", "--cache-render-recurse:", gr_cache_render_recurse, TRUE, FALSE, N_("<folder> "), N_("render thumbnails recursively") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1120 { "-crs:", "--cache-render-shared:", gr_cache_render_standard, TRUE, FALSE, N_("<folder> "), N_(" render thumbnails (see Help)") },
728c2b544eec Fix #314: Remote commands for thumbnail maintenance
Colin Clark <colin.clark@cclark.uk>
parents: 2465
diff changeset
1121 { "-crsr:", "--cache-render-shared-recurse:", gr_cache_render_standard_recurse, TRUE, FALSE, N_("<folder>"), N_(" render thumbnails recursively (see Help)") },
2647
9f1adad6c2cf Addl fix 269: Image marks "save" feature
Colin Clark <colin.clark@cclark.uk>
parents: 2639
diff changeset
1122 #ifdef HAVE_LUA
2639
18460ea0ceef Fix #269: External image marks - (--remote --lua)
Colin Clark <colin.clark@cclark.uk>
parents: 2606
diff changeset
1123 { NULL, "--lua:", gr_lua, TRUE, FALSE, N_("<FILE>,<lua script>"), N_("run lua script on FILE") },
2647
9f1adad6c2cf Addl fix 269: Image marks "save" feature
Colin Clark <colin.clark@cclark.uk>
parents: 2639
diff changeset
1124 #endif
2606
1e344397544c Remove some stuff that is throwing errors in gcc-7
Klaus Ethgen <Klaus@Ethgen.de>
parents: 2502
diff changeset
1125 { NULL, NULL, NULL, FALSE, FALSE, NULL, NULL }
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1126 };
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1127
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1128 static RemoteCommandEntry *remote_command_find(const gchar *text, const gchar **offset)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1129 {
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
1130 gboolean match = FALSE;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1131 gint i;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1132
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1133 i = 0;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1134 while (!match && remote_commands[i].func != NULL)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1135 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1136 if (remote_commands[i].needs_extra)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1137 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1138 if (remote_commands[i].opt_s &&
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1139 strncmp(remote_commands[i].opt_s, text, strlen(remote_commands[i].opt_s)) == 0)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1140 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1141 if (offset) *offset = text + strlen(remote_commands[i].opt_s);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1142 return &remote_commands[i];
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1143 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1144 else if (remote_commands[i].opt_l &&
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1145 strncmp(remote_commands[i].opt_l, text, strlen(remote_commands[i].opt_l)) == 0)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1146 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1147 if (offset) *offset = text + strlen(remote_commands[i].opt_l);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1148 return &remote_commands[i];
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1149 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1150 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1151 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1152 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1153 if ((remote_commands[i].opt_s && strcmp(remote_commands[i].opt_s, text) == 0) ||
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1154 (remote_commands[i].opt_l && strcmp(remote_commands[i].opt_l, text) == 0))
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1155 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1156 if (offset) *offset = text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1157 return &remote_commands[i];
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1158 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1159 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1160
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1161 i++;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1162 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1163
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1164 return NULL;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1165 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1166
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
1167 static void remote_cb(RemoteConnection *rc, const gchar *text, GIOChannel *channel, gpointer data)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1168 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1169 RemoteCommandEntry *entry;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1170 const gchar *offset;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1171
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1172 entry = remote_command_find(text, &offset);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1173 if (entry && entry->func)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1174 {
1554
bdd7004d7d80 improved remote protocol to allow bidirectional communication
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1523
diff changeset
1175 entry->func(offset, channel, data);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1176 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1177 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1178 {
673
c9c2bc042e10 Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents: 671
diff changeset
1179 log_printf("unknown remote command:%s\n", text);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1180 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1181 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1182
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1183 void remote_help(void)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1184 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1185 gint i;
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1186 gchar *s_opt_param;
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1187 gchar *l_opt_param;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1188
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1189 print_term(FALSE, _("Remote command list:\n"));
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1190
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1191 i = 0;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1192 while (remote_commands[i].func != NULL)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1193 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1194 if (remote_commands[i].description)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1195 {
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1196 s_opt_param = g_strconcat(remote_commands[i].opt_s, remote_commands[i].parameter, NULL);
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1197 l_opt_param = g_strconcat(remote_commands[i].opt_l, remote_commands[i].parameter, NULL);
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1198 printf_term(FALSE, " %-11s%-1s %-30s%-s\n",
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1199 (remote_commands[i].opt_s) ? s_opt_param : "",
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1200 (remote_commands[i].opt_s && remote_commands[i].opt_l) ? "," : " ",
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1201 (remote_commands[i].opt_l) ? l_opt_param : "",
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1202 _(remote_commands[i].description));
2290
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1203 g_free(s_opt_param);
e16280b66879 Update command line options documentation
Colin Clark <cclark@mcb.net>
parents: 2221
diff changeset
1204 g_free(l_opt_param);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1205 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1206 i++;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1207 }
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1208 printf_term(FALSE, N_("\n All other command line parameters are used as plain files if they exists.\n"));
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1209 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1210
1000
07f6093c1c1a For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents: 995
diff changeset
1211 GList *remote_build_list(GList *list, gint argc, gchar *argv[], GList **errors)
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1212 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1213 gint i;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1214
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1215 i = 1;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1216 while (i < argc)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1217 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1218 RemoteCommandEntry *entry;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1219
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1220 entry = remote_command_find(argv[i], NULL);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1221 if (entry)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1222 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1223 list = g_list_append(list, argv[i]);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1224 }
1868
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1225 else if (errors && !isfile(argv[i]))
652
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
1226 {
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
1227 *errors = g_list_append(*errors, argv[i]);
ecbc361c6b7f Display a message when invalid remote options are used.
Laurent Monin <geeqie@norz.org>
parents: 649
diff changeset
1228 }
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1229 i++;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1230 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1231
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1232 return list;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1233 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1234
1868
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1235 /**
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1236 * \param arg_exec Binary (argv0)
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1237 * \param remote_list Evaluated and recognized remote commands
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1238 * \param path The current path
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1239 * \param cmd_list List of all non collections in Path
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1240 * \param collection_list List of all collections in argv
2fb5a1f47789 Fix a remote command bug
Klaus Ethgen <Klaus@Ethgen.de>
parents: 1802
diff changeset
1241 */
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1242 void remote_control(const gchar *arg_exec, GList *remote_list, const gchar *path,
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1243 GList *cmd_list, GList *collection_list)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1244 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1245 RemoteConnection *rc;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
1246 gboolean started = FALSE;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1247 gchar *buf;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1248
1145
94adf34fe826 Use functions to return directories instead of constants.
Laurent Monin <geeqie@norz.org>
parents: 1144
diff changeset
1249 buf = g_build_filename(get_rc_dir(), ".command", NULL);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1250 rc = remote_client_open(buf);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1251 if (!rc)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1252 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1253 GString *command;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1254 GList *work;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1255 gint retry_count = 12;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
1256 gboolean blank = FALSE;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1257
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1258 printf_term(FALSE, _("Remote %s not running, starting..."), GQ_APPNAME);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1259
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1260 command = g_string_new(arg_exec);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1261
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1262 work = remote_list;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1263 while (work)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1264 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1265 gchar *text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1266 RemoteCommandEntry *entry;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1267
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1268 text = work->data;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1269 work = work->next;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1270
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1271 entry = remote_command_find(text, NULL);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1272 if (entry)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1273 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1274 if (entry->prefer_command_line)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1275 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1276 remote_list = g_list_remove(remote_list, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1277 g_string_append(command, " ");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1278 g_string_append(command, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1279 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1280 if (entry->opt_l && strcmp(entry->opt_l, "file:") == 0)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1281 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1282 blank = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1283 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1284 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1285 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1286
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1287 if (blank || cmd_list || path) g_string_append(command, " --blank");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1288 if (get_debug_level()) g_string_append(command, " --debug");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1289
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1290 g_string_append(command, " &");
1144
79248cd0d16e Add a wrapper around system() call named runcmd() which allows easier debugging. Improve the code launching the help browser.
Laurent Monin <geeqie@norz.org>
parents: 1055
diff changeset
1291 runcmd(command->str);
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1292 g_string_free(command, TRUE);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1293
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1294 while (!rc && retry_count > 0)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1295 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1296 usleep((retry_count > 10) ? 500000 : 1000000);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1297 rc = remote_client_open(buf);
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1298 if (!rc) print_term(FALSE, ".");
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1299 retry_count--;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1300 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1301
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1302 print_term(FALSE, "\n");
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1303
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1304 started = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1305 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1306 g_free(buf);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1307
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1308 if (rc)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1309 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1310 GList *work;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1311 const gchar *prefix;
1437
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
1312 gboolean use_path = TRUE;
cc423d10b73e gint -> gboolean.
Laurent Monin <geeqie@norz.org>
parents: 1416
diff changeset
1313 gboolean sent = FALSE;
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1314
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1315 work = remote_list;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1316 while (work)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1317 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1318 gchar *text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1319 RemoteCommandEntry *entry;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1320
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1321 text = work->data;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1322 work = work->next;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1323
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1324 entry = remote_command_find(text, NULL);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1325 if (entry &&
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1326 entry->opt_l &&
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1327 strcmp(entry->opt_l, "file:") == 0) use_path = FALSE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1328
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1329 remote_client_send(rc, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1330
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1331 sent = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1332 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1333
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1334 if (cmd_list && cmd_list->next)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1335 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1336 prefix = "--list-add:";
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1337 remote_client_send(rc, "--list-clear");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1338 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1339 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1340 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1341 prefix = "file:";
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1342 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1343
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1344 work = cmd_list;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1345 while (work)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1346 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1347 FileData *fd;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1348 gchar *text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1349
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1350 fd = work->data;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1351 work = work->next;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1352
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1353 text = g_strconcat(prefix, fd->path, NULL);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1354 remote_client_send(rc, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1355 g_free(text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1356
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1357 sent = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1358 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1359
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1360 if (path && !cmd_list && use_path)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1361 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1362 gchar *text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1363
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1364 text = g_strdup_printf("file:%s", path);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1365 remote_client_send(rc, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1366 g_free(text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1367
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1368 sent = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1369 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1370
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1371 work = collection_list;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1372 while (work)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1373 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1374 const gchar *name;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1375 gchar *text;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1376
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1377 name = work->data;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1378 work = work->next;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1379
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1380 text = g_strdup_printf("file:%s", name);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1381 remote_client_send(rc, text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1382 g_free(text);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1383
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1384 sent = TRUE;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1385 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1386
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1387 if (!started && !sent)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1388 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1389 remote_client_send(rc, "raise");
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1390 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1391 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1392 else
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1393 {
2678
195267d1c78f Fix #548: Send text output to stdout
cclark <colin.clark@cclark.uk>
parents: 2657
diff changeset
1394 print_term(TRUE, _("Remote not available\n"));
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1395 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1396
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1397 _exit(0);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1398 }
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1399
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1400 RemoteConnection *remote_server_init(gchar *path, CollectionData *command_collection)
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1401 {
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1402 RemoteConnection *remote_connection = remote_server_open(path);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1403 RemoteData *remote_data = g_new(RemoteData, 1);
2185
c14a1d8e6aa4 Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents: 2184
diff changeset
1404
649
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1405 remote_data->command_collection = command_collection;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1406
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1407 remote_server_subscribe(remote_connection, remote_cb, remote_data);
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1408 return remote_connection;
31ec921c17f2 Move all remote stuff from main.c to remote.[ch].
Laurent Monin <geeqie@norz.org>
parents: 512
diff changeset
1409 }
1055
4bbdfab3c89a Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents: 1022
diff changeset
1410 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */