Changeset 36698 in project


Ignore:
Timestamp:
10/14/18 10:37:42 (5 weeks ago)
Author:
sjamaan
Message:

qwiki: Handle non-existing files a bit more gracefully

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/5/qwiki/trunk/qwiki.scm

    r36104 r36698  
    341341                       (read-urlencoded-request-data req)
    342342                       '()))
    343          (new-file (not (file-exists? source-file)))
    344          (file-rev (if new-file 0 (get-last-modified-revision source-file)))
     343         (file-rev (or (and (file-exists? source-file) (get-last-modified-revision source-file)) 0))
    345344         ;; Used for the spam check, but not sent into the form
    346          (file-author (if new-file "-" (cadar (get-history source-file file-rev 1))))
     345         (file-author (if (zero? file-rev) "-" (cadar (get-history source-file file-rev 1))))
    347346         (source (string-translate*
    348347                  (or (alist-ref 'source postdata)
    349                       (and (not new-file)
    350                            (with-input-from-file source-file read-string))
    351                       "")
     348                      (handle-exceptions exn ""
     349                        (with-input-from-file source-file read-string)))
    352350                  ;; normalize all EOL styles to Unix line endings
    353351                  '(("\r\n" . "\n") ("\r" . "\n"))))
     
    356354         (username (alist-ref 'username postdata eq? ""))
    357355         (password (alist-ref 'password postdata eq? ""))
    358          (edit-rev (or (string->number (alist-ref 'edit-rev postdata eq?
    359                                                   (number->string file-rev))) 0))
     356         (edit-rev (or (string->number
     357                        (alist-ref 'edit-rev postdata eq?
     358                                   (number->string file-rev))) 0))
    360359         (make-spam-control-hash
    361360          (lambda (answer time)
     
    486485                                    (value "Preview"))))))
    487486             `(title ,(sprintf "Editing page: ~A" (or title (string-join path "/"))))
    488              (if new-file '(new-file) '(existing-file))))))
     487             (if (zero? file-rev) '(new-file) '(existing-file))))))
    489488    (cond
    490489     ((frozen? source-file) (redirect-to-qwiki-page req)) ; Default action
Note: See TracChangeset for help on using the changeset viewer.