=================================================================== RCS file: /ftp/pub/users/ronald/proyectos/rcs-gopher/RCS/rcs-gopher_gophernicus.scm,v retrieving revision 1.7 retrieving revision 1.13 diff -r1.7 -r1.13 2,4c2,5 < ;; - Funci??n para generar diffs a partir del nombre de un proyecto, de un archivo y dos revisiones. < ;; - Funci??n para generar el men?? de revisiones para elegir la primera revisi??n. < ;; - Funci??n para generar el men?? de revisiones para elegir la segunda revisi??n y mostrar el diff. --- > ;; - Funci??n para generar diffs a partir del nombre de un proyecto, de un archivo y dos revisiones. YA > ;; Para hacer esto, modificar o utilizar de base la funci??n rcs-revisiones y obtener-selector-de-revisi??n. YA > ;; - Funci??n para generar el men?? de revisiones para elegir la primera revisi??n. YA > ;; - Funci??n para generar el men?? de revisiones para elegir la segunda revisi??n y mostrar el diff. YA 6,7c7,8 < ;; - Funci??n para generar la p??gina principal de un proyecto de rcs-gopher. CASI < ;; - Funci??n para generar la p??gina principal de una colecci??n de proyectos de rcs-gopher. --- > ;; - Funci??n para generar la p??gina principal de un proyecto de rcs-gopher. YA > ;; - Funci??n para generar la p??gina principal de una colecci??n de proyectos de rcs-gopher. YA 15c16 < (define *proyectos* '("rcs-gopher")) --- > (define *proyectos* '("rcs-gopher" "pxle")) 37,43c38,68 < (simple-format #f "~A~A/RCS/~A,v" < *directorio-base-de-proyectos* < nombre-de-proyecto < archivo)) < < (define (obtener-selector-de-revisi??n nombre-de-proyecto archivo revisi??n) < (simple-format #f "~A~A?revs/~A/~A/~A" --- > (if archivo > (simple-format #f "~A~A/RCS/~A,v" > *directorio-base-de-proyectos* > nombre-de-proyecto > archivo) > (simple-format #f "~A~A/RCS/" > *directorio-base-de-proyectos* > nombre-de-proyecto))) > > (define (obtener-selector-de-revisi??n secci??n nombre-de-proyecto archivo revisi??n-a revisi??n-b) > (if (null? revisi??n-b) > (simple-format #f "~A~A?~A/~A/~A/~A" > *ruta-base-cgi-bin* > *nombre-del-script-de-rcs-gopher* > secci??n > nombre-de-proyecto > revisi??n-a > archivo) > (simple-format #f "~A~A?~A/~A/~A/~A/~A" > *ruta-base-cgi-bin* > *nombre-del-script-de-rcs-gopher* > secci??n > nombre-de-proyecto > revisi??n-a > revisi??n-b > archivo))) > > (define (enlace-a-secci??n tipo secci??n nombre-de-proyecto archivo) > (simple-format #t "~A~A\t~A~A?~A/~A/~A\t~A\n" > tipo > archivo 45a71 > secci??n 48c74 < revisi??n)) --- > (host-y-puerto))) 53c79,80 < (obtener-selector-de-revisi??n nombre-de-proyecto --- > (obtener-selector-de-revisi??n "revs" > nombre-de-proyecto 55c82 < "ULT") --- > "ULT" #nil) 75c102 < (define (rcs-revisiones nombre archivo) --- > (define (rcs-revisiones nombre archivo secci??n tipo-de-??tem revisi??n-base) 87,89c114,128 < (simple-format #t "~A~A\t~A\tsdf.org\t70\n" < "0" (string-titlecase (destabulizar l??nea)) < (obtener-selector-de-revisi??n nombre archivo (obtener-n??mero-de-revisi??n l??nea)))))) --- > (simple-format #t "~A~A\t~A\t~A\t~A\n" > tipo-de-??tem (string-titlecase (destabulizar l??nea)) > (if (null? revisi??n-base) > (obtener-selector-de-revisi??n secci??n > nombre > archivo > (obtener-n??mero-de-revisi??n l??nea) > #nil) > (obtener-selector-de-revisi??n secci??n > nombre > archivo > revisi??n-base > (obtener-n??mero-de-revisi??n l??nea))) > *host* > *puerto*)))) 108a148,167 > (define (rcs-ver-diff nombre archivo revisi??n-a revisi??n-b) > (if (and (member nombre *proyectos*) > (access? (obtener-ruta-de-archivo > nombre > archivo) > R_OK)) > (let ((puerto (open-pipe* OPEN_READ "rcsdiff" (simple-format #f "-r~A" (if (string= revisi??n-a "ULT") > "" > revisi??n-a)) > (simple-format #f "-r~A" (if (string= revisi??n-b "ULT") > "" > revisi??n-b)) > (obtener-ruta-de-archivo nombre archivo))) > (l??nea "")) > (while ((lambda () > (set! l??nea (read-line puerto)) > (not (eof-object? l??nea)))) > (simple-format #t "~A\n" l??nea))) > (error-en-archivo "No existe este proyecto o archivo."))) > 151a211,217 > (define (generar-entradas-por-archivo nombre funci??n) > (let ((directorio-proyecto (simple-format #f "~A~A/RCS" > *directorio-base-de-proyectos* > nombre))) > (for-each funci??n > (scandir directorio-proyecto)))) > 155c221 < nombre "") --- > nombre #f) 159c225,232 < (generar-entradas-por-archivo nombre)) --- > (generar-entradas-por-archivo nombre > (lambda (archivo) > (if (string-suffix? ",v" archivo) > (rcs-??ltima-revisi??n > nombre > (string-trim-right > archivo > (char-set #\, #\v))))))) 162,166c235,302 < (rcs-ver-revisi??n "rcs-gopher" "rcs-gopher_gophernicus.scm" "1.2") < (rcs-ver-log "rcs-gopher" "rcs-gopher_gophernicus.scm" "1.2") < (rcs-revisiones "rcs-gopher" "rcs-gopher_gophernicus.scm") < (generar-entradas-comunes "rcs-gopher") < (generar-entradas-por-archivo "rcs-gopher") --- > (define (rcs-men??-de-secci??n-por-archivo tipo secci??n nombre) > (generar-entradas-por-archivo nombre > (lambda (archivo) > (if (string-suffix? ",v" archivo) > (enlace-a-secci??n tipo > secci??n > nombre > (string-trim-right > archivo > (char-set #\, #\v))))))) > > (define (rcs-men??-principal) > (for-each (lambda (proyecto) > (simple-format #t "1~A\t~A\t~A\t~A\n" > proyecto > (obtener-selector-men??-secci??n "inicio" proyecto) > *host* > *puerto*)) > *proyectos*)) > > (define (parsear-selector texto) > (apply values (string-split texto #\/))) > > (define (rcs-principal) > (let ((selector (getenv "SEARCHREQUEST"))) > (define-values (secci??n . par??metros) > (parsear-selector selector)) > (let ((tama??o (length par??metros))) > (cond > ((and (string= secci??n "inicio") > (= tama??o 0)) > (rcs-men??-principal)) > ((and (string= secci??n "inicio") > (= tama??o 1)) > (rcs-men??-principal-proyecto (list-ref par??metros 0))) > ((and (string= secci??n "revs") > (= tama??o 1)) > (rcs-men??-de-secci??n-por-archivo "1" "revs" (list-ref par??metros 0))) > ((and (string= secci??n "revs") > (= tama??o 2)) > (rcs-revisiones (list-ref par??metros 0) (list-ref par??metros 1) "revs" "0" #nil)) > ((and (string= secci??n "revs") > (= tama??o 3)) > (rcs-ver-revisi??n (list-ref par??metros 0) (list-ref par??metros 2) (list-ref par??metros 1))) > ((and (string= secci??n "diffs") > (= tama??o 1)) > (rcs-men??-de-secci??n-por-archivo "1" "diffs" (list-ref par??metros 0))) > ((and (string= secci??n "diffs") > (= tama??o 2)) > (rcs-revisiones (list-ref par??metros 0) (list-ref par??metros 1) "diffs" "1" #nil)) > ((and (string= secci??n "diffs") > (= tama??o 3)) > (rcs-revisiones (list-ref par??metros 0) (list-ref par??metros 2) "diffs" "0" (list-ref par??metros 1))) > ((and (string= secci??n "diffs") > (= tama??o 4)) > (rcs-ver-diff (list-ref par??metros 0) (list-ref par??metros 3) (list-ref par??metros 1) (list-ref par??metros 2))) > ((and (string= secci??n "logs") > (= tama??o 1)) > (rcs-men??-de-secci??n-por-archivo "1" "logs" (list-ref par??metros 0))) > ((and (string= secci??n "logs") > (= tama??o 2)) > (rcs-revisiones (list-ref par??metros 0) (list-ref par??metros 1) "logs" "0" #nil)) > ((and (string= secci??n "logs") > (= tama??o 3)) > (rcs-ver-log (list-ref par??metros 0) (list-ref par??metros 2) (list-ref par??metros 1))) > )))) > > (rcs-principal)