feat: 9.5.9
This commit is contained in:
parent
cb1753732b
commit
35f43a7909
1084 changed files with 558985 additions and 0 deletions
34
stex/src/fixbibtex.ss
Executable file
34
stex/src/fixbibtex.ss
Executable file
|
@ -0,0 +1,34 @@
|
|||
#! /usr/bin/scheme --program
|
||||
|
||||
;;; fixbibtex.ss
|
||||
|
||||
;;; fixbibtex removes the line breaks inserted by bibtex, sometimes
|
||||
;;; in the middle of tex commands or urls.
|
||||
|
||||
(import (chezscheme))
|
||||
(unless (= (length (command-line-arguments)) 1)
|
||||
(printf "usage: fixbibtex <filename>\n")
|
||||
(exit 1))
|
||||
(define fn (car (command-line-arguments)))
|
||||
|
||||
(let ([s (call-with-port (open-input-file fn) get-string-all)])
|
||||
(with-input-from-string s
|
||||
(lambda ()
|
||||
(with-output-to-file fn
|
||||
(lambda ()
|
||||
(define (s0 c)
|
||||
(unless (eof-object? c)
|
||||
(case c
|
||||
[(#\\) (write-char c) (s1 (read-char))]
|
||||
[(#\%) (s2 (read-char))]
|
||||
[else (write-char c) (s0 (read-char))])))
|
||||
(define (s1 c) ; seen \
|
||||
(unless (eof-object? c)
|
||||
(write-char c)
|
||||
(s0 (read-char))))
|
||||
(define (s2 c) ; seen %
|
||||
(case c
|
||||
[(#\newline) (s0 (read-char))]
|
||||
[else (write-char #\%) (s0 c)]))
|
||||
(s0 (read-char)))
|
||||
'replace))))
|
Reference in a new issue