- char *end_char, old_char;
-
- end_char = cur_char + RB_WordLen (cur_char);
- old_char = *end_char;
- *end_char = '\0';
- cur_char = RB_StrDup (cur_char);
- *end_char = old_char;
- return (cur_char);
+ char *n;
+ int len;
+
+ if (strchr(cur_char, '\n'))
+ *strchr(cur_char, '\n') = '\0';
+
+ len = RB_WordLen(cur_char);
+
+ n = calloc(len + 1, sizeof(*cur_char));
+ strncpy(n, cur_char, len);
+ return n;