Make editor save source before compiling
This commit is contained in:
parent
ab9ff442ef
commit
4f096b9820
1 changed files with 31 additions and 30 deletions
|
@ -766,36 +766,37 @@ Additionally ensures correct line numbers on the way, as a bonus."
|
||||||
(defun com-compile-buffer ()
|
(defun com-compile-buffer ()
|
||||||
(when *refresh-asm-functions-p*
|
(when *refresh-asm-functions-p*
|
||||||
(usc:usc-init))
|
(usc:usc-init))
|
||||||
(let* ((src (buffer-string (current-buffer *editor*)))
|
(let* ((timestring (multiple-value-bind (seconds minutes hours day month year)
|
||||||
(bytes
|
(get-decoded-time)
|
||||||
(handler-case
|
(format nil "~D-~2,'0D-~2,'0D_~2,'0D-~2,'0D-~2,'0D"
|
||||||
(usc:compile-string-to-bytes src :print-ir-p t)
|
year month day
|
||||||
(usc:usc-error (c)
|
hours minutes seconds)))
|
||||||
(let ((source (cdr (usc:source c))))
|
(bin-name (format nil "compiled-program_~A.bin" timestring))
|
||||||
(compile-fail-prompt c (car source) (cdr source)))
|
(src-name (format nil "source-program_~A.c6l" timestring))
|
||||||
nil))))
|
(src (buffer-string (current-buffer *editor*))))
|
||||||
(unless (null bytes)
|
(with-open-file (output src-name :direction :output
|
||||||
(let* ((timestring (multiple-value-bind (seconds minutes hours day month year)
|
:if-exists :supersede)
|
||||||
(get-decoded-time)
|
(write-string src output))
|
||||||
(format nil "~D-~2,'0D-~2,'0D_~2,'0D-~2,'0D-~2,'0D"
|
(let ((bytes
|
||||||
year month day
|
(handler-case
|
||||||
hours minutes seconds)))
|
(usc:compile-string-to-bytes src :print-ir-p t)
|
||||||
(bin-name (format nil "compiled-program_~A.bin" timestring))
|
(usc:usc-error (c)
|
||||||
(src-name (format nil "source-program_~A.c6l" timestring)))
|
(let ((source (cdr (usc:source c))))
|
||||||
(with-open-file (output src-name :direction :output
|
(compile-fail-prompt c (car source) (cdr source)))
|
||||||
:if-exists :supersede)
|
nil))))
|
||||||
(write-string src output))
|
(unless (null bytes)
|
||||||
(with-open-file (output bin-name :direction :output
|
(let* ()
|
||||||
:element-type '(unsigned-byte 8)
|
(with-open-file (output bin-name :direction :output
|
||||||
:if-exists :supersede)
|
:element-type '(unsigned-byte 8)
|
||||||
(dolist (byte bytes)
|
:if-exists :supersede)
|
||||||
(write-byte byte output)))
|
(dolist (byte bytes)
|
||||||
(clear-screen)
|
(write-byte byte output)))
|
||||||
(usc::send-data-to-c64 (coerce bytes 'vector)
|
(clear-screen)
|
||||||
'draw-transfer-progress)
|
(usc::send-data-to-c64 (coerce bytes 'vector)
|
||||||
(clear-screen)
|
'draw-transfer-progress)
|
||||||
(redisplay-view (current-view *editor*))
|
(clear-screen)
|
||||||
(redisplay-status-line :completely-p t)))))
|
(redisplay-view (current-view *editor*))
|
||||||
|
(redisplay-status-line :completely-p t))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue