diff --git a/examples/publish.scm b/examples/publish.scm index 25b0aa4..d5a55b2 100755 --- a/examples/publish.scm +++ b/examples/publish.scm @@ -164,7 +164,7 @@ subsystem has been initialized." (let ((err (current-error-port))) (cond ((or (not *args*) (null? *args*) (> (length *args*) 1)) - (display "Usage: examples/gnunet-publish.scm [options] filename\n" err)) + (display "Usage: examples/publish.scm [options] filename\n" err)) ((and *pseudonym* (not *id*)) (display "Option `-t' is required when using option `-P'.\n" err)) ((and (not *pseudonym*) *id*) @@ -187,7 +187,6 @@ subsystem has been initialized." (define (main args) "The main function to publish content to GNUnet." - (setup-log "publish.scm" #:debug) (set! *config* (load-configuration "~/.gnunet/gnunet.conf")) (let* ((options (getopt-long args %options))) (set! *simulate?* (option-ref options 'simulate #f)) diff --git a/examples/search-ns.scm b/examples/search-ns.scm index e90f1bb..0956d9a 100755 --- a/examples/search-ns.scm +++ b/examples/search-ns.scm @@ -47,7 +47,7 @@ (set! *config* (load-configuration *config-file*)) (set! *binary-name* (car args)) (cond ((not (= (length args) 3)) - (simple-format #t "Usage: ~a \n" (car args))) + (simple-format #t "Usage: ~a NAMESPACE IDENTIFIER\n" (car args))) (else (set! *ns-name* (cadr args)) (set! *identifier* (caddr args)) diff --git a/examples/search.scm b/examples/search.scm index 4e07b0b..af4a2ca 100755 --- a/examples/search.scm +++ b/examples/search.scm @@ -32,12 +32,14 @@ (define *config* (load-configuration *config-file*)) (define *fs-handle* #f) -(define *search-handle* #f) (define *search-uri* #f) +(define *search-handle* #f) (define (main args) - (call-with-scheduler *config* (first-task args))) + (if (= 1 (length args)) + (simple-format #t "Usage: ~a KEY...\n" (car args)) + (call-with-scheduler *config* (first-task args)))) (define (first-task args) (lambda (_) diff --git a/gnu/gnunet/binding-utils.scm b/gnu/gnunet/binding-utils.scm index 1dd9d87..9f78def 100644 --- a/gnu/gnunet/binding-utils.scm +++ b/gnu/gnunet/binding-utils.scm @@ -35,7 +35,8 @@ string->pointer* pointer->string* make-c-struct* - or%)) + or% + and=>%)) (define (getf plist value) (let ((entry (member value plist))) @@ -95,6 +96,13 @@ if STRING is empty (\"\")." (if (eq? %null-pointer x*) (or% y ...) x*))))) + +;; a variant of and=> for foreign pointers. +(define-syntax-rule (and=>% x f) + (let ((x* x)) + (if (eq? %null-pointer x*) + #f + (f x*)))) ;;; Utilities diff --git a/gnu/gnunet/fs/progress-info.scm b/gnu/gnunet/fs/progress-info.scm index 25cb6ee..0f2c034 100644 --- a/gnu/gnunet/fs/progress-info.scm +++ b/gnu/gnunet/fs/progress-info.scm @@ -359,7 +359,7 @@ two keywords. If status is unknown, raises an error." ((#:completed) (destructuring-bind (%chk-uri %sks-uri) specs (list (wrap-uri %chk-uri) - (wrap-uri %sks-uri) + (and=>% %sks-uri wrap-uri) #f))) ((#:error) (list #f #f (pointer->string* (car specs))))