aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ioview.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2015-07-27 20:31:20 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2015-07-28 11:18:44 +0200
commitc3f7aa7252ad9adb51cef1e35f566883ef953aad (patch)
tree456ddfb23cdfd3aeddfc2ac71a3e86ce4748fac6 /src/ioview.cpp
parent7b3f7da0ec70e7be0e3db9524d092d9e138ed448 (diff)
downloadsciteco-c3f7aa7252ad9adb51cef1e35f566883ef953aad.tar.gz
added full Haiku OS support (non x86_gcc2)
* Haiku can be handled like UNIX in most respects since it is POSIX compliant, has a UNIX-like terminal emulator and uses ncurses. * still the Glib platform macro is G_OS_HAIKU instead of G_OS_UNIX, so the preprocessor conditionals had to be adapted. * the only functional difference between a Haiku and UNIX build is the default SCITECOCONFIG path. We use the config path returned by Glib instead of $HOME, so .teco_ini will be in ~/config/settings on Haiku. Other UNIX ports appear to use the same conventions. * Some Haiku-specific restrictions still apply: * Haiku's terminal is xterm-compatible, but only supports 8 colors. Therefore only the terminal.tes color scheme can be used and the terminal must be set up to "Use bright instead of bold text". * The terminal has artifacts. This appears to be a Haiku bug and affects other curses applications as well. * GTK is yet unsupported on Haiku, so there may never be a GUI port (unless someone writes a QT GUI for SciTECO). * SciTECO cannot be built with the legacy gcc2 used for BeOS compatibility on Haiku. This would require too many changes for an obsolete platform. BeOS and the x86_gcc2 platform of Haiku will therefore never be supported. The PPC and ARM platforms of Haiku should work but are untested. * a HaikuPorts recipe will be provided for the next regular SciTECO release. This should hopefully allow installation via HaikuDepot.
Diffstat (limited to 'src/ioview.cpp')
-rw-r--r--src/ioview.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/ioview.cpp b/src/ioview.cpp
index 6cab3f9..71b5b9f 100644
--- a/src/ioview.cpp
+++ b/src/ioview.cpp
@@ -467,7 +467,7 @@ make_savepoint(const gchar *filename)
undo.push(new UndoTokenRestoreSavePoint(savepoint, filename));
}
-#endif /* !G_OS_UNIX */
+#endif
GIOStatus
IOView::save(GIOChannel *channel, guint position, gsize len,
@@ -603,7 +603,7 @@ IOView::save(const gchar *filename)
GError *error = NULL;
GIOChannel *channel;
-#ifdef G_OS_UNIX
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
GStatBuf file_stat;
file_stat.st_uid = -1;
file_stat.st_gid = -1;
@@ -612,7 +612,7 @@ IOView::save(const gchar *filename)
if (undo.enabled) {
if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
-#ifdef G_OS_UNIX
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
g_stat(filename, &file_stat);
#endif
attributes = get_file_attributes(filename);
@@ -644,7 +644,7 @@ IOView::save(const gchar *filename)
/* if file existed but has been renamed, restore attributes */
if (attributes != INVALID_FILE_ATTRIBUTES)
set_file_attributes(filename, attributes);
-#ifdef G_OS_UNIX
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
/*
* only a good try to inherit owner since process user must have
* CHOWN capability traditionally reserved to root only.
@@ -698,7 +698,7 @@ expand_path(const gchar *path)
return ret;
}
-#ifdef G_OS_UNIX
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
gchar *
get_absolute_path(const gchar *path)
@@ -752,7 +752,7 @@ file_is_visible(const gchar *path)
return !(get_file_attributes(path) & FILE_ATTRIBUTE_HIDDEN);
}
-#else /* !G_OS_UNIX && !G_OS_WIN32 */
+#else /* !G_OS_UNIX && !G_OS_HAIKU && !G_OS_WIN32 */
/*
* This will never canonicalize relative paths.
@@ -791,6 +791,6 @@ file_is_visible(const gchar *path)
return true;
}
-#endif /* !G_OS_UNIX && !G_OS_WIN32 */
+#endif /* !G_OS_UNIX && !G_OS_HAIKU && !G_OS_WIN32 */
} /* namespace SciTECO */