From e45148d36e6cade1f76de996b1ea53c84d392fea Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 16 Dec 2012 14:39:49 -0500 Subject: [PATCH] X11 messageboxes should treat "\r\n" as "\n" by ignoring the '\r' char. --- src/video/x11/SDL_x11messagebox.c | 4 ++++ test/testmessage.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/video/x11/SDL_x11messagebox.c b/src/video/x11/SDL_x11messagebox.c index e7d71e1d8..dbfe08d0b 100644 --- a/src/video/x11/SDL_x11messagebox.c +++ b/src/video/x11/SDL_x11messagebox.c @@ -250,6 +250,10 @@ X11_MessageBoxInitPositions( SDL_MessageBoxDataX11 *data ) data->text_height = IntMax( data->text_height, height ); text_width_max = IntMax( text_width_max, plinedata->width ); + if (lf && (lf > text) && (lf[-1] == '\r')) { + plinedata->length--; + } + text += plinedata->length + 1; /* Break if there are no more linefeeds. */ diff --git a/test/testmessage.c b/test/testmessage.c index a4699c713..3a8cf6be0 100644 --- a/test/testmessage.c +++ b/test/testmessage.c @@ -49,6 +49,15 @@ main(int argc, char *argv[]) quit(1); } + success = SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, + "Simple MessageBox", + "This is a simple MessageBox with a newline:\r\nHello world!", + NULL); + if (success == -1) { + printf("Error Presenting MessageBox: %s\n", SDL_GetError()); + quit(1); + } + /* Google says this is Traditional Chinese for "beef with broccoli" */ success = SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "UTF-8 Simple MessageBox", @@ -59,6 +68,16 @@ main(int argc, char *argv[]) quit(1); } + /* Google says this is Traditional Chinese for "beef with broccoli" */ + success = SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, + "UTF-8 Simple MessageBox", + "Unicode text and newline:\r\n'牛肉西蘭花'\n'牛肉西蘭花'", + NULL); + if (success == -1) { + printf("Error Presenting MessageBox: %s\n", SDL_GetError()); + quit(1); + } + { const SDL_MessageBoxButtonData buttons[] = { {