[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [rkward] /: EXPERIMENTAL Always submit non-user commands UTF8-encoded. Now how can we achieve the sa
From: Thomas Friedrichsmeier <thomas.friedrichsmeier () ruhr-uni-bochum ! de>
Date: 2016-07-04 8:33:41
Message-ID: E1bJzK1-0006Aa-4j () code ! kde ! org
[Download RAW message or body]
Git commit 2d6d7f2c95531df17699b51a61f3024e9b8e123a by Thomas Friedrichsmeier.
Committed on 04/07/2016 at 08:33.
Pushed by tfry into branch 'master'.
EXPERIMENTAL Always submit non-user commands UTF8-encoded. Now how can we achieve the \
same for user commands?
M +1 -0 ChangeLog
M +4 -2 rkward/rbackend/rkrbackend.cpp
http://commits.kde.org/rkward/2d6d7f2c95531df17699b51a61f3024e9b8e123a
diff --git a/ChangeLog b/ChangeLog
index 046f07b..6d37e82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
--- Version 0.6.5a - UNRELEASED
+- EXPERIMENTAL: Fix NAs introduced by editing data containing characters that cannot \
be encoded in the system locale
- Fixed: Preview boxes followed by a <stretch/> element would not work under some \
circumstances
- Fixed: Setting an output CSS file via the GUI did not work
- Fixed: Bug report feature on Windows did nothing TODO: Really test this!
diff --git a/rkward/rbackend/rkrbackend.cpp b/rkward/rbackend/rkrbackend.cpp
index 4c9fdb9..a4f09e2 100644
--- a/rkward/rbackend/rkrbackend.cpp
+++ b/rkward/rbackend/rkrbackend.cpp
@@ -307,6 +307,8 @@ int RReadConsole (const char* prompt, unsigned char* buf, int \
buflen, int hist) RKRBackend::repl_status.user_command_completely_transmitted = \
false; RKRBackend::repl_status.user_command_parsed_up_to = 0;
RKRBackend::repl_status.user_command_successful_up_to = 0;
+ // TODO FIXME: This is a problem when sending characters which are not \
encodable in R's current locale. I wish we could simply tell R that the input is UTF8 \
(as we do in parseCommand()). + // Or is there? Alternatively, perhaps we can \
somehow hack-in UTF8 character positions?
RKRBackend::repl_status.user_command_buffer = \
RKRBackend::this_pointer->current_locale_codec->fromUnicode (command->command); \
RKTransmitNextUserCommandChunk (buf, buflen);
RKRBackend::repl_status.user_command_status = \
RKRBackend::RKReplStatus::UserCommandTransmitted; @@ -1133,11 +1135,11 @@ SEXP \
parseCommand (const QString &command_qstring, RKRBackend::RKWardRError *err \
SafeParseWrap wrap; wrap.status = PARSE_NULL;
- QByteArray localc = RKRBackend::this_pointer->current_locale_codec->fromUnicode \
(command_qstring); // needed so the string below does not go out of scope \
+ QByteArray localc = command_qstring.toUtf8 (); // needed so the string below does \
not go out of scope const char *command = localc.data ();
PROTECT(wrap.cv=Rf_allocVector(STRSXP, 1));
- SET_STRING_ELT(wrap.cv, 0, Rf_mkChar(command));
+ SET_STRING_ELT(wrap.cv, 0, Rf_mkCharCE(command, CE_UTF8));
// Yes, if there is an error in the parse, R does jump back to toplevel!
// trying to parse list(""=1) is an example in R 3.1.1
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic