freebsd-ports/chinese/fcitx/files/getline-src_lib_fcitx-utils_utils.c
Michael Scheidell 83691957f1 - Unbreak on i386 on 7.x
PR:		ports/169151
Submitted by:	Zhihao Yuan <lichray@gmail.com> (maintainer)
Reported by:	scheidell@ (me)
2012-07-03 12:08:06 +00:00

25 lines
687 B
C

--- src/lib/fcitx-utils/utils.c.orig 2011-10-02 05:43:11.000000000 -0500
+++ src/lib/fcitx-utils/utils.c 2011-11-13 16:32:39.627873790 -0600
@@ -249,4 +249,22 @@ char* fcitx_get_process_name()
#endif
}
+FCITX_EXPORT_API
+ssize_t getline(char ** p, size_t * cap, FILE * fp) {
+ ssize_t l;
+ if ((!*cap || !*p) && (*p = malloc(128))) *cap = 128;
+ if (!*p) return -1;
+ fgets(*p, *cap, fp);
+ l = strlen(*p);
+ while (!feof(fp) && (*p)[l - 1] != '\n') {
+ if (!(*p = realloc(*p, *cap *= 2))) {
+ *cap = 0;
+ return -1;
+ }
+ fgets(*p + l, *cap / 2, fp);
+ l += strlen(*p + l);
+ }
+ return feof(fp) ? -1 : l;
+}
+
// kate: indent-mode cstyle; space-indent on; indent-width 0;