summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiep Ha <thiepha@gmail.com>2016-08-16 09:02:08 +0900
committerThiep Ha <thiepha@gmail.com>2016-08-16 09:02:08 +0900
commitb93262e8b218751a6695f500f0457476d34a137e (patch)
tree92afb072d2790e1364f834a47470cff05093082d
parent150745c7d60c55cd6cdadfd5e168a84f28922033 (diff)
downloadefl-devs/thiep/win32_cnp.tar.gz
tmp: add correct new line funcdevs/thiep/win32_cnp
-rw-r--r--src/lib/elementary/elm_cnp.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/lib/elementary/elm_cnp.c b/src/lib/elementary/elm_cnp.c
index 9fc2483e04..ed1e533e78 100644
--- a/src/lib/elementary/elm_cnp.c
+++ b/src/lib/elementary/elm_cnp.c
@@ -4602,6 +4602,60 @@ _win32_elm_widget_window_get(const Evas_Object *obj)
return win;
}
+static char *
+_win32_elm_cnp_correct_newline(char *data)
+{
+ if (!data) return NULL;
+
+ int len = strlen(data);
+ printf("len: %d, data: '%s'\n", len, data);
+ char *ret = calloc(1, len + 1);
+ int i = 0;
+ //unix is \n, windows is \r\n
+ char *p = data, *prv = data;
+ while(*p != '\0')
+ {
+ printf("%c", *p);
+ if (*p == '\n')
+ {
+ if ((prv != p) && (*prv != '\r'))
+ {
+ if (i == len)
+ {
+ ret = realloc(ret, i + 2);
+ len += 2;
+ }
+ ret[i++] = '\r';
+ ret[i++] = '\n';
+ }
+ else
+ {
+ if (i == len)
+ {
+ ret = realloc(ret, i + 1);
+ len++;
+ }
+ ret[i++] = *p;
+ }
+ }
+ else
+ {
+ if (i == len)
+ {
+ ret = realloc(ret, i + 1);
+ len++;
+ }
+ ret[i++] = *p;
+ }
+ prv = p;
+ p++;
+
+ //printf("\n");
+ }
+ ret[i] = '\0';
+ return ret;
+}
+
static void
_win32_elm_cnp_converter_cb(void *udata, Ecore_Win32_Selection_Format format, void **data, int *length)
{