building a C : const char *paths[] added by semarie on Sat Apr 15 15:22:04 2017

(define (strings->pointer-vector path-list)
  (let ((pv (make-pointer-vector (+ 1 (length path-list)))))
    (let loop ((i 0) (path-list path-list))
      (cond
       ;; set NULL pointer at end of list
       ((null? path-list)
        (pointer-vector-set! pv i #f)
        pv)

       ;; convert string to c-pointer and add it to pointer-vector
       (else
        (pointer-vector-set! pv i (string->c-pointer (car path-list)))
        (loop (+ 1 i) (cdr path-list)))))))

(define string->c-pointer
  (foreign-lambda* c-pointer ((c-string str)) "C_return((void *)str);"))