Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/0f18440fd5e4296e90152744838110932c017969
...commit
http://git.netsurf-browser.org/netsurf.git/commit/0f18440fd5e4296e90152744838110932c017969
...tree
http://git.netsurf-browser.org/netsurf.git/tree/0f18440fd5e4296e90152744838110932c017969
The branch, master has been updated
via 0f18440fd5e4296e90152744838110932c017969 (commit)
from b46f1257c3db75cdaa0794f96e3802f4c13bb4e6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=0f18440fd5e4296e90152744838110932c017969
commit 0f18440fd5e4296e90152744838110932c017969
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Convert user/pass from/to UTF-8
Haven't successfully logged in with credentials featuring UTF-8 characters,
but ASCII run through the conversion is working and UTF-8 usernames display
correctly when the user is re-prompted.
diff --git a/frontends/amiga/login.c b/frontends/amiga/login.c
index 3ebae18..ca17e7e 100755
--- a/frontends/amiga/login.c
+++ b/frontends/amiga/login.c
@@ -111,13 +111,22 @@ nserror gui_401login_open(nsurl *url, const char *realm,
lw->messages[AMI_LOGIN_MSG_LOGIN] =
ami_utf8_easy(messages_get("Login"));
lw->messages[AMI_LOGIN_MSG_CANCEL] =
ami_utf8_easy(messages_get("Cancel"));
- len = strlen(username);
- assert(len < sizeof(lw->uname));
- memcpy(lw->uname, username, len + 1);
+ /* Convert existing username and password to local charset */
+ char *user_utf8 = ami_utf8_easy(username);
+ if(user_utf8 != NULL) {
+ len = strlen(user_utf8);
+ assert(len < sizeof(lw->uname));
+ memcpy(lw->uname, user_utf8, len + 1);
+ ami_utf8_free(user_utf8);
+ }
- len = strlen(password);
- assert(len < sizeof(lw->pwd));
- memcpy(lw->pwd, password, len + 1);
+ char *pass_utf8 = ami_utf8_easy(password);
+ if(pass_utf8 != NULL) {
+ len = strlen(pass_utf8);
+ assert(len < sizeof(lw->pwd));
+ memcpy(lw->pwd, pass_utf8, len + 1);
+ ami_utf8_free(pass_utf8);
+ }
lw->objects[OID_MAIN] = WindowObj,
WA_ScreenTitle, ami_gui_get_screen_title(),
@@ -220,14 +229,19 @@ static void ami_401login_login(struct gui_login_window
*lw)
char *user;
char *pass;
+ /* Get username and password from string gadgets */
GetAttr(STRINGA_TextVal,lw->objects[GID_USER],(ULONG *)&user);
GetAttr(STRINGA_TextVal,lw->objects[GID_PASS],(ULONG *)&pass);
+ /* Convert from local charset to UTF-8 */
char *user_utf8 = ami_to_utf8_easy(user);
char *pass_utf8 = ami_to_utf8_easy(pass);
if(user_utf8 && pass_utf8) {
lw->cb(user_utf8, pass_utf8, lw->cbpw);
+
+ ami_utf8_free(user_utf8);
+ ami_utf8_free(pass_utf8);
} else {
amiga_warn_user("NoMemory", "");
}
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/login.c | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/frontends/amiga/login.c b/frontends/amiga/login.c
index 3ebae18..ca17e7e 100755
--- a/frontends/amiga/login.c
+++ b/frontends/amiga/login.c
@@ -111,13 +111,22 @@ nserror gui_401login_open(nsurl *url, const char *realm,
lw->messages[AMI_LOGIN_MSG_LOGIN] =
ami_utf8_easy(messages_get("Login"));
lw->messages[AMI_LOGIN_MSG_CANCEL] =
ami_utf8_easy(messages_get("Cancel"));
- len = strlen(username);
- assert(len < sizeof(lw->uname));
- memcpy(lw->uname, username, len + 1);
+ /* Convert existing username and password to local charset */
+ char *user_utf8 = ami_utf8_easy(username);
+ if(user_utf8 != NULL) {
+ len = strlen(user_utf8);
+ assert(len < sizeof(lw->uname));
+ memcpy(lw->uname, user_utf8, len + 1);
+ ami_utf8_free(user_utf8);
+ }
- len = strlen(password);
- assert(len < sizeof(lw->pwd));
- memcpy(lw->pwd, password, len + 1);
+ char *pass_utf8 = ami_utf8_easy(password);
+ if(pass_utf8 != NULL) {
+ len = strlen(pass_utf8);
+ assert(len < sizeof(lw->pwd));
+ memcpy(lw->pwd, pass_utf8, len + 1);
+ ami_utf8_free(pass_utf8);
+ }
lw->objects[OID_MAIN] = WindowObj,
WA_ScreenTitle, ami_gui_get_screen_title(),
@@ -220,14 +229,19 @@ static void ami_401login_login(struct gui_login_window
*lw)
char *user;
char *pass;
+ /* Get username and password from string gadgets */
GetAttr(STRINGA_TextVal,lw->objects[GID_USER],(ULONG *)&user);
GetAttr(STRINGA_TextVal,lw->objects[GID_PASS],(ULONG *)&pass);
+ /* Convert from local charset to UTF-8 */
char *user_utf8 = ami_to_utf8_easy(user);
char *pass_utf8 = ami_to_utf8_easy(pass);
if(user_utf8 && pass_utf8) {
lw->cb(user_utf8, pass_utf8, lw->cbpw);
+
+ ami_utf8_free(user_utf8);
+ ami_utf8_free(pass_utf8);
} else {
amiga_warn_user("NoMemory", "");
}
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org