mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-29 04:04:07 -06:00
1a63b7f75d
* src/scm/utilities.scm (string-split): used to be string-split-on in qif-utils.scm * src/scm/qif-import/qif-utils.scm: move string-split-on to utilities.scm as string-split to better match string-join. * src/scm/qif-import/qif-to-gnc.scm (qif-import:qif-to-gnc): string-split-on -> string-split. * src/scm/qif-import/qif-dialog-utils.scm (qif-import:get-all-accts): string-split-on -> string-split. * src/scm/price-quotes.scm (yahoo-get-historical-quotes): new function - retrieve lists of historical quote information. * src/scm/bootstrap.scm.in (%load-path): add new guile-modules directory so we can use-modules from there. * src/guile/Makefile.am (CLEANFILES): add gnucash.c so it goes away on "make clean" in addition to "make distclean". * src/engine/gnc-pricedb.c: minor doc updates. * src/engine/gnc-pricedb.h: much more documentation. * lib/guile-www: new directory - contains guile-www CVS module. Used by new historical quote function. Several new files added. Installed to new install directory GNC_SHAREDIR/guile-modules such that it is available via (use-modules (www main)), etc. * lib/Makefile.am (SUBDIRS): add guile-www * configure.in (AC_OUTPUT): add lib/guile-www/Makefile git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3988 57a11ea4-9604-0410-9ed3-97b8803252fd
50 lines
1.6 KiB
Scheme
50 lines
1.6 KiB
Scheme
;;;; www/main.scm: general WWW navigation aids.
|
||
|
||
(define-module (www main)
|
||
:use-module (www http)
|
||
:use-module (www url))
|
||
|
||
;;;; Copyright (C) 1997 Free Software Foundation, Inc.
|
||
;;;;
|
||
;;;; This program is free software; you can redistribute it and/or modify
|
||
;;;; it under the terms of the GNU General Public License as published by
|
||
;;;; the Free Software Foundation; either version 2, or (at your option)
|
||
;;;; any later version.
|
||
;;;;
|
||
;;;; This program is distributed in the hope that it will be useful,
|
||
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
;;;; GNU General Public License for more details.
|
||
;;;;
|
||
;;;; You should have received a copy of the GNU General Public License
|
||
;;;; along with this software; see the file COPYING. If not, write to
|
||
;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||
;;;; Boston, MA 02111-1307 USA
|
||
;;;;
|
||
|
||
(define dispatch-table
|
||
(acons 'http http:get '()))
|
||
|
||
;;; (www:get URL)
|
||
;;; parse a URL into portions, open a connection, and retrieve
|
||
;;; selected document
|
||
|
||
(define-public (www:set-protocol-handler! proto handler)
|
||
(set! dispatch-table
|
||
(assq-set! dispatch-table proto handler)))
|
||
|
||
(define-public (www:get url-str)
|
||
(let ((url (url:parse url-str)))
|
||
;; get handler for this protocol
|
||
(case (url:scheme url)
|
||
((http) (let ((msg (http:get url)))
|
||
(http:message-body msg)))
|
||
(else
|
||
(let ((handle (assq-ref dispatch-table (url:scheme url))))
|
||
(if handle
|
||
(handle (url:host url)
|
||
(url:port url)
|
||
(url:path url))
|
||
(error "unknown URL scheme" (url:scheme url))))))))
|
||
|