aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qregisters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qregisters.cpp')
-rw-r--r--src/qregisters.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/qregisters.cpp b/src/qregisters.cpp
index 9cf1461..550b103 100644
--- a/src/qregisters.cpp
+++ b/src/qregisters.cpp
@@ -198,15 +198,17 @@ QRegister::execute(bool locals)
g_free(str);
}
-bool
+void
QRegister::load(const gchar *filename)
{
gchar *contents;
gsize size;
+ GError *gerror = NULL;
+
/* FIXME: prevent excessive allocations by reading file into buffer */
- if (!g_file_get_contents(filename, &contents, &size, NULL))
- return false;
+ if (!g_file_get_contents(filename, &contents, &size, &gerror))
+ throw State::GError(gerror);
edit();
string.reset();
@@ -219,8 +221,6 @@ QRegister::load(const gchar *filename)
g_free(contents);
current_edit();
-
- return true;
}
tecoInt
@@ -531,9 +531,7 @@ StateLoadQReg::done(const gchar *str)
if (*str) {
register_argument->undo_load();
- if (!register_argument->load(str))
- throw Error("Cannot load \"%s\" into Q-Register \"%s\"",
- str, register_argument->name);
+ register_argument->load(str);
} else {
if (ring.current)
ring.undo_edit();