2011-06-28 30 views
2

私はGimpの中.scmとして、このスクリプトを持っています。ファイルの先頭にあるコメントでGIMPでこのスクリプトを処理できないのはなぜですか?

;MIT license. 

(define (script-fu-export-layers img drw path outnameformat) 
; credit to Vijay Mathew on Stack Overflow for the expand keywords function 
    (let ((expand-keywords (lambda(format tokens) 
    (let loop ((slist (string->list string)) 
       (in-replace-mode #f) 
       (result "")) 
     (if (not (null? slist)) 
      (let ((c (car slist))) 
      (cond (in-replace-mode 
        (let ((token (car (cdr (assoc c tokens))))) 
        (loop (cdr slist) #f (string-append result token)))) 
        ((char=? C#\~) 
        (loop (cdr slist) #t result)) 
        (else 
        (loop (cdr slist) #f (
         string-append result (make-string 1 c)))))) 
      result))))) 
    (for-each (lambda (layer) 
    (let* (
     (name (expand-keywords outnameformat '(
      (#\i (car(gimp-image-get-name img))) 
      (#\l (car(gimp-drawable-get-name layer)))))) 
     (outpath (string-append path "/" name))) 
     (gimp-file-save RUN-NONINTERACTIVE img layer outpath name) 
)) (vector->list(cadr (gimp-image-get-layers img))))) 
) 

(script-fu-register 
    "script-fu-export-layers" 
    "L_ayers" 
    "Export all layers as individual files." 
    "Stuart P. Bentley <[email protected]>" 
    "Copyright 2011 Stuart P. Bentley" 
    "June 28, 2011" 
    "*" 
    SF-IMAGE  "The Image"   0 
    SF-DRAWABLE "The Layer"   0 
    SF-DIRNAME  "Output directory" "" 
    SF-STRING  "Filename Format (~i = image name, ~l = layer name)" 
                  "~i-~l.png" 
) 
(script-fu-menu-register "script-fu-export-layers" "<Image>/File/E_xport") 

を、スクリプトがまったくロードされません。コメントが削除されると、「C:\ Users \ Stuart.gimp-2.6 \ scripts \ export-layers.scmを読み込み中にエラーが発生しました:エラー:一致しないかっこ:1」というスクリプトをリフレッシュするときにエラーが発生します。私はCodepad(スクリプト-fu-registerポイントで壊れます)で実行すると、それがうまく解析されるので、私はそれが何であるか分かりません。

+3

もし第1のコメントを吐くのであれば、あなたは ';コメントするのですか? –

+0

@Alex K .: D'oh。それは問題を捕らえる正しい道に私を置いた。 –

+1

最後のスクリプトは、GIMP Plugin Registry(http://registry.gimp.org/node/25394)にリストされています。 –

答えて

3

この現象は、行末が見つからなかった場合(後続のすべてのテキストをコメントアウトするコメント)に発生する現象と一貫しています。 Windows上でCR行末のファイルを保存するなど、あなたのエディタが何かばかげたことをしていないことを確認してください。

+1

いいえ、LFの行末ではありません。*「CRA」は、「これまで使用されていたMacOSのようなもので、10年以上も使われていません。 –

関連する問題