Function: WRITE-URI

Source

(defun write-uri (uri stream)
  (with-slots (scheme host path query fragment)
      uri
    (write-uri-sans-query uri stream)
    (when query
      (flet ((write-query-part (name value)
               (write-as-uri name stream)
               (write-char #\= stream)
               (write-as-uri value stream)))
        (write-string "?" stream)
        (write-query-part (car (first query))
                          (cdr (first query)))
        (iterate
          (for (name . value) in (cdr query))
          (write-char #\& stream)
          (write-query-part name value))))
    (when fragment
      (write-char #\# stream)
      (write-string fragment stream))))
Source Context