aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ioview.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-12-12 16:39:46 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2015-03-16 07:20:05 +0100
commitc310c7d875c8aa871180de130e820ed19a2489f5 (patch)
treea42eacf47ba714c99af5ec04ff2ce1b4e9f87765 /src/ioview.h
parenteee4f1ae84bcbb18a9ac0f5f450510533014dd40 (diff)
downloadsciteco-c310c7d875c8aa871180de130e820ed19a2489f5.tar.gz
implemented automatic EOL translation support
* activated via bit 4 of the ED flag (enabled by default) * automatic EOL guessing on file loading and translation to LFs. * works with files that have inconsistent EOL sequences. * automatic translation to original EOL sequences on file saving * works with inconsistent EOL sequences in the buffer. This should usually not happen if the file was read in with automatic EOL translation enabled. * also works with the EC and EG commands * performance is OK, depending on the file being translated. When reading files with UNIX EOLs, the overhead is minimal typically-sized files. For DOS EOLs the overhead is larger but still acceptable. * Return (line feed) is now an immediate editing command. This centralizes EOL sequence insertion. Later, other features like auto-indent could be added to the editing command. * get_eol() has been moved to main.cpp (now called get_eol_seq() * Warn if file ownership could not be preserved when saving files. * IOView has been almost completely rewritten based on GIOChannels. The EOL translation code is also in IOView.
Diffstat (limited to 'src/ioview.h')
-rw-r--r--src/ioview.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ioview.h b/src/ioview.h
index 22e9e14..d314138 100644
--- a/src/ioview.h
+++ b/src/ioview.h
@@ -94,7 +94,20 @@ class IOView : public ViewCurrent {
};
public:
+ static GIOStatus channel_read_with_eol(GIOChannel *channel,
+ gchar *buffer, gsize buffer_len,
+ gsize &read_len,
+ guint &offset, gsize &block_len,
+ gint &state, gint &eol_style,
+ gboolean &eol_style_inconsistent,
+ GError **error = NULL);
+
+ GIOStatus load(GIOChannel *channel, GError **error = NULL);
void load(const gchar *filename);
+
+ GIOStatus save(GIOChannel *channel, guint position, gsize len,
+ gsize *bytes_written, gint &state, GError **error = NULL);
+ gboolean save(GIOChannel *channel, GError **error = NULL);
void save(const gchar *filename);
};