SF.net SVN: geany: [749] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Sun Aug 20 12:33:20 UTC 2006
Revision: 749
Author: ntrel
Date: 2006-08-20 05:33:09 -0700 (Sun, 20 Aug 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=749&view=rev
Log Message:
-----------
Moved HAVE_FIFO MyApp fields to fifo_info struct in src/main.c; Prevent unnecessary 'does not look like a filename' debug messages
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/Makefile.am
trunk/src/callbacks.c
trunk/src/geany.h
trunk/src/main.c
Added Paths:
-----------
trunk/src/main.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-08-20 11:54:33 UTC (rev 748)
+++ trunk/ChangeLog 2006-08-20 12:33:09 UTC (rev 749)
@@ -2,6 +2,11 @@
* src/callbacks.c, src/main.c:
Fix opening more than one file from the command-line (with fifo).
+ * src/geany.h, src/callbacks.c, src/Makefile.am, src/main.c,
+ src/main.h:
+ Moved HAVE_FIFO MyApp fields to fifo_info struct in src/main.c.
+ Prevent unnecessary 'does not look like a filename' debug messages.
+ Added fifo_finalize().
2006-08-19 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/Makefile.am
===================================================================
--- trunk/src/Makefile.am 2006-08-20 11:54:33 UTC (rev 748)
+++ trunk/src/Makefile.am 2006-08-20 12:33:09 UTC (rev 749)
@@ -7,7 +7,7 @@
bin_PROGRAMS = geany
SRCS = \
- main.c geany.h \
+ main.c main.h geany.h \
search.c search.h \
notebook.c notebook.h \
keybindings.c keybindings.h \
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-08-20 11:54:33 UTC (rev 748)
+++ trunk/src/callbacks.c 2006-08-20 12:33:09 UTC (rev 749)
@@ -49,8 +49,8 @@
#include "keybindings.h"
#include "encodings.h"
#include "search.h"
+#include "main.h"
-
#ifdef G_OS_WIN32
# include "win32.h"
#endif
@@ -85,18 +85,8 @@
geany_debug("Quitting...");
#ifdef HAVE_FIFO
- if (! app->ignore_fifo)
- {
- gchar *fifo = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, GEANY_FIFO_NAME, NULL);
- // delete the fifo early, because we don't accept new files anymore
- if (app->fifo_ioc != NULL)
- {
- g_io_channel_shutdown(app->fifo_ioc, FALSE, NULL);
- g_io_channel_unref(app->fifo_ioc);
- }
- unlink(fifo);
- g_free(fifo);
- }
+ // delete the fifo early, because we don't accept new files anymore
+ fifo_finalize();
#endif
keybindings_free();
Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h 2006-08-20 11:54:33 UTC (rev 748)
+++ trunk/src/geany.h 2006-08-20 12:33:09 UTC (rev 749)
@@ -168,10 +168,6 @@
gint autocompletion_max_height;
gint long_line_type;
gint long_line_column;
-#ifdef HAVE_FIFO
- gboolean ignore_fifo;
- GIOChannel *fifo_ioc;
-#endif
gchar *long_line_color;
gchar *pref_template_developer;
gchar *pref_template_company;
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2006-08-20 11:54:33 UTC (rev 748)
+++ trunk/src/main.c 2006-08-20 12:33:09 UTC (rev 749)
@@ -57,8 +57,17 @@
#define N_(String) (String)
+
#ifdef HAVE_FIFO
-static gchar fifo_name[512];
+static struct
+{
+ gboolean ignore_fifo;
+ gchar file_name[512];
+ GIOChannel *read_ioc;
+} fifo_info;
+#endif
+
+#ifdef HAVE_FIFO
static gboolean ignore_fifo = FALSE;
#endif
static gboolean debug_mode = FALSE;
@@ -334,16 +343,18 @@
g_strstrip(buffer); // remove \n char
// try to interpret the received data as a filename, otherwise do nothing
- if (status == G_IO_STATUS_NORMAL &&
- g_file_test(buffer, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))
+ if (status == G_IO_STATUS_NORMAL)
{
- document_open_file(-1, buffer, 0, FALSE, NULL, NULL);
- gtk_window_deiconify(GTK_WINDOW(app->window));
+ if (g_file_test(buffer, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))
+ {
+ document_open_file(-1, buffer, 0, FALSE, NULL, NULL);
+ gtk_window_deiconify(GTK_WINDOW(app->window));
+ }
+ else
+ {
+ geany_debug("got data from named pipe, but it does not look like a filename");
+ }
}
- else
- {
- geany_debug("got data from named pipe, but it does not look like a filename");
- }
g_free(buffer);
return TRUE; // allow receiving more data
@@ -355,7 +366,7 @@
gint i;
GIOChannel *ioc;
- ioc = g_io_channel_unix_new(open(fifo_name, O_WRONLY));
+ ioc = g_io_channel_unix_new(open(fifo_info.file_name, O_WRONLY));
for(i = 1; i < argc && argv[i] != NULL; i++)
{
@@ -385,14 +396,14 @@
GIOChannel *ioc;
tmp = g_strconcat(config_dir, G_DIR_SEPARATOR_S, GEANY_FIFO_NAME, NULL);
- g_strlcpy(fifo_name, tmp, sizeof(fifo_name));
+ g_strlcpy(fifo_info.file_name, tmp, sizeof(fifo_info.file_name));
g_free(tmp);
- if (stat(fifo_name, &st) == 0 && (! S_ISFIFO(st.st_mode)))
+ if (stat(fifo_info.file_name, &st) == 0 && (! S_ISFIFO(st.st_mode)))
{ // the FIFO file exists, but is not a FIFO
- unlink(fifo_name);
+ unlink(fifo_info.file_name);
}
- else if (stat(fifo_name, &st) == 0 && S_ISFIFO(st.st_mode))
+ else if (stat(fifo_info.file_name, &st) == 0 && S_ISFIFO(st.st_mode))
{ // FIFO exists, there should be a running instance of Geany
if (argc > 1)
{
@@ -404,7 +415,7 @@
{
if (dialogs_show_question(_("Geany is exiting because a named pipe was found. Mostly this means, Geany is already running. If you know Geany is not running, you can delete the file and start Geany anyway.\nDelete the named pipe and start Geany?")))
{
- unlink(fifo_name);
+ unlink(fifo_info.file_name);
}
else exit(0);
}
@@ -413,17 +424,33 @@
// there is no Geany running, create fifo and start as usual, so we are a kind of server
geany_debug("trying to create a new named pipe");
- if ((mkfifo(fifo_name, S_IRUSR | S_IWUSR)) == -1)
+ if ((mkfifo(fifo_info.file_name, S_IRUSR | S_IWUSR)) == -1)
{
if (errno != EEXIST) geany_debug("creating of a named pipe for IPC failed! (%s)", g_strerror(errno));
return NULL;
}
- ioc = g_io_channel_unix_new(open(fifo_name, O_RDONLY | O_NONBLOCK));
+ ioc = g_io_channel_unix_new(open(fifo_info.file_name, O_RDONLY | O_NONBLOCK));
g_io_add_watch(ioc, G_IO_IN | G_IO_PRI, read_fifo, NULL);
return ioc;
}
+
+
+void fifo_finalize()
+{
+ if (! fifo_info.ignore_fifo)
+ {
+ gchar *fifo = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, GEANY_FIFO_NAME, NULL);
+ if (fifo_info.read_ioc != NULL)
+ {
+ g_io_channel_shutdown(fifo_info.read_ioc, FALSE, NULL);
+ g_io_channel_unref(fifo_info.read_ioc);
+ }
+ unlink(fifo);
+ g_free(fifo);
+ }
+}
#endif
@@ -510,7 +537,7 @@
app->configdir = g_strconcat(GEANY_HOME_DIR, G_DIR_SEPARATOR_S, ".", PACKAGE, NULL);
#ifdef HAVE_FIFO
- app->ignore_fifo = ignore_fifo;
+ fifo_info.ignore_fifo = ignore_fifo;
#endif
#ifdef HAVE_VTE
vte_info.lib_vte = lib_vte;
@@ -570,7 +597,7 @@
config_dir_result = setup_config_dir();
// handle fifo
#ifdef HAVE_FIFO
- app->fifo_ioc = (ignore_fifo) ? NULL : create_fifo(argc, argv, app->configdir);
+ fifo_info.read_ioc = (ignore_fifo) ? NULL : create_fifo(argc, argv, app->configdir);
#endif
gtk_init(&argc, &argv);
Added: trunk/src/main.h
===================================================================
--- trunk/src/main.h (rev 0)
+++ trunk/src/main.h 2006-08-20 12:33:09 UTC (rev 749)
@@ -0,0 +1,30 @@
+/*
+ * main.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2006 Enrico Troeger <enrico.troeger at uvena.de>
+ * Copyright 2006 Nick Treleaven <nick.treleaven at btinternet.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $Id$
+ */
+
+
+#ifndef GEANY_MAIN_H
+#define GEANY_MAIN_H
+
+void fifo_finalize();
+
+#endif
Property changes on: trunk/src/main.h
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list