[Lisppaste-cvs] CVS update: lisppaste2/web-server.lisp

Brian Mastenbrook bmastenbrook at common-lisp.net
Sun Mar 7 05:11:08 UTC 2004


Update of /project/lisppaste/cvsroot/lisppaste2
In directory common-lisp.net:/tmp/cvs-serv21802

Modified Files:
	web-server.lisp 
Log Message:
cleanup, formatting change per Xach

Date: Sun Mar  7 00:11:08 2004
Author: bmastenbrook

Index: lisppaste2/web-server.lisp
diff -u lisppaste2/web-server.lisp:1.31 lisppaste2/web-server.lisp:1.32
--- lisppaste2/web-server.lisp:1.31	Sat Mar  6 23:44:56 2004
+++ lisppaste2/web-server.lisp	Sun Mar  7 00:11:08 2004
@@ -1,4 +1,4 @@
-;;;; $Id: web-server.lisp,v 1.31 2004/03/07 04:44:56 bmastenbrook Exp $
+;;;; $Id: web-server.lisp,v 1.32 2004/03/07 05:11:08 bmastenbrook Exp $
 ;;;; $Source: /project/lisppaste/cvsroot/lisppaste2/web-server.lisp,v $
 
 ;;;; See the LICENSE file for licensing information.
@@ -231,6 +231,27 @@
     (if (< l1 l2) nil
       (string= (subseq str (- l1 l2) l1) end))))
 
+(defun format-paste (paste this-url paste-number &optional annotation)
+  `((table :width "100%" :cellpadding 2)
+    (tr ((td :align "left" :width "0%" :nowrap "nowrap")
+         ,(if annotation
+              "Annotation number "
+              "Paste number ") ,paste-number ": ")
+        ((td :align "left" :width "100%") (b ,(encode-for-pre (paste-title paste)))))
+    (tr ((td :align "left" :nowrap "nowrap") "Pasted by: ")
+        ((td :align "left" :width "100%") ,(encode-for-pre (paste-user paste))))
+    (tr (td)
+        ((td :align "left" :width "100%") ,(time-delta (paste-universal-time paste))))
+    ,@(if (not annotation)
+          `((tr (td)
+                ((td :align "left" :width "100%") ,(encode-for-pre (paste-channel paste))
+                 " | "
+                 ((a :href ,(irc-log-link (paste-universal-time paste) (paste-channel paste))) "Context in IRC logs")))))
+    (tr ((td :align "left" :valign "top" :nowrap "nowrap") "Paste contents:")
+        ((td :width "100%") ((a :href ,(concatenate 'string this-url "/raw")) "(raw source)")))
+    (tr (td (p)))
+    (tr ((td :bgcolor "#F4F4F4" :colspan 2 :width "100%") (tt ,(encode-for-tt (paste-contents paste)))))))
+
 (defmethod araneida:handle-request-response ((handler display-paste-handler) method request)
   ; XXX request-unhandled-part will be exported in 0.81
   (let* ((paste-number (parse-integer
@@ -266,48 +287,16 @@
 		(title "Paste number " ,paste-number)
 		,(rss-link-header))
 	       (body
-		((table :width "100%" :cellpadding 2)
-		 (tr ((td :align "left" :width "0%" :nowrap "nowrap") "Paste number " ,paste-number ": ")
-		     ((td :align "left" :width "100%") (b ,(encode-for-pre (paste-title paste)))))
-		 (tr ((td :align "left" :nowrap "nowrap") "Pasted by: ")
-		     ((td :align "left" :width "100%") ,(encode-for-pre (paste-user paste))))
-		 (tr (td)
-		     ((td :align "left" :width "100%") ,(time-delta (paste-universal-time paste))))
-		 (tr (td)
-		     ((td :align "left" :width "100%") ,(encode-for-pre (paste-channel paste))
-		      " | "
-		      ((a :href ,(irc-log-link (paste-universal-time paste) (paste-channel paste))) "Context in IRC logs")))
-		 (tr ((td :align "left" :valign "top" :nowrap "nowrap") "Paste contents:")
-		     ((td :width "100%") ((a :href ,(concatenate 'string (araneida:urlstring (araneida:request-url request)) "/raw")) "(raw source)")))
-		 (tr (td (p)))
-		 (tr ((td :bgcolor "#F4F4F4" :colspan 2 :width "100%") (tt ,(encode-for-tt (paste-contents paste)))))
-		 ,@(if (paste-annotations paste)
-		       `((tr (td (p)) (td))
-			 (tr ((th :align "left" :colspan 2) "Annotations for this paste: "))
-			 ,@(reduce #'append (nreverse
-					     (mapcar #'(lambda (a)
-							 `((tr (td (p)) (td))
-							   (tr
-							    (td ((a :name ,(prin1-to-string (paste-number a))) "Title:"))
-							    ((td :align "left") ,(encode-for-pre (paste-title a))
-							     " | "
-							     ((a :href ,(irc-log-link (paste-universal-time paste) (paste-channel paste))) "Context in IRC logs")))
-							   (tr
-							    (td "By:")
-							    ((td :align "left") ,(encode-for-pre (paste-user a))))
-							   (tr
-							    (td)
-							    ((td :align "left") ,(time-delta (paste-universal-time a))))
-							   (tr
-							    (td)
-							    ((td :align "left") ((a :href ,(format nil "~A,~A/raw" (araneida:urlstring (araneida:request-url request)) (paste-number a))) "(raw source)")))
-							   (tr
-							    ((td :valign "top" :nowrap "nowrap") "Contents:")
-							    ((td :bgcolor "#F4F4F4" :width "100%") (tt ,(encode-for-tt (paste-contents a)))))))
-						     (paste-annotations paste)))))
-		     `((tr (td (p)) (td))
-		       (tr ((td :align "left" :colspan 2 :nowrap "nowrap") "This paste has no annotations.")))))
-		(p)
+		,(format-paste paste (araneida:urlstring (araneida:request-url request)) paste-number)
+                ,(if (paste-annotations paste)
+                     `(p
+                       "Annotations for this paste: " (hr)
+                       ,@(nreverse
+                                           (mapcar #'(lambda (a)
+                                                       (format-paste a
+                                                                     (format nil "~A,~A" (araneida:urlstring (araneida:request-url request)) (paste-number a)) (paste-number a) t))
+                                                   (paste-annotations paste))))
+		     `(p "This paste has no annotations."))
 		((form :method post :action ,(araneida:urlstring *new-paste-url*))
 		 ((input :type hidden :name "annotate" :value ,(prin1-to-string (paste-number paste))))
 		 (center ((input :type submit :value "Annotate this paste"))))





More information about the Lisppaste-cvs mailing list