From ec61519fcbe346bfada5ce8d652453c6bc5981a9 Mon Sep 17 00:00:00 2001 From: midipix Date: Fri, 20 May 2016 03:35:27 -0400 Subject: slbt_exec_link_adjust_argument_vector(): switch from fscanf to fgets. --- src/logic/slbt_exec_link.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c index d279997..1273972 100644 --- a/src/logic/slbt_exec_link.c +++ b/src/logic/slbt_exec_link.c @@ -243,6 +243,7 @@ static int slbt_exec_link_adjust_argument_vector( char * mark; char * darg; char * dot; + char * dep; FILE * fdeps; char * dpath; bool freqd; @@ -369,13 +370,20 @@ static int slbt_exec_link_adjust_argument_vector( } if (dpath) { - *aarg = darg; + if (!stat(dpath,&st) && (fdeps = fopen(dpath,"r"))) { + dep = fgets(darg,st.st_size+1,fdeps); + *aarg = darg; - if ((fdeps = fopen(dpath,"r"))) { - while (fscanf(fdeps,"%s\n",darg) == 1) { + for (; dep; ) { *aarg++ = darg; - darg += strlen(darg); - darg++; + darg += strlen(dep); + + if (*--darg == '\n') + *darg = 0; + else + darg++; + + dep = fgets(darg,st.st_size+1,fdeps); } if (ferror(fdeps)) { -- cgit v1.2.3