Changeset 18021 in project


Ignore:
Timestamp:
05/09/10 20:15:32 (9 years ago)
Author:
Mario Domenech Goulart
Message:

awful.scm (trunk): whitespace-cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/awful/trunk/awful.scm

    r17997 r18021  
    109109  (unless (enable-reload)
    110110    (add-resource! (reload-path)
    111                    (root-path)
    112                    (lambda () (load-apps apps))))
     111                   (root-path)
     112                   (lambda () (load-apps apps))))
    113113  (reload-message))
    114114
     
    125125(define (maybe-compress-javascript js no-javascript-compression)
    126126  (if (and (enable-javascript-compression)
    127            (javascript-compressor)
    128            (not no-javascript-compression))
     127           (javascript-compressor)
     128           (not no-javascript-compression))
    129129      (string-trim-both ((javascript-compressor) js))
    130130      js))
     
    136136    (with-output-to-file (debug-file)
    137137      (lambda ()
    138         (print (concat args)))
     138        (print (concat args)))
    139139      append:)))
    140140
     
    151151  (if (list? var)
    152152      (for-each (lambda (var/val)
    153                   (session-set! (sid) (string->symbol* (car var/val)) (cdr var/val)))
    154                 var)
     153                  (session-set! (sid) (string->symbol* (car var/val)) (cdr var/val)))
     154                var)
    155155      (session-set! (sid) (string->symbol* var) val)))
    156156
     
    163163(define (link url text . rest)
    164164  (let ((use-session? (and (sid)
    165                            (session-valid? (sid))
    166                            (not (get-keyword no-session: rest))))
    167         (arguments (or (get-keyword arguments: rest) '()))
    168         (separator (or (get-keyword separator: rest) ";&")))
     165                           (session-valid? (sid))
     166                           (not (get-keyword no-session: rest))))
     167        (arguments (or (get-keyword arguments: rest) '()))
     168        (separator (or (get-keyword separator: rest) ";&")))
    169169    (apply <a>
    170            (append
    171             (list href: (if url
    172                             (++ url
    173                                 (if (or use-session? (not (null? arguments)))
    174                                     (++ "?"
    175                                         (form-urlencode
    176                                         (append arguments
    177                                                 (if use-session?
    178                                                      `((sid . ,(sid)))
    179                                                      '()))
    180                                         separator: separator))
    181                                     ""))
    182                             "#"))
    183             rest
    184             (list text)))))
     170           (append
     171            (list href: (if url
     172                            (++ url
     173                                (if (or use-session? (not (null? arguments)))
     174                                    (++ "?"
     175                                        (form-urlencode
     176                                        (append arguments
     177                                                (if use-session?
     178                                                     `((sid . ,(sid)))
     179                                                     '()))
     180                                        separator: separator))
     181                                    ""))
     182                            "#"))
     183            rest
     184            (list text)))))
    185185
    186186(define (form contents . rest)
    187187  (let ((use-session? (and (sid)
    188                            (session-valid? (sid))
    189                            (not (get-keyword no-session: rest)))))
     188                           (session-valid? (sid))
     189                           (not (get-keyword no-session: rest)))))
    190190    (apply <form>
    191            (append rest
    192                    (list
    193                     (++ (if use-session?
    194                             (hidden-input 'sid (sid))
    195                             "")
    196                         contents))))))
     191           (append rest
     192                   (list
     193                    (++ (if use-session?
     194                            (hidden-input 'sid (sid))
     195                            "")
     196                        contents))))))
    197197
    198198
     
    229229     (lambda (_)
    230230       (let* ((path-list (uri-path (request-uri (current-request))))
    231               (path (if (null? (cdr path-list))
    232                         (car path-list)
    233                         (++ "/" (concat (cdr path-list) "/"))))
    234               (proc (resource-ref path (root-path))))
    235         (if proc
    236              (let ((out (->string (proc path))))
    237                (with-headers `((content-type text/html)
    238                                (content-length ,(string-length out)))
    239                              (lambda ()
    240                                (write-logged-response)
    241                                (unless (eq? 'HEAD (request-method (current-request)))
    242                                 (display out (response-port (current-response)))))))
    243              (old-handler _)))))))
     231              (path (if (null? (cdr path-list))
     232                        (car path-list)
     233                        (++ "/" (concat (cdr path-list) "/"))))
     234              (proc (resource-ref path (root-path))))
     235        (if proc
     236             (let ((out (->string (proc path))))
     237               (with-headers `((content-type text/html)
     238                               (content-length ,(string-length out)))
     239                             (lambda ()
     240                               (write-logged-response)
     241                               (unless (eq? 'HEAD (request-method (current-request)))
     242                                (display out (response-port (current-response)))))))
     243             (old-handler _)))))))
    244244
    245245(define (resource-ref path vhost-root-path #!optional check-existence)
     
    253253  (let loop ((resources (hash-table->alist *resources*)))
    254254    (if (null? resources)
    255         #f
    256         (let* ((current-resource (car resources))
    257                (current-path (caar current-resource))
    258                (current-vhost (cdar current-resource))
    259                (current-proc (cdr current-resource)))
    260           (if (and (regexp? current-path)
    261                    (equal? current-vhost vhost-root-path)
    262                    (if check-existence
    263                        (equal? current-path path)
    264                        (string-match current-path path)))
    265               current-proc
    266               (loop (cdr resources)))))))
     255        #f
     256        (let* ((current-resource (car resources))
     257               (current-path (caar current-resource))
     258               (current-vhost (cdar current-resource))
     259               (current-proc (cdr current-resource)))
     260          (if (and (regexp? current-path)
     261                   (equal? current-vhost vhost-root-path)
     262                   (if check-existence
     263                       (equal? current-path path)
     264                       (string-match current-path path)))
     265              current-proc
     266              (loop (cdr resources)))))))
    267267
    268268(define (resource-exists? path vhost-root-path #!optional check-existence)
     
    280280     (lambda (path)
    281281       (if (equal? path "/") ;; redirect to (main-page-path)
    282            (parameterize
    283                ((current-response
    284                 (update-response
    285                   (current-response)
    286                   code: 302
    287                   headers: (headers `((location ,(main-page-path))
    288                                       (content-length 0))
    289                                     (response-headers (current-response))))))
    290              (write-logged-response))
    291            (old-handler path))))))
     282           (parameterize
     283               ((current-response
     284                (update-response
     285                  (current-response)
     286                  code: 302
     287                  headers: (headers `((location ,(main-page-path))
     288                                      (content-length 0))
     289                                    (response-headers (current-response))))))
     290             (write-logged-response))
     291           (old-handler path))))))
    292292
    293293
    294294;;; Pages
    295295(define (define-page path contents #!key css title doctype headers charset no-ajax
    296                      no-template no-session no-db vhost-root-path no-javascript-compression
    297                      use-session) ;; for define-session-page
     296                     no-template no-session no-db vhost-root-path no-javascript-compression
     297                     use-session) ;; for define-session-page
    298298  (##sys#check-closure contents 'define-page)
    299299  (let ((path (if (regexp? path)
    300                   path
    301                   (make-pathname (app-root-path) path))))
     300                  path
     301                  (make-pathname (app-root-path) path))))
    302302    (add-resource!
    303303     path
     
    307307       (sid ($ 'sid))
    308308       (when (and (db-credentials) (db-enabled?) (not no-db))
    309         (db-connection ((db-connect) (db-credentials))))
     309        (db-connection ((db-connect) (db-credentials))))
    310310       (page-javascript "")
    311311       (awful-refresh-session!)
    312312       (let ((out
    313               (if (or (not (enable-session))
    314                       no-session
    315                       use-session
    316                       (and (enable-session) (session-valid? (sid))))
    317                   (if (or no-session (not (enable-session)) ((page-access-control) path))
    318                       (begin
    319                         (when use-session
    320                           (if (session-valid? (sid))
    321                               (awful-refresh-session!)
    322                               (sid (session-create))))
    323                         (let ((contents
    324                                (handle-exceptions
    325                                 exn
    326                                 (begin
    327                                   (debug (with-output-to-string
    328                                            (lambda ()
    329                                              (print-call-chain)
    330                                              (print-error-message exn))))
    331                                   ((page-exception-message) exn))
    332                                 (if (regexp? path)
    333                                     (contents given-path)
    334                                     (contents)))))
    335                           (if no-template
    336                               contents
    337                               ((page-template)
    338                                contents
    339                                css: (or css (page-css))
    340                                title: title
    341                                doctype: (or doctype (page-doctype))
    342                                headers: (++ (if (or no-ajax (not (ajax-library)) (not (enable-ajax)))
    343                                                 ""
    344                                                 (<script> type: "text/javascript"
    345                                                           src: (ajax-library)))
    346                                             (or headers "")
    347                                             (if (or no-ajax
    348                                                     (not (enable-ajax))
    349                                                     (not (ajax-library)))
    350                                                 (if (string-null? (page-javascript))
    351                                                     ""
    352                                                     (<script> type: "text/javascript"
    353                                                               (maybe-compress-javascript
    354                                                                (page-javascript)
    355                                                                no-javascript-compression)))
    356                                                 (<script> type: "text/javascript"
    357                                                           (maybe-compress-javascript
    358                                                            (++ "$(document).ready(function(){"
    359                                                                (page-javascript) "});")
    360                                                            no-javascript-compression))))
    361                                charset: (or charset (page-charset))))))
    362                       ((page-template) ((page-access-denied-message) path)))
    363                   ((page-template)
    364                    ""
    365                    headers: (<meta> http-equiv: "refresh"
    366                                     content: (++ "0;url=" (login-page-path)
    367                                                 "?reason=invalid-session&attempted-path=" path
    368                                                 "&user=" ($ 'user "")))))))
    369         (when (and (db-connection) (db-enabled?) (not no-db)) ((db-disconnect) (db-connection)))
    370         out)))))
     313              (if (or (not (enable-session))
     314                      no-session
     315                      use-session
     316                      (and (enable-session) (session-valid? (sid))))
     317                  (if (or no-session (not (enable-session)) ((page-access-control) path))
     318                      (begin
     319                        (when use-session
     320                          (if (session-valid? (sid))
     321                              (awful-refresh-session!)
     322                              (sid (session-create))))
     323                        (let ((contents
     324                               (handle-exceptions
     325                                exn
     326                                (begin
     327                                  (debug (with-output-to-string
     328                                           (lambda ()
     329                                             (print-call-chain)
     330                                             (print-error-message exn))))
     331                                  ((page-exception-message) exn))
     332                                (if (regexp? path)
     333                                    (contents given-path)
     334                                    (contents)))))
     335                          (if no-template
     336                              contents
     337                              ((page-template)
     338                               contents
     339                               css: (or css (page-css))
     340                               title: title
     341                               doctype: (or doctype (page-doctype))
     342                               headers: (++ (if (or no-ajax (not (ajax-library)) (not (enable-ajax)))
     343                                                ""
     344                                                (<script> type: "text/javascript"
     345                                                          src: (ajax-library)))
     346                                            (or headers "")
     347                                            (if (or no-ajax
     348                                                    (not (enable-ajax))
     349                                                    (not (ajax-library)))
     350                                                (if (string-null? (page-javascript))
     351                                                    ""
     352                                                    (<script> type: "text/javascript"
     353                                                              (maybe-compress-javascript
     354                                                               (page-javascript)
     355                                                               no-javascript-compression)))
     356                                                (<script> type: "text/javascript"
     357                                                          (maybe-compress-javascript
     358                                                           (++ "$(document).ready(function(){"
     359                                                               (page-javascript) "});")
     360                                                           no-javascript-compression))))
     361                               charset: (or charset (page-charset))))))
     362                      ((page-template) ((page-access-denied-message) path)))
     363                  ((page-template)
     364                   ""
     365                   headers: (<meta> http-equiv: "refresh"
     366                                    content: (++ "0;url=" (login-page-path)
     367                                                "?reason=invalid-session&attempted-path=" path
     368                                                "&user=" ($ 'user "")))))))
     369        (when (and (db-connection) (db-enabled?) (not no-db)) ((db-disconnect) (db-connection)))
     370        out)))))
    371371
    372372(define (define-session-page path contents . rest)
     
    377377;;; Ajax
    378378(define (ajax path id event proc #!key target (action 'html) (method 'POST) (arguments '())
    379               js no-session no-db no-page-javascript vhost-root-path live)
     379              js no-session no-db no-page-javascript vhost-root-path live)
    380380  (if (enable-ajax)
    381381      (let ((path (if (regexp? path)
    382                   path
    383                   (make-pathname (list (app-root-path) (ajax-namespace)) path))))
    384         (add-resource! path
    385                        (or vhost-root-path (root-path))
    386                        (lambda (#!optional given-path)
    387                         (http-request-variables (request-vars))
    388                         (sid ($ 'sid))
    389                         (when (and (db-credentials) (db-enabled?) (not no-db))
    390                            (db-connection ((db-connect) (db-credentials))))
    391                         (awful-refresh-session!)
    392                         (if (or (not (enable-session))
    393                                 no-session
    394                                 (and (enable-session) (session-valid? (sid))))
    395                              (if ((page-access-control) path)
    396                                 (let ((out (proc)))
    397                                    (when (and (db-credentials) (db-enabled?) (not no-db))
    398                                      ((db-disconnect) (db-connection)))
    399                                    out)
    400                                 ((page-access-denied-message) path))
    401                              (ajax-invalid-session-message))))
    402         (http-request-variables (request-vars))
    403         (sid ($ 'sid))
    404         (let* ((arguments (if (or (not (enable-session))
    405                                   no-session
    406                                   (not (and (sid) (session-valid? (sid)))))
    407                               arguments
    408                               (cons `(sid . ,(++ "'" (sid) "'")) arguments)))
    409                (js (++ (page-javascript)
    410                        (if (and id event)
    411                            (let ((events (concat (if (list? event) event (list event)) " "))
    412                                 (binder (if live "live" "bind")))
    413                              (++ "$('#" (->string id) "')." binder "('" events "',"))
    414                            "")
    415                        "function(){$.ajax({type:'" (->string method) "',"
    416                        "url:'" path "',"
    417                        "success:function(h){"
    418                        (or js
    419                            (if target
    420                                (++ "$('#" target "')." (->string action) "(h);")
    421                                "return;"))
    422                        "},"
    423                        (++ "data:{"
    424                            (string-intersperse
    425                             (map (lambda (var/val)
    426                                    (conc  "'" (car var/val) "':" (cdr var/val)))
    427                                 arguments)
    428                             ",") "}")
    429                        "})}"
    430                        (if (and id event)
    431                            ");\n"
    432                            ""))))
    433           (unless no-page-javascript (page-javascript js))
    434           js))
     382                  path
     383                  (make-pathname (list (app-root-path) (ajax-namespace)) path))))
     384        (add-resource! path
     385                       (or vhost-root-path (root-path))
     386                       (lambda (#!optional given-path)
     387                        (http-request-variables (request-vars))
     388                        (sid ($ 'sid))
     389                        (when (and (db-credentials) (db-enabled?) (not no-db))
     390                           (db-connection ((db-connect) (db-credentials))))
     391                        (awful-refresh-session!)
     392                        (if (or (not (enable-session))
     393                                no-session
     394                                (and (enable-session) (session-valid? (sid))))
     395                             (if ((page-access-control) path)
     396                                (let ((out (proc)))
     397                                   (when (and (db-credentials) (db-enabled?) (not no-db))
     398                                     ((db-disconnect) (db-connection)))
     399                                   out)
     400                                ((page-access-denied-message) path))
     401                             (ajax-invalid-session-message))))
     402        (http-request-variables (request-vars))
     403        (sid ($ 'sid))
     404        (let* ((arguments (if (or (not (enable-session))
     405                                  no-session
     406                                  (not (and (sid) (session-valid? (sid)))))
     407                              arguments
     408                              (cons `(sid . ,(++ "'" (sid) "'")) arguments)))
     409               (js (++ (page-javascript)
     410                       (if (and id event)
     411                           (let ((events (concat (if (list? event) event (list event)) " "))
     412                                (binder (if live "live" "bind")))
     413                             (++ "$('#" (->string id) "')." binder "('" events "',"))
     414                           "")
     415                       "function(){$.ajax({type:'" (->string method) "',"
     416                       "url:'" path "',"
     417                       "success:function(h){"
     418                       (or js
     419                           (if target
     420                               (++ "$('#" target "')." (->string action) "(h);")
     421                               "return;"))
     422                       "},"
     423                       (++ "data:{"
     424                           (string-intersperse
     425                            (map (lambda (var/val)
     426                                   (conc  "'" (car var/val) "':" (cdr var/val)))
     427                                arguments)
     428                            ",") "}")
     429                       "})}"
     430                       (if (and id event)
     431                           ");\n"
     432                           ""))))
     433          (unless no-page-javascript (page-javascript js))
     434          js))
    435435      "")) ;; empty if no-ajax
    436436
    437437(define (periodical-ajax path interval proc #!key target (action 'html) (method 'POST)
    438                         (arguments '()) js no-session no-db vhost-root-path live)
     438                        (arguments '()) js no-session no-db vhost-root-path live)
    439439  (if (enable-ajax)
    440440      (page-javascript
    441441       (++ "setInterval("
    442            (ajax path #f #f proc
    443                 target: target
    444                 action: action
    445                 method: method
    446                 arguments: arguments
    447                 js: js
    448                 no-session: no-session
    449                 no-db: no-db
    450                 vhost-root-path: vhost-root-path
    451                 live: live
    452                 no-page-javascript: #t)
    453            ", " (->string interval) ");\n"))
     442           (ajax path #f #f proc
     443                target: target
     444                action: action
     445                method: method
     446                arguments: arguments
     447                js: js
     448                no-session: no-session
     449                no-db: no-db
     450                vhost-root-path: vhost-root-path
     451                live: live
     452                no-page-javascript: #t)
     453           ", " (->string interval) ");\n"))
    454454      ""))
    455455
    456456(define (ajax-link path id text proc #!key target (action 'html) (method 'POST) (arguments '())
    457                    js no-session no-db (event 'click) vhost-root-path live class
    458                    hreflang type rel rev charset coords shape accesskey tabindex a-target)
     457                   js no-session no-db (event 'click) vhost-root-path live class
     458                   hreflang type rel rev charset coords shape accesskey tabindex a-target)
    459459  (ajax path id event proc
    460         target: target
    461         action: action
    462         method: method
    463         arguments: arguments
    464         js: js
    465         no-session: no-session
    466         vhost-root-path: vhost-root-path
    467         live: live
    468         no-db: no-db)
     460        target: target
     461        action: action
     462        method: method
     463        arguments: arguments
     464        js: js
     465        no-session: no-session
     466        vhost-root-path: vhost-root-path
     467        live: live
     468        no-db: no-db)
    469469  (<a> href: "#"
    470470       id: id
     
    485485;;; Login form
    486486(define (login-form #!key (user-label "User: ")
    487                           (password-label "Password: ")
    488                           (submit-label "Submit")
    489                           (trampoline-path "/login-trampoline")
    490                           (refill-user #t))
     487                          (password-label "Password: ")
     488                          (submit-label "Submit")
     489                          (trampoline-path "/login-trampoline")
     490                          (refill-user #t))
    491491  (let ((attempted-path ($ 'attempted-path))
    492         (user ($ 'user)))
     492        (user ($ 'user)))
    493493    (<form> action: trampoline-path method: "post"
    494             (if attempted-path
    495                 (hidden-input 'attempted-path attempted-path)
    496                 "")
    497             (<span> id: "user-container"
    498                     (<span> id: "user-label" user-label)
    499                     (<input> type: "text" id: "user" name: "user" value: (and refill-user user)))
    500             (<span> id: "password-container"
    501                     (<span> id: "password-label" password-label)
    502                     (<input> type: "password" id: "password" name: "password"))
    503             (<input> type: "submit" id: "login-submit" value: submit-label))))
     494            (if attempted-path
     495                (hidden-input 'attempted-path attempted-path)
     496                "")
     497            (<span> id: "user-container"
     498                    (<span> id: "user-label" user-label)
     499                    (<input> type: "text" id: "user" name: "user" value: (and refill-user user)))
     500            (<span> id: "password-container"
     501                    (<span> id: "password-label" password-label)
     502                    (<input> type: "password" id: "password" name: "password"))
     503            (<input> type: "submit" id: "login-submit" value: submit-label))))
    504504
    505505
     
    509509    (lambda ()
    510510      (let* (($ (http-request-variables))
    511              (user ($ 'user))
    512              (password ($ 'password))
    513              (attempted-path ($ 'attempted-path))
    514              (password-valid? ((valid-password?) user password))
    515              (new-sid (and password-valid? (session-create))))
    516         (sid new-sid)
    517         (when hook (hook user))
    518         (html-page
    519         ""
    520         headers: (<meta> http-equiv: "refresh"
    521                           content: (++ "0;url="
    522                                        (if new-sid
    523                                            (++ (or attempted-path (main-page-path)) "?user=" user "&sid=" new-sid)
    524                                            (++ (login-page-path) "?reason=invalid-password&user=" user)))))))
     511             (user ($ 'user))
     512             (password ($ 'password))
     513             (attempted-path ($ 'attempted-path))
     514             (password-valid? ((valid-password?) user password))
     515             (new-sid (and password-valid? (session-create))))
     516        (sid new-sid)
     517        (when hook (hook user))
     518        (html-page
     519        ""
     520        headers: (<meta> http-equiv: "refresh"
     521                          content: (++ "0;url="
     522                                       (if new-sid
     523                                           (++ (or attempted-path (main-page-path)) "?user=" user "&sid=" new-sid)
     524                                           (++ (login-page-path) "?reason=invalid-password&user=" user)))))))
    525525    vhost-root-path: vhost-root-path
    526526    no-session: #t
     
    534534    (lambda ()
    535535      (if ((web-repl-access-control))
    536           (let ((web-eval
    537                 (lambda ()
    538                    (<pre> convert-to-entities?: #t
    539                           (with-output-to-string
    540                             (lambda ()
    541                               (pp (handle-exceptions
    542                                    exn
    543                                    (begin
    544                                      (print-error-message exn)
    545                                      (print-call-chain))
    546                                    (eval `(begin
    547                                             ,@(with-input-from-string ($ 'code "")
    548                                                 read-file)))))))))))
    549             (page-javascript "$('#clear').click(function(){$('#prompt').val('');});")
    550             (ajax (++ path "-eval") 'eval 'click web-eval
    551                   target: "result"
    552                   arguments: '((code . "$('#prompt').val()")))
    553 
    554             (++ (<textarea> id: "prompt" name: "prompt" rows: "6" cols: "90")
    555                 (itemize
    556                 (map (lambda (item)
    557                         (<a> href: "#" id: (car item) (cdr item)))
    558                       '(("eval"  . "Eval")
    559                         ("clear" . "Clear")))
    560                 list-id: "button-bar")
    561                 (<div> id: "result")))
    562           (web-repl-access-denied-message)))
     536          (let ((web-eval
     537                (lambda ()
     538                   (<pre> convert-to-entities?: #t
     539                          (with-output-to-string
     540                            (lambda ()
     541                              (pp (handle-exceptions
     542                                   exn
     543                                   (begin
     544                                     (print-error-message exn)
     545                                     (print-call-chain))
     546                                   (eval `(begin
     547                                            ,@(with-input-from-string ($ 'code "")
     548                                                read-file)))))))))))
     549            (page-javascript "$('#clear').click(function(){$('#prompt').val('');});")
     550            (ajax (++ path "-eval") 'eval 'click web-eval
     551                  target: "result"
     552                  arguments: '((code . "$('#prompt').val()")))
     553
     554            (++ (<textarea> id: "prompt" name: "prompt" rows: "6" cols: "90")
     555                (itemize
     556                (map (lambda (item)
     557                        (<a> href: "#" id: (car item) (cdr item)))
     558                      '(("eval"  . "Eval")
     559                        ("clear" . "Clear")))
     560                list-id: "button-bar")
     561                (<div> id: "result")))
     562          (web-repl-access-denied-message)))
    563563    title: (or title "Web REPL")
    564564    css: css))
     
    571571    (lambda ()
    572572      (if ((session-inspector-access-control))
    573           (let ((bindings (session-bindings (sid))))
    574             (if (null? bindings)
    575                 (<h2> "Session for sid " (sid) " is empty")
    576                 (++ (<h2> "Session for " (sid))
    577                     (tabularize
    578                      (map (lambda (binding)
    579                             (let ((var (car binding))
    580                                   (val (with-output-to-string
    581                                         (lambda ()
    582                                            (pp (cdr binding))))))
    583                               (list var (<pre> val))))
    584                           bindings)))))
    585           (session-inspector-access-denied-message)))
     573          (let ((bindings (session-bindings (sid))))
     574            (if (null? bindings)
     575                (<h2> "Session for sid " (sid) " is empty")
     576                (++ (<h2> "Session for " (sid))
     577                    (tabularize
     578                     (map (lambda (binding)
     579                            (let ((var (car binding))
     580                                  (val (with-output-to-string
     581                                        (lambda ()
     582                                           (pp (cdr binding))))))
     583                              (list var (<pre> val))))
     584                          bindings)))))
     585          (session-inspector-access-denied-message)))
    586586    title: (or title "Session inspector")
    587587    css: css))
Note: See TracChangeset for help on using the changeset viewer.