aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--libsylph/utils.c14
3 files changed, 21 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e543e82a..9e5316f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-10-31
+ * libsylph/utils.c: execute_sync(): win32: get exit status of child
+ process by not using helper program.
+
+2005-10-31
+
* src/textview.c: textview_show_part(): fixed scroll jumping on focus.
2005-10-29
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 48b95b2f..9687a9dc 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
2005-10-31
+ * libsylph/utils.c: execute_sync(): win32: ヘルパープログラムを使用
+ しないようにして子プロセスの終了ステータスを得るようにした。
+
+2005-10-31
+
* src/textview.c: textview_show_part(): フォーカス時にスクロールが
ジャンプしてしまう問題を修正。
diff --git a/libsylph/utils.c b/libsylph/utils.c
index 0ad23c3a..b6c41e12 100644
--- a/libsylph/utils.c
+++ b/libsylph/utils.c
@@ -3111,19 +3111,27 @@ gint execute_sync(gchar *const argv[])
g_return_val_if_fail(argv != NULL && argv[0] != NULL, -1);
+#ifdef G_OS_WIN32
+ if (g_spawn_sync(NULL, (gchar **)argv, NULL,
+ G_SPAWN_SEARCH_PATH | G_SPAWN_CHILD_INHERITS_STDIN |
+ G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
+ NULL, NULL, NULL, NULL, &status, NULL) == FALSE) {
+ g_warning("Can't execute command: %s\n", argv[0]);
+ return -1;
+ }
+
+ return status;
+#else
if (g_spawn_sync(NULL, (gchar **)argv, NULL, G_SPAWN_SEARCH_PATH,
NULL, NULL, NULL, NULL, &status, NULL) == FALSE) {
g_warning("Can't execute command: %s\n", argv[0]);
return -1;
}
-#ifdef G_OS_UNIX
if (WIFEXITED(status))
return WEXITSTATUS(status);
else
return -1;
-#else
- return status;
#endif
}