Compare commits
No commits in common. "master" and "main" have entirely different histories.
246
Makefile
Normal file → Executable file
246
Makefile
Normal file → Executable file
@ -6,7 +6,7 @@ endif
|
|||||||
|
|
||||||
all: elisp-all
|
all: elisp-all
|
||||||
|
|
||||||
elisp-all:
|
elisp-all: org-mode auctex sunrise-commander
|
||||||
#elisp-all: ess
|
#elisp-all: ess
|
||||||
#apel flim semi wanderlust
|
#apel flim semi wanderlust
|
||||||
|
|
||||||
@ -24,6 +24,12 @@ post_clone_cmd-emacswiki :=\
|
|||||||
echo '!*' > .git/info/sparse-checkout &&\
|
echo '!*' > .git/info/sparse-checkout &&\
|
||||||
echo '[a-z]*.el' >> .git/info/sparse-checkout
|
echo '[a-z]*.el' >> .git/info/sparse-checkout
|
||||||
|
|
||||||
|
GIT_DIRS += use-package
|
||||||
|
URL-use-package := https://github.com/jwiegley/use-package.git
|
||||||
|
|
||||||
|
GIT_DIRS += yaml-mode
|
||||||
|
URL-yaml-mode := https://github.com/yoshiki/yaml-mode.git
|
||||||
|
|
||||||
#GIT_DIRS += apel
|
#GIT_DIRS += apel
|
||||||
#URL-apel := http://github.com/wanderlust/apel.git
|
#URL-apel := http://github.com/wanderlust/apel.git
|
||||||
|
|
||||||
@ -36,6 +42,44 @@ post_clone_cmd-emacswiki :=\
|
|||||||
#GIT_DIRS += wanderlust
|
#GIT_DIRS += wanderlust
|
||||||
#URL-wanderlust := http://github.com/wanderlust/wanderlust.git
|
#URL-wanderlust := http://github.com/wanderlust/wanderlust.git
|
||||||
|
|
||||||
|
GIT_DIRS += org-mode
|
||||||
|
URL-org-mode := https://code.orgmode.org/bzg/org-mode.git
|
||||||
|
ifeq (${HOSTENV},w32)
|
||||||
|
post_clone_cmd-emacswiki :=\
|
||||||
|
cd org-mode &&\
|
||||||
|
git config core.filemode false
|
||||||
|
endif
|
||||||
|
|
||||||
|
#GIT_DIRS += gnus
|
||||||
|
#URL-gnus := http://git.gnus.org/gnus.git
|
||||||
|
|
||||||
|
#GIT_DIRS += w3
|
||||||
|
#URL-w3 := http://git.savannah.gnu.org/r/w3.git
|
||||||
|
|
||||||
|
GIT_DIRS += bbdb
|
||||||
|
URL-bbdb := http://git.savannah.gnu.org/r/bbdb.git
|
||||||
|
|
||||||
|
GIT_DIRS += auctex
|
||||||
|
URL-auctex := http://git.savannah.gnu.org/r/auctex.git
|
||||||
|
|
||||||
|
GIT_DIRS += emacs-jabber
|
||||||
|
URL-emacs-jabber := http://git.code.sf.net/p/emacs-jabber/git
|
||||||
|
|
||||||
|
GIT_DIRS += doxymacs
|
||||||
|
URL-doxymacs := git://doxymacs.git.sourceforge.net/gitroot/doxymacs/doxymacs
|
||||||
|
|
||||||
|
GIT_DIRS += htmlize
|
||||||
|
URL-htmlize := http://github.com/emacsmirror/htmlize.git
|
||||||
|
|
||||||
|
#GIT_DIRS += ess
|
||||||
|
#URL-ess := https://github.com/emacs-ess/ESS.git
|
||||||
|
|
||||||
|
GIT_DIRS += sunrise-commander
|
||||||
|
URL-sunrise-commander := https://github.com/escherdragon/sunrise-commander.git
|
||||||
|
|
||||||
|
#BZR_DIRS += dvc
|
||||||
|
#URL-dvc := http://bzr.xsteve.at/dvc
|
||||||
|
|
||||||
$(foreach d,$(HG_DIRS) ,$(call eval-vcs-template,HG_TMPL,$d))
|
$(foreach d,$(HG_DIRS) ,$(call eval-vcs-template,HG_TMPL,$d))
|
||||||
$(foreach d,$(GIT_DIRS),$(call eval-vcs-template,GIT_TMPL,$d))
|
$(foreach d,$(GIT_DIRS),$(call eval-vcs-template,GIT_TMPL,$d))
|
||||||
#$(foreach d,$(GIT_DIRS),$(call info-vcs-template,GIT_TMPL,$d))
|
#$(foreach d,$(GIT_DIRS),$(call info-vcs-template,GIT_TMPL,$d))
|
||||||
@ -43,6 +87,206 @@ $(foreach d,$(BZR_DIRS),$(call eval-vcs-template,BZR_TMPL,$d))
|
|||||||
$(foreach d,$(SVN_DIRS),$(call eval-vcs-template,SVN_TMPL,$d))
|
$(foreach d,$(SVN_DIRS),$(call eval-vcs-template,SVN_TMPL,$d))
|
||||||
$(foreach d,$(CVS_DIRS),$(call eval-vcs-template,CVS_TMPL,$d))
|
$(foreach d,$(CVS_DIRS),$(call eval-vcs-template,CVS_TMPL,$d))
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# auctex
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: auctex
|
||||||
|
auctex/configure: auctex/autogen.sh auctex/configure.ac
|
||||||
|
cd $(@D) && ./autogen.sh
|
||||||
|
|
||||||
|
auctex/Makefile: auctex/configure Makefile | $(DOT_DIR)/share/texmf/.dir
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
--infodir=$(INFO_DIR)\
|
||||||
|
--datarootdir=$(DOT_DIR)/share\
|
||||||
|
--localstatedir=$(DOT_DIR)/var\
|
||||||
|
--with-lispdir=$(LISP_DIR)\
|
||||||
|
--with-texmf-dir=$(DOT_DIR)/share/texmf\
|
||||||
|
|
||||||
|
auctex: auctex/Makefile
|
||||||
|
$(MAKE) -C $(DIR-$@) clean
|
||||||
|
$(MAKE) -C $(DIR-$@) lisp info install\
|
||||||
|
EMACS="$(EMACS) --eval '(setq vc-handled-backends nil)'"
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# reftex
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: reftex
|
||||||
|
cd reftex:
|
||||||
|
$(MAKE) -C $(DIR-$@) clean
|
||||||
|
$(MAKE) -C $(DIR-$@) lisp info install\
|
||||||
|
infodir=$(INFO_DIR)\
|
||||||
|
lispdir=$(LISP_DIR)/reftex\
|
||||||
|
EMACS=$(EMACS)
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# ess
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: ess
|
||||||
|
ess:
|
||||||
|
-install-info --info-dir=$(INFO_DIR) --remove $(INFO_DIR)/ess.info
|
||||||
|
$(MAKE) -C $(DIR-$@) all install\
|
||||||
|
PREFIX=$(DOT_DIR)\
|
||||||
|
LISPDIR=$(LISP_DIR)/ess\
|
||||||
|
ETCDIR=$(LISP_DIR)/ess/etc\
|
||||||
|
INFODIR=$(INFO_DIR)\
|
||||||
|
EMACS=$(or $(EMACS_CYGWIN),$(call fixpath-shell,$(EMACS)))
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# doxymacs
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: doxymacs
|
||||||
|
doxymacs/configure: doxymacs/bootstrap doxymacs/configure.ac $(MAKEFILE_LIST)
|
||||||
|
cd $(@D) && ./bootstrap
|
||||||
|
|
||||||
|
doxymacs/Makefile: doxymacs/configure Makefile
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
--prefix=$(LISP_DIR)/doxymacs\
|
||||||
|
--bindir=$(BIN_DIR)\
|
||||||
|
--with-lispdir=$(LISP_DIR)/doxymacs\
|
||||||
|
|
||||||
|
doxymacs: doxymacs/Makefile $(wildcard doxymacs/lisp/*.el)
|
||||||
|
$(MAKE) -C $(DIR-$@) clean
|
||||||
|
$(MAKE) -C $(DIR-$@) all install\
|
||||||
|
EMACS=$(EMACS)
|
||||||
|
|
||||||
|
# EMACSFLAGS
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# gnus
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: gnus
|
||||||
|
gnus/configure :| gnus/.git
|
||||||
|
|
||||||
|
gnus/Makefile: $(MAKEFILE_LIST) gnus/configure
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
--prefix=$(LISP_DIR)/gnus\
|
||||||
|
--infodir=$(INFO_DIR)\
|
||||||
|
|
||||||
|
gnus: gnus/Makefile
|
||||||
|
$(MAKE) -C $(DIR-$@) clean
|
||||||
|
$(MAKE) -C $(DIR-$@) all\
|
||||||
|
EMACS="$(EMACS) --eval '(setq vc-handled-backends nil)'"\
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# dvc
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: dvc
|
||||||
|
dvc/configure: $(MAKEFILE_LIST) dvc/configure.ac
|
||||||
|
cd $(@D) && autoreconf
|
||||||
|
|
||||||
|
dvc/Makefile: dvc/configure Makefile
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
--prefix=$(LISP_DIR)/dvc\
|
||||||
|
--with-lispdir=$(LISP_DIR)/dvc\
|
||||||
|
--bindir=$(BIN_DIR)\
|
||||||
|
--infodir=$(INFO_DIR)\
|
||||||
|
|
||||||
|
dvc: dvc/Makefile
|
||||||
|
-install-info --info-dir=$(INFO_DIR) --remove $(INFO_DIR)/dvc.info
|
||||||
|
$(MAKE) -C $(DIR-$@) clean
|
||||||
|
$(MAKE) -C $(DIR-$@) all install\
|
||||||
|
EMACS="$(EMACS) --eval '(setq vc-handled-backends nil)'"\
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# org-mode
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: org-mode
|
||||||
|
org-mode:
|
||||||
|
-install-info --info-dir=$(INFO_DIR) --remove $(INFO_DIR)/org
|
||||||
|
$(MAKE) -C $(DIR-$@) cleanall\
|
||||||
|
prefix=$(DOT_DIR)\
|
||||||
|
infodir=$(INFO_DIR)\
|
||||||
|
lispdir=$(LISP_DIR)/org-mode\
|
||||||
|
datadir=$(DOT_DIR)/share/org-mode
|
||||||
|
$(MAKE) -C $(DIR-$@) doc install install-info install-lisp\
|
||||||
|
EMACS="$(EMACS) --eval '(setq vc-handled-backends nil)'"\
|
||||||
|
prefix=$(DOT_DIR)\
|
||||||
|
infodir=$(INFO_DIR)\
|
||||||
|
lispdir=$(LISP_DIR)/org-mode\
|
||||||
|
datadir=$(DOT_DIR)/share/org-mode
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# emacs-jabber
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: emacs-jabber
|
||||||
|
emacs-jabber/configure : $(MAKEFILE_LIST)
|
||||||
|
cd $(@D) && autoreconf -i
|
||||||
|
|
||||||
|
emacs-jabber/Makefile: emacs-jabber/configure
|
||||||
|
cd $(@D) && ./configure
|
||||||
|
|
||||||
|
emacs-jabber: emacs-jabber/Makefile
|
||||||
|
$(MAKE) -C $(DIR-$@) install\
|
||||||
|
EMACS=$(EMACS)\
|
||||||
|
prefix=$(DOT_DIR)\
|
||||||
|
lispdir=$(LISP_DIR)/jabber\
|
||||||
|
infodir=$(INFO_DIR)\
|
||||||
|
libexecdir=$(LISP_DIR)/jabber/bin\
|
||||||
|
abs_builddir=$(call emacspath,$(ELISP_DIR)/emacs-jabber)
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# bbdb
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: bbdb
|
||||||
|
bbdb/configure : $(MAKEFILE_LIST) bbdb/configure.ac
|
||||||
|
cd $(@D) && autoreconf -i
|
||||||
|
|
||||||
|
bbdb/Makefile :\
|
||||||
|
bbdb/configure\
|
||||||
|
bbdb/Makefile.in\
|
||||||
|
bbdb/doc/Makefile.in\
|
||||||
|
bbdb/lisp/Makefile.in\
|
||||||
|
bbdb/tex/Makefile.in\
|
||||||
|
| $(DOT_DIR)/share/texmf/.dir
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
EMACS=$(call fixpath-shell,$(EMACS))\
|
||||||
|
--prefix=$(DOT_DIR)\
|
||||||
|
--datarootdir=$(DOT_DIR)\
|
||||||
|
--datadir=$(DOT_DIR)/share/texmf\
|
||||||
|
--with-lispdir=$(LISP_DIR)/bbdb\
|
||||||
|
|
||||||
|
bbdb: bbdb/Makefile
|
||||||
|
$(MAKE) -C $(DIR-$@) install
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# w3
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: w3
|
||||||
|
w3/Makefile : $(MAKEFILE_LIST)\
|
||||||
|
w3/configure
|
||||||
|
cd $(@D) && ./configure\
|
||||||
|
--with-emacs=$(call fixpath-shell,$(EMACS))\
|
||||||
|
--prefix=$(DOT_DIR)\
|
||||||
|
--with-lispdir=$(LISP_DIR)/w3\
|
||||||
|
--libexecdir=$(LISP_DIR)/w3/bin\
|
||||||
|
--datadir=$(DOT_DIR)/share\
|
||||||
|
--infodir=$(INFO_DIR)\
|
||||||
|
|
||||||
|
# --with-gnus=$(ELISP_DIR)/gnus\
|
||||||
|
|
||||||
|
w3: w3/Makefile
|
||||||
|
$(MAKE) -C $(DIR-$@) install
|
||||||
|
|
||||||
|
|
||||||
|
# #########################################################################
|
||||||
|
# yaml-mode
|
||||||
|
# #########################################################################
|
||||||
|
.PHONY: yaml-mode
|
||||||
|
yaml-mode:
|
||||||
|
$(MAKE) -C $(DIR-$@) install\
|
||||||
|
EMACS=$(EMACS)\
|
||||||
|
INSTALLLIBDIR=$(LISP_DIR)\
|
||||||
|
|
||||||
|
|
||||||
# #########################################################################
|
# #########################################################################
|
||||||
# apel
|
# apel
|
||||||
# #########################################################################
|
# #########################################################################
|
||||||
|
|||||||
130
dadams/dadams-sync.py
Executable file
130
dadams/dadams-sync.py
Executable file
@ -0,0 +1,130 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os.path as path
|
||||||
|
from shutil import copyfile
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
SCRIPTNAME = path.basename(sys.argv[0])
|
||||||
|
SCRIPTDIR = sys.path[0]
|
||||||
|
|
||||||
|
EL_OBSOLETE = [
|
||||||
|
'appt.el',
|
||||||
|
'buff-menu+.el',
|
||||||
|
'cal-opts.el',
|
||||||
|
'calendar+.el',
|
||||||
|
'cc-mode+.el',
|
||||||
|
'character-fold+.el',
|
||||||
|
'def-face-const.el',
|
||||||
|
'dired-details+.el',
|
||||||
|
'highlight-fns.el',
|
||||||
|
'line-num.el',
|
||||||
|
'sort+.el',
|
||||||
|
'vc+.el',
|
||||||
|
'vc-.el',
|
||||||
|
'vc-hooks+.el',
|
||||||
|
]
|
||||||
|
|
||||||
|
EL_INVESTIGATE = [
|
||||||
|
'cmds-menu.el',
|
||||||
|
'delsel.el',
|
||||||
|
'descr-text+.el',
|
||||||
|
'doremi-cmd.el',
|
||||||
|
'doremi-frm.el',
|
||||||
|
'doremi-mac.el',
|
||||||
|
'doremi.el',
|
||||||
|
'face-remap+.el',
|
||||||
|
'facemenu+.el',
|
||||||
|
'filesets+.el',
|
||||||
|
'find-func+.el',
|
||||||
|
'font-lock-menus.el',
|
||||||
|
'fuzzy-match.el',
|
||||||
|
'help-macro+.el',
|
||||||
|
'highlight-chars.el',
|
||||||
|
'hl-defined.el',
|
||||||
|
'hl-spotlight.el',
|
||||||
|
'imenu+.el',
|
||||||
|
'isearch-prop.el',
|
||||||
|
'lib-requires.el',
|
||||||
|
'mkhtml.el',
|
||||||
|
'modeline-win.el',
|
||||||
|
'mouse3.el',
|
||||||
|
'narrow-indirect.el',
|
||||||
|
'oneonone.el',
|
||||||
|
'palette.el',
|
||||||
|
'pretty-lambdada.el',
|
||||||
|
'setup-keys.el',
|
||||||
|
'showkey.el',
|
||||||
|
'start-opt.el',
|
||||||
|
'subr+.el',
|
||||||
|
'ucs-cmds.el',
|
||||||
|
'unaccent.el',
|
||||||
|
'zoom-frm.el',
|
||||||
|
]
|
||||||
|
|
||||||
|
EL_EXCLUDE = [
|
||||||
|
'autofit-frame.el',
|
||||||
|
'delsel.el',
|
||||||
|
'echo-bell.el',
|
||||||
|
'emacs-init.el',
|
||||||
|
'emacsbug+.el',
|
||||||
|
'eyedropper.el',
|
||||||
|
'modeline-char.el',
|
||||||
|
'naked.el',
|
||||||
|
'reveal-next.el',
|
||||||
|
'setup-cygwin.el',
|
||||||
|
'setup.el',
|
||||||
|
'start.el',
|
||||||
|
'thumb-frm.el',
|
||||||
|
'w32browser-dlgopen.el',
|
||||||
|
'wimpy-del.el',
|
||||||
|
'yes-no.el',
|
||||||
|
]
|
||||||
|
|
||||||
|
EL_IGNORED = EL_OBSOLETE + EL_INVESTIGATE + EL_EXCLUDE
|
||||||
|
|
||||||
|
EL_FILES = sorted([x for x in glob('*.el') + glob('*/*.el')
|
||||||
|
if path.basename(x) not in EL_IGNORED],
|
||||||
|
key=lambda x: path.basename(x))
|
||||||
|
|
||||||
|
DST_DIRS = [
|
||||||
|
path.realpath(path.join(SCRIPTDIR, '../../lisp/icicles')),
|
||||||
|
path.realpath(path.join(SCRIPTDIR, '../../lisp/bmkp')),
|
||||||
|
path.realpath(path.join(SCRIPTDIR, '../../lisp/adams')),
|
||||||
|
#path.realpath(path.join(SCRIPTDIR, '../../lisp')),
|
||||||
|
]
|
||||||
|
|
||||||
|
def find_destinations(p, dirs):
|
||||||
|
ret = []
|
||||||
|
for dst in dirs:
|
||||||
|
if path.exists(path.join(dst, path.basename(p))):
|
||||||
|
ret.append(path.join(dst, path.basename(p)))
|
||||||
|
if len(ret) == 0:
|
||||||
|
return None
|
||||||
|
elif len(ret) == 1:
|
||||||
|
return ret[0]
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
for el in EL_FILES:
|
||||||
|
dst = find_destinations(el, DST_DIRS)
|
||||||
|
if dst:
|
||||||
|
if isinstance(dst, str):
|
||||||
|
copyfile(el, dst)
|
||||||
|
else:
|
||||||
|
print('[WRN] duplicate destination:', dst)
|
||||||
|
else:
|
||||||
|
print('[WRN] could not find', path.basename(el))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
ret = 200
|
||||||
|
try:
|
||||||
|
ret = main()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
finally:
|
||||||
|
pass
|
||||||
|
sys.exit(ret)
|
||||||
138
dadams/dadams.lst
Normal file
138
dadams/dadams.lst
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
appt
|
||||||
|
apropos-fn-var
|
||||||
|
apropos-plus
|
||||||
|
apu
|
||||||
|
autofit-frame
|
||||||
|
autoload-plus
|
||||||
|
bindings-plus
|
||||||
|
bookmark-plus
|
||||||
|
browse-kill-ring-plus
|
||||||
|
buff-menu-plus
|
||||||
|
cal-opts
|
||||||
|
calendar-plus
|
||||||
|
cc-mode-plus
|
||||||
|
character-fold-plus
|
||||||
|
character-fold-plus
|
||||||
|
cmds-menu
|
||||||
|
col-highlight
|
||||||
|
compile-
|
||||||
|
compile-20
|
||||||
|
compile-plus
|
||||||
|
crosshairs
|
||||||
|
cursor-chg
|
||||||
|
cus-edit-plus
|
||||||
|
def-face-const
|
||||||
|
delsel
|
||||||
|
descr-text-plus
|
||||||
|
diff-plus
|
||||||
|
diff-plus20
|
||||||
|
dired-details-plus
|
||||||
|
dired-plus
|
||||||
|
dired-sort-menu-plus
|
||||||
|
doremi
|
||||||
|
doremi-cmd
|
||||||
|
doremi-frm
|
||||||
|
doremi-mac
|
||||||
|
echo-bell
|
||||||
|
ediff-plus
|
||||||
|
emacs-init
|
||||||
|
emacsbug-plus
|
||||||
|
eyedropper
|
||||||
|
face-remap-plus
|
||||||
|
facemenu-plus
|
||||||
|
faces-plus
|
||||||
|
ffap-
|
||||||
|
files-plus
|
||||||
|
filesets-plus
|
||||||
|
find-dired-
|
||||||
|
find-dired-plus
|
||||||
|
find-func-plus
|
||||||
|
finder-plus
|
||||||
|
fit-frame
|
||||||
|
font-lock-menus
|
||||||
|
font-lock-plus
|
||||||
|
frame-cmds
|
||||||
|
frame-fns
|
||||||
|
fuzzy-match
|
||||||
|
grep-plus
|
||||||
|
help-fns-plus
|
||||||
|
help-macro-plus
|
||||||
|
help-mode-plus
|
||||||
|
help-plus
|
||||||
|
help-plus20
|
||||||
|
hexrgb
|
||||||
|
hide-comnt
|
||||||
|
highlight
|
||||||
|
highlight-chars
|
||||||
|
highlight-fns
|
||||||
|
hl-defined
|
||||||
|
hl-line-plus
|
||||||
|
hl-spotlight
|
||||||
|
icicles
|
||||||
|
icomplete-plus
|
||||||
|
imenu-plus
|
||||||
|
info-20
|
||||||
|
info-plus
|
||||||
|
isearch-plus
|
||||||
|
isearch-prop
|
||||||
|
lacarte
|
||||||
|
lib-requires
|
||||||
|
line-num
|
||||||
|
ls-lisp-20
|
||||||
|
ls-lisp-plus
|
||||||
|
macros-plus
|
||||||
|
mb-depth-plus
|
||||||
|
menu-bar-plus
|
||||||
|
misc-cmds
|
||||||
|
misc-fns
|
||||||
|
mkhtml
|
||||||
|
modeline-char
|
||||||
|
modeline-posn
|
||||||
|
modeline-win
|
||||||
|
mouse-plus
|
||||||
|
mouse3
|
||||||
|
naked
|
||||||
|
narrow-indirect
|
||||||
|
novice-plus
|
||||||
|
oneonone
|
||||||
|
options-plus
|
||||||
|
outline-plus
|
||||||
|
palette
|
||||||
|
pp-c-l
|
||||||
|
pp-plus
|
||||||
|
pretty-lambdada
|
||||||
|
replace-plus
|
||||||
|
reveal-next
|
||||||
|
ring-plus
|
||||||
|
savehist-20-plus
|
||||||
|
second-sel
|
||||||
|
setnu-plus
|
||||||
|
setup
|
||||||
|
setup-cygwin
|
||||||
|
setup-keys
|
||||||
|
showkey
|
||||||
|
simple-plus
|
||||||
|
sort-plus
|
||||||
|
start
|
||||||
|
start-opt
|
||||||
|
strings
|
||||||
|
subr-21
|
||||||
|
subr-plus
|
||||||
|
synonyms
|
||||||
|
thing-cmds
|
||||||
|
thingatpt-plus
|
||||||
|
thump-frm
|
||||||
|
timer-plus
|
||||||
|
tool-bar-plus
|
||||||
|
ucs-cmds
|
||||||
|
unaccent
|
||||||
|
vc-
|
||||||
|
vc-hooks-plus
|
||||||
|
vc-plus
|
||||||
|
w32-browser
|
||||||
|
w32browser-dlgopen
|
||||||
|
wid-edit-plus
|
||||||
|
wimpy-del
|
||||||
|
window-plus
|
||||||
|
yes-no
|
||||||
|
zoom-frm
|
||||||
23
doxymacs/.gitignore
vendored
Normal file
23
doxymacs/.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
aclocal.m4
|
||||||
|
autom4te.cache/*
|
||||||
|
c/.deps/*
|
||||||
|
c/doxymacs_parser
|
||||||
|
c/doxymacs_parser.o
|
||||||
|
c/Makefile
|
||||||
|
c/Makefile.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
configure
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
lisp/doxymacs.el
|
||||||
|
lisp/doxymacs.elc
|
||||||
|
lisp/elc-stamp
|
||||||
|
lisp/Makefile
|
||||||
|
lisp/Makefile.in
|
||||||
|
lisp/xml-parse.elc
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
missing
|
||||||
|
no-autoconf/Makefile
|
||||||
|
no-autoconf/Makefile.in
|
||||||
6
doxymacs/AUTHORS
Normal file
6
doxymacs/AUTHORS
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
$Id: AUTHORS,v 1.8 2005/04/01 00:31:44 ryants Exp $
|
||||||
|
|
||||||
|
Ryan T. Sammartino <ryan.sammartino at gmail dot com>
|
||||||
|
Kris Verbeeck <kris.verbeeck at advalvas dot be>
|
||||||
|
|
||||||
|
|
||||||
342
doxymacs/COPYING
Normal file
342
doxymacs/COPYING
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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 of the License, 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 program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
|
|
||||||
|
$Id: COPYING,v 1.1 2001/03/25 00:41:47 ryants Exp $
|
||||||
327
doxymacs/ChangeLog
Normal file
327
doxymacs/ChangeLog
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
2010-03-07 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in: Feature #1569376: Insert doxygen commands
|
||||||
|
interactively:
|
||||||
|
(doxymacs-insert-command-history, doxymacs-commands,
|
||||||
|
doxymacs-insert-command, doxymacs-read-arg): New variables and
|
||||||
|
functions for feature #1569376.
|
||||||
|
|
||||||
|
2010-02-19 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in: Patch #2954452: New C++! documentation
|
||||||
|
style (thanks Robert Jørgensgaard Engdahl).
|
||||||
|
(doxymacs-JavaDoc-function-comment-template): Bug #1862867: Remove
|
||||||
|
unnecessary tailing whitespace.
|
||||||
|
|
||||||
|
2010-02-18 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in: support new tparam doxygen command.
|
||||||
|
|
||||||
|
2007-06-10 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.8.0)
|
||||||
|
* NEWS, configure.ac: prepare for new version release.
|
||||||
|
* lisp/doxymacs.el.in: documentation update.
|
||||||
|
|
||||||
|
|
||||||
|
2007-02-02 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
* lisp/doxymacs.el.in:
|
||||||
|
(doxymacs-mode, doxymacs-doxygan-keywords): Bug #1490021:
|
||||||
|
Allow spaces in @param [in] style documentation.
|
||||||
|
(doxymacs-user-mail-address): Bug #1496399:
|
||||||
|
New function.
|
||||||
|
(doxymacs-JavaDoc-file-comment-template,
|
||||||
|
doxymacs-Qt-file-comment-template,
|
||||||
|
doxymacs-C++-file-comment-template): Use new function to
|
||||||
|
get user's e-mail address.
|
||||||
|
|
||||||
|
2006-04-22 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.7.0)
|
||||||
|
|
||||||
|
* doxymacs_parser.c:
|
||||||
|
Bug #1459026: Fix compile warning with gcc 4.0.
|
||||||
|
* lisp/doxymacs.el.in: minor documentation updates.
|
||||||
|
(doxymacs-mode): Feature #1338245: Add tokens to filladapt
|
||||||
|
to match doxygen markup.
|
||||||
|
* example/doc/*: Update to use doxygen 1.4.4 output.
|
||||||
|
* NEWS, README, configure.ac: prepare for new version release.
|
||||||
|
|
||||||
|
2005-06-04 Ryan T. Sammartino <ryan.sammartino@gmail.com> (1.6.0)
|
||||||
|
|
||||||
|
* NEWS, README: prepare for new version release.
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in: minor documentation updates.
|
||||||
|
|
||||||
|
* c/doxymacs_parser.c: minor documentation updates.
|
||||||
|
|
||||||
|
|
||||||
|
2005-04-14 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in:
|
||||||
|
(doxymacs-url-exists-p): New function.
|
||||||
|
(doxymacs-load-tags): Use new function.
|
||||||
|
(doxymacs-symbol-near-point): New function (to clean up
|
||||||
|
symbol-near-point hack).
|
||||||
|
(doxymacs-lookup): Use new function.
|
||||||
|
|
||||||
|
2005-04-13 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
* lisp/doxymacs.el.in: feature request #868413
|
||||||
|
(doxymacs-browse-url-function): New customizable variable.
|
||||||
|
(doxymacs-display-url): Use new variable.
|
||||||
|
|
||||||
|
2005-04-12 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in: bug #990123
|
||||||
|
(doxymacs-group-comment-start),
|
||||||
|
(doxymacs-group-comment-end): New strings for grouping comments.
|
||||||
|
(doxymacs-insert-grouping-comments): Use new strings instead of
|
||||||
|
old templates.
|
||||||
|
(doxymacs-group-begin-comment-template),
|
||||||
|
(doxymacs-group-end-comment-template),
|
||||||
|
(doxymacs-JavaDoc-group-begin-comment-template),
|
||||||
|
(doxymacs-JavaDoc-group-end-comment-template),
|
||||||
|
(doxymacs-Qt-group-begin-comment-template),
|
||||||
|
(doxymacs-Qt-group-end-comment-template),
|
||||||
|
(doxymacs-C++-group-begin-comment-template),
|
||||||
|
(doxymacs-C++-group-end-comment-template): Remove old templates
|
||||||
|
for grouping comments.
|
||||||
|
(doxymacs-doxygen-keywords): New doxygen keywords.
|
||||||
|
|
||||||
|
2005-04-01 Ryan T. Sammartino <ryan.sammartino@gmail.com>
|
||||||
|
|
||||||
|
* AUTHORS, README: update contact info.
|
||||||
|
|
||||||
|
* example/src/doxy.conf: update for new doxygen.
|
||||||
|
|
||||||
|
* example/src/aclass.h: try new @param[in] etc.
|
||||||
|
|
||||||
|
* example/doc/html/*: regenerate.
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): patch #1102042:
|
||||||
|
handle @param[in], etc.
|
||||||
|
(doxymacs-font-lock): patch #1024026: use font-lock-add-keywords,
|
||||||
|
if available.
|
||||||
|
|
||||||
|
* aclocal/libxml.m4: update from libxml source.
|
||||||
|
|
||||||
|
* c/Makefile.am: fix link issues with newer libxml.
|
||||||
|
|
||||||
|
* configure.ac: update libxml2 version requirements to match what
|
||||||
|
was used for libxml.m4.
|
||||||
|
|
||||||
|
2003-01-25 Ryan T. Sammartino <ryants@shaw.ca> (1.5.0)
|
||||||
|
|
||||||
|
* NEWS: version 1.5.0 news.
|
||||||
|
|
||||||
|
* INSTALL: add instructions on avoiding byte compiling and
|
||||||
|
configuring.
|
||||||
|
|
||||||
|
* configure.ac: set version to 1.5.0.
|
||||||
|
|
||||||
|
* no-autoconf/Makefile.am: new file.
|
||||||
|
|
||||||
|
2003-01-20 Georg Drenkhahn <georg-d at users dot sourceforge dot net>
|
||||||
|
|
||||||
|
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): patch 667164:
|
||||||
|
fix retval fontification
|
||||||
|
|
||||||
|
2003-01-12 Ryan T. Sammartino <ryants@shaw.ca>
|
||||||
|
|
||||||
|
* configure.ac: add "C++" to help string for --with-default-style.
|
||||||
|
|
||||||
|
2003-01-11 Ryan T. Sammartino <ryants@shaw.ca>
|
||||||
|
|
||||||
|
Feature #665470: C++ style.
|
||||||
|
Bug #665099: @var missing.
|
||||||
|
Bug #665372: @example not fontified properly.
|
||||||
|
* lisp/doxymacs.el.in (doxymacs-doxygen-keywords): fix var,
|
||||||
|
example, image, dotfile, other commands.
|
||||||
|
(doxymacs-doxygen-style): new C++ style.
|
||||||
|
(doxymacs-command-character): new variable.
|
||||||
|
(doxymacs-C++-blank-multiline-comment-template): new template.
|
||||||
|
(doxymacs-C++-blank-singleline-comment-template): new template.
|
||||||
|
(doxymacs-doxygen-command-char): new function.
|
||||||
|
(doxymacs-JavaDoc-file-comment-template): use
|
||||||
|
doxymacs-doxygen-command-char
|
||||||
|
(doxymacs-Qt-file-comment-template): ditto.
|
||||||
|
(doxymacs-JavaDoc-function-comment-template): ditto.
|
||||||
|
(doxymacs-Qt-function-comment-template): ditto.
|
||||||
|
(doxymacs-parm-tempo-element): ditto and add C++ style.
|
||||||
|
(doxymacs-C++-file-comment-template): new template.
|
||||||
|
(doxymacs-C++-function-comment-template): new template.
|
||||||
|
(doxymacs-C++-group-begin-comment-template): new template.
|
||||||
|
(doxymacs-C++-group-end-comment-template): new template.
|
||||||
|
(doxymacs-invalid-style): add C++ style.
|
||||||
|
(doxymacs-insert-member-comment): add C++ style.
|
||||||
|
|
||||||
|
2003-01-06 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
|
||||||
|
* configure.ac: mention EMACSLOADPATH in the help.
|
||||||
|
* INSTALL, lisp/doxymacs.el.in: mention EMACS, EMACSLOADPATH;
|
||||||
|
other documentation fixups.
|
||||||
|
|
||||||
|
2003-01-05 Ryan T. Sammartino <ryants at shaw dot ca> (1.4.0)
|
||||||
|
|
||||||
|
* Autoconf-ise the project.
|
||||||
|
|
||||||
|
2002-12-09 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* c/doxymacs_parser.c: terminate Encoded string with \0.
|
||||||
|
* lisp/doxymacs.el: set the doxytags buffer modified flag to false
|
||||||
|
to avoid asking user if OK to kill modified buffer.
|
||||||
|
|
||||||
|
2002-12-08 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* lisp/doxymacs.el, c/doxymacs_parser.c: work around apparent bug in
|
||||||
|
Doxygen 1.2.18.
|
||||||
|
* c/doxymacs_parser.c: fix memory leak.
|
||||||
|
|
||||||
|
2002-12-08 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* lisp/doxymacs.el: move to association lists to support multiple
|
||||||
|
Doxygen generates.
|
||||||
|
* INSTALL: update instructions.
|
||||||
|
* TODO: update.
|
||||||
|
|
||||||
|
2002-11-30 Georg Drenkhahn <georg-d at users dot sourceforge dot net>
|
||||||
|
* lisp/doxymacs.el: several FIXMEs fixed, user-defined "void" types
|
||||||
|
(doxymacs-void-types).
|
||||||
|
|
||||||
|
2002-08-31 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.2)
|
||||||
|
* lisp/doxymacs.el: functions with blank lines in their argument
|
||||||
|
list confused doxymacs-extract-args-list fixed.
|
||||||
|
|
||||||
|
2002-09-05 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.1)
|
||||||
|
* c/doxymacs_parser.c: fix compilation issues on Mac OS X.
|
||||||
|
|
||||||
|
2002-04-01 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* lisp/doxymacs.el, README: make note of the fact that doxymacs
|
||||||
|
seems to work with GNU Emacs 21.2.1 and XEmacs 21.4 (patch 6)
|
||||||
|
|
||||||
|
2001-11-19 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* lisp/doxymacs.el, README: make note of the fact that doxymacs
|
||||||
|
seems to work with XEmacs 21.4 (patch 5) and GNU Emacs 21.1.1
|
||||||
|
|
||||||
|
2001-11-04 Ryan T. Sammartino <ryants at shaw dot ca> (1.3.0)
|
||||||
|
* lisp/doxymacs.el: add documentation for default templates.
|
||||||
|
Implement grouping comments (C-c d @).
|
||||||
|
|
||||||
|
2001-11-01 Ryan T. Sammartino <ryants at shaw dot ca>
|
||||||
|
* README, AUTHORS, ...: make note that Ryan's homepage and e-mail
|
||||||
|
address have changed.
|
||||||
|
|
||||||
|
2001-09-30 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el, README: make note of the fact that doxymacs
|
||||||
|
seems to work with XEmacs 21.4 (patch 4)
|
||||||
|
|
||||||
|
2001-09-15 Ryan T. Sammartino <ryants at home dot com> (1.2.1)
|
||||||
|
* lisp/doxymacs.el: fix bug #460396: invalid number of arguments
|
||||||
|
to doxymacs-parm-tempo-element in
|
||||||
|
doxymacs-Qt-function-comment-template
|
||||||
|
|
||||||
|
2001-08-26 Ryan T. Sammartino <ryants at home dot com> (1.2.0)
|
||||||
|
* lisp/doxymacs.el: implement feature request #454122 (single line
|
||||||
|
member comments) and feature request #454123 (key bindings
|
||||||
|
description in mode help). Clean up template code to make it
|
||||||
|
easier to add new templates and catch bad settings. Clean up
|
||||||
|
documentation to be more standards conforming.
|
||||||
|
* INSTALL: documentation update.
|
||||||
|
* README: if people have success/failure with untested {X}Emacs
|
||||||
|
versions, let the authors know.
|
||||||
|
|
||||||
|
2001-08-23 Ryan T. Sammartino <ryants at home dot com> (1.1.4)
|
||||||
|
* lisp/doxymacs.el: fix bug #454563... missing @endlink in
|
||||||
|
fontification; fix @b, @em, @c, @p, and @link fontification. Also
|
||||||
|
clean up the fontification code a bit.
|
||||||
|
|
||||||
|
2001-07-08 Ryan T. Sammartino <ryants at home dot com> (1.1.3)
|
||||||
|
* c/doxymacs_parser.c, c/Makefile: Make the external XML parser
|
||||||
|
work with the latest libxml2. Now we require libxml2 version
|
||||||
|
2.3.4 or greater.
|
||||||
|
|
||||||
|
2001-07-04 Ryan T. Sammartino <ryants at home dot com> (1.1.2)
|
||||||
|
* lisp/doxymacs.el: GNU Emacs doesn't support ?: in regexps, so
|
||||||
|
take them out.
|
||||||
|
|
||||||
|
2001-06-20 Ryan T. Sammartino <ryants at home dot com> (1.1.1)
|
||||||
|
* lisp/doxymacs.el: fix bug #432837 missing @see keyword and fix
|
||||||
|
bug #432836 Font lock for @ingroup not correct
|
||||||
|
|
||||||
|
2001-06-12 Ryan T. Sammartino <ryants at home dot com> (1.1.0)
|
||||||
|
* lisp/doxymacs.el: add font lock keywords for Doxygen keywords
|
||||||
|
|
||||||
|
2001-06-06 Ryan T. Sammartino <ryants at home dot com> (1.0.0)
|
||||||
|
* lisp/doxymacs.el: fix bug #427660 "mouse selection problems".
|
||||||
|
|
||||||
|
2001-05-26 Ryan T. Sammartino <ryants at home dot com> (0.2.1)
|
||||||
|
* lisp/doxymacs.el: fix bug #427351 "thinks "void" is a parameter"
|
||||||
|
and bug #427350 "can't document constructors/destructors", and
|
||||||
|
generally made the whole doxymacs-find-next-func function much
|
||||||
|
more robust. Small update to default styles when inserting
|
||||||
|
functions that return "void"
|
||||||
|
* INSTALL: a tip on automatically going into doxymacs-mode
|
||||||
|
whenever in C/C++ mode
|
||||||
|
|
||||||
|
2001-05-21 Ryan T. Sammartino <ryants at home dot com> (0.2.0)
|
||||||
|
* lisp/doxymacs.el: now can optionally use the external XML parser
|
||||||
|
to speed things up. Some documentation updates.
|
||||||
|
* c/doxymacs_parser.c, c/Makefile: new files. doxymacs_parser.c is
|
||||||
|
the external XML parser.
|
||||||
|
* INSTALL: documentation updates.
|
||||||
|
|
||||||
|
2001-05-12 Ryan T. Sammartino <ryants at home dot com> (0.1.2)
|
||||||
|
* lisp/doxymacs.el: bug fixes for GNU Emacs: symbol-near-point and
|
||||||
|
user-mail-address
|
||||||
|
* lisp/xml-parse.el: make sure progress-function is bound before
|
||||||
|
calling.
|
||||||
|
* TODO: removed "test on other version of {X}Emacs" item.
|
||||||
|
* README: let people know on which versions of {X}Emacs this has been
|
||||||
|
tested on.
|
||||||
|
|
||||||
|
2001-05-09 Ryan T. Sammartino <ryants at home dot com> (0.1.1)
|
||||||
|
* lisp/doxymacs.el: change C-? to C-c d ?, add progress info while
|
||||||
|
parsing XML file, and some small optimisations.
|
||||||
|
|
||||||
|
2001-05-07 Ryan T. Sammartino <ryants at home dot com> (0.1.0)
|
||||||
|
* lisp/doxymacs.el: Minor mode (thanks to Kris) and default key
|
||||||
|
bindings.
|
||||||
|
* INSTALL: some better instructions (I hope)
|
||||||
|
|
||||||
|
2001-05-06 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: Now using tempo templates for inserting comments.
|
||||||
|
Also allows for user-defined styles.
|
||||||
|
* TODO: we need some good end-user documentation.
|
||||||
|
* AUTHORS: acknowledge patch from Andreas Fuchs.
|
||||||
|
|
||||||
|
2001-04-29 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: Now parse XML tags file generated by doxygen
|
||||||
|
directly.
|
||||||
|
* lisp/xml-parse.el: Add this file so that people don't need to go
|
||||||
|
download things from all over the place just to get doxymacs working.
|
||||||
|
* perl/doxytags.pl: No longer necessary, now that we can parse the
|
||||||
|
XML tags file generated by doxygen.
|
||||||
|
|
||||||
|
2001-04-22 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: Function documentation
|
||||||
|
|
||||||
|
2001-04-18 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: Going with Kris' "new style" look up
|
||||||
|
code. It's excellent, and exactly what I wanted. Thanks Kris. Also
|
||||||
|
incorprated Andreas Fuchs' patch for loading tags from a URL.
|
||||||
|
|
||||||
|
2001-04-11 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: insert blank or "file" doxygen comments with style
|
||||||
|
specified by the user.
|
||||||
|
|
||||||
|
2001-03-31 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: if symbol matches more than one entry in the tags,
|
||||||
|
you can now select which one you really mean (but please take a look
|
||||||
|
at the FIXME comment before doxymacs-choose-match) and slightly
|
||||||
|
changed the format of the list that doxymacs-get-matches returns.
|
||||||
|
* perl/doxytag.pl, example/doc/doxy.tag: added some more info to the
|
||||||
|
third column of doxytag.pl's output.
|
||||||
|
* TODO: removed the "choose which symbol you really mean" item (yay!).
|
||||||
|
|
||||||
|
2001-03-28 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* lisp/doxymacs.el: applied patch from Kris Verbeeck so that
|
||||||
|
doxymacs customisation stuff is under the "Tools" group. Also
|
||||||
|
removed doxymacs-browser, since we'll just use the user's default
|
||||||
|
browser anyways. Minor formatting changes as well.
|
||||||
|
* README: added doxymacs' URL
|
||||||
|
|
||||||
|
2001-03-24 Ryan T. Sammartino <ryants at home dot com>
|
||||||
|
* doxymacs: Initial CVS check in.
|
||||||
84
doxymacs/INSTALL
Normal file
84
doxymacs/INSTALL
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
$Id: INSTALL,v 1.15 2003/01/26 01:49:55 ryants Exp $
|
||||||
|
|
||||||
|
Doxymacs depends on the following packages:
|
||||||
|
|
||||||
|
- W3 http://www.cs.indiana.edu/usr/local/www/elisp/w3/docs.html
|
||||||
|
- tempo http://www.lysator.liu.se/~davidk/elisp/
|
||||||
|
- libxml2 http://www.libxml.org/
|
||||||
|
|
||||||
|
Be sure these are properly configured and installed before proceeding.
|
||||||
|
|
||||||
|
- Use the configure script to configure doxymacs:
|
||||||
|
|
||||||
|
$ ./configure
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
|
||||||
|
Use ./configure --help for help on customising your configuration.
|
||||||
|
|
||||||
|
If you get
|
||||||
|
|
||||||
|
!! File error (("Cannot open load file" "url"))
|
||||||
|
|
||||||
|
(or something similar) then set the variable EMACSLOADPATH before
|
||||||
|
doing make:
|
||||||
|
|
||||||
|
$ EMACSLOADPATH=... make
|
||||||
|
|
||||||
|
where ... is a colon separated list of directories to search for
|
||||||
|
packages. To byte compile with XEmacs, set the variable EMACS:
|
||||||
|
|
||||||
|
$ EMACS=xemacs make
|
||||||
|
|
||||||
|
If you would rather not byte compile the .el files at all, then do:
|
||||||
|
|
||||||
|
$ make ELCFILES=
|
||||||
|
$ make install ELCFILES=
|
||||||
|
|
||||||
|
If you do not want to run or cannot run configure then some pre-baked
|
||||||
|
.el files are available in the no-autoconf/ directory; simply copy
|
||||||
|
these to somewhere in your load-path.
|
||||||
|
|
||||||
|
- Customise the variable doxymacs-doxygen-dirs.
|
||||||
|
Doxymacs customisation can be done from the Options | Customize menu,
|
||||||
|
under Emacs | Programming | Tools | Doxymacs.
|
||||||
|
|
||||||
|
- If your tags file is quite large (say, > 1 MB), consider setting
|
||||||
|
doxymacs-use-external-xml-parser to t and be sure to set
|
||||||
|
doxymacs-external-xml-parser-executable to the right value (the
|
||||||
|
default should usually be fine). A suitable program is distributed
|
||||||
|
in the directory doxymacs/c/. With an 11 MB XML tag file, the
|
||||||
|
internal process takes 20 minutes on a PIII 800 with 1 GB of RAM,
|
||||||
|
whereas the external process takes 12 seconds.
|
||||||
|
|
||||||
|
- Put (require 'doxymacs) in your .emacs
|
||||||
|
|
||||||
|
- Invoke doxymacs-mode with M-x doxymacs-mode. To have doxymacs-mode invoked
|
||||||
|
automatically when in C/C++ mode, put
|
||||||
|
|
||||||
|
(add-hook 'c-mode-common-hook 'doxymacs-mode)
|
||||||
|
|
||||||
|
in your .emacs.
|
||||||
|
|
||||||
|
- If you want Doxygen keywords fontified use M-x doxymacs-font-lock.
|
||||||
|
To do it automatically, add the following to your .emacs:
|
||||||
|
|
||||||
|
(defun my-doxymacs-font-lock-hook ()
|
||||||
|
(if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
|
||||||
|
(doxymacs-font-lock)))
|
||||||
|
(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
|
||||||
|
|
||||||
|
This will add the Doxygen keywords to c-mode and c++-mode only.
|
||||||
|
|
||||||
|
- Default key bindings are:
|
||||||
|
- C-c d ? will look up documentation for the symbol under the point.
|
||||||
|
- C-c d r will rescan your Doxygen tags file.
|
||||||
|
- C-c d RET will prompt you for a Doxygen command to enter, and its
|
||||||
|
arguments.
|
||||||
|
- C-c d f will insert a Doxygen comment for the next function.
|
||||||
|
- C-c d i will insert a Doxygen comment for the current file.
|
||||||
|
- C-c d ; will insert a Doxygen comment for the current member.
|
||||||
|
- C-c d m will insert a blank multi-line Doxygen comment.
|
||||||
|
- C-c d s will insert a blank single-line Doxygen comment.
|
||||||
|
- C-c d @ will insert grouping comments around the current region.
|
||||||
|
|
||||||
4
doxymacs/Makefile.am
Normal file
4
doxymacs/Makefile.am
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
# $Id: Makefile.am,v 1.2 2003/01/26 01:49:55 ryants Exp $
|
||||||
|
|
||||||
|
SUBDIRS = c lisp no-autoconf
|
||||||
82
doxymacs/NEWS
Normal file
82
doxymacs/NEWS
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
$Id: NEWS,v 1.20 2007/06/10 13:17:24 ryants Exp $
|
||||||
|
|
||||||
|
10/06/2007 Version 1.8.0 released.
|
||||||
|
Fix bug #1490021: Allow spaces in @param [in] style documentation.
|
||||||
|
Fix bug #1496399: Use better way to get user's e-mail address.
|
||||||
|
|
||||||
|
22/04/2006 Version 1.7.0 released.
|
||||||
|
Fix bug #1459026: compile warning with gcc 4.0.
|
||||||
|
Feature request #1338245: make filladapt mode doxygen aware
|
||||||
|
of @param to nicely indent parameter lists.
|
||||||
|
Update the example HTML files with doxygen 1.4.4.
|
||||||
|
|
||||||
|
04/06/2005 Version 1.6.0 released.
|
||||||
|
Many bug fixes for newer versions of {X}emacs. Some additions to
|
||||||
|
fontification to handle new Doxygen constructs. Can now customise
|
||||||
|
the browser that doxymacs uses to display documentation.
|
||||||
|
|
||||||
|
NOTE: doxymacs-group-comment-start and doxymacs-group-comment-end
|
||||||
|
are no longer tempo templates but are now just plain strings.
|
||||||
|
|
||||||
|
|
||||||
|
25/01/2003 Version 1.5.0 released.
|
||||||
|
New C++ style. Pre-baked .el files for people who do not have
|
||||||
|
autoconf. Several small fontification bug fixes.
|
||||||
|
|
||||||
|
05/01/2003 Version 1.4.0 released.
|
||||||
|
doxymacs now uses autoconf to configure, build and install itself.
|
||||||
|
|
||||||
|
31/08/2002 Version 1.3.2 released.
|
||||||
|
Fix bug #601028: functions with blank lines in their argument lists
|
||||||
|
confused doxymacs-extract-args-list.
|
||||||
|
|
||||||
|
09/05/2002 Version 1.3.1 released.
|
||||||
|
Fix issues compiling doxymacs_parser.c on Mac OS X.
|
||||||
|
|
||||||
|
04/11/2001 Version 1.3.0 released.
|
||||||
|
Implement new grouping command (C-c d @) which inserts Doxygen
|
||||||
|
grouping comments around the current region.
|
||||||
|
|
||||||
|
15/09/2001 Version 1.2.1 released.
|
||||||
|
Fix a bug in Qt style comments.
|
||||||
|
|
||||||
|
26/08/2001 Version 1.2.0 released.
|
||||||
|
Better on-line documentation. New "member comment" command which
|
||||||
|
works much like M-; (indent-for-comment).
|
||||||
|
|
||||||
|
23/08/2001 Version 1.1.4 released.
|
||||||
|
minor bugfixes.
|
||||||
|
|
||||||
|
08/07/2001 Version 1.1.3 released.
|
||||||
|
The external XML parser now requires libxml2 version 2.3.4 or
|
||||||
|
greater.
|
||||||
|
|
||||||
|
04/07/2001 Version 1.1.2 released.
|
||||||
|
GNU Emacs doesn't understand ?: in regexps, so take them out.
|
||||||
|
|
||||||
|
20/06/2001 Version 1.1.1 released.
|
||||||
|
Fix bug #432837 missing @see keyword and fix bug #432836 Font
|
||||||
|
lock for @ingroup not correct.
|
||||||
|
|
||||||
|
12/06/2001 Version 1.1.0 released.
|
||||||
|
New feature: font lock for Doxygen keywords.
|
||||||
|
|
||||||
|
06/06/2001 Version 1.0.0 released.
|
||||||
|
The first stable release. There are still some bugs left (see
|
||||||
|
the FIXMEs in lisp/doxymacs.el), but they are both sufficiently
|
||||||
|
rare and hard to fix that they don't warrant holding up a stable
|
||||||
|
release.
|
||||||
|
|
||||||
|
26/05/2001 Version 0.2.1 released.
|
||||||
|
Er... forgot to update this file the past few releases.
|
||||||
|
Oh well. Look at the ChangeLog if you really care.
|
||||||
|
|
||||||
|
09/05/2001 Version 0.1.1 released.
|
||||||
|
Bug fix: C-? is a bad choice for "look up", since it causes the
|
||||||
|
DEL key to be mapped to "look up"... changed it to C-c d ?.
|
||||||
|
Feature add: Progress info as it parses XML tag file.
|
||||||
|
|
||||||
|
07/05/2001 Version 0.1.0 (Alpha) released.
|
||||||
|
This represents the first public release of doxymacs. It works for us,
|
||||||
|
now let's see if it works for other people too.
|
||||||
|
|
||||||
45
doxymacs/README
Normal file
45
doxymacs/README
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
doxymacs
|
||||||
|
Copyright (C) 2001-2010 Ryan T. Sammartino
|
||||||
|
ryan.sammartino at gmail dot com
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
doxymacs is an e-lisp package for making doxygen usage easier under XEmacs.
|
||||||
|
|
||||||
|
doxymacs homepage: http://doxymacs.sourceforge.net/
|
||||||
|
|
||||||
|
Doxymacs has been tested on and works with:
|
||||||
|
- GNU Emacs 20.7.1, 21.1.1, 21.2.1, 21.3, 21.4.1, 23.1.1
|
||||||
|
- XEmacs 21.1 (patch 14), 21.4 (patch 4, 5, 6, 17)
|
||||||
|
|
||||||
|
If you have success or failure with other versions of {X}Emacs, please
|
||||||
|
let the authors know.
|
||||||
|
|
||||||
|
See COPYING for the full text of the license under which is this work
|
||||||
|
is being made available.
|
||||||
|
|
||||||
|
See ChangeLog for recent changes.
|
||||||
|
|
||||||
|
See AUTHORS for a list of people to blame for this mess.
|
||||||
|
|
||||||
|
See TODO for a list of things that you can help out with.
|
||||||
|
|
||||||
|
See INSTALL for instructions on how to install and use this.
|
||||||
|
|
||||||
|
Feel free to contact me about any issues you may have, or to volunteer
|
||||||
|
to help out.
|
||||||
|
|
||||||
|
Ryan T. Sammartino
|
||||||
|
ryan.sammartino at gmail dot com
|
||||||
|
|
||||||
|
$Id: README,v 1.13 2006/04/23 01:20:15 ryants Exp $
|
||||||
11
doxymacs/TODO
Normal file
11
doxymacs/TODO
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
$Id: TODO,v 1.15 2003/01/06 00:45:30 ryants Exp $
|
||||||
|
|
||||||
|
lisp/doxymacs.el.in:
|
||||||
|
- fix all FIXMEs (of course)
|
||||||
|
- automatic testing (DejaGnu).
|
||||||
|
- other stuff?
|
||||||
|
|
||||||
|
README:
|
||||||
|
INSTALL:
|
||||||
|
- better end-user documentation
|
||||||
|
|
||||||
188
doxymacs/aclocal/libxml.m4
Normal file
188
doxymacs/aclocal/libxml.m4
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
# Configure paths for LIBXML2
|
||||||
|
# Mike Hommey 2004-06-19
|
||||||
|
# use CPPFLAGS instead of CFLAGS
|
||||||
|
# Toshio Kuratomi 2001-04-21
|
||||||
|
# Adapted from:
|
||||||
|
# Configure paths for GLIB
|
||||||
|
# Owen Taylor 97-11-3
|
||||||
|
|
||||||
|
dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
|
dnl Test for XML, and define XML_CPPFLAGS and XML_LIBS
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_XML2],[
|
||||||
|
AC_ARG_WITH(xml-prefix,
|
||||||
|
[ --with-xml-prefix=PFX Prefix where libxml is installed (optional)],
|
||||||
|
xml_config_prefix="$withval", xml_config_prefix="")
|
||||||
|
AC_ARG_WITH(xml-exec-prefix,
|
||||||
|
[ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
|
||||||
|
xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
|
||||||
|
AC_ARG_ENABLE(xmltest,
|
||||||
|
[ --disable-xmltest Do not try to compile and run a test LIBXML program],,
|
||||||
|
enable_xmltest=yes)
|
||||||
|
|
||||||
|
if test x$xml_config_exec_prefix != x ; then
|
||||||
|
xml_config_args="$xml_config_args"
|
||||||
|
if test x${XML2_CONFIG+set} != xset ; then
|
||||||
|
XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test x$xml_config_prefix != x ; then
|
||||||
|
xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
|
||||||
|
if test x${XML2_CONFIG+set} != xset ; then
|
||||||
|
XML2_CONFIG=$xml_config_prefix/bin/xml2-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROG(XML2_CONFIG, xml2-config, no)
|
||||||
|
min_xml_version=ifelse([$1], ,2.0.0,[$1])
|
||||||
|
AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
|
||||||
|
no_xml=""
|
||||||
|
if test "$XML2_CONFIG" = "no" ; then
|
||||||
|
no_xml=yes
|
||||||
|
else
|
||||||
|
XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
|
||||||
|
XML_LIBS=`$XML2_CONFIG $xml_config_args --libs`
|
||||||
|
xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \
|
||||||
|
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||||
|
xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \
|
||||||
|
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||||
|
xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \
|
||||||
|
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||||
|
if test "x$enable_xmltest" = "xyes" ; then
|
||||||
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||||
|
ac_save_LIBS="$LIBS"
|
||||||
|
CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
|
||||||
|
LIBS="$XML_LIBS $LIBS"
|
||||||
|
dnl
|
||||||
|
dnl Now check if the installed libxml is sufficiently new.
|
||||||
|
dnl (Also sanity checks the results of xml2-config to some extent)
|
||||||
|
dnl
|
||||||
|
rm -f conf.xmltest
|
||||||
|
AC_TRY_RUN([
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <libxml/xmlversion.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
int xml_major_version, xml_minor_version, xml_micro_version;
|
||||||
|
int major, minor, micro;
|
||||||
|
char *tmp_version;
|
||||||
|
|
||||||
|
system("touch conf.xmltest");
|
||||||
|
|
||||||
|
/* Capture xml2-config output via autoconf/configure variables */
|
||||||
|
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||||
|
tmp_version = (char *)strdup("$min_xml_version");
|
||||||
|
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||||
|
printf("%s, bad version string from xml2-config\n", "$min_xml_version");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
free(tmp_version);
|
||||||
|
|
||||||
|
/* Capture the version information from the header files */
|
||||||
|
tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION);
|
||||||
|
if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) {
|
||||||
|
printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
free(tmp_version);
|
||||||
|
|
||||||
|
/* Compare xml2-config output to the libxml headers */
|
||||||
|
if ((xml_major_version != $xml_config_major_version) ||
|
||||||
|
(xml_minor_version != $xml_config_minor_version) ||
|
||||||
|
(xml_micro_version != $xml_config_micro_version))
|
||||||
|
{
|
||||||
|
printf("*** libxml header files (version %d.%d.%d) do not match\n",
|
||||||
|
xml_major_version, xml_minor_version, xml_micro_version);
|
||||||
|
printf("*** xml2-config (version %d.%d.%d)\n",
|
||||||
|
$xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/* Compare the headers to the library to make sure we match */
|
||||||
|
/* Less than ideal -- doesn't provide us with return value feedback,
|
||||||
|
* only exits if there's a serious mismatch between header and library.
|
||||||
|
*/
|
||||||
|
LIBXML_TEST_VERSION;
|
||||||
|
|
||||||
|
/* Test that the library is greater than our minimum version */
|
||||||
|
if ((xml_major_version > major) ||
|
||||||
|
((xml_major_version == major) && (xml_minor_version > minor)) ||
|
||||||
|
((xml_major_version == major) && (xml_minor_version == minor) &&
|
||||||
|
(xml_micro_version >= micro)))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
|
||||||
|
xml_major_version, xml_minor_version, xml_micro_version);
|
||||||
|
printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n",
|
||||||
|
major, minor, micro);
|
||||||
|
printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n");
|
||||||
|
printf("***\n");
|
||||||
|
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||||
|
printf("*** probably means that the wrong copy of the xml2-config shell script is\n");
|
||||||
|
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||||
|
printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n");
|
||||||
|
printf("*** correct copy of xml2-config. (In this case, you will have to\n");
|
||||||
|
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||||
|
printf("*** so that the correct libraries are found at run-time))\n");
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||||
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||||
|
LIBS="$ac_save_LIBS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$no_xml" = x ; then
|
||||||
|
AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
if test "$XML2_CONFIG" = "no" ; then
|
||||||
|
echo "*** The xml2-config script installed by LIBXML could not be found"
|
||||||
|
echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
|
||||||
|
echo "*** your path, or set the XML2_CONFIG environment variable to the"
|
||||||
|
echo "*** full path to xml2-config."
|
||||||
|
else
|
||||||
|
if test -f conf.xmltest ; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "*** Could not run libxml test program, checking why..."
|
||||||
|
CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
|
||||||
|
LIBS="$LIBS $XML_LIBS"
|
||||||
|
AC_TRY_LINK([
|
||||||
|
#include <libxml/xmlversion.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
], [ LIBXML_TEST_VERSION; return 0;],
|
||||||
|
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||||
|
echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
|
||||||
|
echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
|
||||||
|
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||||
|
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||||
|
echo "*** is required on your system"
|
||||||
|
echo "***"
|
||||||
|
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||||
|
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
|
||||||
|
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||||
|
echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
|
||||||
|
echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
|
||||||
|
echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
|
||||||
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||||
|
LIBS="$ac_save_LIBS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
XML_CPPFLAGS=""
|
||||||
|
XML_LIBS=""
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(XML_CPPFLAGS)
|
||||||
|
AC_SUBST(XML_LIBS)
|
||||||
|
rm -f conf.xmltest
|
||||||
|
])
|
||||||
5
doxymacs/bootstrap
Executable file
5
doxymacs/bootstrap
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
aclocal
|
||||||
|
automake --gnu --add-missing
|
||||||
|
autoconf
|
||||||
12
doxymacs/c/Makefile.am
Normal file
12
doxymacs/c/Makefile.am
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
# $Id: Makefile.am,v 1.2 2005/04/01 06:20:06 ryants Exp $
|
||||||
|
|
||||||
|
bin_PROGRAMS = doxymacs_parser
|
||||||
|
|
||||||
|
doxymacs_parser_SOURCES = doxymacs_parser.c
|
||||||
|
|
||||||
|
INCLUDES = $(XML_CPPFLAGS)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -Werror -fexpensive-optimizations -fomit-frame-pointer
|
||||||
|
|
||||||
|
doxymacs_parser_LDADD = $(XML_LIBS)
|
||||||
682
doxymacs/c/doxymacs_parser.c
Normal file
682
doxymacs/c/doxymacs_parser.c
Normal file
@ -0,0 +1,682 @@
|
|||||||
|
/*
|
||||||
|
* doxymacs_parser.c
|
||||||
|
* Copyright (C) 2001 Ryan T. Sammartino
|
||||||
|
* <ryan.sammartino at gmail dot com>
|
||||||
|
*
|
||||||
|
* A utility program used by doxymacs to speed up building the look up
|
||||||
|
* completion list from a Doxygen XML file.
|
||||||
|
*
|
||||||
|
* This file requires libxml version 2.6.13 or greater, which you can
|
||||||
|
* get from http://www.libxml.org/
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* of the License, 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 program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* Doxymacs homepage: http://doxymacs.sourceforge.net/
|
||||||
|
*
|
||||||
|
* $Id: doxymacs_parser.c,v 1.12 2006/04/23 00:05:33 ryants Exp $
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <libxml/parser.h>
|
||||||
|
#include <libxml/tree.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Our completion list */
|
||||||
|
|
||||||
|
typedef struct _desc_url_list
|
||||||
|
{
|
||||||
|
char *desc;
|
||||||
|
char *url;
|
||||||
|
|
||||||
|
struct _desc_url_list *next;
|
||||||
|
} desc_url_list;
|
||||||
|
|
||||||
|
typedef struct _completion_list
|
||||||
|
{
|
||||||
|
char *symbol;
|
||||||
|
desc_url_list *descs;
|
||||||
|
|
||||||
|
struct _completion_list *next;
|
||||||
|
} completion_list;
|
||||||
|
|
||||||
|
completion_list *comp_list = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
/* A hash for quick look up of a symbol's entry in the completion list */
|
||||||
|
|
||||||
|
#define HASH_SIZE 11213
|
||||||
|
|
||||||
|
typedef struct _hash_entry
|
||||||
|
{
|
||||||
|
completion_list *cl;
|
||||||
|
|
||||||
|
struct _hash_entry *next;
|
||||||
|
} hash_entry;
|
||||||
|
|
||||||
|
hash_entry *symbol_hash[HASH_SIZE];
|
||||||
|
|
||||||
|
inline unsigned int hash(const char *s)
|
||||||
|
{
|
||||||
|
unsigned int h = 0;
|
||||||
|
|
||||||
|
while (*s)
|
||||||
|
{
|
||||||
|
h += *s++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return abs(h % HASH_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void AddToHash(completion_list *cl)
|
||||||
|
{
|
||||||
|
unsigned int h = hash(cl->symbol);
|
||||||
|
hash_entry **cur = &symbol_hash[h];
|
||||||
|
|
||||||
|
hash_entry *new = (hash_entry *)malloc(sizeof(hash_entry));
|
||||||
|
|
||||||
|
new->cl = cl;
|
||||||
|
new->next = *cur;
|
||||||
|
|
||||||
|
*cur = new;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mmmmm... free hash */
|
||||||
|
inline void FreeHash(void)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
for (i = 0; i < HASH_SIZE; i++)
|
||||||
|
{
|
||||||
|
hash_entry *cur = symbol_hash[i];
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
hash_entry *tmp = cur;
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
|
||||||
|
free(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* XML Helper Functions */
|
||||||
|
|
||||||
|
inline char *XMLTagChild(xmlNodePtr node, const char *name)
|
||||||
|
{
|
||||||
|
xmlNodePtr cur = node->xmlChildrenNode;
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
if (!xmlStrcmp(cur->name, (const xmlChar *) name))
|
||||||
|
{
|
||||||
|
xmlNodePtr cur_child = cur->xmlChildrenNode;
|
||||||
|
if (cur_child)
|
||||||
|
{
|
||||||
|
return (char *)cur_child->content;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline char *XMLTagAttr(xmlNodePtr node, const char *attr)
|
||||||
|
{
|
||||||
|
xmlAttrPtr props = node->properties;
|
||||||
|
|
||||||
|
while (props)
|
||||||
|
{
|
||||||
|
if (!xmlStrcmp(props->name, (const xmlChar *) attr))
|
||||||
|
{
|
||||||
|
xmlNodePtr props_child = props->xmlChildrenNode;
|
||||||
|
if (props_child)
|
||||||
|
{
|
||||||
|
return (char *)props_child->content;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Look up functions for symbols and descriptions */
|
||||||
|
|
||||||
|
inline completion_list *LookUpSymbol(const char *symbol)
|
||||||
|
{
|
||||||
|
unsigned int h = hash(symbol);
|
||||||
|
hash_entry *cur = symbol_hash[h];
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
completion_list *cl = cur->cl;
|
||||||
|
|
||||||
|
if (!strcmp(cl->symbol, symbol))
|
||||||
|
{
|
||||||
|
return cl;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline desc_url_list *LookUpDesc(completion_list *entry, const char *desc)
|
||||||
|
{
|
||||||
|
desc_url_list *cur = entry->descs;
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
if (!strcmp(cur->desc, desc))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add the given name, description and url to our completion list */
|
||||||
|
|
||||||
|
inline int AddToCompletionList(const char *name,
|
||||||
|
const char *desc, const char *url)
|
||||||
|
{
|
||||||
|
completion_list *check;
|
||||||
|
|
||||||
|
check = LookUpSymbol(name);
|
||||||
|
|
||||||
|
if (check)
|
||||||
|
{
|
||||||
|
/* There is already a symbol with the same name in the list */
|
||||||
|
if (!LookUpDesc(check, desc))
|
||||||
|
{
|
||||||
|
/* If there is not yet a symbol with this desc, add it. */
|
||||||
|
/* FIXME: what to do if there is already a symbol?? */
|
||||||
|
desc_url_list *new_desc =
|
||||||
|
(desc_url_list *)malloc(sizeof(desc_url_list));
|
||||||
|
|
||||||
|
if (!new_desc)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_desc->desc = (char *)desc;
|
||||||
|
new_desc->url = (char *)url;
|
||||||
|
new_desc->next = check->descs;
|
||||||
|
|
||||||
|
check->descs = new_desc;
|
||||||
|
}
|
||||||
|
/* Free the name, which was strdup'ed */
|
||||||
|
free((char*)name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
completion_list *new_entry =
|
||||||
|
(completion_list *)malloc(sizeof(completion_list));
|
||||||
|
|
||||||
|
if (!new_entry)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_entry->symbol = (char *)name;
|
||||||
|
|
||||||
|
new_entry->descs = (desc_url_list *)malloc(sizeof(desc_url_list));
|
||||||
|
|
||||||
|
if (!new_entry->descs)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_entry->descs->desc = (char *)desc;
|
||||||
|
new_entry->descs->url = (char *)url;
|
||||||
|
new_entry->descs->next = NULL;
|
||||||
|
|
||||||
|
new_entry->next = comp_list;
|
||||||
|
|
||||||
|
comp_list = new_entry;
|
||||||
|
|
||||||
|
AddToHash(new_entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Encode the given string so that {X}Emacs will understand it */
|
||||||
|
inline char *Encode(const char *s)
|
||||||
|
{
|
||||||
|
unsigned int extra_len = 0;
|
||||||
|
char *c = (char *)s;
|
||||||
|
|
||||||
|
if (!s)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (*c)
|
||||||
|
{
|
||||||
|
/* Is this all that needs to be escaped? */
|
||||||
|
if (*c == '\\' || *c == '"')
|
||||||
|
{
|
||||||
|
extra_len++;
|
||||||
|
}
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!extra_len)
|
||||||
|
{
|
||||||
|
char *ret = strdup(s);
|
||||||
|
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *ret = (char *)malloc(strlen(s) + extra_len + 1);
|
||||||
|
char *r = ret;
|
||||||
|
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (*s)
|
||||||
|
{
|
||||||
|
if (*s == '\\')
|
||||||
|
{
|
||||||
|
*r++ = '\\';
|
||||||
|
*r++ = '\\';
|
||||||
|
}
|
||||||
|
else if (*s == '"')
|
||||||
|
{
|
||||||
|
*r++ = '\\';
|
||||||
|
*r++ = '"';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*r++ = *s;
|
||||||
|
}
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
*r = '\0';
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Output the completion list in a way {X}Emacs can easily read in */
|
||||||
|
|
||||||
|
inline int OutputCompletionList(void)
|
||||||
|
{
|
||||||
|
completion_list *cur = comp_list;
|
||||||
|
|
||||||
|
printf("(");
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
desc_url_list *desc = cur->descs;
|
||||||
|
char *encoded_symbol = Encode(cur->symbol);
|
||||||
|
|
||||||
|
if (!encoded_symbol)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("(\"%s\" ", encoded_symbol);
|
||||||
|
|
||||||
|
free(encoded_symbol);
|
||||||
|
|
||||||
|
while (desc)
|
||||||
|
{
|
||||||
|
char *encoded_desc = Encode(desc->desc);
|
||||||
|
char *encoded_url = Encode(desc->url);
|
||||||
|
|
||||||
|
if (!encoded_desc || !encoded_url)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("(\"%s\" . \"%s\")", encoded_desc, encoded_url);
|
||||||
|
|
||||||
|
free(encoded_desc);
|
||||||
|
free(encoded_url);
|
||||||
|
|
||||||
|
if (desc->next)
|
||||||
|
{
|
||||||
|
printf(" ");
|
||||||
|
}
|
||||||
|
desc = desc->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(")");
|
||||||
|
|
||||||
|
if (cur->next)
|
||||||
|
{
|
||||||
|
printf(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(")\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clean up */
|
||||||
|
|
||||||
|
inline void FreeCompletionList(void)
|
||||||
|
{
|
||||||
|
completion_list *cur = comp_list;
|
||||||
|
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
desc_url_list *desc = cur->descs;
|
||||||
|
completion_list *tmp_cl = cur;
|
||||||
|
|
||||||
|
while (desc)
|
||||||
|
{
|
||||||
|
desc_url_list *tmp_desc = desc;
|
||||||
|
|
||||||
|
desc = desc->next;
|
||||||
|
|
||||||
|
free(tmp_desc->desc);
|
||||||
|
free(tmp_desc->url);
|
||||||
|
free(tmp_desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
|
||||||
|
free(tmp_cl->symbol);
|
||||||
|
free(tmp_cl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add the members of a compound to the completion list */
|
||||||
|
|
||||||
|
inline int AddCompoundMembers(xmlNodePtr compound,
|
||||||
|
const char *name, const char *url)
|
||||||
|
{
|
||||||
|
xmlNodePtr child = compound->xmlChildrenNode;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
while (child && !ret)
|
||||||
|
{
|
||||||
|
if (!xmlStrcmp(child->name, (const xmlChar *) "member"))
|
||||||
|
{
|
||||||
|
char *member_name = XMLTagChild(child, "name");
|
||||||
|
char *member_anchor = XMLTagChild(child, "anchor");
|
||||||
|
char *member_args = XMLTagChild(child, "arglist");
|
||||||
|
|
||||||
|
/* member_args can be NULL... just means there's no args */
|
||||||
|
if (!member_name || !member_anchor)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Invalid Doxygen tags file\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *member_name_copy = strdup(member_name);
|
||||||
|
|
||||||
|
char *member_url = (char *)malloc(strlen(url) +
|
||||||
|
strlen(member_anchor) +
|
||||||
|
2);
|
||||||
|
char *member_desc = (char *)malloc(strlen(name) +
|
||||||
|
strlen(member_name) +
|
||||||
|
(member_args ?
|
||||||
|
strlen(member_args) : 0) +
|
||||||
|
3);
|
||||||
|
|
||||||
|
if (member_url && member_desc && member_name_copy)
|
||||||
|
{
|
||||||
|
sprintf(member_url, "%s#%s", url, member_anchor);
|
||||||
|
sprintf(member_desc,
|
||||||
|
"%s::%s%s",
|
||||||
|
name, member_name, member_args ? member_args : "");
|
||||||
|
|
||||||
|
if (AddToCompletionList(member_name_copy,
|
||||||
|
member_desc, member_url) < 0)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
|
||||||
|
if (member_url)
|
||||||
|
{
|
||||||
|
free(member_url);
|
||||||
|
}
|
||||||
|
if (member_desc)
|
||||||
|
{
|
||||||
|
free(member_desc);
|
||||||
|
}
|
||||||
|
if (member_name_copy)
|
||||||
|
{
|
||||||
|
free(member_name_copy);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
child = child->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
xmlDocPtr doc = NULL;
|
||||||
|
xmlNodePtr cur;
|
||||||
|
int ret = 0;
|
||||||
|
int res;
|
||||||
|
#define BUFF_SIZE 25 * 1024
|
||||||
|
char buff[BUFF_SIZE];
|
||||||
|
|
||||||
|
LIBXML_TEST_VERSION;
|
||||||
|
|
||||||
|
comp_list = NULL;
|
||||||
|
memset(symbol_hash, 0, sizeof(symbol_hash));
|
||||||
|
|
||||||
|
res = fread(buff, 1, 4, stdin);
|
||||||
|
if (res > 0) {
|
||||||
|
xmlParserCtxtPtr ctxt = xmlCreatePushParserCtxt(NULL, NULL,
|
||||||
|
buff, res, "stdin");
|
||||||
|
|
||||||
|
if (!ctxt)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed to parse XML file\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((res = fread(buff, 1, BUFF_SIZE, stdin)) > 0)
|
||||||
|
{
|
||||||
|
if (xmlParseChunk(ctxt, buff, res, 0) != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed to parse XML file\n");
|
||||||
|
ret = -1;
|
||||||
|
xmlFreeParserCtxt(ctxt);
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (xmlParseChunk(ctxt, buff, 0, 1) != 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed to parse XML file\n");
|
||||||
|
ret = -1;
|
||||||
|
xmlFreeParserCtxt(ctxt);
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
doc = ctxt->myDoc;
|
||||||
|
xmlFreeParserCtxt(ctxt);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!doc)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed to parse XML file\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = xmlDocGetRootElement(doc);
|
||||||
|
if (!cur)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Empty XML document\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xmlStrcmp(cur->name, (const xmlChar *) "tagfile"))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Invalid Doxygen tag file, root node != tagfile\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->xmlChildrenNode;
|
||||||
|
while (cur)
|
||||||
|
{
|
||||||
|
if (cur->type == XML_ELEMENT_NODE)
|
||||||
|
{
|
||||||
|
char *compound_name = XMLTagChild(cur, "name");
|
||||||
|
char *compound_kind = XMLTagAttr(cur, "kind");
|
||||||
|
char *compound_url = XMLTagChild(cur, "filename");
|
||||||
|
char *compound_desc;
|
||||||
|
char *compound_name_copy;
|
||||||
|
char *compound_url_copy;
|
||||||
|
|
||||||
|
if (!compound_name || !compound_kind || !compound_url)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Invalid Doxygen tags file\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
compound_desc = (char *)malloc(strlen(compound_kind) +
|
||||||
|
strlen(compound_name) + 3);
|
||||||
|
|
||||||
|
if (!compound_desc)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(compound_desc, "%s %s", compound_kind, compound_name);
|
||||||
|
|
||||||
|
/* Workaround for apparent Doxygen 1.2.18 bug */
|
||||||
|
{
|
||||||
|
int copy_url = 1;
|
||||||
|
/* Some compounds don't get the .html in the URL */
|
||||||
|
if (strcmp(compound_url + strlen(compound_url)
|
||||||
|
- strlen(".html"),
|
||||||
|
".html") != 0)
|
||||||
|
{
|
||||||
|
compound_url_copy = (char *)malloc(strlen(compound_url) +
|
||||||
|
strlen(".html") + 1);
|
||||||
|
sprintf(compound_url_copy, "%s.html", compound_url);
|
||||||
|
compound_url = compound_url_copy;
|
||||||
|
copy_url = 0;
|
||||||
|
}
|
||||||
|
compound_name_copy = strdup(compound_name);
|
||||||
|
if (copy_url)
|
||||||
|
{
|
||||||
|
compound_url_copy = strdup(compound_url);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
compound_url_copy = compound_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!compound_name_copy || !compound_url_copy)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "malloc failed\n");
|
||||||
|
ret = -1;
|
||||||
|
|
||||||
|
if (compound_name_copy)
|
||||||
|
{
|
||||||
|
free(compound_name_copy);
|
||||||
|
}
|
||||||
|
if (compound_url_copy)
|
||||||
|
{
|
||||||
|
free(compound_url_copy);
|
||||||
|
}
|
||||||
|
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AddToCompletionList(compound_name_copy,
|
||||||
|
compound_desc,
|
||||||
|
compound_url_copy) < 0)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AddCompoundMembers(cur, compound_name, compound_url) < 0)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (OutputCompletionList() < 0)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
goto abort;
|
||||||
|
}
|
||||||
|
|
||||||
|
abort:
|
||||||
|
FreeHash();
|
||||||
|
|
||||||
|
FreeCompletionList();
|
||||||
|
|
||||||
|
if (doc)
|
||||||
|
{
|
||||||
|
xmlFreeDoc(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
58
doxymacs/configure.ac
Normal file
58
doxymacs/configure.ac
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl $Id: configure.ac,v 1.11 2007/06/10 13:17:24 ryants Exp $
|
||||||
|
AC_INIT(doxymacs, 1.8.0, http://sourceforge.net/projects/doxymacs)
|
||||||
|
|
||||||
|
AC_PREREQ(2.57)
|
||||||
|
|
||||||
|
AC_REVISION($Revision: 1.11 $)
|
||||||
|
|
||||||
|
AC_CONFIG_SRCDIR(c/doxymacs_parser.c)
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(doxymacs, 1.8.0)
|
||||||
|
|
||||||
|
AC_PREFIX_DEFAULT(${HOME})
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AM_PATH_LISPDIR
|
||||||
|
|
||||||
|
dnl Checks for libraries.
|
||||||
|
AM_PATH_XML2(2.6.13)
|
||||||
|
|
||||||
|
dnl Checks for header files.
|
||||||
|
AC_HEADER_STDC
|
||||||
|
|
||||||
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
|
||||||
|
dnl Checks for library functions.
|
||||||
|
AC_CHECK_FUNCS(strdup)
|
||||||
|
|
||||||
|
dnl Doxymacs specific configure options
|
||||||
|
AC_ARG_WITH(default-style,
|
||||||
|
AC_HELP_STRING([--with-default-style=STYLE],
|
||||||
|
[Default Doxygen style to use. One of "JavaDoc", "Qt", "C++" or "C++!". Default "JavaDoc". ]),
|
||||||
|
DOXYMACS_DEFAULT_STYLE="$withval", DOXYMACS_DEFAULT_STYLE="JavaDoc")
|
||||||
|
|
||||||
|
AC_ARG_WITH(external-xml-parser,
|
||||||
|
AC_HELP_STRING([--with-external-xml-parser],
|
||||||
|
[Use external default xml parser by default. Default is to use internal xml parser.]),
|
||||||
|
DOXYMACS_USE_EXTERNAL_XML_PARSER="t", DOXYMACS_USE_EXTERNAL_XML_PARSER="nil")
|
||||||
|
|
||||||
|
AC_SUBST(DOXYMACS_DEFAULT_STYLE)
|
||||||
|
AC_SUBST(DOXYMACS_USE_EXTERNAL_XML_PARSER)
|
||||||
|
|
||||||
|
dnl Here is a hack to get the REAL bindir without any other
|
||||||
|
dnl embedded variables.
|
||||||
|
AC_CONFIG_COMMANDS_PRE([abs_bindir=${bindir} ; while echo ${abs_bindir} | grep '${[[A-Za-z0-9_]]\+}' > /dev/null ; do abs_bindir=`eval echo ${abs_bindir}` ; done ; DOXYMACS_PARSER=${abs_bindir}/doxymacs_parser${EXEEXT}])
|
||||||
|
|
||||||
|
AC_SUBST(DOXYMACS_PARSER)
|
||||||
|
|
||||||
|
AC_ARG_VAR(EMACS, [How to invoke emacs (e.g. EMACS=xemacs to use XEmacs).])
|
||||||
|
AC_ARG_VAR(EMACSLOADPATH, [Default load-path for EMACS.])
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile c/Makefile lisp/Makefile lisp/doxymacs.el
|
||||||
|
no-autoconf/Makefile])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
54
doxymacs/elisp-comp
Executable file
54
doxymacs/elisp-comp
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright 1995 Free Software Foundation, Inc.
|
||||||
|
# François Pinard <pinard@iro.umontreal.ca>, 1995.
|
||||||
|
#
|
||||||
|
# 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 program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This script byte-compiles all `.el' files which are part of its
|
||||||
|
# arguments, using GNU Emacs, and put the resulting `.elc' files into
|
||||||
|
# the current directory, so disregarding the original directories used
|
||||||
|
# in `.el' arguments.
|
||||||
|
#
|
||||||
|
# This script manages in such a way that all Emacs LISP files to
|
||||||
|
# be compiled are made visible between themselves, in the event
|
||||||
|
# they require or load-library one another.
|
||||||
|
|
||||||
|
if test $# = 0; then
|
||||||
|
echo 1>&2 "No files given to $0"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
if test -z "$EMACS" || test "$EMACS" = "t"; then
|
||||||
|
# Value of "t" means we are running in a shell under Emacs.
|
||||||
|
# Just assume Emacs is called "emacs".
|
||||||
|
EMACS=emacs
|
||||||
|
fi
|
||||||
|
|
||||||
|
tempdir=elc.$$
|
||||||
|
mkdir $tempdir
|
||||||
|
cp $* $tempdir
|
||||||
|
cd $tempdir
|
||||||
|
|
||||||
|
echo "(setq load-path (cons \"..\" load-path))" > script
|
||||||
|
$EMACS -batch -q -l script -f batch-byte-compile *.el
|
||||||
|
mv *.elc ..
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -fr $tempdir
|
||||||
|
fi
|
||||||
134
doxymacs/example/doc/doxy.tag
Normal file
134
doxymacs/example/doc/doxy.tag
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<?xml version='1.0' encoding='ISO-8859-1' standalone='yes' ?>
|
||||||
|
<tagfile>
|
||||||
|
<compound kind="file">
|
||||||
|
<name>aclass.h</name>
|
||||||
|
<path>/home/rts/Projects/doxymacs/example/src/</path>
|
||||||
|
<filename>aclass_8h</filename>
|
||||||
|
<class kind="class">Foo</class>
|
||||||
|
<class kind="struct">blah</class>
|
||||||
|
<class kind="struct">baz</class>
|
||||||
|
<namespace>NameSpaceTest</namespace>
|
||||||
|
<member kind="define">
|
||||||
|
<type>#define</type>
|
||||||
|
<name>SOME_OBSCURE_DEFINE</name>
|
||||||
|
<anchorfile>aclass_8h.html</anchorfile>
|
||||||
|
<anchor>a7a597155a7a2c7edf98291e4196f6f37</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="enumeration">
|
||||||
|
<name>_blah</name>
|
||||||
|
<anchorfile>aclass_8h.html</anchorfile>
|
||||||
|
<anchor>aff7431c1e83d4cf5f4810ed8e9dc2e7e</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="enumvalue">
|
||||||
|
<name>FOO_SNAZ</name>
|
||||||
|
<anchorfile>aclass_8h.html</anchorfile>
|
||||||
|
<anchor>aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="enumvalue">
|
||||||
|
<name>Foo</name>
|
||||||
|
<anchorfile>aclass_8h.html</anchorfile>
|
||||||
|
<anchor>aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="variable">
|
||||||
|
<type>int</type>
|
||||||
|
<name>foobazbar</name>
|
||||||
|
<anchorfile>namespaceNameSpaceTest.html</anchorfile>
|
||||||
|
<anchor>a5f0fd9588d8e6d4aaf2ff4ad20d7e60b</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
</compound>
|
||||||
|
<compound kind="struct">
|
||||||
|
<name>baz</name>
|
||||||
|
<filename>structbaz.html</filename>
|
||||||
|
<member kind="variable">
|
||||||
|
<type>int</type>
|
||||||
|
<name>z</name>
|
||||||
|
<anchorfile>structbaz.html</anchorfile>
|
||||||
|
<anchor>aa5d83e88ff56e3e2511d5f9335106e78</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
</compound>
|
||||||
|
<compound kind="struct">
|
||||||
|
<name>blah</name>
|
||||||
|
<filename>structblah.html</filename>
|
||||||
|
<member kind="variable">
|
||||||
|
<type>int</type>
|
||||||
|
<name>x</name>
|
||||||
|
<anchorfile>structblah.html</anchorfile>
|
||||||
|
<anchor>afa9a06361ecd9f06902546449295d4c7</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="variable">
|
||||||
|
<type>int</type>
|
||||||
|
<name>y</name>
|
||||||
|
<anchorfile>structblah.html</anchorfile>
|
||||||
|
<anchor>a7867e67a7099e4420c9de686a68eb6c8</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
</compound>
|
||||||
|
<compound kind="class">
|
||||||
|
<name>Foo</name>
|
||||||
|
<filename>classFoo.html</filename>
|
||||||
|
<member kind="enumeration">
|
||||||
|
<name>blah_blah</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a9fbd006a5c0ff9ddb4f02a950d4e862c</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="enumvalue">
|
||||||
|
<name>BAZ</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="enumvalue">
|
||||||
|
<name>BAZ2</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="function">
|
||||||
|
<type></type>
|
||||||
|
<name>Foo</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a400553bba3f44d1d4b82a0be2bf575b6</anchor>
|
||||||
|
<arglist>(int blah)</arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="function">
|
||||||
|
<type></type>
|
||||||
|
<name>GetBlah</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a1d524237312eaafba8838e9c354df460</anchor>
|
||||||
|
<arglist>(void) const </arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="function" protection="private">
|
||||||
|
<type></type>
|
||||||
|
<name>Foo</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>aefff6cbdd4727b0b1da2c7c00f529a02</anchor>
|
||||||
|
<arglist>(int &in, int &out, int &inout)</arglist>
|
||||||
|
</member>
|
||||||
|
<member kind="variable" protection="private">
|
||||||
|
<type>int</type>
|
||||||
|
<name>_blah</name>
|
||||||
|
<anchorfile>classFoo.html</anchorfile>
|
||||||
|
<anchor>a4e5ef452fe3f664199e8c5e91754e0e2</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
</compound>
|
||||||
|
<compound kind="namespace">
|
||||||
|
<name>NameSpaceTest</name>
|
||||||
|
<filename>namespaceNameSpaceTest.html</filename>
|
||||||
|
<member kind="variable">
|
||||||
|
<type>int</type>
|
||||||
|
<name>foobazbar</name>
|
||||||
|
<anchorfile>namespaceNameSpaceTest.html</anchorfile>
|
||||||
|
<anchor>a5f0fd9588d8e6d4aaf2ff4ad20d7e60b</anchor>
|
||||||
|
<arglist></arglist>
|
||||||
|
</member>
|
||||||
|
</compound>
|
||||||
|
</tagfile>
|
||||||
65
doxymacs/example/doc/html/aclass_8h-source.html
Normal file
65
doxymacs/example/doc/html/aclass_8h-source.html
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Test project: aclass.h Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.4 -->
|
||||||
|
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
|
||||||
|
<h1>aclass.h</h1><a href="aclass_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// $Id: aclass_8h-source.html,v 1.6 2006/04/23 01:04:30 ryants Exp $</span>
|
||||||
|
<a name="l00002"></a>00002 <span class="comment">// This is just some silly sample file to test out doxymacs with.</span>
|
||||||
|
<a name="l00003"></a>00003 <span class="preprocessor">#ifndef _ACLASS_H_</span>
|
||||||
|
<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define _ACLASS_H_</span>
|
||||||
|
<a name="l00005"></a>00005 <span class="preprocessor"></span>
|
||||||
|
<a name="l00006"></a>00006
|
||||||
|
<a name="l00007"></a><a class="code" href="aclass_8h.html#a0">00007</a> <span class="preprocessor">#define SOME_OBSCURE_DEFINE 76</span>
|
||||||
|
<a name="l00008"></a>00008 <span class="preprocessor"></span>
|
||||||
|
<a name="l00013"></a><a class="code" href="classFoo.html">00013</a> <span class="keyword">class </span><a class="code" href="classFoo.html">Foo</a>
|
||||||
|
<a name="l00014"></a>00014 {
|
||||||
|
<a name="l00015"></a>00015 <span class="keyword">public</span>:
|
||||||
|
<a name="l00021"></a><a class="code" href="classFoo.html#a0">00021</a> <a class="code" href="classFoo.html#a0">Foo</a>(<span class="keywordtype">int</span> <a class="code" href="structblah.html">blah</a>)
|
||||||
|
<a name="l00022"></a>00022 : <a class="code" href="aclass_8h.html#a4">_blah</a>(blah)
|
||||||
|
<a name="l00023"></a>00023 {}
|
||||||
|
<a name="l00024"></a>00024
|
||||||
|
<a name="l00028"></a><a class="code" href="classFoo.html#a1">00028</a> <a class="code" href="classFoo.html#a1">GetBlah</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="aclass_8h.html#a4">_blah</a>; }
|
||||||
|
<a name="l00029"></a>00029
|
||||||
|
<a name="l00030"></a><a class="code" href="classFoo.html#w2">00030</a> <span class="keyword">enum</span> <a class="code" href="classFoo.html#w2">blah_blah</a>
|
||||||
|
<a name="l00031"></a>00031 {
|
||||||
|
<a name="l00032"></a>00032 <a class="code" href="classFoo.html#w2w0">BAZ</a>,
|
||||||
|
<a name="l00033"></a>00033 <a class="code" href="classFoo.html#w2w1">BAZ2</a>,
|
||||||
|
<a name="l00034"></a>00034 };
|
||||||
|
<a name="l00035"></a>00035
|
||||||
|
<a name="l00036"></a>00036 <span class="keyword">private</span>:
|
||||||
|
<a name="l00037"></a>00037
|
||||||
|
<a name="l00045"></a><a class="code" href="classFoo.html#d0">00045</a> <a class="code" href="classFoo.html#a0">Foo</a>(<span class="keywordtype">int</span> &in, <span class="keywordtype">int</span> &out, <span class="keywordtype">int</span> &inout) { out = in + inout; }
|
||||||
|
<a name="l00046"></a>00046
|
||||||
|
<a name="l00048"></a><a class="code" href="classFoo.html#r0">00048</a> <span class="keywordtype">int</span> <a class="code" href="aclass_8h.html#a4">_blah</a>;
|
||||||
|
<a name="l00049"></a>00049 };
|
||||||
|
<a name="l00050"></a>00050
|
||||||
|
<a name="l00052"></a><a class="code" href="structblah.html">00052</a> <span class="keyword">struct </span><a class="code" href="structblah.html">blah</a>
|
||||||
|
<a name="l00053"></a>00053 {
|
||||||
|
<a name="l00054"></a><a class="code" href="structblah.html#o0">00054</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#o0">x</a>;
|
||||||
|
<a name="l00055"></a><a class="code" href="structblah.html#o1">00055</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#o1">y</a>;
|
||||||
|
<a name="l00056"></a>00056 };
|
||||||
|
<a name="l00057"></a>00057
|
||||||
|
<a name="l00058"></a><a class="code" href="structbaz.html">00058</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
|
||||||
|
<a name="l00059"></a>00059 <span class="keyword"></span>{
|
||||||
|
<a name="l00060"></a><a class="code" href="structbaz.html#o0">00060</a> <span class="keywordtype">int</span> z;
|
||||||
|
<a name="l00061"></a>00061 } <a class="code" href="structbaz.html">baz</a>;
|
||||||
|
<a name="l00062"></a>00062
|
||||||
|
<a name="l00064"></a><a class="code" href="aclass_8h.html#a4">00064</a> <span class="keyword">enum</span> <a class="code" href="aclass_8h.html#a4">_blah</a>
|
||||||
|
<a name="l00065"></a>00065 {
|
||||||
|
<a name="l00066"></a>00066 <a class="code" href="aclass_8h.html#a4a2">FOO_SNAZ</a>,
|
||||||
|
<a name="l00067"></a>00067 <a class="code" href="classFoo.html">Foo</a>
|
||||||
|
<a name="l00068"></a>00068 };
|
||||||
|
<a name="l00069"></a>00069
|
||||||
|
<a name="l00071"></a><a class="code" href="namespaceNameSpaceTest.html">00071</a> <span class="keyword">namespace </span>NameSpaceTest
|
||||||
|
<a name="l00072"></a>00072 {
|
||||||
|
<a name="l00073"></a><a class="code" href="namespaceNameSpaceTest.html#a0">00073</a> <span class="keywordtype">int</span> <a class="code" href="namespaceNameSpaceTest.html#a0">foobazbar</a>;
|
||||||
|
<a name="l00074"></a>00074 }
|
||||||
|
<a name="l00075"></a>00075
|
||||||
|
<a name="l00076"></a>00076 <span class="preprocessor">#endif // _ACLASS_H_</span>
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
108
doxymacs/example/doc/html/aclass_8h.html
Normal file
108
doxymacs/example/doc/html/aclass_8h.html
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: aclass.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>aclass.h File Reference</h1>
|
||||||
|
<p><a href="aclass_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td colspan="2"><h2>Classes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html">Foo</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">This class does <a class="el" href="structblah.html" title="This struct does something useless.">blah</a>. <a href="classFoo.html#_details">More...</a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html">blah</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">This struct does something useless. <a href="structblah.html#_details">More...</a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structbaz.html">baz</a></td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html">NameSpaceTest</a></td></tr>
|
||||||
|
|
||||||
|
<p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Some namespace. </p>
|
||||||
|
<br/></td></tr>
|
||||||
|
</p>
|
||||||
|
<tr><td colspan="2"><h2>Defines</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="aclass_8h.html#a7a597155a7a2c7edf98291e4196f6f37">SOME_OBSCURE_DEFINE</a> 76</td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">_blah</a> { <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611">FOO_SNAZ</a>,
|
||||||
|
<a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6">Foo</a>
|
||||||
|
}</td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>This is a useless enum. </p>
|
||||||
|
<a href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">More...</a><br/></td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Variables</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">NameSpaceTest::foobazbar</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><h2>Define Documentation</h2>
|
||||||
|
<a class="anchor" id="a7a597155a7a2c7edf98291e4196f6f37"></a><!-- doxytag: member="aclass.h::SOME_OBSCURE_DEFINE" ref="a7a597155a7a2c7edf98291e4196f6f37" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define SOME_OBSCURE_DEFINE 76</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00007">7</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/><h2>Enumeration Type Documentation</h2>
|
||||||
|
<a class="anchor" id="aff7431c1e83d4cf5f4810ed8e9dc2e7e"></a><!-- doxytag: member="aclass.h::_blah" ref="aff7431c1e83d4cf5f4810ed8e9dc2e7e" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">_blah</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>This is a useless enum. </p>
|
||||||
|
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"><em><a class="anchor" id="aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611"></a><!-- doxytag: member="FOO_SNAZ" ref="aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611" args="" -->FOO_SNAZ</em> </td><td>
|
||||||
|
<p>More silly stuff. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td valign="top"><em><a class="anchor" id="aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6"></a><!-- doxytag: member="Foo" ref="aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6" args="" -->Foo</em> </td><td>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00064">64</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
<p><div class="fragment"><pre class="fragment"><a name="l00065"></a>00065 {
|
||||||
|
<a name="l00066"></a>00066 <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611" title="More silly stuff.">FOO_SNAZ</a>,
|
||||||
|
<a name="l00067"></a>00067 <a class="code" href="classFoo.html" title="This class does blah.">Foo</a>
|
||||||
|
<a name="l00068"></a>00068 };
|
||||||
|
</pre></div></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
84
doxymacs/example/doc/html/aclass_8h_source.html
Normal file
84
doxymacs/example/doc/html/aclass_8h_source.html
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: aclass.h Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<h1>aclass.h</h1><a href="aclass_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// $Id: aclass.h,v 1.3 2005/04/01 06:05:06 ryants Exp $</span>
|
||||||
|
<a name="l00002"></a>00002 <span class="comment">// This is just some silly sample file to test out doxymacs with.</span>
|
||||||
|
<a name="l00003"></a>00003 <span class="preprocessor">#ifndef _ACLASS_H_</span>
|
||||||
|
<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define _ACLASS_H_</span>
|
||||||
|
<a name="l00005"></a>00005 <span class="preprocessor"></span>
|
||||||
|
<a name="l00006"></a>00006
|
||||||
|
<a name="l00007"></a><a class="code" href="aclass_8h.html#a7a597155a7a2c7edf98291e4196f6f37">00007</a> <span class="preprocessor">#define SOME_OBSCURE_DEFINE 76</span>
|
||||||
|
<a name="l00008"></a>00008 <span class="preprocessor"></span>
|
||||||
|
<a name="l00013"></a><a class="code" href="classFoo.html">00013</a> <span class="keyword">class </span><a class="code" href="classFoo.html" title="This class does blah.">Foo</a>
|
||||||
|
<a name="l00014"></a>00014 {
|
||||||
|
<a name="l00015"></a>00015 <span class="keyword">public</span>:
|
||||||
|
<a name="l00021"></a><a class="code" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6">00021</a> <a class="code" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6" title="The constructor.">Foo</a>(<span class="keywordtype">int</span> <a class="code" href="structblah.html" title="This struct does something useless.">blah</a>)
|
||||||
|
<a name="l00022"></a>00022 : <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e" title="This is a useless enum.">_blah</a>(blah)
|
||||||
|
<a name="l00023"></a>00023 {}
|
||||||
|
<a name="l00024"></a>00024
|
||||||
|
<a name="l00028"></a><a class="code" href="classFoo.html#a1d524237312eaafba8838e9c354df460">00028</a> <a class="code" href="classFoo.html#a1d524237312eaafba8838e9c354df460" title="Gets the current value of blah.">GetBlah</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e" title="This is a useless enum.">_blah</a>; }
|
||||||
|
<a name="l00029"></a>00029
|
||||||
|
<a name="l00030"></a><a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">00030</a> <span class="keyword">enum</span> <a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">blah_blah</a>
|
||||||
|
<a name="l00031"></a>00031 {
|
||||||
|
<a name="l00032"></a><a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">00032</a> <a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">BAZ</a>,
|
||||||
|
<a name="l00033"></a><a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">00033</a> <a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">BAZ2</a>,
|
||||||
|
<a name="l00034"></a>00034 };
|
||||||
|
<a name="l00035"></a>00035
|
||||||
|
<a name="l00036"></a>00036 <span class="keyword">private</span>:
|
||||||
|
<a name="l00037"></a>00037
|
||||||
|
<a name="l00045"></a><a class="code" href="classFoo.html#aefff6cbdd4727b0b1da2c7c00f529a02">00045</a> <a class="code" href="classFoo.html#aefff6cbdd4727b0b1da2c7c00f529a02" title="Testing the in/out parameter stuff.">Foo</a>(<span class="keywordtype">int</span> &in, <span class="keywordtype">int</span> &out, <span class="keywordtype">int</span> &inout) { out = in + inout; }
|
||||||
|
<a name="l00046"></a>00046
|
||||||
|
<a name="l00048"></a><a class="code" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">00048</a> <span class="keywordtype">int</span> <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e" title="This is a useless enum.">_blah</a>;
|
||||||
|
<a name="l00049"></a>00049 };
|
||||||
|
<a name="l00050"></a>00050
|
||||||
|
<a name="l00052"></a><a class="code" href="structblah.html">00052</a> <span class="keyword">struct </span><a class="code" href="structblah.html" title="This struct does something useless.">blah</a>
|
||||||
|
<a name="l00053"></a>00053 {
|
||||||
|
<a name="l00054"></a><a class="code" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">00054</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">x</a>;
|
||||||
|
<a name="l00055"></a><a class="code" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">00055</a> <span class="keywordtype">int</span> <a class="code" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">y</a>;
|
||||||
|
<a name="l00056"></a>00056 };
|
||||||
|
<a name="l00057"></a>00057
|
||||||
|
<a name="l00058"></a><a class="code" href="structbaz.html">00058</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
|
||||||
|
<a name="l00059"></a>00059 {
|
||||||
|
<a name="l00060"></a><a class="code" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">00060</a> <span class="keywordtype">int</span> z;
|
||||||
|
<a name="l00061"></a>00061 } <a class="code" href="structbaz.html">baz</a>;
|
||||||
|
<a name="l00062"></a>00062
|
||||||
|
<a name="l00064"></a><a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">00064</a> <span class="keyword">enum</span> <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e" title="This is a useless enum.">_blah</a>
|
||||||
|
<a name="l00065"></a>00065 {
|
||||||
|
<a name="l00066"></a><a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611">00066</a> <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611" title="More silly stuff.">FOO_SNAZ</a>,
|
||||||
|
<a name="l00067"></a><a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6">00067</a> <a class="code" href="classFoo.html" title="This class does blah.">Foo</a>
|
||||||
|
<a name="l00068"></a>00068 };
|
||||||
|
<a name="l00069"></a>00069
|
||||||
|
<a name="l00071"></a><a class="code" href="namespaceNameSpaceTest.html">00071</a> <span class="keyword">namespace </span>NameSpaceTest
|
||||||
|
<a name="l00072"></a>00072 {
|
||||||
|
<a name="l00073"></a><a class="code" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">00073</a> <span class="keywordtype">int</span> <a class="code" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">foobazbar</a>;
|
||||||
|
<a name="l00074"></a>00074 }
|
||||||
|
<a name="l00075"></a>00075
|
||||||
|
<a name="l00076"></a>00076 <span class="preprocessor">#endif // _ACLASS_H_</span>
|
||||||
|
</pre></div></div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
38
doxymacs/example/doc/html/annotated.html
Normal file
38
doxymacs/example/doc/html/annotated.html
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="structbaz.html">baz</a></td><td class="indexvalue"></td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="structblah.html">blah</a></td><td class="indexvalue">This struct does something useless </td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="classFoo.html">Foo</a></td><td class="indexvalue">This class does <a class="el" href="structblah.html" title="This struct does something useless.">blah</a> </td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
41
doxymacs/example/doc/html/classFoo-members.html
Normal file
41
doxymacs/example/doc/html/classFoo-members.html
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Foo Member List</h1>This is the complete list of members for <a class="el" href="classFoo.html">Foo</a>, including all inherited members.<table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">_blah</a></td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [private]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">BAZ</a> enum value</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">BAZ2</a> enum value</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">blah_blah</a> enum name</td><td><a class="el" href="classFoo.html">Foo</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6">Foo</a>(int blah)</td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#aefff6cbdd4727b0b1da2c7c00f529a02">Foo</a>(int &in, int &out, int &inout)</td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline, private]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classFoo.html#a1d524237312eaafba8838e9c354df460">GetBlah</a>(void) const </td><td><a class="el" href="classFoo.html">Foo</a></td><td><code> [inline]</code></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
219
doxymacs/example/doc/html/classFoo.html
Normal file
219
doxymacs/example/doc/html/classFoo.html
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Foo Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Foo Class Reference</h1><!-- doxytag: class="Foo" -->
|
||||||
|
<p>This class does <a class="el" href="structblah.html" title="This struct does something useless.">blah</a>.
|
||||||
|
<a href="#_details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="aclass_8h_source.html">aclass.h</a>></code></p>
|
||||||
|
|
||||||
|
<p><a href="classFoo-members.html">List of all members.</a></p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">blah_blah</a> { <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">BAZ</a>,
|
||||||
|
<a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">BAZ2</a>
|
||||||
|
}</td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6">Foo</a> (int <a class="el" href="structblah.html">blah</a>)</td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The constructor. <a href="#a400553bba3f44d1d4b82a0be2bf575b6"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a1d524237312eaafba8838e9c354df460">GetBlah</a> (void) const </td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the current value of <a class="el" href="structblah.html" title="This struct does something useless.">blah</a>. <a href="#a1d524237312eaafba8838e9c354df460"></a><br/></td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Private Member Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#aefff6cbdd4727b0b1da2c7c00f529a02">Foo</a> (int &in, int &out, int &inout)</td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Testing the in/out parameter stuff. <a href="#aefff6cbdd4727b0b1da2c7c00f529a02"></a><br/></td></tr>
|
||||||
|
<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">_blah</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">This is a measure of our blahness. <a href="#a4e5ef452fe3f664199e8c5e91754e0e2"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
<p>This class does <a class="el" href="structblah.html" title="This struct does something useless.">blah</a>. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00013">13</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
<hr/><h2>Member Enumeration Documentation</h2>
|
||||||
|
<a class="anchor" id="a9fbd006a5c0ff9ddb4f02a950d4e862c"></a><!-- doxytag: member="Foo::blah_blah" ref="a9fbd006a5c0ff9ddb4f02a950d4e862c" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">Foo::blah_blah</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"><em><a class="anchor" id="a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed"></a><!-- doxytag: member="BAZ" ref="a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed" args="" -->BAZ</em> </td><td>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td valign="top"><em><a class="anchor" id="a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0"></a><!-- doxytag: member="BAZ2" ref="a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0" args="" -->BAZ2</em> </td><td>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00030">30</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
<p><div class="fragment"><pre class="fragment"><a name="l00031"></a>00031 {
|
||||||
|
<a name="l00032"></a>00032 <a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">BAZ</a>,
|
||||||
|
<a name="l00033"></a>00033 <a class="code" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">BAZ2</a>,
|
||||||
|
<a name="l00034"></a>00034 };
|
||||||
|
</pre></div></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/><h2>Constructor & Destructor Documentation</h2>
|
||||||
|
<a class="anchor" id="a400553bba3f44d1d4b82a0be2bf575b6"></a><!-- doxytag: member="Foo::Foo" ref="a400553bba3f44d1d4b82a0be2bf575b6" args="(int blah)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Foo::Foo </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>blah</em></td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td><code> [inline]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>The constructor. </p>
|
||||||
|
<dl><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="structblah.html" title="This struct does something useless.">blah</a></em> </td><td>Some kind of fish. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00021">21</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
<p><div class="fragment"><pre class="fragment"><a name="l00022"></a>00022 : <a class="code" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2" title="This is a measure of our blahness.">_blah</a>(<a class="code" href="structblah.html" title="This struct does something useless.">blah</a>)
|
||||||
|
<a name="l00023"></a>00023 {}
|
||||||
|
</pre></div></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aefff6cbdd4727b0b1da2c7c00f529a02"></a><!-- doxytag: member="Foo::Foo" ref="aefff6cbdd4727b0b1da2c7c00f529a02" args="(int &in, int &out, int &inout)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Foo::Foo </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int & </td>
|
||||||
|
<td class="paramname"> <em>in</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int & </td>
|
||||||
|
<td class="paramname"> <em>out</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int & </td>
|
||||||
|
<td class="paramname"> <em>inout</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td><code> [inline, private]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Testing the in/out parameter stuff. </p>
|
||||||
|
<dl><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>in</em> </td><td>An "in" parameter </td></tr>
|
||||||
|
<tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>out</em> </td><td>An "out" parameter </td></tr>
|
||||||
|
<tr><td valign="top"><tt>[in,out]</tt> </td><td valign="top"><em>inout</em> </td><td>An "inout" parameter </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00045">45</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
<p><div class="fragment"><pre class="fragment"><a name="l00045"></a>00045 { out = in + inout; }
|
||||||
|
</pre></div></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/><h2>Member Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a1d524237312eaafba8838e9c354df460"></a><!-- doxytag: member="Foo::GetBlah" ref="a1d524237312eaafba8838e9c354df460" args="(void) const " -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Foo::GetBlah </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">void </td>
|
||||||
|
<td class="paramname"></td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td> const<code> [inline]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Gets the current value of <a class="el" href="structblah.html" title="This struct does something useless.">blah</a>. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00028">28</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
<p><div class="fragment"><pre class="fragment"><a name="l00028"></a>00028 { <span class="keywordflow">return</span> <a class="code" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e" title="This is a useless enum.">_blah</a>; }
|
||||||
|
</pre></div></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/><h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" id="a4e5ef452fe3f664199e8c5e91754e0e2"></a><!-- doxytag: member="Foo::_blah" ref="a4e5ef452fe3f664199e8c5e91754e0e2" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">Foo::_blah</a><code> [private]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>This is a measure of our blahness. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00048">48</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="aclass_8h_source.html">aclass.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
38
doxymacs/example/doc/html/classes.html
Normal file
38
doxymacs/example/doc/html/classes.html
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Alphabetical List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_F">F</a></div>
|
||||||
|
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> B </div></td></tr></table>
|
||||||
|
</td><td><a class="el" href="structbaz.html">baz</a> </td><td><a class="el" href="structblah.html">blah</a> </td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> F </div></td></tr></table>
|
||||||
|
</td><td><a class="el" href="classFoo.html">Foo</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_F">F</a></div>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
498
doxymacs/example/doc/html/doxygen.css
Normal file
498
doxymacs/example/doc/html/doxygen.css
Normal file
@ -0,0 +1,498 @@
|
|||||||
|
/* The standard CSS for doxygen */
|
||||||
|
|
||||||
|
body, table, div, p, dl {
|
||||||
|
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Heading Levels */
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 120%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.multicol {
|
||||||
|
-moz-column-gap: 1em;
|
||||||
|
-webkit-column-gap: 1em;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.startli, p.startdd {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.endli {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.enddd {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
caption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.legend {
|
||||||
|
font-size: 70%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.qindex, div.navtab{
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.qindex, div.navpath {
|
||||||
|
width: 100%;
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.navtab {
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Link Styling */
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #153788;
|
||||||
|
font-weight: normal;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents a:visited {
|
||||||
|
color: #1b77c5;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.qindex {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.qindexHL {
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #6666cc;
|
||||||
|
color: #ffffff;
|
||||||
|
border: 1px double #9295C2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents a.qindexHL:visited {
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.el {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.elRef {
|
||||||
|
}
|
||||||
|
|
||||||
|
a.code {
|
||||||
|
}
|
||||||
|
|
||||||
|
a.codeRef {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
dl.el {
|
||||||
|
margin-left: -1cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fragment {
|
||||||
|
font-family: monospace, fixed;
|
||||||
|
font-size: 105%;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.fragment {
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
padding: 4px 6px;
|
||||||
|
margin: 4px 8px 4px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ah {
|
||||||
|
background-color: black;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
margin-top: 3px
|
||||||
|
}
|
||||||
|
|
||||||
|
div.groupHeader {
|
||||||
|
margin-left: 16px;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.groupText {
|
||||||
|
margin-left: 16px;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.indexkey {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
margin: 2px 0px 2px 0;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.indexvalue {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
padding: 2px 10px;
|
||||||
|
margin: 2px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.memlist {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.formulaDsp {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.formulaDsp {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
img.formulaInl {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.center {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.center img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.footer {
|
||||||
|
border: 0px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Code Colorization */
|
||||||
|
|
||||||
|
span.keyword {
|
||||||
|
color: #008000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.keywordtype {
|
||||||
|
color: #604020
|
||||||
|
}
|
||||||
|
|
||||||
|
span.keywordflow {
|
||||||
|
color: #e08000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.comment {
|
||||||
|
color: #800000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.preprocessor {
|
||||||
|
color: #806020
|
||||||
|
}
|
||||||
|
|
||||||
|
span.stringliteral {
|
||||||
|
color: #002080
|
||||||
|
}
|
||||||
|
|
||||||
|
span.charliteral {
|
||||||
|
color: #008080
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdldigit {
|
||||||
|
color: #ff00ff
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdlchar {
|
||||||
|
color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdlkeyword {
|
||||||
|
color: #700070
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdllogic {
|
||||||
|
color: #ff0000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
.search {
|
||||||
|
color: #003399;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.search {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.search {
|
||||||
|
font-size: 75%;
|
||||||
|
color: #000080;
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #e8eef2;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.tiny {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dirtab {
|
||||||
|
padding: 4px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.dirtab {
|
||||||
|
background: #e8eef2;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 0;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Member Descriptions */
|
||||||
|
|
||||||
|
.mdescLeft, .mdescRight,
|
||||||
|
.memItemLeft, .memItemRight,
|
||||||
|
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
border: none;
|
||||||
|
margin: 4px;
|
||||||
|
padding: 1px 0 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mdescLeft, .mdescRight {
|
||||||
|
padding: 0px 8px 4px 8px;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memItemLeft, .memItemRight, .memTemplParams {
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memItemLeft, .memTemplItemLeft {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memTemplParams {
|
||||||
|
color: #606060;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
/* @group Member Details */
|
||||||
|
|
||||||
|
/* Styles for detailed member documentation */
|
||||||
|
|
||||||
|
.memtemplate {
|
||||||
|
font-size: 80%;
|
||||||
|
color: #606060;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memnav {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memitem {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memname {
|
||||||
|
white-space: nowrap;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memproto, .memdoc {
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memproto {
|
||||||
|
padding: 0;
|
||||||
|
background-color: #d5e1e8;
|
||||||
|
font-weight: bold;
|
||||||
|
-webkit-border-top-left-radius: 8px;
|
||||||
|
-webkit-border-top-right-radius: 8px;
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
-moz-border-radius-topleft: 8px;
|
||||||
|
-moz-border-radius-topright: 8px;
|
||||||
|
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.memdoc {
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: #eef3f5;
|
||||||
|
border-top-width: 0;
|
||||||
|
-webkit-border-bottom-left-radius: 8px;
|
||||||
|
-webkit-border-bottom-right-radius: 8px;
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
-moz-border-radius-bottomleft: 8px;
|
||||||
|
-moz-border-radius-bottomright: 8px;
|
||||||
|
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramkey {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramtype {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramname {
|
||||||
|
color: #602020;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.paramname em {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
/* @group Directory (tree) */
|
||||||
|
|
||||||
|
/* for the tree view */
|
||||||
|
|
||||||
|
.ftvtree {
|
||||||
|
font-family: sans-serif;
|
||||||
|
margin: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* these are for tree view when used as main index */
|
||||||
|
|
||||||
|
.directory {
|
||||||
|
font-size: 9pt;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory h3 {
|
||||||
|
margin: 0px;
|
||||||
|
margin-top: 1em;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
The following two styles can be used to replace the root node title
|
||||||
|
with an image of your choice. Simply uncomment the next two styles,
|
||||||
|
specify the name of your image and be sure to set 'height' to the
|
||||||
|
proper pixel height of your image.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
.directory h3.swap {
|
||||||
|
height: 61px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-image: url("yourimage.gif");
|
||||||
|
}
|
||||||
|
.directory h3.swap span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.directory > h3 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory p {
|
||||||
|
margin: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory div {
|
||||||
|
display: none;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory img {
|
||||||
|
vertical-align: -30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* these are for tree view when not used as main index */
|
||||||
|
|
||||||
|
.directory-alt {
|
||||||
|
font-size: 100%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt h3 {
|
||||||
|
margin: 0px;
|
||||||
|
margin-top: 1em;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt > h3 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt p {
|
||||||
|
margin: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt div {
|
||||||
|
display: none;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt img {
|
||||||
|
vertical-align: -30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
address {
|
||||||
|
font-style: normal;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
BIN
doxymacs/example/doc/html/doxygen.png
Normal file
BIN
doxymacs/example/doc/html/doxygen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
36
doxymacs/example/doc/html/files.html
Normal file
36
doxymacs/example/doc/html/files.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: File Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="aclass_8h.html">aclass.h</a> <a href="aclass_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
71
doxymacs/example/doc/html/functions.html
Normal file
71
doxymacs/example/doc/html/functions.html
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
Here is a list of all class members with links to the classes they belong to:<ul>
|
||||||
|
<li>_blah
|
||||||
|
: <a class="el" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>BAZ
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>BAZ2
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>blah_blah
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>Foo()
|
||||||
|
: <a class="el" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>GetBlah()
|
||||||
|
: <a class="el" href="classFoo.html#a1d524237312eaafba8838e9c354df460">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>x
|
||||||
|
: <a class="el" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">blah</a>
|
||||||
|
</li>
|
||||||
|
<li>y
|
||||||
|
: <a class="el" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">blah</a>
|
||||||
|
</li>
|
||||||
|
<li>z
|
||||||
|
: <a class="el" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">baz</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
47
doxymacs/example/doc/html/functions_enum.html
Normal file
47
doxymacs/example/doc/html/functions_enum.html
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members - Enumerations</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>blah_blah
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862c">Foo</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
50
doxymacs/example/doc/html/functions_eval.html
Normal file
50
doxymacs/example/doc/html/functions_eval.html
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members - Enumerator</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>BAZ
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862ca551af527291c62badc07f5731648c7ed">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>BAZ2
|
||||||
|
: <a class="el" href="classFoo.html#a9fbd006a5c0ff9ddb4f02a950d4e862cacba6ac26da56f9234ebf45f6398cb9c0">Foo</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
50
doxymacs/example/doc/html/functions_func.html
Normal file
50
doxymacs/example/doc/html/functions_func.html
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members - Functions</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>Foo()
|
||||||
|
: <a class="el" href="classFoo.html#a400553bba3f44d1d4b82a0be2bf575b6">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>GetBlah()
|
||||||
|
: <a class="el" href="classFoo.html#a1d524237312eaafba8838e9c354df460">Foo</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
56
doxymacs/example/doc/html/functions_vars.html
Normal file
56
doxymacs/example/doc/html/functions_vars.html
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members - Variables</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>_blah
|
||||||
|
: <a class="el" href="classFoo.html#a4e5ef452fe3f664199e8c5e91754e0e2">Foo</a>
|
||||||
|
</li>
|
||||||
|
<li>x
|
||||||
|
: <a class="el" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">blah</a>
|
||||||
|
</li>
|
||||||
|
<li>y
|
||||||
|
: <a class="el" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">blah</a>
|
||||||
|
</li>
|
||||||
|
<li>z
|
||||||
|
: <a class="el" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">baz</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
55
doxymacs/example/doc/html/globals.html
Normal file
55
doxymacs/example/doc/html/globals.html
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Defines</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
Here is a list of all file members with links to the files they belong to:<ul>
|
||||||
|
<li>_blah
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
<li>Foo
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
<li>FOO_SNAZ
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
<li>SOME_OBSCURE_DEFINE
|
||||||
|
: <a class="el" href="aclass_8h.html#a7a597155a7a2c7edf98291e4196f6f37">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
46
doxymacs/example/doc/html/globals_defs.html
Normal file
46
doxymacs/example/doc/html/globals_defs.html
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>SOME_OBSCURE_DEFINE
|
||||||
|
: <a class="el" href="aclass_8h.html#a7a597155a7a2c7edf98291e4196f6f37">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
46
doxymacs/example/doc/html/globals_enum.html
Normal file
46
doxymacs/example/doc/html/globals_enum.html
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Defines</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>_blah
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7e">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
49
doxymacs/example/doc/html/globals_eval.html
Normal file
49
doxymacs/example/doc/html/globals_eval.html
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Defines</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>Foo
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaca2a3a2b2da8e517565fb654a86639b6">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
<li>FOO_SNAZ
|
||||||
|
: <a class="el" href="aclass_8h.html#aff7431c1e83d4cf5f4810ed8e9dc2e7eaff576ecff55813a881ead287578a3611">aclass.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
18
doxymacs/example/doc/html/globals_vars.html
Normal file
18
doxymacs/example/doc/html/globals_vars.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.4 -->
|
||||||
|
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindexHL" href="globals.html">File Members</a></div>
|
||||||
|
<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>foobazbar
|
||||||
|
: <a class="el" href="namespaceNameSpaceTest.html#a0">aclass.h</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Sat Apr 22 17:58:57 2006 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
27
doxymacs/example/doc/html/index.html
Normal file
27
doxymacs/example/doc/html/index.html
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Main Page</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Test project Documentation</h1></div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
58
doxymacs/example/doc/html/namespaceNameSpaceTest.html
Normal file
58
doxymacs/example/doc/html/namespaceNameSpaceTest.html
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: NameSpaceTest Namespace Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
|
||||||
|
<li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>NameSpaceTest Namespace Reference</h1>
|
||||||
|
<p>Some namespace.
|
||||||
|
<a href="#_details">More...</a></p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td colspan="2"><h2>Variables</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">foobazbar</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
<p>Some namespace. </p>
|
||||||
|
<hr/><h2>Variable Documentation</h2>
|
||||||
|
<a class="anchor" id="a5f0fd9588d8e6d4aaf2ff4ad20d7e60b"></a><!-- doxytag: member="NameSpaceTest::foobazbar" ref="a5f0fd9588d8e6d4aaf2ff4ad20d7e60b" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">NameSpaceTest::foobazbar</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00073">73</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
doxymacs/example/doc/html/namespacemembers.html
Normal file
44
doxymacs/example/doc/html/namespacemembers.html
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
|
||||||
|
<li class="current"><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
|
||||||
|
<li><a href="namespacemembers_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
Here is a list of all namespace members with links to the namespace documentation for each member:<ul>
|
||||||
|
<li>foobazbar
|
||||||
|
: <a class="el" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">NameSpaceTest</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
doxymacs/example/doc/html/namespacemembers_vars.html
Normal file
44
doxymacs/example/doc/html/namespacemembers_vars.html
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
|
||||||
|
<li class="current"><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="namespacemembers.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="namespacemembers_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<ul>
|
||||||
|
<li>foobazbar
|
||||||
|
: <a class="el" href="namespaceNameSpaceTest.html#a5f0fd9588d8e6d4aaf2ff4ad20d7e60b">NameSpaceTest</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
36
doxymacs/example/doc/html/namespaces.html
Normal file
36
doxymacs/example/doc/html/namespaces.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Namespace Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="current"><a href="namespaces.html"><span>Namespace List</span></a></li>
|
||||||
|
<li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="namespaceNameSpaceTest.html">NameSpaceTest</a></td><td class="indexvalue">Some namespace </td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
35
doxymacs/example/doc/html/structbaz-members.html
Normal file
35
doxymacs/example/doc/html/structbaz-members.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>baz Member List</h1>This is the complete list of members for <a class="el" href="structbaz.html">baz</a>, including all inherited members.<table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">z</a></td><td><a class="el" href="structbaz.html">baz</a></td><td></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
63
doxymacs/example/doc/html/structbaz.html
Normal file
63
doxymacs/example/doc/html/structbaz.html
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: baz Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>baz Struct Reference</h1><!-- doxytag: class="baz" -->
|
||||||
|
<p><code>#include <<a class="el" href="aclass_8h_source.html">aclass.h</a>></code></p>
|
||||||
|
|
||||||
|
<p><a href="structbaz-members.html">List of all members.</a></p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">z</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00058">58</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
<hr/><h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" id="aa5d83e88ff56e3e2511d5f9335106e78"></a><!-- doxytag: member="baz::z" ref="aa5d83e88ff56e3e2511d5f9335106e78" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structbaz.html#aa5d83e88ff56e3e2511d5f9335106e78">baz::z</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00060">60</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="aclass_8h_source.html">aclass.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
36
doxymacs/example/doc/html/structblah-members.html
Normal file
36
doxymacs/example/doc/html/structblah-members.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>blah Member List</h1>This is the complete list of members for <a class="el" href="structblah.html">blah</a>, including all inherited members.<table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">x</a></td><td><a class="el" href="structblah.html">blah</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">y</a></td><td><a class="el" href="structblah.html">blah</a></td><td></td></tr>
|
||||||
|
</table></div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
83
doxymacs/example/doc/html/structblah.html
Normal file
83
doxymacs/example/doc/html/structblah.html
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>Test project: blah Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Generated by Doxygen 1.6.1 -->
|
||||||
|
<div class="navigation" id="top">
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<h1>blah Struct Reference</h1><!-- doxytag: class="blah" -->
|
||||||
|
<p>This struct does something useless.
|
||||||
|
<a href="#_details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="aclass_8h_source.html">aclass.h</a>></code></p>
|
||||||
|
|
||||||
|
<p><a href="structblah-members.html">List of all members.</a></p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">x</a></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">y</a></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
<p>This struct does something useless. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00052">52</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
<hr/><h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" id="afa9a06361ecd9f06902546449295d4c7"></a><!-- doxytag: member="blah::x" ref="afa9a06361ecd9f06902546449295d4c7" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structblah.html#afa9a06361ecd9f06902546449295d4c7">blah::x</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00054">54</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a7867e67a7099e4420c9de686a68eb6c8"></a><!-- doxytag: member="blah::y" ref="a7867e67a7099e4420c9de686a68eb6c8" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structblah.html#a7867e67a7099e4420c9de686a68eb6c8">blah::y</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="aclass_8h_source.html#l00055">55</a> of file <a class="el" href="aclass_8h_source.html">aclass.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="aclass_8h_source.html">aclass.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr size="1"/><address style="text-align: right;"><small>Generated on Sat Feb 27 15:34:03 2010 for Test project by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doxymacs/example/doc/html/tab_b.gif
Normal file
BIN
doxymacs/example/doc/html/tab_b.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 B |
BIN
doxymacs/example/doc/html/tab_l.gif
Normal file
BIN
doxymacs/example/doc/html/tab_l.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 706 B |
BIN
doxymacs/example/doc/html/tab_r.gif
Normal file
BIN
doxymacs/example/doc/html/tab_r.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
105
doxymacs/example/doc/html/tabs.css
Normal file
105
doxymacs/example/doc/html/tabs.css
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
|
||||||
|
|
||||||
|
DIV.tabs
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
width : 100%;
|
||||||
|
background : url("tab_b.gif") repeat-x bottom;
|
||||||
|
margin-bottom : 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs UL
|
||||||
|
{
|
||||||
|
margin : 0px;
|
||||||
|
padding-left : 10px;
|
||||||
|
list-style : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI, DIV.tabs FORM
|
||||||
|
{
|
||||||
|
display : inline;
|
||||||
|
margin : 0px;
|
||||||
|
padding : 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs FORM
|
||||||
|
{
|
||||||
|
float : right;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
background : url("tab_r.gif") no-repeat right top;
|
||||||
|
border-bottom : 1px solid #84B0C7;
|
||||||
|
font-size : 80%;
|
||||||
|
font-weight : bold;
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A:hover
|
||||||
|
{
|
||||||
|
background-position: 100% -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A:link, DIV.tabs A:visited,
|
||||||
|
DIV.tabs A:active, DIV.tabs A:hover
|
||||||
|
{
|
||||||
|
color: #1A419D;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs SPAN
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
display : block;
|
||||||
|
background : url("tab_l.gif") no-repeat left top;
|
||||||
|
padding : 5px 9px;
|
||||||
|
white-space : nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs #MSearchBox
|
||||||
|
{
|
||||||
|
float : right;
|
||||||
|
display : inline;
|
||||||
|
font-size : 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs TD
|
||||||
|
{
|
||||||
|
font-size : 80%;
|
||||||
|
font-weight : bold;
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Commented Backslash Hack hides rule from IE5-Mac \*/
|
||||||
|
DIV.tabs SPAN {float : none;}
|
||||||
|
/* End IE5-Mac hack */
|
||||||
|
|
||||||
|
DIV.tabs A:hover SPAN
|
||||||
|
{
|
||||||
|
background-position: 0% -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI.current A
|
||||||
|
{
|
||||||
|
background-position: 100% -150px;
|
||||||
|
border-width : 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI.current SPAN
|
||||||
|
{
|
||||||
|
background-position: 0% -150px;
|
||||||
|
padding-bottom : 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.navpath
|
||||||
|
{
|
||||||
|
background : none;
|
||||||
|
border : none;
|
||||||
|
border-bottom : 1px solid #84B0C7;
|
||||||
|
text-align : center;
|
||||||
|
margin : 2px;
|
||||||
|
padding : 2px;
|
||||||
|
}
|
||||||
76
doxymacs/example/src/aclass.h
Normal file
76
doxymacs/example/src/aclass.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// $Id: aclass.h,v 1.3 2005/04/01 06:05:06 ryants Exp $
|
||||||
|
// This is just some silly sample file to test out doxymacs with.
|
||||||
|
#ifndef _ACLASS_H_
|
||||||
|
#define _ACLASS_H_
|
||||||
|
|
||||||
|
|
||||||
|
#define SOME_OBSCURE_DEFINE 76
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class does blah.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class Foo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* The constructor.
|
||||||
|
*
|
||||||
|
* @param blah Some kind of fish.
|
||||||
|
*/
|
||||||
|
Foo(int blah)
|
||||||
|
: _blah(blah)
|
||||||
|
{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current value of blah.
|
||||||
|
*/
|
||||||
|
GetBlah(void) const { return _blah; }
|
||||||
|
|
||||||
|
enum blah_blah
|
||||||
|
{
|
||||||
|
BAZ,
|
||||||
|
BAZ2,
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testing the in/out parameter stuff.
|
||||||
|
*
|
||||||
|
* @param[in] in An "in" parameter
|
||||||
|
* @param[out] out An "out" parameter
|
||||||
|
* @param[in,out] inout An "inout" parameter
|
||||||
|
*/
|
||||||
|
Foo(int &in, int &out, int &inout) { out = in + inout; }
|
||||||
|
|
||||||
|
/** This is a measure of our blahness. */
|
||||||
|
int _blah;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** This struct does something useless */
|
||||||
|
struct blah
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int z;
|
||||||
|
} baz;
|
||||||
|
|
||||||
|
/** This is a useless enum */
|
||||||
|
enum _blah
|
||||||
|
{
|
||||||
|
FOO_SNAZ, /**< More silly stuff. */
|
||||||
|
Foo
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Some namespace */
|
||||||
|
namespace NameSpaceTest
|
||||||
|
{
|
||||||
|
int foobazbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // _ACLASS_H_
|
||||||
1514
doxymacs/example/src/doxy.conf
Normal file
1514
doxymacs/example/src/doxy.conf
Normal file
File diff suppressed because it is too large
Load Diff
284
doxymacs/htdocs/index.html
Normal file
284
doxymacs/htdocs/index.html
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||||
|
<title>Doxymacs = Doxygen + Emacs</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>Doxymacs</h1>
|
||||||
|
<p>
|
||||||
|
Doxymacs is <a href="http://www.doxygen.org">Doxygen</a> +
|
||||||
|
{X}Emacs.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The purpose of the doxymacs project is to create a LISP package
|
||||||
|
that will make using Doxygen from within {X}Emacs easier.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a
|
||||||
|
href="http://sourceforge.net/project/showfiles.php?group_id=23584&release_id=514962">Version 1.8.0</a>,
|
||||||
|
released 2007-06-10, has the following features:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
ability to <a
|
||||||
|
href="http://sourceforge.net/project/screenshots.php?group_id=23584&ssid=13275">look
|
||||||
|
up documentation</a> for symbols from {X}Emacs in the browser
|
||||||
|
of your choice.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://sourceforge.net/project/screenshots.php?group_id=23584&ssid=13271">easily
|
||||||
|
insert Doxygen style comments</a> into source.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
optionally use an "external" (<i>i.e.</i> written in C) XML
|
||||||
|
parser to speed up building the completion list.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://sourceforge.net/project/screenshots.php?group_id=23584&ssid=13277">fontify
|
||||||
|
Doxygen keywords</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Please direct any bug reports or feature requests to the
|
||||||
|
appropriate forum on <a
|
||||||
|
href="http://sourceforge.net/projects/doxymacs/">Doxymacs'
|
||||||
|
SourceForge</a> page.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Requirements</h2>
|
||||||
|
|
||||||
|
Doxymacs depends on the following packages:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="http://www.cs.indiana.edu/usr/local/www/elisp/w3/docs.html">W3</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="http://www.lysator.liu.se/~davidk/elisp/">tempo</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
version 2.6.13 or greater of <a
|
||||||
|
href="http://www.libxml.org/">libxml2</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Make sure these are properly configured and installed before
|
||||||
|
proceeding.
|
||||||
|
|
||||||
|
<h2>Installation</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Use the configure script to configure and build doxymacs:
|
||||||
|
<pre>
|
||||||
|
$ ./configure
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
Be sure to put <code>${datadir}/share/${EMACS}/site-lisp</code>
|
||||||
|
in your <code>load-path</code> in your <code>.emacs</code>
|
||||||
|
file, or wherever you configured the .elc files to end up.
|
||||||
|
<br /><br />
|
||||||
|
<b>NOTE</b> If you get:
|
||||||
|
<pre>
|
||||||
|
!! File error (("Cannot open load file" "url"))
|
||||||
|
</pre>
|
||||||
|
(or something similar) when you do <code>make</code>,
|
||||||
|
then set the variable <code>EMACSLOADPATH</code>:
|
||||||
|
<pre>
|
||||||
|
$ EMACSLOADPATH=... make
|
||||||
|
</pre>
|
||||||
|
where <code>...</code> is a colon separated list of directories
|
||||||
|
to seach for packages.
|
||||||
|
<br /><br />
|
||||||
|
To byte compile with XEmacs, set the variable <code>EMACS</code>:
|
||||||
|
<pre>
|
||||||
|
$ EMACS=xemacs make
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
If you want to avoid byte-compiling altogether:
|
||||||
|
<pre>
|
||||||
|
$ make ELCFILES=
|
||||||
|
$ make install ELCFILES=
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
For a complete list of configuration options:
|
||||||
|
<pre>
|
||||||
|
$ ./configure --help
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
If you do not want to run or cannot run <code>configure</code>
|
||||||
|
then pre-baked <code>.el</code> files are available in the
|
||||||
|
<code>no-autoconf/</code> directory; simply
|
||||||
|
copy these to somewhere in your <code>load-path</code>.
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Customise the variables <code>doxymacs-doxygen-root</code> and
|
||||||
|
<code>doxymacs-doxygen-tags</code>. You can customise these
|
||||||
|
via the customisation menu Programming | Tools | Doxymacs.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
(Optional) Customise <code>doxymacs-doxygen-style</code>. The
|
||||||
|
default is "JavaDoc". See <a
|
||||||
|
href="http://www.stack.nl/~dimitri/doxygen/docblocks.html#docblocks">the
|
||||||
|
Doxygen manual</a> for examples of the four available styles
|
||||||
|
(JavaDoc, Qt, C++ and C++!).
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
To use the external XML parser, set
|
||||||
|
<code>doxymacs-use-external-xml-parser</code> to non-nil (can
|
||||||
|
be done via the customisation menu).
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Put <code>(require 'doxymacs)</code> in your <code>.emacs</code>
|
||||||
|
file.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Invoke <code>doxymacs-mode</code> with <code>M-x
|
||||||
|
doxymacs-mode</code>. To have <code>doxymacs-mode</code>
|
||||||
|
automatically come up whenever you visit a C/C++ file, put
|
||||||
|
<code>(add-hook 'c-mode-common-hook'doxymacs-mode)</code> in
|
||||||
|
your <code>.emacs</code>.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
If you want Doxygen keywords fontified use <code>M-x
|
||||||
|
doxymacs-font-lock</code>. To do it automatically, add
|
||||||
|
the following to your <code>.emacs</code>:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
(defun my-doxymacs-font-lock-hook ()
|
||||||
|
(if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
|
||||||
|
(doxymacs-font-lock)))
|
||||||
|
(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
This will add the Doxygen keywords to c-mode and c++-mode
|
||||||
|
only.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Default key bindings are:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d ?</code> will look up documentation for the symbol
|
||||||
|
under the point.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d r</code> will rescan your Doxygen tags file.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d f</code> will insert a Doxygen comment for the
|
||||||
|
next function.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d i</code> will insert a Doxygen comment for the
|
||||||
|
current file.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d ;</code> will insert a Doxygen comment for a
|
||||||
|
member variable on the current line (like <code>M-;</code>).
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d m</code> will insert a blank multi-line Doxygen
|
||||||
|
comment.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d s</code> will insert a blank single-line Doxygen
|
||||||
|
comment.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>C-c d @</code> will insert grouping comments around the
|
||||||
|
current region.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Doxymacs has been tested on and works with:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>GNU Emacs 20.7.1, 21.1.1, 21.2.1, 21.3, 21.4.1, 23.1.1.</li>
|
||||||
|
<li>XEmacs 21.1 (patch 14), XEmacs 21.4 (patch 4, 5, 6, 17).</li>
|
||||||
|
<li>Up to doxygen version 1.4.4</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
If you have success or failure with other versions of {X}Emacs and
|
||||||
|
doxygen, please let the authors know.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<h2>Links</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="http://sourceforge.net/projects/doxymacs/">Doxymacs
|
||||||
|
SourceForge Project.</a> Go here to request help, submit a
|
||||||
|
patch, or ask for a feature.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="http://sourceforge.net/project/showfiles.php?group_id=23584&release_id=514962">Release
|
||||||
|
1.8.0</a> Download it now.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://sourceforge.net/scm/?type=git&group_id=23584">Git
|
||||||
|
Repository</a> For bleeding edge people and developers.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=23584" width="88" height="31" border="0" alt="SourceForge Logo"></A>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="http://validator.w3.org/check/referer"><img border="0"
|
||||||
|
src="http://www.w3.org/Icons/valid-html401"
|
||||||
|
alt="Valid HTML 4.01!" height="31" width="88"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<address><a href="mailto:ryan.sammartino@gmail.com">Ryan T. Sammartino</a></address>
|
||||||
|
<!-- Created: Sun Jan 5 18:21:52 PST 2003 -->
|
||||||
|
<!-- hhmts start -->Last modified: Fri Feb 19 21:39:29 GMT 2010 <!-- hhmts end -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<!-- Local Variables: -->
|
||||||
|
<!-- mode: html -->
|
||||||
|
<!-- sgml-indent-step: 2 -->
|
||||||
|
<!-- End: -->
|
||||||
6
doxymacs/lisp/Makefile.am
Normal file
6
doxymacs/lisp/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
# $Id: Makefile.am,v 1.2 2003/01/06 00:45:15 ryants Exp $
|
||||||
|
|
||||||
|
lisp_LISP = xml-parse.el doxymacs.el
|
||||||
|
|
||||||
|
EXTRA_DIST = xml-parse.el
|
||||||
1888
doxymacs/lisp/doxymacs.el.in
Normal file
1888
doxymacs/lisp/doxymacs.el.in
Normal file
File diff suppressed because it is too large
Load Diff
379
doxymacs/lisp/xml-parse.el
Normal file
379
doxymacs/lisp/xml-parse.el
Normal file
@ -0,0 +1,379 @@
|
|||||||
|
;;; xml-parse --- code to efficiently read/write XML data with Elisp
|
||||||
|
;;;
|
||||||
|
;;; $Id: xml-parse.el,v 1.4 2001/05/12 22:36:13 ryants Exp $
|
||||||
|
|
||||||
|
;; Copyright (C) 2001 John Wiegley.
|
||||||
|
|
||||||
|
;; Author: John Wiegley <johnw@gnu.org>
|
||||||
|
;; Version: 1.5
|
||||||
|
;; Created: Feb 15, 2001
|
||||||
|
;; Keywords: convenience languages lisp xml parse data
|
||||||
|
;; URL: http://www.gci-net.com/~johnw/emacs.html
|
||||||
|
|
||||||
|
;; This file is NOT (yet) part of GNU Emacs.
|
||||||
|
|
||||||
|
;; This 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 software 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 GNU Emacs; see the file COPYING. If not, write to the
|
||||||
|
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; XML is yet another way of expressing recursive, attributed data
|
||||||
|
;; structures -- something which Lisp has had the capacity to do for
|
||||||
|
;; decades.
|
||||||
|
;;
|
||||||
|
;; The approach taken by xml-parse.el is to read XML data into Lisp
|
||||||
|
;; structures, and allow those same Lisp structures to be written out
|
||||||
|
;; as XML. It should facilitate the manipulation and use of XML by
|
||||||
|
;; Elisp programs.
|
||||||
|
|
||||||
|
;; NOTE: This is not a validating parser, and makes no attempt to read
|
||||||
|
;; DTDs. See psgml.el if you need that kind of power.
|
||||||
|
;;
|
||||||
|
;; Also, tags beginning with <? or <! are not parsed, but merely
|
||||||
|
;; included in the resulting data structure as separate string
|
||||||
|
;; entries. These may be tested for using the function
|
||||||
|
;; `xml-tag-special-p'. If present, they are treated just like normal
|
||||||
|
;; text, and will be inserted along with everything else. If they
|
||||||
|
;; occur *before* the opening tag of an XML tree, they will not appear
|
||||||
|
;; in the parsed data, since such "pre-tags" are not the child of any
|
||||||
|
;; tag.
|
||||||
|
|
||||||
|
;; Here is the format of the Lisp data structure used:
|
||||||
|
;;
|
||||||
|
;; (TAG CHILD...)
|
||||||
|
;;
|
||||||
|
;; Where TAG is either a string (naming the tag) or a list. The list
|
||||||
|
;; form is used to identify attributes, and has the format:
|
||||||
|
;;
|
||||||
|
;; (TAG-NAME (ATTR-NAME . ATTR-VALUE)...)
|
||||||
|
;;
|
||||||
|
;; After the TAG, there can be zero or more child structures, which
|
||||||
|
;; are either literal strings, or the same "TAG CHILD..." structure as
|
||||||
|
;; the parent. See `insert-xml' for an EBNF grammar of this layout.
|
||||||
|
|
||||||
|
;; EXAMPLE: Given the following DocBook XML data:
|
||||||
|
;;
|
||||||
|
;; <book id="compiler">
|
||||||
|
;; <bookinfo>
|
||||||
|
;; <bookbiblio>
|
||||||
|
;; <title>My own book!</title>
|
||||||
|
;; <edition>First</edition>
|
||||||
|
;; <authorgroup>
|
||||||
|
;; <author>
|
||||||
|
;; <firstname>John</firstname>
|
||||||
|
;; <surname>Wiegley</surname>
|
||||||
|
;; </author>
|
||||||
|
;; </authorgroup>
|
||||||
|
;; </bookbiblio>
|
||||||
|
;; </bookinfo>
|
||||||
|
;; <chapter>
|
||||||
|
;; <title>A very small chapter</title>
|
||||||
|
;; <para>Wonder where the content is...</para>
|
||||||
|
;; </chapter>
|
||||||
|
;; </book>
|
||||||
|
;;
|
||||||
|
;; It would be parsed into this Lisp structure:
|
||||||
|
;;
|
||||||
|
;; '(("book" ("id" . "compiler"))
|
||||||
|
;; ("bookinfo"
|
||||||
|
;; ("bookbiblio"
|
||||||
|
;; ("title" "My own book!")
|
||||||
|
;; ("edition" "FIrst")
|
||||||
|
;; ("authorgroup"
|
||||||
|
;; ("author"
|
||||||
|
;; ("firstname" "John")
|
||||||
|
;; ("surname" "Wiegley")))))
|
||||||
|
;; ("chapter"
|
||||||
|
;; ("title" "A very small chapter")
|
||||||
|
;; ("para" "Wonder where the content is...")))
|
||||||
|
;;
|
||||||
|
;; Now it can easily be modified and interpreted using ordinary Lisp
|
||||||
|
;; code, without the ordeal of manipulating textual XML. When you're
|
||||||
|
;; done modifying it, you can write it back out (complete with proper
|
||||||
|
;; indentation and newlines) using:
|
||||||
|
;;
|
||||||
|
;; (insert-xml <DATA> t)
|
||||||
|
;;
|
||||||
|
;; See the documentation for `read-xml' and `insert-xml' for more
|
||||||
|
;; information.
|
||||||
|
;;
|
||||||
|
;; There are also a set of helper functions for accessing parts of a
|
||||||
|
;; parsed tag:
|
||||||
|
;;
|
||||||
|
;; xml-tag-name get the name of a tag
|
||||||
|
;; xml-tag-attrlist returns a tag's attribute alist
|
||||||
|
;; xml-tag-attr lookup a specific tag attribute
|
||||||
|
;; xml-tag-children returns a tag's child list
|
||||||
|
;; xml-tag-child lookup a specific child tag by name
|
||||||
|
;;
|
||||||
|
;; Also, the attribute list and child lists can be searched using
|
||||||
|
;; `assoc', since they roughly have the same format as an alist.
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun read-xml (&optional progress-callback)
|
||||||
|
"Parse XML data at point into a Lisp structure.
|
||||||
|
See `insert-xml' for a description of the format of this structure.
|
||||||
|
Point is left at the end of the XML structure read."
|
||||||
|
(cdr (xml-parse-read progress-callback)))
|
||||||
|
|
||||||
|
(defsubst xml-tag-with-attributes-p (tag)
|
||||||
|
"Does the TAG have attributes or not?"
|
||||||
|
(listp (car tag)))
|
||||||
|
|
||||||
|
(defsubst xml-tag-name (tag)
|
||||||
|
"Return the name of an xml-parse'd XML TAG."
|
||||||
|
(cond ((xml-tag-text-p tag)
|
||||||
|
(car tag))
|
||||||
|
((xml-tag-with-attributes-p tag)
|
||||||
|
(caar tag))
|
||||||
|
(t (car tag))))
|
||||||
|
|
||||||
|
(defun xml-tag-text-p (tag)
|
||||||
|
"Is the given TAG really just a text entry?"
|
||||||
|
(stringp tag))
|
||||||
|
|
||||||
|
(defsubst xml-tag-special-p (tag)
|
||||||
|
"Return the name of an xml-parse'd XML TAG."
|
||||||
|
(and (xml-tag-text-p tag)
|
||||||
|
(eq (aref tag 0) ?\<)))
|
||||||
|
|
||||||
|
(defsubst xml-tag-attrlist (tag)
|
||||||
|
"Return the attribute list of an xml-parse'd XML TAG."
|
||||||
|
(and (not (stringp (car tag)))
|
||||||
|
(cdar tag)))
|
||||||
|
|
||||||
|
(defsubst xml-tag-attr (tag attr)
|
||||||
|
"Return a specific ATTR of an xml-parse'd XML TAG."
|
||||||
|
(cdr (assoc attr (xml-tag-attrlist tag))))
|
||||||
|
|
||||||
|
(defsubst xml-tag-children (tag)
|
||||||
|
"Return the list of child tags of an xml-parse'd XML TAG."
|
||||||
|
(cdr tag))
|
||||||
|
|
||||||
|
(defun xml-tag-child (tag name)
|
||||||
|
"Return the first child matching NAME, of an xml-parse'd XML TAG."
|
||||||
|
(catch 'found
|
||||||
|
(let ((children (xml-tag-children tag)))
|
||||||
|
(while children
|
||||||
|
(if (string= name (xml-tag-name (car children)))
|
||||||
|
(throw 'found (car children)))
|
||||||
|
(setq children (cdr children))))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun insert-xml (data &optional add-newlines public system depth ret-depth)
|
||||||
|
"Insert DATA, a recursive Lisp structure, at point as XML.
|
||||||
|
DATA has the form:
|
||||||
|
|
||||||
|
ENTRY ::= (TAG CHILD*)
|
||||||
|
CHILD ::= STRING | ENTRY
|
||||||
|
TAG ::= TAG_NAME | (TAG_NAME ATTR+)
|
||||||
|
ATTR ::= (ATTR_NAME . ATTR_VALUE)
|
||||||
|
TAG_NAME ::= STRING
|
||||||
|
ATTR_NAME ::= STRING
|
||||||
|
ATTR_VALUE ::= STRING
|
||||||
|
|
||||||
|
If ADD-NEWLINES is non-nil, newlines and indentation will be added to
|
||||||
|
make the data user-friendly.
|
||||||
|
|
||||||
|
If PUBLIC and SYSTEM are non-nil, a !DOCTYPE tag will be added at the
|
||||||
|
top of the document to identify it as an XML document.
|
||||||
|
|
||||||
|
DEPTH is normally for internal use only, and controls the depth of the
|
||||||
|
indentation."
|
||||||
|
(when (and (not depth) public system)
|
||||||
|
(insert "<?xml version=\"1.0\"?>\n")
|
||||||
|
(insert "<!DOCTYPE " (if (stringp (car data))
|
||||||
|
(car data)
|
||||||
|
(caar data))
|
||||||
|
" PUBLIC \"" public "\"\n \"" system "\">\n"))
|
||||||
|
(if (stringp data)
|
||||||
|
(insert data)
|
||||||
|
(let ((node (car data)) (add-nl t))
|
||||||
|
(and depth (bolp)
|
||||||
|
(insert (make-string (* depth 2) ? )))
|
||||||
|
(if (stringp node)
|
||||||
|
(insert "<" node)
|
||||||
|
(setq node (caar data))
|
||||||
|
(insert "<" node)
|
||||||
|
(let ((attrs (cdar data)))
|
||||||
|
(while attrs
|
||||||
|
(insert " " (caar attrs) "=\"" (cdar attrs) "\"")
|
||||||
|
(setq attrs (cdr attrs)))))
|
||||||
|
(if (null (cdr data))
|
||||||
|
(insert "/>")
|
||||||
|
(insert ">")
|
||||||
|
(setq data (cdr data))
|
||||||
|
(while data
|
||||||
|
(and add-newlines add-nl
|
||||||
|
(not (stringp (car data)))
|
||||||
|
(insert ?\n))
|
||||||
|
(setq add-nl (insert-xml (car data) add-newlines
|
||||||
|
nil nil (1+ (or depth 0)))
|
||||||
|
data (cdr data)))
|
||||||
|
(when add-nl
|
||||||
|
(and add-newlines (insert ?\n))
|
||||||
|
(and depth (insert (make-string (* depth 2) ? ))))
|
||||||
|
(insert "</" node ">"))
|
||||||
|
t)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun xml-reformat-tags ()
|
||||||
|
"If point is on the open bracket of an XML tag, reformat that tree.
|
||||||
|
Note that this only works if the opening tag starts at column 0."
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(let* ((beg (point)) (tags (read-xml)))
|
||||||
|
(delete-region beg (point))
|
||||||
|
(insert-xml tags t))))
|
||||||
|
|
||||||
|
;;; Internal Functions
|
||||||
|
|
||||||
|
|
||||||
|
;;; RTS did this 30/04/2001
|
||||||
|
(if (featurep 'xemacs)
|
||||||
|
(defalias 'match-string-no-properties 'match-string))
|
||||||
|
|
||||||
|
|
||||||
|
(defun xml-parse-profile ()
|
||||||
|
(interactive)
|
||||||
|
(let ((elp-function-list
|
||||||
|
'(buffer-substring-no-properties
|
||||||
|
char-after
|
||||||
|
char-before
|
||||||
|
forward-char
|
||||||
|
looking-at
|
||||||
|
match-string-no-properties
|
||||||
|
match-beginning
|
||||||
|
match-end
|
||||||
|
point
|
||||||
|
re-search-forward
|
||||||
|
read-xml
|
||||||
|
xml-parse-read
|
||||||
|
search-forward
|
||||||
|
string=
|
||||||
|
stringp
|
||||||
|
substring
|
||||||
|
xml-parse-concat)))
|
||||||
|
(elp-instrument-list)))
|
||||||
|
|
||||||
|
(defsubst xml-parse-skip-tag ()
|
||||||
|
(cond
|
||||||
|
((eq (char-after) ??)
|
||||||
|
(search-forward "?>"))
|
||||||
|
((looking-at "!--")
|
||||||
|
(search-forward "-->"))
|
||||||
|
(t ; must be <!...>
|
||||||
|
(re-search-forward "[[>]")
|
||||||
|
(if (eq (char-before) ?\[)
|
||||||
|
(let ((depth 1))
|
||||||
|
(while (and (> depth 0)
|
||||||
|
(if (re-search-forward "[][]")
|
||||||
|
t
|
||||||
|
(error "Pos %d: Unclosed open bracket in <! tag")))
|
||||||
|
(if (eq (char-before) ?\[)
|
||||||
|
(setq depth (1+ depth))
|
||||||
|
(setq depth (1- depth))))
|
||||||
|
(search-forward ">"))))))
|
||||||
|
|
||||||
|
(defsubst xml-parse-add-non-ws (text lst)
|
||||||
|
(let ((i 0) (l (length text)) non-ws)
|
||||||
|
(while (< i l)
|
||||||
|
(unless (memq (aref text i) '(?\n ?\t ? ))
|
||||||
|
(setq i l non-ws t))
|
||||||
|
(setq i (1+ i)))
|
||||||
|
(if (not non-ws)
|
||||||
|
lst
|
||||||
|
(setcdr lst (list text))
|
||||||
|
(cdr lst))))
|
||||||
|
|
||||||
|
(defsubst xml-parse-concat (beg end lst)
|
||||||
|
"Add the string from BEG to END to LST, ignoring pure whitespace."
|
||||||
|
(save-excursion
|
||||||
|
(goto-char beg)
|
||||||
|
(while (search-forward "<" end t)
|
||||||
|
(setq lst (xml-parse-add-non-ws
|
||||||
|
(buffer-substring-no-properties beg (1- (point))) lst)
|
||||||
|
beg (1- (point)))
|
||||||
|
(xml-parse-skip-tag)
|
||||||
|
(setq lst (xml-parse-add-non-ws
|
||||||
|
(buffer-substring-no-properties beg (point)) lst)
|
||||||
|
beg (point)))
|
||||||
|
(if (/= beg end)
|
||||||
|
(setq lst (xml-parse-add-non-ws
|
||||||
|
(buffer-substring-no-properties beg end) lst)))
|
||||||
|
lst))
|
||||||
|
|
||||||
|
(defun xml-parse-read (&optional progress-callback)
|
||||||
|
(let ((beg (search-forward "<" nil t)) after)
|
||||||
|
(if progress-callback
|
||||||
|
(funcall progress-callback
|
||||||
|
(* (/ (float (point)) (float (point-max))) 100)))
|
||||||
|
(while (and beg (memq (setq after (char-after)) '(?! ??)))
|
||||||
|
(xml-parse-skip-tag)
|
||||||
|
(setq beg (search-forward "<" nil t)))
|
||||||
|
(when beg
|
||||||
|
(if (eq after ?/)
|
||||||
|
(progn
|
||||||
|
(search-forward ">")
|
||||||
|
(cons (1- beg)
|
||||||
|
(buffer-substring-no-properties (1+ beg) (1- (point)))))
|
||||||
|
(skip-chars-forward "^ \t\n/>")
|
||||||
|
(cons
|
||||||
|
(1- beg)
|
||||||
|
(progn
|
||||||
|
(setq after (point))
|
||||||
|
(skip-chars-forward " \t\n")
|
||||||
|
(let* ((single (eq (char-after) ?/))
|
||||||
|
(tag (buffer-substring-no-properties beg after))
|
||||||
|
attrs data-beg data)
|
||||||
|
;; handle the attribute list, if present
|
||||||
|
(cond
|
||||||
|
(single
|
||||||
|
(skip-chars-forward " \t\n/>"))
|
||||||
|
((eq (char-after) ?\>)
|
||||||
|
(forward-char 1))
|
||||||
|
(t
|
||||||
|
(let* ((attrs (list t))
|
||||||
|
(lastattr attrs)
|
||||||
|
(end (search-forward ">")))
|
||||||
|
(goto-char after)
|
||||||
|
(while (re-search-forward
|
||||||
|
"\\([^ \t\n=]+\\)=\"\\([^\"]+\\)\"" end t)
|
||||||
|
(let ((attr (cons (match-string-no-properties 1)
|
||||||
|
(match-string-no-properties 2))))
|
||||||
|
(setcdr lastattr (list attr))
|
||||||
|
(setq lastattr (cdr lastattr))))
|
||||||
|
(goto-char end)
|
||||||
|
(setq tag (cons tag (cdr attrs))
|
||||||
|
single (eq (char-before (1- end)) ?/)))))
|
||||||
|
;; return the tag and its data
|
||||||
|
(if single
|
||||||
|
(list tag)
|
||||||
|
(setq tag (list tag))
|
||||||
|
(let ((data-beg (point)) (tag-end (last tag)))
|
||||||
|
(while (and (setq data (xml-parse-read progress-callback))
|
||||||
|
(not (stringp (cdr data))))
|
||||||
|
(setq tag-end (xml-parse-concat data-beg (car data)
|
||||||
|
tag-end)
|
||||||
|
data-beg (point))
|
||||||
|
(setcdr tag-end (list (cdr data)))
|
||||||
|
(setq tag-end (cdr tag-end)))
|
||||||
|
(xml-parse-concat data-beg (or (car data)
|
||||||
|
(point-max)) tag-end)
|
||||||
|
tag)))))))))
|
||||||
|
|
||||||
|
(provide 'xml-parse)
|
||||||
|
|
||||||
|
;;; xml-parse.el ends here
|
||||||
15
doxymacs/no-autoconf/Makefile.am
Normal file
15
doxymacs/no-autoconf/Makefile.am
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
# $Id: Makefile.am,v 1.1 2003/01/26 01:49:56 ryants Exp $
|
||||||
|
|
||||||
|
# When creating the tarball, create .el files with default values
|
||||||
|
# substituted in the .el.in files for people who don't want to run
|
||||||
|
# autoconf.
|
||||||
|
|
||||||
|
EXTRA_DIST=doxymacs.el xml-parse.el
|
||||||
|
CONFIG_CLEAN_FILES=doxymacs.el xml-parse.el
|
||||||
|
|
||||||
|
doxymacs.el: ${top_srcdir}/lisp/doxymacs.el.in ${top_srcdir}/configure.ac
|
||||||
|
sed -e 's/\@VERSION\@/${VERSION}/g ; s/\@DOXYMACS_DEFAULT_STYLE\@/${DOXYMACS_DEFAULT_STYLE}/g ; s/\@DOXYMACS_USE_EXTERNAL_XML_PARSER\@/nil/g ; s/\@DOXYMACS_PARSER\@//g' < $< > $@
|
||||||
|
|
||||||
|
xml-parse.el: ${top_srcdir}/lisp/xml-parse.el
|
||||||
|
cp $< $@
|
||||||
340
dvc/COPYING
Normal file
340
dvc/COPYING
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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 of the License, 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 program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
136
dvc/INSTALL
Normal file
136
dvc/INSTALL
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
THE VERY QUICK INSTALLATION GUIDE
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Since nobody reads long documentation, here's a very short
|
||||||
|
installation guide:
|
||||||
|
|
||||||
|
$ autoconf # only needed when the configure script is not present
|
||||||
|
$ cd dvc/
|
||||||
|
$ mkdir ++build/
|
||||||
|
$ cd ++build/
|
||||||
|
$ ../configure
|
||||||
|
$ make
|
||||||
|
[ possibly make install ]
|
||||||
|
|
||||||
|
And add
|
||||||
|
|
||||||
|
(load-file "/path/to/dvc/++build/dvc-load.el")
|
||||||
|
|
||||||
|
to your ~/.emacs.el
|
||||||
|
|
||||||
|
For the details, see below.
|
||||||
|
|
||||||
|
|
||||||
|
USING CONFIGURE
|
||||||
|
===============
|
||||||
|
|
||||||
|
0) If you get DVC from the revision control, the ./configure script is
|
||||||
|
not included. You have to run "autoreconf" or "autoconf" to recreate it.
|
||||||
|
|
||||||
|
1) Select your emacs flavor, this is the option --with-emacs and its
|
||||||
|
default is emacs (GNU Emacs). Choose a prefix for the installation
|
||||||
|
with --prefix, by default /usr/local.
|
||||||
|
|
||||||
|
The default locations are as follows:
|
||||||
|
|
||||||
|
a) GNU Emacs: lisp files goto ${prefix}/share/emacs/site-lisp and
|
||||||
|
info files to ${prefix}/info (overridable with --with-lispdir=...
|
||||||
|
and --infodir=...)
|
||||||
|
|
||||||
|
b) XEmacs: lisp files goto ${prefix}/lib/xemacs/site-packages/lisp/xtla and info
|
||||||
|
files to ${prefix}/lib/xemacs/site-packages/info, (overridable
|
||||||
|
with --with-infodir=... and --infodir=...)
|
||||||
|
|
||||||
|
ATTENTION: Files byte-compiled with GNU Emacs are NOT COMPATIBLE with the
|
||||||
|
XEmacs and you may experience strange problems during startup when doing
|
||||||
|
so. Thus ensure you are configuring with --with-emacs=xemacs when
|
||||||
|
installing DVC for XEmacs!
|
||||||
|
|
||||||
|
a) GNU Emacs users run:
|
||||||
|
./configure
|
||||||
|
|
||||||
|
b) XEmacs users run:
|
||||||
|
./configure --with-emacs=xemacs
|
||||||
|
|
||||||
|
It is possible to build DVC in a separate directory. For instance, type
|
||||||
|
|
||||||
|
mkdir emacs_build; cd emacs_build;
|
||||||
|
../configure --with-emacs=emacs
|
||||||
|
|
||||||
|
2) Compile the lisp files and info by running:
|
||||||
|
make
|
||||||
|
|
||||||
|
3) Installing the files
|
||||||
|
|
||||||
|
Run the following command:
|
||||||
|
make install
|
||||||
|
|
||||||
|
a) The easy way
|
||||||
|
|
||||||
|
The files dvc.el generated in the build directory and in
|
||||||
|
the install directory do everything for you: Manually, you can
|
||||||
|
run
|
||||||
|
|
||||||
|
M-x load-file RET /path/to/install/share/emacs/site-lisp/dvc/dvc-load.el RET
|
||||||
|
|
||||||
|
(usefull when you want to load DVC after starting "emacs -q"!),
|
||||||
|
or add
|
||||||
|
|
||||||
|
(load-file "/path/to/install/share/emacs/site-lisp/dvc/dvc-load.el")
|
||||||
|
|
||||||
|
to your ~/.emacs.el
|
||||||
|
|
||||||
|
|
||||||
|
The manual way
|
||||||
|
|
||||||
|
GNU Emacs: Put the lisp/info path as chosen above into your load-path,
|
||||||
|
i.e. add the following to your ~/.emacs.el (if you don't already have an
|
||||||
|
equivalent)
|
||||||
|
(add-to-list 'load-path "/path/to/install/share/emacs/site-lisp/dvc/lisp/")
|
||||||
|
(add-to-list 'Info-default-directory-list "/path/to/install/share/info/"))
|
||||||
|
|
||||||
|
Now, GNU Emacs knows where to find DVC, tell it to load it, by adding
|
||||||
|
(require 'dvc-autoloads)
|
||||||
|
to your ~/.emacs.el.
|
||||||
|
|
||||||
|
|
||||||
|
b) XEmacs: You are lucky nothing to do for you!
|
||||||
|
|
||||||
|
That's it! Restart Emacs and read the info or start using DVC. For
|
||||||
|
example, look at the DVC submenu in the Tools menu.
|
||||||
|
|
||||||
|
If you would prefer to run DVC from its source directory rather
|
||||||
|
than installing it, then add the following to your .xemacs/init.el
|
||||||
|
file.
|
||||||
|
|
||||||
|
(load-file "/path/to/dvc/dvc-load.el")
|
||||||
|
|
||||||
|
4) Integration of Xtla with Gnus
|
||||||
|
|
||||||
|
If you use Gnus and Xtla (support for tla and baz in DVC), you
|
||||||
|
probably want to add
|
||||||
|
|
||||||
|
(tla-insinuate-gnus)
|
||||||
|
|
||||||
|
to your ~/.gnus.el
|
||||||
|
|
||||||
|
INSTALLING BY HAND (for GNU Emacs)
|
||||||
|
==================
|
||||||
|
|
||||||
|
Basically you need to copy all the *.el files into a directory that is listed
|
||||||
|
in your `load-path' and the info file into a directory listed in your
|
||||||
|
`Info-directory-list'.
|
||||||
|
|
||||||
|
Then perform the steps from 3a) in the last section.
|
||||||
|
|
||||||
|
NOTES
|
||||||
|
=====
|
||||||
|
|
||||||
|
- XEmacs users will require the file ewoc.el which is also installed in the
|
||||||
|
package dir. It's provided in the contrib/ directory of DVC.
|
||||||
|
- xtla-browse.el is an add-on package for xtla.el. xtla-browse.el requires
|
||||||
|
tree-widget.el 2.0 or higher written by David Ponce. XEmacs users should
|
||||||
|
install the "jde" package. GNU Emacs in subversions.gnu.org CVS repository
|
||||||
|
contains tree-widget.el. If you are using older GNU Emacs or XEmacs, you can
|
||||||
|
get it from http://sourceforge.net/projects/emhacks/. xtla.el doesn't
|
||||||
|
require xtla-browse.el. xtla-browse.el is an option.
|
||||||
26
dvc/INSTALL.windows
Normal file
26
dvc/INSTALL.windows
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
* A poor mans installation guide
|
||||||
|
- The following files are generated by linux build scripts:
|
||||||
|
dvc-version.el
|
||||||
|
dvc-site.el
|
||||||
|
dvc-autoloads.el
|
||||||
|
- Copy these files from a working linux version to the dvc/lisp directory
|
||||||
|
|
||||||
|
- DVC.el needs a sh executable. Using cygwin should be a working option
|
||||||
|
If sh is not in the search PATH, set it via:
|
||||||
|
(setq dvc-sh-executable "c:/cygwin/bin/sh.exe")
|
||||||
|
|
||||||
|
- Add the following to your .emacs:
|
||||||
|
(add-to-list 'load-path "c:/emacs/site-lisp/dvc/lisp")
|
||||||
|
(require 'dvc-autoloads)
|
||||||
|
|
||||||
|
- The following tip shows how to configure the windows keys as super/hyper
|
||||||
|
Put these lines before the (require 'dvc-autoloads) in your .emacs
|
||||||
|
|
||||||
|
(setq w32-pass-lwindow-to-system nil
|
||||||
|
w32-pass-rwindow-to-system nil)
|
||||||
|
|
||||||
|
(setq w32-lwindow-modifier 'super) ; lwindow acts as super
|
||||||
|
(setq w32-rwindow-modifier 'hyper) ; rwindow acts as hyper
|
||||||
|
(defvar dvc-prefix-key '[(super t)])
|
||||||
|
|
||||||
|
|
||||||
123
dvc/Makefile.in
Normal file
123
dvc/Makefile.in
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
|
||||||
|
# location of required programms
|
||||||
|
AUTOCONF = autoconf
|
||||||
|
TAR = tar
|
||||||
|
RM = @RM@
|
||||||
|
prefix = @prefix@
|
||||||
|
datarootdir= @datarootdir@
|
||||||
|
info_dir = @info_dir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
lispdir= @lispdir@
|
||||||
|
|
||||||
|
SUBDIRS = lisp texinfo
|
||||||
|
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
all: dvc info dvc-load.el
|
||||||
|
|
||||||
|
Makefile: config.status $(srcdir)/Makefile.in
|
||||||
|
./config.status $@
|
||||||
|
|
||||||
|
dvc-load.el: config.status $(srcdir)/dvc-load.el.in
|
||||||
|
./config.status $@
|
||||||
|
|
||||||
|
$(srcdir)/configure: $(srcdir)/configure.ac
|
||||||
|
cd $(srcdir) ; $(AUTOCONF)
|
||||||
|
./config.status --recheck
|
||||||
|
|
||||||
|
config.status: $(srcdir)/configure
|
||||||
|
./config.status --recheck
|
||||||
|
|
||||||
|
info pdf dvi html:
|
||||||
|
cd texinfo; $(MAKE) $@
|
||||||
|
|
||||||
|
dvc:
|
||||||
|
cd lisp; $(MAKE)
|
||||||
|
|
||||||
|
dvc-verbose:
|
||||||
|
cd lisp; $(MAKE) all-verbose
|
||||||
|
|
||||||
|
dvc-pkg.el: $(srcdir)/config.status
|
||||||
|
@echo Creating $@
|
||||||
|
@( echo ';;; $@ (ELPA generated installer file -- do not edit!)' ; \
|
||||||
|
echo '(define-package "dvc" "$(PACKAGE_VERSION)"' \
|
||||||
|
' "The Emacs interface to Distributed Version Control Systems")' ) \
|
||||||
|
> $@
|
||||||
|
|
||||||
|
lisp/dvc-version.el:
|
||||||
|
cd lisp; $(MAKE) dvc-version.el
|
||||||
|
|
||||||
|
%-recursive:
|
||||||
|
@for dir in $(SUBDIRS) ; do ( cd $$dir; $(MAKE) $* ) ; done
|
||||||
|
|
||||||
|
install: dvc-load.el install-recursive
|
||||||
|
sed -e 's|@''lispdir''@|'"$(lispdir)"'|' \
|
||||||
|
-e 's|@''info_dir''@|'"$(info_dir)"'|' \
|
||||||
|
$(srcdir)/dvc-load-install.el.in \
|
||||||
|
> $(lispdir)/dvc-load.el
|
||||||
|
|
||||||
|
uninstall: uninstall-recursive
|
||||||
|
rmdir $(lispdir) || true
|
||||||
|
|
||||||
|
clean: clean-recursive
|
||||||
|
rm -f dvc-load.el dvc-load-install.el
|
||||||
|
|
||||||
|
distclean: clean distclean-recursive
|
||||||
|
rm -rf configure config.status config.log autom4te.cache/ Makefile $(distdir) $(distdir).tar*
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
distdir = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
|
||||||
|
|
||||||
|
lispfiles = lisp/Makefile.in lisp/dvc-site.el.in \
|
||||||
|
lisp/contrib/*.el lisp/tests/*.el lisp/*.el
|
||||||
|
docfiles = texinfo/Makefile.in texinfo/dvc.texinfo texinfo/dvc.info
|
||||||
|
miscfiles = Makefile.in COPYING INSTALL* install-sh \
|
||||||
|
dvc-load.el.in dvc-load-install.el.in \
|
||||||
|
lisp/dvc-version.el \
|
||||||
|
texinfo/dvc-version.texinfo \
|
||||||
|
texinfo/dvc-intro.texinfo \
|
||||||
|
texinfo/fdl.texinfo \
|
||||||
|
configure.ac configure
|
||||||
|
extradist =
|
||||||
|
|
||||||
|
distfiles = $(lispfiles) $(docfiles) $(miscfiles) $(extradist)
|
||||||
|
|
||||||
|
dist:
|
||||||
|
rm -rf $(distdir) $(distdir).tar.gz
|
||||||
|
mkdir $(distdir)
|
||||||
|
build=`pwd` ; dd=$$build/$(distdir) ; cd $(srcdir) ; \
|
||||||
|
for f in $(distfiles) ; do d='.' ; \
|
||||||
|
if [ -f $$build/$$f ] ; then d=$$build ; fi ; \
|
||||||
|
e=`dirname $$f` ; f=`basename $$f` ; \
|
||||||
|
test -d $$dd/$$e || $(MKDIR_P) $$dd/$$e ; \
|
||||||
|
cp -p $$d/$$e/$$f $$dd/$$e/$$f ; done
|
||||||
|
$(TAR) cf - $(distdir) | gzip --best > $(distdir).tar.gz
|
||||||
|
rm -rf $(distdir)
|
||||||
|
|
||||||
|
tarball:
|
||||||
|
$(MAKE) dist \
|
||||||
|
distdir=$(PACKAGE_TARNAME)-snapshot \
|
||||||
|
extradist='debian/* docs/* scripts/*'
|
||||||
|
|
||||||
|
package: dvc-pkg.el info lisp/dvc-version.el
|
||||||
|
rm -rf $(distdir) $(distdir).tar
|
||||||
|
mkdir $(distdir)
|
||||||
|
cp -r docs $(distdir)
|
||||||
|
cp COPYING $(distdir)
|
||||||
|
cp dvc-pkg.el lisp/*el texinfo/dvc.info $(distdir)
|
||||||
|
install-info --info-dir=$(distdir) $(distdir)/dvc.info
|
||||||
|
$(TAR) cf $(distdir).tar $(distdir)
|
||||||
|
|
||||||
|
.INTERMEDIATE: dvc-pkg.el
|
||||||
|
|
||||||
|
.PHONY: all info pdf dvi html dvc dvc-verbose \
|
||||||
|
install uninstall \
|
||||||
|
clean distclean maintainer-clean \
|
||||||
|
dist tarball package
|
||||||
185
dvc/configure.ac
Normal file
185
dvc/configure.ac
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
# configure.ac --- configuration setup for DVC
|
||||||
|
|
||||||
|
# Copyright (C) 2004-2007 by all contributors
|
||||||
|
# Author: Robert Widhopf-Fenk <hack@robf.de>
|
||||||
|
|
||||||
|
# DVC is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Library General Public License as published
|
||||||
|
# by the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
# your option) any later version.
|
||||||
|
|
||||||
|
# DVC 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 Library General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Library General Public License
|
||||||
|
# along with this program; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
# Process this file with autoconf to produce a new configure script
|
||||||
|
|
||||||
|
# Find a program. A failure is not fatal, just issue a warning
|
||||||
|
AC_DEFUN([DVC_PROG_WARN],
|
||||||
|
[ AC_SUBST([$1])
|
||||||
|
AC_ARG_WITH([$2],
|
||||||
|
[AS_HELP_STRING([--with-][$2]=PROG, [$3])],
|
||||||
|
[ [$1]=${withval} ],
|
||||||
|
[
|
||||||
|
AC_CHECK_PROG([$1], [$2], [$2])
|
||||||
|
if test "x${$1}" = "x" ; then
|
||||||
|
AC_MSG_WARN([*** No $2 program found.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Find a program. A failure is not fatal.
|
||||||
|
AC_DEFUN([DVC_PROG],
|
||||||
|
[ AC_SUBST([$1])
|
||||||
|
AC_ARG_WITH([$2],
|
||||||
|
[AS_HELP_STRING([--with-][$2]=PROG, [$3])],
|
||||||
|
[ [$1]=${withval} ],
|
||||||
|
[
|
||||||
|
AC_CHECK_PROG([$1], [$2], [$2])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
AC_INIT([DVC], [0], [dvc-dev@gna.org])
|
||||||
|
|
||||||
|
AC_COPYRIGHT([Copyright (C) 2004-2007 Robert Widhopf-Fenk <hack@robf.de> and the DVC team])
|
||||||
|
|
||||||
|
AC_CONFIG_SRCDIR([configure.ac])
|
||||||
|
AC_CONFIG_FILES([Makefile lisp/Makefile texinfo/Makefile dvc-load.el lisp/dvc-site.el])
|
||||||
|
|
||||||
|
# Common system utilities checking:
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_MKDIR_P
|
||||||
|
|
||||||
|
# External programs checking:
|
||||||
|
|
||||||
|
# Choose an Emacs flavor according to the --with-emacs user option, or
|
||||||
|
# try "emacs" and "xemacs". We use EMACS_PROG instead of EMACS to
|
||||||
|
# avoid colliding with Emacs' own internal environment.
|
||||||
|
AC_ARG_WITH([emacs],
|
||||||
|
[AS_HELP_STRING([--with-emacs=PROG], [choose which flavor of Emacs to use])],
|
||||||
|
[ EMACS_PROG="${withval}" ],
|
||||||
|
[ AC_CHECK_PROGS(EMACS_PROG, emacs xemacs) ])
|
||||||
|
if test "x${EMACS_PROG}" = "x" ; then
|
||||||
|
AC_MSG_ERROR([*** No Emacs program found.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([emacs-type of ${EMACS_PROG}])
|
||||||
|
if ${EMACS_PROG} --no-site-file --batch --eval \
|
||||||
|
'(kill-emacs (if (featurep (quote xemacs)) 0 1))'
|
||||||
|
then EMACS_FLAVOR=xemacs ; FLAGS='-no-site-file -no-autoloads'
|
||||||
|
else EMACS_FLAVOR=emacs ; FLAGS=--no-site-file
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([${EMACS_FLAVOR}])
|
||||||
|
|
||||||
|
# Copied from gnus aclocal.m4
|
||||||
|
AC_ARG_WITH([lispdir],
|
||||||
|
[AS_HELP_STRING([--with-lispdir=DIR], [where to install lisp files])],
|
||||||
|
[lispdir=${withval}])
|
||||||
|
AC_MSG_CHECKING([where .elc files should go])
|
||||||
|
if test -z "$lispdir"; then
|
||||||
|
theprefix=$prefix
|
||||||
|
if test "x$theprefix" = "xNONE"; then
|
||||||
|
theprefix=$ac_default_prefix
|
||||||
|
fi
|
||||||
|
datadir="\$(prefix)/share"
|
||||||
|
if test "$EMACS_FLAVOR" = "xemacs"; then
|
||||||
|
datadir="\$(prefix)/lib"
|
||||||
|
lispdir="${datadir}/${EMACS_FLAVOR}/site-packages/lisp/dvc"
|
||||||
|
if test ! -d "${lispdir}"; then
|
||||||
|
if test -d "${theprefix}/share/${EMACS_FLAVOR}/site-lisp"; then
|
||||||
|
lispdir="\$(prefix)/lib/${EMACS_FLAVOR}/site-packages/lisp/dvc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
lispdir="${datadir}/${EMACS_FLAVOR}/site-lisp/dvc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$lispdir])
|
||||||
|
AC_SUBST([lispdir])
|
||||||
|
|
||||||
|
AC_SUBST([EMACS_PROG])
|
||||||
|
AC_SUBST([FLAGS])
|
||||||
|
|
||||||
|
# Copied from gnus aclocal.m4 (AC_PATH_INFO_DIR)
|
||||||
|
AC_MSG_CHECKING([where the TeXinfo docs should go])
|
||||||
|
dnl Set default value. This must be an absolute path.
|
||||||
|
if test "$infodir" = "\${prefix}/info"; then
|
||||||
|
if test "$EMACS_FLAVOR" = "xemacs"; then
|
||||||
|
info_dir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-packages/info"
|
||||||
|
else
|
||||||
|
info_dir="\$(prefix)/share/info"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
info_dir=$infodir
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$info_dir])
|
||||||
|
AC_SUBST([info_dir])
|
||||||
|
|
||||||
|
DVC_PROG([TLA], [tla], [tla program to use])
|
||||||
|
DVC_PROG([BAZ], [baz], [baz program to use])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([arch branch to use])
|
||||||
|
AC_ARG_WITH([arch],
|
||||||
|
[AS_HELP_STRING([--with-arch=BRANCH],
|
||||||
|
[which arch branch (one of: tla, baz, none) to use by default
|
||||||
|
(default is none)])],
|
||||||
|
[ARCH_BRANCH=$withval],
|
||||||
|
[ARCH_BRANCH=none])
|
||||||
|
case $ARCH_BRANCH in
|
||||||
|
tla|baz|none) blurb= ;;
|
||||||
|
*) blurb=" (ignored invalid --with-arch=$ARCH_BRANCH)"
|
||||||
|
ARCH_BRANCH=none ;;
|
||||||
|
esac
|
||||||
|
AC_MSG_RESULT([$ARCH_BRANCH$blurb])
|
||||||
|
AC_SUBST([ARCH_BRANCH])
|
||||||
|
|
||||||
|
DVC_PROG_WARN([DIFF], [diff], [diff program to use])
|
||||||
|
DVC_PROG_WARN([PATCH], [patch], [patch program to use])
|
||||||
|
|
||||||
|
AC_ARG_WITH([other-dirs],
|
||||||
|
[AS_HELP_STRING([--with-other-dirs=DIRS],
|
||||||
|
[push DIRS (list of space- or colon-separated paths)
|
||||||
|
onto `load-path' during build])],
|
||||||
|
[OTHERDIRS=`echo "$withval" | sed 'y/:/ /'`])
|
||||||
|
AC_SUBST([OTHERDIRS])
|
||||||
|
|
||||||
|
# tree widget
|
||||||
|
AC_MSG_CHECKING([whether tree-widget is in the load-path])
|
||||||
|
if ${EMACS_PROG} ${FLAGS} --batch --eval \
|
||||||
|
'(kill-emacs
|
||||||
|
(if (locate-library "tree-widget" nil
|
||||||
|
(append command-line-args-left load-path))
|
||||||
|
0 1))' \
|
||||||
|
$OTHERDIRS
|
||||||
|
then HAS_TREE_WIDGET=yes
|
||||||
|
else HAS_TREE_WIDGET=no
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([${HAS_TREE_WIDGET}])
|
||||||
|
if test "x${HAS_TREE_WIDGET}" = "xno" ; then
|
||||||
|
AC_MSG_WARN([*** tree-widget.el not found in 'load-path.])
|
||||||
|
AC_MSG_WARN([*** tla-browse.el won't be available unless you install it.])
|
||||||
|
AC_MSG_WARN([*** See http://sourceforge.net/projects/emhacks/])
|
||||||
|
AC_MSG_WARN([*** Provide the path to tree-widget with --with-other-dirs])
|
||||||
|
AC_MSG_WARN([*** if tree-widget.el is already present on your system])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for the date utility flavor])
|
||||||
|
if date --version 2>/dev/null | grep GNU ; then
|
||||||
|
DATE_FLAVOR="GNU"
|
||||||
|
else
|
||||||
|
DATE_FLAVOR="BSD"
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([${DATE_FLAVOR}])
|
||||||
|
AC_SUBST([DATE_FLAVOR])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
|
# configure.ac ends here
|
||||||
6
dvc/debian/README.Debian
Normal file
6
dvc/debian/README.Debian
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
This package is a rework of Milan Zamazal's packaging based on
|
||||||
|
Matthieu Moy <Matthieu.Moy@imag.fr>.
|
||||||
|
|
||||||
|
This package use cdbs.
|
||||||
|
|
||||||
|
-- Daniel Dehennin <dad@hati.baby-gnu.org>, Fri, 22 Aug 2008 07:04:29 +0200
|
||||||
7
dvc/debian/changelog
Normal file
7
dvc/debian/changelog
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
dvc (0r20100420-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New snapshot.
|
||||||
|
* Add dvc.texinfo license to debian/copyright.
|
||||||
|
* Julien Danjou is the sponsor for DVC (Closes: #496930).
|
||||||
|
|
||||||
|
-- Daniel Dehennin <daniel.dehennin@baby-gnu.org> Tue, 20 Apr 2010 09:43:34 +0200
|
||||||
1
dvc/debian/compat
Normal file
1
dvc/debian/compat
Normal file
@ -0,0 +1 @@
|
|||||||
|
7
|
||||||
30
dvc/debian/control
Normal file
30
dvc/debian/control
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
Source: dvc
|
||||||
|
Section: devel
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Daniel Dehennin <daniel.dehennin@baby-gnu.org>
|
||||||
|
Build-Depends: cdbs (>= 0.4.50), debhelper (>= 7)
|
||||||
|
Build-Depends-Indep: autoconf, emacs23 | emacs22 | emacs21 | xemacs21 | emacs-snapshot, texinfo
|
||||||
|
Standards-Version: 3.8.4
|
||||||
|
Vcs-Bzr: http://bzr.xsteve.at/dvc/
|
||||||
|
Homepage: http://download.gna.org/dvc/
|
||||||
|
|
||||||
|
Package: dvc
|
||||||
|
Architecture: all
|
||||||
|
Depends: emacs23 | emacs22 | emacs21 | xemacs21 | emacs-snapshot, dpkg (>= 1.15.4) | install-info, ${misc:Depends}
|
||||||
|
Recommends: tla | bazaar | bzr | git | mercurial | darcs | monotone
|
||||||
|
Description: Emacs front-end to distributed version control systems
|
||||||
|
DVC is an attempt to build a common infrastructure for various
|
||||||
|
distributed revision control systems. Actually supported are tla,
|
||||||
|
bazaar, bzr, git, mercurial, darcs and monotone.
|
||||||
|
.
|
||||||
|
DVC main features are:
|
||||||
|
* dvc-status: Intuitive interface for status viewing.
|
||||||
|
* dvc-log: Log viewer.
|
||||||
|
* dvc-diff: View uncommitted changes in your working directory.
|
||||||
|
* dvc-bookmarks: Bookmark manager with partner support.
|
||||||
|
* Integration with ediff, Emacs's graphical diff tool.
|
||||||
|
* dvc-missing: Interface to view missing patches from all your
|
||||||
|
partners with a single command.
|
||||||
|
* Send/receive/apply patches via the Gnus email client.
|
||||||
|
* Run many version control commands from Emacs (such as init and
|
||||||
|
pull).
|
||||||
70
dvc/debian/copyright
Normal file
70
dvc/debian/copyright
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
This package was debianized by Matthieu Moy <Matthieu.Moy@imag.fr> on
|
||||||
|
Sun, 17 Oct 2004 17:15:25 +0200. Small additional changes were made by
|
||||||
|
Milan Zamazal <pdm@debian.org> and Daniel Dehennin
|
||||||
|
<daniel.dehennin@baby-gnu.org> completely repackage it.
|
||||||
|
|
||||||
|
It was downloaded from http://download.gna.org/dvc.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (C) 2004, 2005, 2006, 2007, 2008 DVC team
|
||||||
|
|
||||||
|
Upstream authors:
|
||||||
|
|
||||||
|
Alan Shutko <ats@acm.org>
|
||||||
|
Andrea Russo <rastandy@inventati.org>
|
||||||
|
Andre Kuehne <andre.kuehne@gmx.net>
|
||||||
|
Bojan Nikolic <bojan@bnikolic.co.uk>
|
||||||
|
Chris Gray <christopher.grayb@mail.mcgill.ca>
|
||||||
|
Christian Ohler <ohler+mtn@fastmail.net>
|
||||||
|
Daniel Dehennin <daniel.dehennin@baby-gnu.org>
|
||||||
|
Mark Triggs <mark@dishevelled.net>
|
||||||
|
Martin Brett Pool
|
||||||
|
Masatake YAMATO <jet@gyve.org>
|
||||||
|
Matthieu MOY <matthieu.moy@imag.fr>
|
||||||
|
Michael Olson <mwolson@gnu.org>
|
||||||
|
Milan Zamazal <pdm@zamazal.org>
|
||||||
|
Miles Bader <miles@gnu.org>
|
||||||
|
Robert Widhopf-Fenk <hack@robf.de>
|
||||||
|
Sam Steingold <sds@gnu.org>
|
||||||
|
Sascha Wilde <wilde@sha-bang.de>
|
||||||
|
Stefan Reichoer <stefan@xsteve.at>
|
||||||
|
Stephen Leake <stephen_leake@stephe-leake.org>
|
||||||
|
Steve Youngs <steve@sxemacs.org>
|
||||||
|
Takuzo O'hara <takuzo.ohara@gmail.com>
|
||||||
|
Vincent LADEUIL
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
This package 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; version 2 dated June, 1991, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This package 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 package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
02110-1301, USA.
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||||
|
|
||||||
|
License for dvc.texinfo:
|
||||||
|
|
||||||
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
|
manual provided the copyright notice and this permission notice are
|
||||||
|
preserved on all copies.
|
||||||
|
|
||||||
|
Permission is granted to copy and distribute modified versions of
|
||||||
|
this manual under the conditions for verbatim copying, provided that
|
||||||
|
the entire resulting derived work is distributed under the terms of a
|
||||||
|
permission notice identical to this one.
|
||||||
|
|
||||||
|
Permission is granted to copy and distribute translations of this
|
||||||
|
manual into another language, under the above conditions for modified
|
||||||
|
versions, except that this permission notice may be stated in a
|
||||||
|
translation approved by the author.
|
||||||
5
dvc/debian/dvc.dirs
Normal file
5
dvc/debian/dvc.dirs
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
usr/share/doc/dvc
|
||||||
|
usr/share/emacs/site-lisp/dvc
|
||||||
|
usr/share/emacs/site-lisp/dvc/lisp
|
||||||
|
usr/share/emacs/site-lisp/dvc/lisp/contrib
|
||||||
|
|
||||||
10
dvc/debian/dvc.docs
Normal file
10
dvc/debian/dvc.docs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
debian/copyright
|
||||||
|
docs/ANNOUNCEMENTS
|
||||||
|
docs/ARCHIVES
|
||||||
|
docs/BINDINGS
|
||||||
|
docs/CONTRIBUTORS
|
||||||
|
docs/DVC-API
|
||||||
|
docs/FEATURES
|
||||||
|
docs/HACKING
|
||||||
|
docs/TODO
|
||||||
|
docs/xmtn-readme.txt
|
||||||
81
dvc/debian/dvc.emacsen-install
Normal file
81
dvc/debian/dvc.emacsen-install
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#! /bin/sh -e
|
||||||
|
# /usr/lib/emacsen-common/packages/install/dvc
|
||||||
|
|
||||||
|
# Written by Jim Van Zandt <jrv@vanzandt.mv.com>, borrowing heavily
|
||||||
|
# from the install scripts for gettext by Santiago Vila
|
||||||
|
# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
FLAVOR=$1
|
||||||
|
PACKAGE=dvc
|
||||||
|
|
||||||
|
if [ "x$FLAVOR" = "x" ]; then
|
||||||
|
echo Need argument to determin FLAVOR of emacs;
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$PACKAGE" = "x" ]; then
|
||||||
|
echo Internal error: need package name;
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
|
||||||
|
ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
|
||||||
|
|
||||||
|
case "$FLAVOR" in
|
||||||
|
emacs |emacs20)
|
||||||
|
echo "Ignoring flavor ${FLAVOR}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -n "install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}... "
|
||||||
|
# if ! which $FLAVOR 2>&1 > /dev/null; then
|
||||||
|
# echo "Could not find $FLAVOR. Exiting"
|
||||||
|
# exit 0;
|
||||||
|
# fi
|
||||||
|
|
||||||
|
if [ -d "$ELCDIR" ]; then
|
||||||
|
rm -rf $ELCDIR || true;
|
||||||
|
fi
|
||||||
|
install -m 755 -d ${ELCDIR}
|
||||||
|
|
||||||
|
cd ${ELDIR}/lisp
|
||||||
|
|
||||||
|
LOG=`tempfile`;
|
||||||
|
trap "test ! -f $LOG || mv -f $LOG $ELCDIR/install.log > /dev/null 2>&1" EXIT
|
||||||
|
|
||||||
|
make EMACS_PROG=/usr/bin/$FLAVOR > $LOG 2>&1
|
||||||
|
COMPILED=$(ls -1 *.elc)
|
||||||
|
if [ "x$COMPILED" = "x" ]; then
|
||||||
|
echo >&2 "No compiled files exist!!"
|
||||||
|
echo >&2 "Aborting!!"
|
||||||
|
echo "No compiled files exist!!" >> $LOG;
|
||||||
|
echo "Aborting!!" >> $LOG;
|
||||||
|
mv -f $LOG $ELCDIR/install.log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for file in *.elc; do
|
||||||
|
echo "Installing $file in $ELCDIR" >> $LOG
|
||||||
|
install -m 644 $file $ELCDIR;
|
||||||
|
done
|
||||||
|
|
||||||
|
# Include files in contrib/ if any
|
||||||
|
if ls contrib/*.elc > /dev/null 2>&1; then
|
||||||
|
for file in contrib/*.elc; do
|
||||||
|
echo "Installing $file in $ELCDIR" >> $LOG
|
||||||
|
install -m 644 $file $ELCDIR;
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f dvc-version.el *autoloads.el custom-load.el *.elc contrib/*.elc|| true;
|
||||||
|
|
||||||
|
mv -f $LOG $ELCDIR/install.log;
|
||||||
|
chmod 644 $ELCDIR/install.log;
|
||||||
|
|
||||||
|
echo "done."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
29
dvc/debian/dvc.emacsen-remove
Normal file
29
dvc/debian/dvc.emacsen-remove
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
# /usr/lib/emacsen-common/packages/remove/dvc
|
||||||
|
|
||||||
|
FLAVOR=$1
|
||||||
|
PACKAGE=dvc
|
||||||
|
|
||||||
|
if [ "x$FLAVOR" = "x" ]; then
|
||||||
|
echo Need argument to determin FLAVOR of emacs;
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$PACKAGE" = "x" ]; then
|
||||||
|
echo Internal error: need package name;
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$FLAVOR" in
|
||||||
|
emacs | emacs20)
|
||||||
|
echo "Ignoring flavour ${FLAVOR}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
echo "remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}"
|
||||||
|
rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
36
dvc/debian/dvc.emacsen-startup
Normal file
36
dvc/debian/dvc.emacsen-startup
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
;; -*-emacs-lisp-*-
|
||||||
|
;;
|
||||||
|
;; Emacs startup file for the Debian dvc package
|
||||||
|
;;
|
||||||
|
;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
|
||||||
|
;; Modified by Dirk Eddelbuettel <edd@debian.org>
|
||||||
|
;; Adapted for dh-make by Jim Van Zandt <jrv@vanzandt.mv.com>
|
||||||
|
|
||||||
|
;; The dvc package follows the Debian/GNU Linux 'emacsen' policy and
|
||||||
|
;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
|
||||||
|
;; xemacs19, emacs20, xemacs20...). The compiled code is then
|
||||||
|
;; installed in a subdirectory of the respective site-lisp directory.
|
||||||
|
;; We have to add this to the load-path:
|
||||||
|
|
||||||
|
(let ((list (append '((lisp . "dvc") (source . "dvc/lisp")))))
|
||||||
|
(while list
|
||||||
|
(let ((elt (car list)))
|
||||||
|
(cond
|
||||||
|
((equal 'lisp (car elt))
|
||||||
|
(let ((dir (concat "/usr/share/"
|
||||||
|
(symbol-name debian-emacs-flavor)
|
||||||
|
"/site-lisp/" (cdr elt))))
|
||||||
|
(when (file-directory-p dir)
|
||||||
|
(if (fboundp 'debian-pkg-add-load-path-item)
|
||||||
|
(debian-pkg-add-load-path-item dir)
|
||||||
|
(add-to-list 'load-path dir 'append)))))
|
||||||
|
((equal 'source (car elt))
|
||||||
|
(let ((dir (concat "/usr/share/emacs/site-lisp/" (cdr elt))))
|
||||||
|
(when (file-directory-p dir)
|
||||||
|
(add-to-list 'load-path dir 'append))))))
|
||||||
|
(setq list (cdr list))))
|
||||||
|
|
||||||
|
(if (featurep 'xemacs)
|
||||||
|
(require 'auto-autoloads)
|
||||||
|
(require 'dvc-autoloads))
|
||||||
|
|
||||||
1
dvc/debian/dvc.info
Normal file
1
dvc/debian/dvc.info
Normal file
@ -0,0 +1 @@
|
|||||||
|
texinfo/dvc.info
|
||||||
7
dvc/debian/dvc.install
Normal file
7
dvc/debian/dvc.install
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
config.status /usr/share/emacs/site-lisp/dvc
|
||||||
|
Makefile* /usr/share/emacs/site-lisp/dvc
|
||||||
|
lisp/Makefile* /usr/share/emacs/site-lisp/dvc/lisp/
|
||||||
|
lisp/Makefile* /usr/share/emacs/site-lisp/dvc/lisp/
|
||||||
|
lisp/*.el /usr/share/emacs/site-lisp/dvc/lisp/
|
||||||
|
lisp/dvc-site.el.in /usr/share/emacs/site-lisp/dvc/lisp/
|
||||||
|
lisp/contrib/*.el /usr/share/emacs/site-lisp/dvc/lisp/contrib/
|
||||||
17
dvc/debian/rules
Executable file
17
dvc/debian/rules
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
export DH_VERBOSE=0
|
||||||
|
|
||||||
|
PREFIX := /usr
|
||||||
|
LISPDIR := /usr/share/emacs/site-lisp/dvc
|
||||||
|
|
||||||
|
include /usr/share/cdbs/1/rules/debhelper.mk
|
||||||
|
|
||||||
|
clean::
|
||||||
|
[ ! -f Makefile ] || $(MAKE) distclean
|
||||||
|
|
||||||
|
configure/dvc::
|
||||||
|
autoconf -f -i
|
||||||
|
./configure PACKAGE_VERSION=$(DEB_VERSION) --prefix=$(PREFIX) --with-lispdir=$(LISPDIR)
|
||||||
|
$(MAKE) info
|
||||||
1
dvc/debian/source/format
Normal file
1
dvc/debian/source/format
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.0 (quilt)
|
||||||
99
dvc/docs/ANNOUNCEMENTS
Normal file
99
dvc/docs/ANNOUNCEMENTS
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
; -*- mode: text -*-
|
||||||
|
|
||||||
|
Subject: Xtla 1.2 is out!!
|
||||||
|
|
||||||
|
The Xtla development team is proud to announce the release of Xtla,
|
||||||
|
version 1.2.
|
||||||
|
|
||||||
|
Xtla is the Emacs front-end to GNU Arch client (either tla or bazaar
|
||||||
|
branch, at your option). It mainly provides user-friendly wrappers for
|
||||||
|
native commands.
|
||||||
|
|
||||||
|
The 1.2 version of Xtla will most probably be the last version of Xtla
|
||||||
|
to contain new features. We are currently moving to a more generic
|
||||||
|
architecture, that we called DVC, which will support other RCS as
|
||||||
|
back-ends. We already have preliminary support for Mercurial and
|
||||||
|
Bazaar 2.
|
||||||
|
|
||||||
|
The main features are:
|
||||||
|
|
||||||
|
* PCL-CVS like interface for tla inventory and tla changes
|
||||||
|
|
||||||
|
* Archive browser - navigate painlessly through archives, categories,
|
||||||
|
branches, versions, etc.
|
||||||
|
|
||||||
|
* Good integration in Emacs - almost everything can be done from
|
||||||
|
within the editor
|
||||||
|
|
||||||
|
* Bookmark manager - keep the most frequently used arch locations in
|
||||||
|
your bookmark buffer
|
||||||
|
|
||||||
|
* Integration with ediff, Emacs's graphical diff tool
|
||||||
|
- to view changes made in a local tree.
|
||||||
|
- to view and resolve conflicts after a merge.
|
||||||
|
|
||||||
|
* Interface to view missing patches from all your partners with a
|
||||||
|
single command
|
||||||
|
|
||||||
|
* An Emacs mode for arch-related files (log files, =tagging-method,
|
||||||
|
"build-config" files)
|
||||||
|
|
||||||
|
* Support for baz, and for baz added commands like "switch",
|
||||||
|
"annotate", "status", "resolved"
|
||||||
|
|
||||||
|
* Integraton with Gnus.
|
||||||
|
|
||||||
|
The main new features for the 1.2 version are:
|
||||||
|
|
||||||
|
* M-x baz-update RET can use either merge, replay, or update
|
||||||
|
|
||||||
|
* changelog buffer, cat-log-mode buffers, and *Article* buffers (in
|
||||||
|
Gnus) show clickable buttons for revision names (and other Arch
|
||||||
|
names).
|
||||||
|
|
||||||
|
* A mail notification is available from the Changelog buffer (bound
|
||||||
|
to "M")
|
||||||
|
|
||||||
|
* Several bazaaz 1.5 compatibility issues solved
|
||||||
|
|
||||||
|
* Many bugfixes
|
||||||
|
|
||||||
|
Information about Xtla can be found here:
|
||||||
|
|
||||||
|
http://wiki.gnuarch.org/xtla
|
||||||
|
|
||||||
|
We also have a project page on http://gna.org (savannah.gnu.org-like),
|
||||||
|
where you can find information about the mailing list, the online
|
||||||
|
manual, the download area, and the bug tracker (also used for feature
|
||||||
|
requests):
|
||||||
|
|
||||||
|
https://gna.org/projects/xtla-el
|
||||||
|
|
||||||
|
You can install Xtla is from the archive found here:
|
||||||
|
|
||||||
|
https://www-verimag.imag.fr/~moy/arch/public
|
||||||
|
|
||||||
|
The version is
|
||||||
|
|
||||||
|
Matthieu.Moy@imag.fr--public/xtla--main--1.2
|
||||||
|
|
||||||
|
Xtla can also be downloaded as a tarball from here
|
||||||
|
|
||||||
|
http://download.gna.org/xtla-el/
|
||||||
|
|
||||||
|
Or installed as a Debian package. The package is now in Debian
|
||||||
|
unstable. You can also get it by adding
|
||||||
|
|
||||||
|
deb http://download.gna.org/xtla-el/apt/ unstable/
|
||||||
|
|
||||||
|
to your sources.list file if you use another .deb-based distribution.
|
||||||
|
|
||||||
|
|
||||||
|
Many thanks to all contributors and testers, in particular, for this
|
||||||
|
version:
|
||||||
|
|
||||||
|
Stefan Reichör, Original author of Xtla and integrator
|
||||||
|
Masatake Yamato, GNU Emacs hacker
|
||||||
|
; Robert Widhopf-Fenk, XEmacs integration and testing
|
||||||
|
Milan Zamazal, Debian developer
|
||||||
|
Mark Triggs
|
||||||
36
dvc/docs/ARCHIVES
Normal file
36
dvc/docs/ARCHIVES
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
To test DVC backends quickly here I enumerate some
|
||||||
|
interesting(completely my subjective view - Masatake) archives or repositories:
|
||||||
|
Add archives(or repository) you are interested in.
|
||||||
|
|
||||||
|
* tla/baz
|
||||||
|
|
||||||
|
** dvc itself
|
||||||
|
|
||||||
|
$ bzr get http://bzr.xsteve.at/dvc/
|
||||||
|
|
||||||
|
* bzr
|
||||||
|
|
||||||
|
** bless binary editor
|
||||||
|
|
||||||
|
$ bzr branch http://download.gna.org/bless/bless.dev
|
||||||
|
|
||||||
|
* cg
|
||||||
|
|
||||||
|
** linux kernel
|
||||||
|
|
||||||
|
$ cg-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
|
||||||
|
|
||||||
|
* hg
|
||||||
|
|
||||||
|
** Xen and linux related codes
|
||||||
|
|
||||||
|
$ hg clone http://xenbits.xensource.com/linux-2.6-xen.hg
|
||||||
|
$ hg clone http://xenbits.xensource.com/xen-3.0-testing.hg
|
||||||
|
|
||||||
|
* darcs
|
||||||
|
|
||||||
|
** Ion-3 window manager
|
||||||
|
|
||||||
|
$ darcs get --partial http://modeemi.fi/~tuomov/repos/ion-3
|
||||||
|
|
||||||
|
|
||||||
210
dvc/docs/BINDINGS
Normal file
210
dvc/docs/BINDINGS
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
Some possible keybindings:
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;; Bookmarks key bindings
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(when (not tla-bookmarks-mode-map)
|
||||||
|
(setq tla-bookmarks-mode-map (make-sparse-keymap))
|
||||||
|
|
||||||
|
;;; Commands for merging (M)
|
||||||
|
(define-key tla-bookmarks-mode-map [?M ?s] 'tla-bookmarks-star-merge)
|
||||||
|
(define-key tla-bookmarks-mode-map [?M ?m] 'tla-bookmarks-missing)
|
||||||
|
(define-key tla-bookmarks-mode-map [?M ?r] 'tla-bookmarks-replay)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Commands for marking (*)
|
||||||
|
(define-key tla-bookmarks-mode-map "\M-\C-?" 'tla-bookmarks-unmark-all)
|
||||||
|
(define-key tla-bookmarks-mode-map [?* ?!] 'tla-bookmarks-unmark-all)
|
||||||
|
(define-key tla-bookmarks-mode-map [?* ?u] 'tla-bookmarks-unmark)
|
||||||
|
(define-key tla-bookmarks-mode-map [?* ?m] 'tla-bookmarks-mark)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Navigation
|
||||||
|
(define-key tla-bookmarks-mode-map [?n] 'tla-bookmarks-next)
|
||||||
|
(define-key tla-bookmarks-mode-map [?p] 'tla-bookmarks-previous)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Bookmark specific commands
|
||||||
|
(define-key tla-bookmarks-mode-map "\C-m" 'tla-bookmarks-goto)
|
||||||
|
(define-key tla-bookmarks-mode-map [?a] 'tla-bookmarks-add)
|
||||||
|
(define-key tla-bookmarks-mode-map [?e] 'tla-bookmarks-edit)
|
||||||
|
(define-key tla-bookmarks-mode-map [?d] 'tla-bookmarks-delete)
|
||||||
|
(define-key tla-bookmarks-mode-map [?o] 'tla-bookmarks-open-tree)
|
||||||
|
(define-key tla-bookmarks-mode-map [?i] 'tla-bookmarks-inventory)
|
||||||
|
(define-key tla-bookmarks-mode-map [?q] 'tla-buffer-quit)
|
||||||
|
(define-key tla-bookmarks-mode-map [?+ ?b] 'tla-bookmarks-add)
|
||||||
|
(define-key tla-bookmarks-mode-map [?+ ?t] 'tla-bookmarks-add-tree-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?- ?t] 'tla-bookmarks-delete-tree-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?+ ?p] 'tla-bookmarks-add-partner-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?- ?p] 'tla-bookmarks-delete-partner-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?+ ?g] 'tla-bookmarks-add-group-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?- ?g] 'tla-bookmarks-delete-group-interactive)
|
||||||
|
(define-key tla-bookmarks-mode-map [?* ?g] 'tla-bookmarks-select-by-group)
|
||||||
|
(define-key tla-bookmarks-mode-map [?N] 'tla-bookmarks-move-down)
|
||||||
|
(define-key tla-bookmarks-mode-map [?P] 'tla-bookmarks-move-up)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Archive commands (A)
|
||||||
|
(define-key tla-bookmarks-mode-map [?>] 'tla-bookmarks-get)
|
||||||
|
(define-key tla-bookmarks-mode-map [?A ?g] 'tla-bookmarks-get)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Toggle commands (T)
|
||||||
|
(define-key tla-bookmarks-mode-map [?T t] 'tla-bookmarks-toggle-details)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Debugging commands (D)
|
||||||
|
(define-key tla-bookmarks-mode-map [?D p] 'tla-show-process-buffer)
|
||||||
|
;; Add me!
|
||||||
|
;; (define-key tla-bookmarks-mode-map [?D l] 'tla-show-tla-log)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Misc
|
||||||
|
(define-key tla-bookmarks-mode-map [??] 'describe-mode)
|
||||||
|
(define-key tla-bookmarks-mode-map [(meta p)]
|
||||||
|
'tla-bookmarks-marked-are-partners)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;; Inventory key bindings
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(when (not tla-inventory-mode-map)
|
||||||
|
(setq tla-inventory-mode-map (make-sparse-keymap))
|
||||||
|
|
||||||
|
;;; Commands for merging (M)
|
||||||
|
(define-key tla-inventory-mode-map [?M ?s] 'tla-inventory-star-merge)
|
||||||
|
(define-key tla-inventory-mode-map [?M ?r] 'tla-inventory-replay)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Commands for marking (*)
|
||||||
|
(define-key tla-inventory-mode-map "\M-\C-?" 'tla-inventory-unmark-all)
|
||||||
|
(define-key tla-inventory-mode-map [?* ?m] 'tla-inventory-mark-file)
|
||||||
|
(define-key tla-inventory-mode-map [?* ?u] 'tla-inventory-unmark-file)
|
||||||
|
(define-key tla-inventory-mode-map [?* ?!] 'tla-inventory-unmark-all)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Navigation
|
||||||
|
(define-key tla-inventory-mode-map [?n] 'tla-inventory-next)
|
||||||
|
(define-key tla-inventory-mode-map [?p] 'tla-inventory-previous)
|
||||||
|
(define-key tla-inventory-mode-map [?^] 'tla-inventory-parent-directory)
|
||||||
|
(define-key tla-inventory-mode-map [left] 'tla-inventory-parent-directory)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Inventory specific commands
|
||||||
|
(define-key tla-inventory-mode-map [?+ ?f] 'tla-inventory-add)
|
||||||
|
(define-key tla-inventory-mode-map [?- ?f] 'tla-inventory-remove)
|
||||||
|
(define-key tla-inventory-mode-map [?R] 'tla-inventory-move)
|
||||||
|
(define-key tla-inventory-mode-map [?e] 'tla-inventory-file-ediff)
|
||||||
|
(define-key tla-inventory-mode-map [?c] 'tla-inventory-edit-log) ;; mnemonic for commit
|
||||||
|
(define-key tla-inventory-mode-map [?f] 'tla-inventory-find-file)
|
||||||
|
(define-key tla-inventory-mode-map [return] 'tla-inventory-find-file)
|
||||||
|
(define-key tla-inventory-mode-map [right] 'tla-inventory-find-file)
|
||||||
|
(define-key tla-inventory-mode-map "\C-m" 'tla-inventory-find-file)
|
||||||
|
(define-key tla-inventory-mode-map [?o] 'tla-inventory-find-file-other-window)
|
||||||
|
(define-key tla-inventory-mode-map [?v] 'tla-inventory-view-file)
|
||||||
|
;; (define-key tla-inventory-mode-map [?d ?e] 'tla-inventory-file-ediff)
|
||||||
|
(define-key tla-inventory-mode-map [?d ?m] 'tla-inventory-missing)
|
||||||
|
(define-key tla-inventory-mode-map [?=] 'tla-changes)
|
||||||
|
(define-key tla-inventory-mode-map [?l] 'tla-changelog)
|
||||||
|
(define-key tla-inventory-mode-map [?L] 'tla-logs)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Archive commands (A)
|
||||||
|
(define-key tla-inventory-mode-map [?A ?m] 'tla-inventory-mirror)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Toggle commands (T)
|
||||||
|
(dolist (type-arg tla-inventory-file-types-manipulators)
|
||||||
|
(define-key tla-inventory-mode-map `[?T ,(cadddr type-arg)] (caddr type-arg)))
|
||||||
|
(define-key tla-inventory-mode-map [?T ?+] 'tla-inventory-set-all-toggle-variables)
|
||||||
|
(define-key tla-inventory-mode-map [?T ?-] 'tla-inventory-reset-all-toggle-variables)
|
||||||
|
(define-key tla-inventory-mode-map [?T ?~] 'tla-inventory-toggle-all-toggle-variables)
|
||||||
|
|
||||||
|
;;; Debugging commands (D)
|
||||||
|
(define-key tla-inventory-mode-map [?D p] 'tla-show-process-buffer)
|
||||||
|
;; Add me!
|
||||||
|
;; (define-key tla-inventory-mode-map [?D l] 'tla-show-tla-log)
|
||||||
|
|
||||||
|
;;; Misc
|
||||||
|
(define-key tla-inventory-mode-map [??] 'describe-mode)
|
||||||
|
(define-key tla-inventory-mode-map [?g] 'tla-generic-refresh)
|
||||||
|
(define-key tla-inventory-mode-map [?q] 'tla-buffer-quit)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;; Revision key bindings
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(when (not tla-revision-list-mode-map)
|
||||||
|
(setq tla-revision-list-mode-map (make-sparse-keymap))
|
||||||
|
|
||||||
|
;;; Commands for merging/branching (M)
|
||||||
|
(define-key tla-revision-list-mode-map [?M ?s] 'tla-revision-star-merge)
|
||||||
|
(define-key tla-revision-list-mode-map [?M ?t] 'tla-revision-tag)
|
||||||
|
(define-key tla-revision-list-mode-map [?M ?r] 'tla-revision-replay)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Commands for marking (*)
|
||||||
|
(define-key tla-revision-list-mode-map [?* ?m] 'tla-revision-mark-revision)
|
||||||
|
;; Add me!
|
||||||
|
;; (define-key tla-revision-list-mode-map [?* ?u]
|
||||||
|
;; 'tla-revision-unmark-revision)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Navigation
|
||||||
|
(define-key tla-revision-list-mode-map [?^]
|
||||||
|
'tla-revision-list-parent-version)
|
||||||
|
(define-key tla-revision-list-mode-map [left]
|
||||||
|
'tla-revision-list-parent-version)
|
||||||
|
(define-key tla-revision-list-mode-map [down] 'tla-bookmarks-missing-next)
|
||||||
|
(define-key tla-revision-list-mode-map [up] 'tla-bookmarks-missing-prev)
|
||||||
|
(define-key tla-revision-list-mode-map [?n] 'tla-bookmarks-missing-next)
|
||||||
|
(define-key tla-revision-list-mode-map [?p] 'tla-bookmarks-missing-prev)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Archive commands (A)
|
||||||
|
(define-key tla-revision-list-mode-map [?> ?g] 'tla-revision-get-revision)
|
||||||
|
(define-key tla-revision-list-mode-map [?> ?C] 'tla-revision-cache-revision)
|
||||||
|
(define-key tla-revision-list-mode-map [?> ?L] 'tla-revision-add-to-library)
|
||||||
|
(define-key tla-revision-list-mode-map [?A ?g] 'tla-revision-get-revision)
|
||||||
|
(define-key tla-revision-list-mode-map [?A ?c] 'tla-revision-cache-revision)
|
||||||
|
(define-key tla-revision-list-mode-map [?A ?l] 'tla-revision-add-to-library)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Toggle commands (T)
|
||||||
|
(define-key tla-revision-list-mode-map [?T ?d] 'tla-revision-toggle-date)
|
||||||
|
(define-key tla-revision-list-mode-map [?T ?c] 'tla-revision-toggle-creator)
|
||||||
|
(define-key tla-revision-list-mode-map [?T ?s] 'tla-revision-toggle-summary)
|
||||||
|
(define-key tla-revision-list-mode-map [?T ?r] 'tla-revision-toggle-reverse)
|
||||||
|
;; ?t ?? is reserved. Not implemented yet.
|
||||||
|
(define-key tla-revision-list-mode-map [?T ??] 'tla-revision-list-toggles)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Debugging commands (D)
|
||||||
|
(define-key tla-revision-list-mode-map [?D p] 'tla-show-process-buffer)
|
||||||
|
;; Add me!
|
||||||
|
;; (define-key tla-revision-mode-map [?D l] 'tla-show-tla-log)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Revision specific commands
|
||||||
|
(define-key tla-revision-list-mode-map [?l] 'tla-revision-cat-log)
|
||||||
|
(define-key tla-revision-list-mode-map [?u] 'tla-revision-update)
|
||||||
|
(define-key tla-revision-list-mode-map "\C-m" 'tla-revision-return)
|
||||||
|
(define-key tla-revision-list-mode-map [return] 'tla-revision-return)
|
||||||
|
(define-key tla-revision-list-mode-map [right] 'tla-revision-return)
|
||||||
|
(define-key tla-revision-list-mode-map [?d] 'tla-revision-delta)
|
||||||
|
(define-key tla-revision-list-mode-map [?=] 'tla-revision-changeset)
|
||||||
|
(define-key tla-revision-list-mode-map [?i] 'tla-pop-to-inventory)
|
||||||
|
(define-key tla-revision-list-mode-map [?.] 'tla-revision-bookmarks-add)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Misc
|
||||||
|
(define-key tla-revision-list-mode-map [?g] 'tla-generic-refresh)
|
||||||
|
(define-key tla-revision-list-mode-map [?q] 'tla-buffer-quit)
|
||||||
|
)
|
||||||
165
dvc/docs/CONTRIBUTORS
Executable file
165
dvc/docs/CONTRIBUTORS
Executable file
@ -0,0 +1,165 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#| -*- scheme -*- |#
|
||||||
|
:; exec gosh -- $0 "$@"
|
||||||
|
;;
|
||||||
|
;; We want to merge dvc tree to GNU Emacs. Thus, every contributor
|
||||||
|
;; must assign copyright for this changes to the FSF. This file
|
||||||
|
;; tracks contributors and their copyright assignment status.
|
||||||
|
;;
|
||||||
|
;; Before reporting your patch for merging DVC official source tree,
|
||||||
|
;; add your name to this file. The entry format is as follows:
|
||||||
|
;;
|
||||||
|
;; (contributor :name "yourname"
|
||||||
|
;; :signed done--or--not-yet--or--tiny-change
|
||||||
|
;; :mail-addresses "addr1@example1.com")
|
||||||
|
;;
|
||||||
|
;; or
|
||||||
|
;;
|
||||||
|
;; (contributor :name "yourname"
|
||||||
|
;; :signed done--or--not-yet--or--tiny-change
|
||||||
|
;; :mail-addresses ("addr1@example1.com" "addr2@example2.com" ...))
|
||||||
|
;;
|
||||||
|
;; You can use # instead of @ for circumventing the email-gathering
|
||||||
|
;; web spiders that spammers use. If you use a list for the
|
||||||
|
;; :mail-addresses field, the car is used for contacting the FSF.
|
||||||
|
;;
|
||||||
|
;; The first time :signed field may be `not-yet'. Then we will contact
|
||||||
|
;; you via email and send a copyright assignment templalte, which is
|
||||||
|
;; to be emailed to the FSF (at this point, :signed is changed to
|
||||||
|
;; `in-progress'). They will then send you the papers to sign. After
|
||||||
|
;; completing a paper work for it and getting the notification from
|
||||||
|
;; FSF, the :signed field will be changed to `done'.
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; *The order is not meaningful.*
|
||||||
|
;;
|
||||||
|
(define contributors
|
||||||
|
'(
|
||||||
|
(contributor :name "Stefan Reichoer"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("stefan#xsteve.at"
|
||||||
|
"stefan#pyramide"
|
||||||
|
"xsteve#nit.at"))
|
||||||
|
(contributor :name "Matthieu MOY"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("Matthieu.Moy#imag.fr"
|
||||||
|
"matthieu.moy#imag.fr"
|
||||||
|
"moy#ecrins"
|
||||||
|
"moy#moy"))
|
||||||
|
(contributor :name "Miles Bader"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "miles#gnu.org")
|
||||||
|
(contributor :name "Andre Kuehne"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "andre.kuehne#gmx.net")
|
||||||
|
(contributor :name "Vincent LADEUIL"
|
||||||
|
:signed done)
|
||||||
|
(contributor :name "Stephen Leake"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("stephen_leake#stephe-leake.org"
|
||||||
|
"stephe#ACS1100007992"
|
||||||
|
"stephe#LM000850872"))
|
||||||
|
(contributor :name "Takuzo O'hara"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "takuzo.ohara#gmail.com")
|
||||||
|
(contributor :name "Michael Olson"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("mwolson#member.fsf.org"
|
||||||
|
"mwolson#gnu.org"
|
||||||
|
"mwolson#exabyte"))
|
||||||
|
(contributor :name "Martin Brett Pool"
|
||||||
|
:signed done)
|
||||||
|
(contributor :name "Andrea Russo"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("rastandy#inventati.org"
|
||||||
|
"rast4ndy#gmail.com"))
|
||||||
|
(contributor :name "Alan Shutko"
|
||||||
|
:signed done-emacs-only
|
||||||
|
:mail-addresses "ats#acm.org")
|
||||||
|
(contributor :name "Sam Steingold"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "sds#gnu.org")
|
||||||
|
(contributor :name "Mark Triggs"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "mark#dishevelled.net")
|
||||||
|
(contributor :name "Robert Widhopf-Fenk"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses "hack#robf.de")
|
||||||
|
(contributor :name "Sascha Wilde"
|
||||||
|
:signed done-emacs-only
|
||||||
|
:mail-addresses "wilde#sha-bang.de")
|
||||||
|
(contributor :name "Masatake YAMATO"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("jet#gyve.org"
|
||||||
|
"jet#gps06"))
|
||||||
|
(contributor :name "Steve Youngs"
|
||||||
|
:signed done-emacs-only
|
||||||
|
:mail-addresses "steve#sxemacs.org")
|
||||||
|
(contributor :name "Milan Zamazal"
|
||||||
|
:signed done
|
||||||
|
:mail-addresses ("pdm#zamazal.org" "pdm#debian.org"))
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Assignment in progress
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Does not need assignment yet
|
||||||
|
;;
|
||||||
|
(contributor :name "Daniel Dehennin"
|
||||||
|
:contacted yes
|
||||||
|
:changed-elisp no
|
||||||
|
:signed not-yet
|
||||||
|
:mail-addresses "daniel.dehennin@baby-gnu.org")
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Needs assignment (or investigation into changes made)
|
||||||
|
;;
|
||||||
|
(contributor :name "Christian Ohler"
|
||||||
|
:signed not-yet
|
||||||
|
:contacted yes
|
||||||
|
:mail-addresses "ohler+mtn#fastmail.net")
|
||||||
|
(contributor :signed "Chris Gray"
|
||||||
|
:signed not-yet
|
||||||
|
:contacted email-invalid
|
||||||
|
:mail-addresses "christopher.grayb#mail.mcgill.ca")
|
||||||
|
(contributor :signed "Bojan Nikolic"
|
||||||
|
:signed in-progress
|
||||||
|
:contacted yes
|
||||||
|
:mail-addresses "bojan#bnikolic.co.uk")
|
||||||
|
(contributor :name "James LewisMoss"
|
||||||
|
:signed tiny-change
|
||||||
|
:mail-addresses "jim@lewismoss.org")
|
||||||
|
;;
|
||||||
|
;; ADD YOUR NAME HERE.
|
||||||
|
;;
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; This is a program to pick something like mail addresses from the output of
|
||||||
|
;; tla and bzr. The contributors mail address listed above are removed from the
|
||||||
|
;; picked addresses.
|
||||||
|
;;
|
||||||
|
;; tla changelog | docs/CONTRIBUTORS | sort | uniq
|
||||||
|
;; bzr log | docs/CONTRIBUTORS | sort | uniq
|
||||||
|
;;
|
||||||
|
(use srfi-1)
|
||||||
|
(let* ((droplist '("dvc-dev#gna.org"))
|
||||||
|
(addresses (map
|
||||||
|
(cute regexp-replace #/#/ <> "@")
|
||||||
|
(apply append droplist
|
||||||
|
(map (lambda (c)
|
||||||
|
(let1 addrs (get-keyword :mail-addresses (cdr c) (list))
|
||||||
|
(if (string? addrs) (list addrs) addrs)))
|
||||||
|
contributors))))
|
||||||
|
(registered? (lambda (line)
|
||||||
|
(any (lambda (a)
|
||||||
|
(string-scan line a))
|
||||||
|
addresses))))
|
||||||
|
(let loop ((line (read-line)))
|
||||||
|
(unless (eof-object? line)
|
||||||
|
(when (string-scan line "@")
|
||||||
|
(unless (registered? line)
|
||||||
|
(print line)))
|
||||||
|
(loop (read-line)))))
|
||||||
179
dvc/docs/DVC-API
Normal file
179
dvc/docs/DVC-API
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
That file contains the documentation to build support for a different dvc,
|
||||||
|
using the dvc layer:
|
||||||
|
|
||||||
|
Conventions used in the document:
|
||||||
|
* <dvc> is used as placeholder for the dvc backend to implement
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
* Base functions that are required for every supported dvc system
|
||||||
|
* That functions should be located in the <dvc>-dvc.el file
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
When no function is provided, dvc-dvc-<postfix> is used instead.
|
||||||
|
|
||||||
|
- <dvc>-dvc-tree-root
|
||||||
|
(defun <dvc>-dvc-tree-root (&optional location no-error)
|
||||||
|
"Return the tree root for LOCATION, nil if not in a local tree.
|
||||||
|
|
||||||
|
If NO-ERROR is non-nil, don't raise an error if LOCATION is not a
|
||||||
|
<dvc> managed tree (but return nil)."
|
||||||
|
|
||||||
|
- <dvc>-dvc-log-edit-done
|
||||||
|
(defun <dvc>-dvc-log-edit-done ()
|
||||||
|
"Finish a commit for <dvc>."
|
||||||
|
|
||||||
|
- <dvc>-dvc-diff
|
||||||
|
(defun <dvc>-dvc-diff ()
|
||||||
|
"Shows the changes in the current <dvc> tree."
|
||||||
|
|
||||||
|
- <dvc>-dvc-log
|
||||||
|
(defun <dvc>-dvc-log ()
|
||||||
|
"Shows the changelog in the current <dvc> tree."
|
||||||
|
|
||||||
|
- <dvc>-dvc-command-version
|
||||||
|
(defun <dvc>-dvc-command-version ()
|
||||||
|
"Returns and/or shows the version identity string of backend command."
|
||||||
|
|
||||||
|
- <dvc>-dvc-file-has-conflict-p
|
||||||
|
(defun <dvc>-dvc-file-has-conflict-p (filename)
|
||||||
|
"Return non-nil if FILENAME is marked as having conflicts")
|
||||||
|
|
||||||
|
- <dvc>-dvc-resolved
|
||||||
|
(defun <dvc>-dvc-resolved (filename)
|
||||||
|
"Mark FILENAME as not having conflict anymore")
|
||||||
|
|
||||||
|
|
||||||
|
To handle the case of a workspace that is controlled by more than one
|
||||||
|
back-end, all dispatching interactive front-end functions dvc-foo
|
||||||
|
should have a corresponding function <dvc>-foo, that specifies which
|
||||||
|
back-end to use.
|
||||||
|
|
||||||
|
A simple way to provide <dvc>-foo is to put dvc-foo in
|
||||||
|
dvc-back-end-wrappers (in dvc-unified.el); then <dvc>-foo is
|
||||||
|
automatically generated by dvc-register-dvc. This defines
|
||||||
|
<dvc>-foo as (see dvc-register.el for the actual code):
|
||||||
|
|
||||||
|
(defun <dvc>-foo (<args>)
|
||||||
|
(interactive)
|
||||||
|
(let ((dvc-temp-current-active-dvc <dvc>))
|
||||||
|
(call-interactively 'dvc-foo)))
|
||||||
|
|
||||||
|
This means that back-ends may _not_ define a function <dvc>-foo.
|
||||||
|
|
||||||
|
Note that functions defined by dvc-define-unified-command dispatch
|
||||||
|
to <dvc>-dvc-foo. Calling <dvc>-dvc-foo is _not_ the same as
|
||||||
|
calling <dvc>-foo, since dvc-temp-current-active-dvc is not bound,
|
||||||
|
the interactive argument processing may be different, and
|
||||||
|
<dvc>-dvc-foo may not even exist (if the default dvc-dvc-foo is
|
||||||
|
sufficient).
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
* Revision API
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Definition
|
||||||
|
==========
|
||||||
|
|
||||||
|
DVC deals with several RCS, with different ways to designate a
|
||||||
|
revision. We define a unified way to designate a revision in lisp,
|
||||||
|
which we call revision identifiers, or rev-id:
|
||||||
|
|
||||||
|
REVISION-ID :: (<dvc> BACK-END-ID)
|
||||||
|
;; <dvc> is one of 'tla, 'bzr, 'xhg, ...
|
||||||
|
|
||||||
|
BACK-END-ID :: (revision BACK-END-REVISION)
|
||||||
|
;; An already commited revision
|
||||||
|
;; The way to specify it depends on the back-end.
|
||||||
|
| (local-tree PATH)
|
||||||
|
;; Uncommited revision in the local tree PATH
|
||||||
|
| (last-revision PATH NUM)
|
||||||
|
;; Last commited revision in tree PATH if NUM = 1
|
||||||
|
;; Last but NUM-1 revision in tree PATH if NUM > 1
|
||||||
|
| (previous-revision BACK-END-REVISION NUM)
|
||||||
|
;; Nth Ancestor of BACK-END-ID.
|
||||||
|
|
||||||
|
(probably we'll need a (head REMOTE-BRANCH) too)
|
||||||
|
|
||||||
|
PATH :: string
|
||||||
|
;; must be a tree root directory
|
||||||
|
|
||||||
|
NUM :: number
|
||||||
|
|
||||||
|
REV-STRING :: string
|
||||||
|
|
||||||
|
For Xtla (tla and baz):
|
||||||
|
|
||||||
|
BACK-END-REVISION :: ("archive" "category" "branch" "version" "revision")
|
||||||
|
;; archive/category--branch--version--revision
|
||||||
|
|
||||||
|
For bzr:
|
||||||
|
|
||||||
|
BACK-END-REVISION :: (local "path" NUM)
|
||||||
|
| (remote "url" NUM)
|
||||||
|
| (tag REV-STRING)
|
||||||
|
|
||||||
|
For xhg:
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
For xgit:
|
||||||
|
|
||||||
|
BACK-END-REVISION :: (revision "sha1")
|
||||||
|
| (index)
|
||||||
|
;; content of the index (aka staging area).
|
||||||
|
|
||||||
|
Example
|
||||||
|
=======
|
||||||
|
|
||||||
|
(bzr (revision (local "/path/to/archive" 3)))
|
||||||
|
(baz (last-revision "/path/to/project" 1))
|
||||||
|
(baz (revision ("archive" "category" "branch" "version" "revision")))
|
||||||
|
(xgit (revision "c576304d512df18fa30b91bb3ac15478d5d4dfb1"))
|
||||||
|
|
||||||
|
Functions
|
||||||
|
=========
|
||||||
|
|
||||||
|
Based upon that, we define the functions:
|
||||||
|
|
||||||
|
dvc-revision-get-file-in-buffer: get the particular revision of a file
|
||||||
|
in a buffer.
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
* Back-end specific features Vs Unification
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DVC provides the user an interface for multiple revision control
|
||||||
|
system, and does it using as much back-end independant code as
|
||||||
|
possible. This has several benefits :
|
||||||
|
|
||||||
|
* For the user:
|
||||||
|
- Similar user-interface, keybindings, ... for different back-ends.
|
||||||
|
- Unified interface for most operations : one menu, one set of
|
||||||
|
keybindings, and DVC detects which back-end to use automatically.
|
||||||
|
|
||||||
|
* For the developers:
|
||||||
|
- much less code to write than individual, independant interfaces.
|
||||||
|
|
||||||
|
However, some back-end features do not fit well in the DVC common
|
||||||
|
interface. For example, git differs from other common version control
|
||||||
|
systems in several regards (the index, for example, is something
|
||||||
|
probably unique to git, and it leads to a different flow to prepare a
|
||||||
|
commit).
|
||||||
|
|
||||||
|
In this case, there's nothing wrong providing additional functions,
|
||||||
|
which might not have a dvc-* dispatching command. The user can call
|
||||||
|
them with M-x <back-end>-command RET explicitly. Additionaly, one can
|
||||||
|
extend some DVC modes with additional keybindings and menus. See
|
||||||
|
`dvc-diff-mode' and `xgit-diff-mode' for an example.
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
* External tools
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* 'sh' is required for dvc-run-sync and dvc-run-async.
|
||||||
|
|
||||||
|
In practice, that is not a problem for Unix users, but requires
|
||||||
|
cygwin or mingw for Windows users. 'sh' is used to separate stdout
|
||||||
|
from stderr; the Emacs function 'call-process' merges them. It may
|
||||||
|
be possible to do this with native Windows tools, if someone wants
|
||||||
|
to investigate.
|
||||||
204
dvc/docs/FEATURES
Normal file
204
dvc/docs/FEATURES
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
This file is a annotated version of the output of tla help.
|
||||||
|
|
||||||
|
It should help us to identify the missing features of xtla regarding
|
||||||
|
tla itself. Don't forget that xtla is more than a "wrapper" around
|
||||||
|
tla, so, xtla should also have features not listed here to have a real
|
||||||
|
added value (the bookmarks feature is probably the best example).
|
||||||
|
|
||||||
|
There are currently 3 sections :
|
||||||
|
|
||||||
|
* TODO : Nothing was done for that
|
||||||
|
|
||||||
|
* DONE : Something was already done for that command. Probably it's
|
||||||
|
still not perfect yet.
|
||||||
|
|
||||||
|
* NOT NEEDED : Nothing was done, and nothing will be done for this
|
||||||
|
feature since it's meaningless in xtla.
|
||||||
|
|
||||||
|
After some time, there should be a fourth section :
|
||||||
|
|
||||||
|
* FINISHED : We consider this feature is fully implemented. At least
|
||||||
|
we mean that, additions to this feature are lowest
|
||||||
|
priority.
|
||||||
|
|
||||||
|
Moving an item from DONE to FINISHED or from TODO to NOT NEEDED should
|
||||||
|
be discussed on the mailing list.
|
||||||
|
|
||||||
|
tla sub-commands
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* help
|
||||||
|
|
||||||
|
[DONE] help : provide help with arch
|
||||||
|
|
||||||
|
|
||||||
|
* User Commands
|
||||||
|
|
||||||
|
[DONE] my-id : print or change your id
|
||||||
|
|
||||||
|
[DONE] my-default-archive : print or change your default archive
|
||||||
|
[DONE] register-archive : change an archive location registration
|
||||||
|
[DONE] whereis-archive : print an archive location registration
|
||||||
|
[DONE] archives : Report registered archives and their locations.
|
||||||
|
|
||||||
|
|
||||||
|
* Project Tree Commands
|
||||||
|
|
||||||
|
[DONE] init-tree : initialize a new project tree
|
||||||
|
[DONE] tree-root : find and print the root of a project tree
|
||||||
|
|
||||||
|
[DONE] tree-version : print the default version for a project tree
|
||||||
|
[DONE] set-tree-version : set the default version for a project tree
|
||||||
|
|
||||||
|
[DONE] undo : undo and save changes in a project tree
|
||||||
|
[DONE] redo : redo changes in project tree
|
||||||
|
|
||||||
|
[DONE] changes : report about local changes in a project tree
|
||||||
|
[DONE] file-diffs : show local changes to a file
|
||||||
|
|
||||||
|
|
||||||
|
* Project Tree Inventory Commands
|
||||||
|
|
||||||
|
[DONE] inventory : inventory a source tree
|
||||||
|
[DONE] tree-lint : audit a source tree
|
||||||
|
[DONE] id : report the inventory id for a file
|
||||||
|
|
||||||
|
[DONE] id-tagging-method : print or change a project tree id tagging method
|
||||||
|
|
||||||
|
[DONE] add-id : add an explicit inventory id
|
||||||
|
[DONE] delete-id : remove an explicit inventory id
|
||||||
|
[DONE] rm : remove a file (or dir, or symlink) and its explicit inventory tag (if any)
|
||||||
|
[DONE] move-id : move an explicit inventory id
|
||||||
|
[DONE] mv : move a file (or dir, or symlink) and it's explicit inventory tag (if any)
|
||||||
|
[TODO] explicit-default : print or modify default ids
|
||||||
|
|
||||||
|
[TODO] id-tagging-defaults : print the default =tagging-method contents
|
||||||
|
|
||||||
|
|
||||||
|
* Patch Set Commands
|
||||||
|
|
||||||
|
[TODO] changeset : compute a whole-tree changeset
|
||||||
|
[DONE] apply-changeset : apply a whole-tree changeset
|
||||||
|
[DONE] show-changeset : generate a report from a changeset
|
||||||
|
|
||||||
|
|
||||||
|
* Archive Transaction Commands
|
||||||
|
|
||||||
|
[DONE] make-archive : create a new archive directory
|
||||||
|
[NOT NEEDED] archive-setup : create new categories, branches and versions
|
||||||
|
|
||||||
|
[DONE] make-category : create a new archive category
|
||||||
|
[DONE] make-branch : create a new archive branch
|
||||||
|
[DONE] make-version : create a new archive version
|
||||||
|
|
||||||
|
[DONE] import : archive a full-source base-0 revision
|
||||||
|
[DONE] commit : archive a changeset-based revision
|
||||||
|
|
||||||
|
[DONE] get : construct a project tree for a revision
|
||||||
|
[DONE] get-changeset : retrieve a changeset from an archive
|
||||||
|
|
||||||
|
[TODO] lock-revision : lock (or unlock) an archive revision
|
||||||
|
[DONE] archive-mirror : update an archive mirror
|
||||||
|
|
||||||
|
|
||||||
|
* Archive Commands
|
||||||
|
|
||||||
|
[DONE] abrowse : print an outline describing archive contents
|
||||||
|
[DONE] rbrowse : print an outline describing an archive's contents
|
||||||
|
[DONE] categories : list the categories in an archive
|
||||||
|
[DONE] branches : list the branches in an archive category
|
||||||
|
[DONE] versions : list the versions in an archive branch
|
||||||
|
[DONE] revisions : list the revisions in an archive version
|
||||||
|
[TODO] ancestry : display the ancestory of a revision
|
||||||
|
[TODO] ancestry-graph : display the ancestory of a revision
|
||||||
|
|
||||||
|
[DONE] cat-archive-log : print the contents of an archived log entry
|
||||||
|
|
||||||
|
[DONE] cacherev : cache a full source tree in an archive
|
||||||
|
[TODO] cachedrevs : list cached revisions in an archive
|
||||||
|
[TODO] uncacherev : remove a cached full source tree from an archive
|
||||||
|
|
||||||
|
[TODO] archive-meta-info : report meta-info from an archive
|
||||||
|
[TODO] archive-snapshot : update an archive snapshot
|
||||||
|
[TODO] archive-version : list the archive-version in an archive
|
||||||
|
|
||||||
|
[DONE] archive-fixup : fix ancillary files (e.g. .listing files) in an archive
|
||||||
|
|
||||||
|
|
||||||
|
* Patch Log Commands
|
||||||
|
|
||||||
|
[DONE] make-log : initialize a new log file entry
|
||||||
|
[TODO] log-versions : list patch log versions in a project tree
|
||||||
|
[TODO] add-log-version : add a patch log version to a project tree
|
||||||
|
[TODO] remove-log-version : remove a version's patch log from a project tree
|
||||||
|
[DONE] logs : list patch logs for a version in a project tree
|
||||||
|
[DONE] cat-log : print the contents of a project tree log entry
|
||||||
|
|
||||||
|
[DONE] changelog : generate a ChangeLog from a patch log
|
||||||
|
|
||||||
|
[DONE] log-for-merge : generate a log entry body for a merge
|
||||||
|
[TODO] merges : report where two branches have been merged
|
||||||
|
[TODO] new-merges : list tree patches new to a version
|
||||||
|
|
||||||
|
|
||||||
|
* Multi-project Configuration Commands
|
||||||
|
|
||||||
|
[DONE] build-config : instantiate a multi-project config
|
||||||
|
[DONE] cat-config : output information about a multi-project config
|
||||||
|
|
||||||
|
|
||||||
|
* Commands for Branching and Merging
|
||||||
|
|
||||||
|
[DONE] tag : create a continuation revision (aka tag or branch)
|
||||||
|
|
||||||
|
[DONE] update : update a project tree to reflect recent archived changes
|
||||||
|
[DONE] replay : apply revision changesets to a project tree
|
||||||
|
[DONE] star-merge : merge mutually merged branches
|
||||||
|
[TODO] apply-delta : Compute a changeset between any two trees or revisions and apply it to a project tree
|
||||||
|
[DONE] missing : print patches missing from a project tree
|
||||||
|
|
||||||
|
[TODO] join-branch : construct a project tree for a version
|
||||||
|
[DONE] sync-tree : unify a project tree's patch-log with a given revision
|
||||||
|
|
||||||
|
[DONE] delta : Compute a changeset (or diff) between any two trees or revisions
|
||||||
|
|
||||||
|
|
||||||
|
* Local Cache Commands
|
||||||
|
|
||||||
|
[DONE] changes : report about local changes in a project tree
|
||||||
|
[DONE] file-diffs : show local changes to a file
|
||||||
|
[DONE] file-find : find given version of file
|
||||||
|
|
||||||
|
[DONE] pristines : list pristine trees in a project tree
|
||||||
|
[TODO] lock-pristine : lock (or unlock) a pristine tree
|
||||||
|
[TODO] add-pristine : ensure that a project tree has a particular pristine revision
|
||||||
|
[TODO] find-pristine : find and print the path to a pristine revision
|
||||||
|
|
||||||
|
|
||||||
|
* Revision Library Commands
|
||||||
|
|
||||||
|
[DONE] my-revision-library : print or change your revision library path
|
||||||
|
[DONE] library-config : configure parameters of a revision library
|
||||||
|
[DONE] library-find : find and print the location of a revision in the revision library
|
||||||
|
[DONE] library-add : add a revision to the revision library
|
||||||
|
[TODO] library-remove : remove a revision from the revision library
|
||||||
|
[DONE] library-archives : list the archives in your revision library
|
||||||
|
[DONE] library-categories : list the categories in your revision library
|
||||||
|
[DONE] library-branches : list the branches in a library category
|
||||||
|
[DONE] library-versions : list the versions in a library branch
|
||||||
|
[DONE] library-revisions : list the revisions in a library version
|
||||||
|
[TODO] library-log : output a log message from the revision library
|
||||||
|
[TODO] library-file : find a file in a revision library
|
||||||
|
|
||||||
|
|
||||||
|
* Published Revisions Commands
|
||||||
|
|
||||||
|
[TODO] grab : grab a published revision
|
||||||
|
|
||||||
|
|
||||||
|
* Miscellaneous Scripting Support
|
||||||
|
|
||||||
|
[NOT NEEDED] parse-package-name : parse a package name
|
||||||
|
[NOT NEEDED] valid-package-name : test a package name for validity
|
||||||
|
|
||||||
|
|
||||||
263
dvc/docs/HACKING
Normal file
263
dvc/docs/HACKING
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
-*- mode: text -*-
|
||||||
|
|
||||||
|
Developers
|
||||||
|
==========
|
||||||
|
|
||||||
|
DVC will be merged to GNU Emacs(we hope).
|
||||||
|
So the developers should be able to sign to FSF about
|
||||||
|
copyright assignment. In other words, we can accept
|
||||||
|
only patches whose author agrees to sign to FSF.
|
||||||
|
CONTRIBUTORS file is for tracking the contributors
|
||||||
|
and their copyright assignments.
|
||||||
|
|
||||||
|
CONTRIBUTORS file is maintained by Michael Olson.
|
||||||
|
|
||||||
|
GNU Emacs, XEmacs and its version
|
||||||
|
=================================
|
||||||
|
|
||||||
|
We will support both Emacs and XEmacs. The developers are using:
|
||||||
|
|
||||||
|
Stefan Reichoer <stefan at xsteve . at>: GNU Emacs 21.3.1, GNU Emacs in CVS repository
|
||||||
|
Matthieu Moy <Matthieu.Moy at imag . fr>: GNU Emacs 21.2 (Solaris and Linux)
|
||||||
|
Masatake YAMATO <jet at gyve . org>: GNU Emacs in CVS repository
|
||||||
|
Milan Zamazal <pdm at zamazal . org>: GNU Emacs 21.3, GNU Emacs CVS
|
||||||
|
Martin Pool <mbp at sourcefrog . net>: ???
|
||||||
|
Robert Widhopf-Fenk <hack at robf . de>: XEmacs 21.4.5
|
||||||
|
Mark Triggs <mst at dishevelled . net>: GNU Emacs in CVS repository
|
||||||
|
|
||||||
|
gnuarch version
|
||||||
|
===============
|
||||||
|
|
||||||
|
gnuarch version which xtla's developers are using:
|
||||||
|
|
||||||
|
Stefan Reichoer <stefan at xsteve . at>:
|
||||||
|
|
||||||
|
Matthieu Moy <Matthieu.Moy at imag . fr>:
|
||||||
|
tla 1.2, tla 1.2.2rc2
|
||||||
|
|
||||||
|
Masatake YAMATO <jet at gyve . org>:
|
||||||
|
tla lord@emf.net--2004/dists--devo--1.0--patch-9(configs/emf.net-tla/devo.tla-1.2) from regexps.com
|
||||||
|
|
||||||
|
Milan Zamazal <pdm at zamazal . org>: tla, from Debian/testing.
|
||||||
|
|
||||||
|
Martin Pool <mbp at sourcefrog . net>:
|
||||||
|
|
||||||
|
Robert Widhopf-Fenk <hack at robf . de>:
|
||||||
|
|
||||||
|
Mark Triggs <mst at dishevelled . net>:
|
||||||
|
|
||||||
|
|
||||||
|
Key bind conventions
|
||||||
|
====================
|
||||||
|
|
||||||
|
See xtla-defs.el.
|
||||||
|
|
||||||
|
Symbol name conventions
|
||||||
|
=======================
|
||||||
|
|
||||||
|
- Face: Do not use a `-face' suffix for face names.
|
||||||
|
|
||||||
|
(About the reason, see
|
||||||
|
http://mail.gnu.org/archive/html/emacs-devel/2004-03/msg00077.html)
|
||||||
|
|
||||||
|
- Functions and variables internal to xtla should be named tla--XXX
|
||||||
|
Functions and variables used by the user should be named tla-XXX
|
||||||
|
|
||||||
|
Menu item conventions
|
||||||
|
=====================
|
||||||
|
|
||||||
|
See xtla-defs.el.
|
||||||
|
|
||||||
|
Mail conversions
|
||||||
|
================
|
||||||
|
|
||||||
|
Matthieu MOY <Matthieu.Moy at imag dot fr> wrote
|
||||||
|
in Message-ID: <1084790609.40a8975194dcd@webmail.imag.fr>
|
||||||
|
|
||||||
|
I usually send a mail for a merge request only when the change
|
||||||
|
involves a big portion of the file, to tell everybody to make sure
|
||||||
|
they merge before doing any changes.
|
||||||
|
|
||||||
|
However, when you send a mail, your suggestion of [MERGE REQUEST] flag
|
||||||
|
is good.
|
||||||
|
|
||||||
|
Coding style
|
||||||
|
============
|
||||||
|
|
||||||
|
Robert Widhopf-Fenk <hack at robf dot de> wrote
|
||||||
|
in Message-ID: <16552.35294.211101.658893@gargle.gargle.HOWL>
|
||||||
|
|
||||||
|
I really would like to see no lines longer than 80 chars in xtla.el.
|
||||||
|
|
||||||
|
Please, strip trailing whitespaces from your source files.
|
||||||
|
|
||||||
|
;; remove trailing whitespaces when saving.
|
||||||
|
(add-hook 'write-file-hooks 'delete-trailing-whitespace)
|
||||||
|
|
||||||
|
in your ~/.emacs.el can help.
|
||||||
|
|
||||||
|
Also, don't include any tabs in your source code. You should use
|
||||||
|
|
||||||
|
(setq indent-tabs-mode nil)
|
||||||
|
|
||||||
|
If you do not want to enable it in general, use something like the following
|
||||||
|
in your ~/.emacs:
|
||||||
|
|
||||||
|
(defun rf-dvc-find-file-hook ()
|
||||||
|
(when (and (buffer-file-name)
|
||||||
|
(string-match "xtla\\|dvc" (buffer-file-name)))
|
||||||
|
(message "Enabled Xtla/DVC settings for buffer %s" (buffer-name))
|
||||||
|
(make-local-hook 'write-file-hooks)
|
||||||
|
(add-hook 'write-file-hooks 'delete-trailing-whitespace nil t)
|
||||||
|
(setq indent-tabs-mode nil)))
|
||||||
|
|
||||||
|
(add-hook 'find-file-hooks 'rf-dvc-find-file-hook)
|
||||||
|
|
||||||
|
Non-trivial macros should include the form:
|
||||||
|
(declare (indent INDENT-SPEC) (debug DEBUG-SPEC))
|
||||||
|
The INDENT-SPEC tells Emacs' indentation commands how to indent the form,
|
||||||
|
whereas DEBUG-SPEC tells Edebug how to instrument the form for debugging.
|
||||||
|
See: (info "(elisp) Indenting Macros") and
|
||||||
|
(info "(elisp) Edebug and Macros") for more info.
|
||||||
|
|
||||||
|
Indentation is not (completely) arbitrary. There are three steps,
|
||||||
|
the first of which need be done only once per editing session.
|
||||||
|
|
||||||
|
- Make sure you evaluate *all* `defmacro' forms so that Emacs knows
|
||||||
|
about each form's indentation spec (if any).
|
||||||
|
|
||||||
|
- Use C-M-q at top-level open-paren to canonicalize indentation.
|
||||||
|
|
||||||
|
- Apply stylistic exceptions (manual override). Common cases:
|
||||||
|
- `flet', `labels', `macrolet' -- Emacs does a poor job here, indenting
|
||||||
|
too much, so overriding it is almost a requirement (many examples);
|
||||||
|
- deliberate flush-left (to column 0) so that C-M-x "continues to work"
|
||||||
|
on an inner form (eg: dvc-capturing-lambda);
|
||||||
|
- end-of-line ";;"-comment alignment (eg: defstruct dvc-fileinfo-file).
|
||||||
|
|
||||||
|
|
||||||
|
Process management
|
||||||
|
==================
|
||||||
|
|
||||||
|
The function dvc--run-arch now creates two buffer each time it is
|
||||||
|
called: a process buffer, and an error buffer. If the process is ran
|
||||||
|
synchronously, then the buffers are scheduled for deletion. If not,
|
||||||
|
the scheduling for deletion occurs in the process sentinel.
|
||||||
|
|
||||||
|
This means you will need to clone the buffer if you need to run arch
|
||||||
|
again while parsing the output buffers. (This was already necessary
|
||||||
|
with the old mechanism)
|
||||||
|
|
||||||
|
The variables tla--last-process-buffer and tla--last-error-buffer are
|
||||||
|
set each time a new process or error buffer is created. The value is
|
||||||
|
therefore meaningfull only until a new process is started. Avoid using
|
||||||
|
them when you're not sure the piece of code you're writting will not
|
||||||
|
one day be made asynchronous: This become meaningless in a process
|
||||||
|
sentinel.
|
||||||
|
|
||||||
|
I (Mark) have thrown in my two cents on the process management
|
||||||
|
stuff. I've added two functions: one for running tla synchronously
|
||||||
|
(tla--run-tla-sync), and one for running it asynchronously
|
||||||
|
(tla--run-tla-async). Their syntax is pretty much identical, which is as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
(tla--run-tla-(a)sync '("tla-arg1" "tla-arg2" .. "tla-argn")
|
||||||
|
:finished (lambda (output-buffer error-buffer status)
|
||||||
|
..)
|
||||||
|
:killed (lambda (output-buffer error-buffer status)
|
||||||
|
..)
|
||||||
|
:error (lambda (output-buffer error-buffer status)
|
||||||
|
..)
|
||||||
|
:output-buffer some-buffer
|
||||||
|
:error-buffer some-buffer
|
||||||
|
:related-buffer some-buffer)
|
||||||
|
|
||||||
|
The keywords :FINISHED, :KILLED and :ERROR supply callbacks, which are
|
||||||
|
functions that take four arguments:
|
||||||
|
|
||||||
|
* the buffer containing the process output
|
||||||
|
* the buffer containing the process error output; and
|
||||||
|
* some indicator of the processes status (which can either be a
|
||||||
|
return code or a string).
|
||||||
|
* the argument list that the command was run with (e.g. ("undo"))
|
||||||
|
|
||||||
|
The :FINISHED callback is called in the case where the program finishes
|
||||||
|
successfully. The :KILLED callback is called when the program was
|
||||||
|
unexpectedly killed while running, and the :ERROR callback is called
|
||||||
|
when the program fails for some reason.
|
||||||
|
|
||||||
|
If :OUTPUT-BUFFER or :ERROR-BUFFER are supplied, the process will write
|
||||||
|
its standard/error output to these instead of generating buffers
|
||||||
|
automatically. Where these keywords are not given, new buffers will be
|
||||||
|
created, filled with program output and passed to the callback
|
||||||
|
functions.
|
||||||
|
|
||||||
|
Although it shouldn't ordinarily matter, it is worth noting that if
|
||||||
|
:OUTPUT-BUFFER or :ERROR-BUFFER are not given, the temporary buffers
|
||||||
|
that are created will be killed immediately after the callback
|
||||||
|
exits. This just means that if you plan on keeping those buffers around
|
||||||
|
for longer than just the scope of the callback, you'll need to clone
|
||||||
|
them first.
|
||||||
|
|
||||||
|
As a quick example, here is how you could asynchronously run a "tla
|
||||||
|
abrowse -s" and send the output to a printer (I'm not sure why you would
|
||||||
|
want to do this, but that's the great thing about contrived examples!):
|
||||||
|
|
||||||
|
(defun print-archive (archive &optional postscript-output-file)
|
||||||
|
"Run an abrowse on ARCHIVE and send the result to the printer."
|
||||||
|
(tla--run-tla-async (list "abrowse" "-s" "-A" archive)
|
||||||
|
:finished `(lambda (output-buffer error-buffer
|
||||||
|
status arguments)
|
||||||
|
(with-current-buffer output-buffer
|
||||||
|
(ps-print-buffer ,postscript-output-file)
|
||||||
|
(message "Printed abrowse to %s."
|
||||||
|
(or ,postscript-output-file
|
||||||
|
"printer"))))))
|
||||||
|
|
||||||
|
The only really noteworthy thing is the use of the backquoted
|
||||||
|
lambda. This is kind of like a poor man's lexical scoping, but it's a
|
||||||
|
useful way of capturing variables from the containing environment.
|
||||||
|
|
||||||
|
Name manipulator
|
||||||
|
================
|
||||||
|
See xtla-core.el.
|
||||||
|
|
||||||
|
|
||||||
|
Release & distribution process
|
||||||
|
==============================
|
||||||
|
|
||||||
|
* Development version
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The prefered way to get a development version is to use either
|
||||||
|
Bazaar or Git to clone the latest repo.
|
||||||
|
|
||||||
|
Programs for maintainers:
|
||||||
|
(required) autoconf, tar, gzip, makeinfo
|
||||||
|
(optional) texi2dvi, etags
|
||||||
|
|
||||||
|
With the exception of gzip (which is invoked simply as "gzip"),
|
||||||
|
the invocation of each of these programs is influenced by a
|
||||||
|
makefile variable of the same name, but all upcased. For example,
|
||||||
|
you can choose a different tar for "make dist" using the command:
|
||||||
|
make dist TAR=/path/to/my/tar
|
||||||
|
The default values for these variables is simply the program name.
|
||||||
|
|
||||||
|
Historical note: We used to AC_PATH_PROG them in configure.ac, but
|
||||||
|
that did not benefit the end user (./configure && make all install),
|
||||||
|
so we stopped mid-2008.
|
||||||
|
|
||||||
|
* Official releases
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Official releases will be made by the release manager, after
|
||||||
|
discussion on the mailing list.
|
||||||
|
|
||||||
|
The release manager will modify configure.ac to set the second
|
||||||
|
arg of AC_INIT to 1.1, for example, and then type the commands
|
||||||
|
|
||||||
|
autoreconf
|
||||||
|
./configure (or ./config.status --recheck)
|
||||||
|
make
|
||||||
|
make dist
|
||||||
|
|
||||||
285
dvc/docs/TODO
Normal file
285
dvc/docs/TODO
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
-*- mode: text -*-
|
||||||
|
|
||||||
|
TODO/Wish list for xtla.el
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Mostly DONE section:
|
||||||
|
====================
|
||||||
|
|
||||||
|
* Some like file-diff-rev from the aba which gives you the changes to a
|
||||||
|
file between two specified revisions using the following:
|
||||||
|
diff -u $(tla file-find file.cpp $(tla tree-version)--patch-X)
|
||||||
|
$(tla file-find file.cpp $(tla tree-version)--patch-Y)
|
||||||
|
=> This is the function tla-file-ediff-rev. There should also be a
|
||||||
|
version without ediff, just showing the diff output with
|
||||||
|
diff-mode.
|
||||||
|
|
||||||
|
* Integration with ediff, which I usually prefer to diff-mode.
|
||||||
|
- This is done for M-x tla-ediff-buffer, `e' in *tla-changes*, 'd
|
||||||
|
e' in *tla-inventory*
|
||||||
|
- There is more to do from the *tla-revisions* buffer for example
|
||||||
|
(retrieve any two revisions and ediff them)
|
||||||
|
- a 3 way merge with ediff3 would be perfect. (Actually, ediff3
|
||||||
|
isn't sufficient because it shows you the differences even in the
|
||||||
|
absence of conflict.). smerge-mode, integrated in Emacs 21,
|
||||||
|
already does a very good job for this
|
||||||
|
|
||||||
|
* En entry "Branch from version" to create a symbolic tag from the
|
||||||
|
*tla-versions* buffer.
|
||||||
|
- Done for *tla-revisions*.
|
||||||
|
|
||||||
|
* Code cleaning. There are a lot of duplicates.
|
||||||
|
=> Some big code cleaning have been carried out, but such item can
|
||||||
|
never go to the "completely DONE" section ;-)
|
||||||
|
|
||||||
|
DONE section:
|
||||||
|
=============
|
||||||
|
|
||||||
|
* One line log from minibuffer to commit.
|
||||||
|
=> This should be handled in vc-arch.el?
|
||||||
|
|
||||||
|
* Add good doc strings for the functions
|
||||||
|
=> Most functions have one now.
|
||||||
|
|
||||||
|
* Recursive commands for projects using configurations.
|
||||||
|
=> implemented for tla-changes and tla-update
|
||||||
|
|
||||||
|
* Name reader should support complete location notation like:
|
||||||
|
|
||||||
|
Location: Matthieu.Moy@imag.fr--public/xtla--main--0.1
|
||||||
|
|
||||||
|
Current partial and incremental location reading is supported
|
||||||
|
like:
|
||||||
|
|
||||||
|
Archive: Matthieu.Moy@imag.fr--public
|
||||||
|
Category: xtla
|
||||||
|
Branch: main
|
||||||
|
Version: 0.1
|
||||||
|
|
||||||
|
=> The engine is implemented. Apply it to interactive functions.
|
||||||
|
|
||||||
|
* Add a texinfo file
|
||||||
|
- What should be the structure of this file?
|
||||||
|
=> Very short. Just a starting point for the users, but xtla should
|
||||||
|
be self-documented. Menus and docstrings should be sufficient
|
||||||
|
most of the time.
|
||||||
|
A demo with screenshots would be nice too. (to let people get
|
||||||
|
an idea of what xtla is in less than a minute.)
|
||||||
|
- Should we guide through the tla tutorial?
|
||||||
|
(Be carefull. I don't like people to learn a tool from the
|
||||||
|
front-end. I prefer let them understand the concepts with the
|
||||||
|
command line, and learn the front-end after. It takes a bit more
|
||||||
|
time but is much more pedagogical)
|
||||||
|
|
||||||
|
* M-x xtla should provide the buttons to jump tla-inventory,
|
||||||
|
tla-bookmarks and so on. This should be integrated with the command central?
|
||||||
|
|
||||||
|
* Optimize tla-archive-tree manipulator when it is updated.
|
||||||
|
I think using rbrowse and/or abrowse output is better than current
|
||||||
|
implementation.[Masatake] Not so much, because browsing a small
|
||||||
|
branch in a big archive would be slow (discussed on the ML)
|
||||||
|
[Matthieu]
|
||||||
|
|
||||||
|
* tla log font-lock (like ChangeLog)
|
||||||
|
|
||||||
|
* A "revert file" feature. Most of the code is already in
|
||||||
|
tla-file-ediff. (done in tla-file-revert)
|
||||||
|
|
||||||
|
* Archive mirroring.
|
||||||
|
[Matthieu Moy: I'm taking care of this]
|
||||||
|
|
||||||
|
* Prompt for saving buffer visiting files of the current tree for most
|
||||||
|
operations: commit, update, changes, ... (Which other ones ?)
|
||||||
|
|
||||||
|
* M-x xtla-update. Possibility to update from the bookmarks buffer.
|
||||||
|
|
||||||
|
* Merge xtla-fully-qualified-revision and xtla-name-construct.
|
||||||
|
[Masatake YAMATO]
|
||||||
|
|
||||||
|
* M-x tla-missing RET should be merged with tla-bookmarks-missing
|
||||||
|
|
||||||
|
* Bridge between smerge-mode and xtla.el.
|
||||||
|
[Masatake YAMATO
|
||||||
|
(Should completely replace my code -- Matthieu)
|
||||||
|
(No, I shouldn't. Each function has each necessity.)
|
||||||
|
|
||||||
|
* When there are no changes anymore, the `g' command in the
|
||||||
|
*tla-changes* buffer just prints a message in the echo area, and
|
||||||
|
doesn't update the buffer, which can be confusing; it would be
|
||||||
|
better to erase the buffer and perhaps insert the "No changes"
|
||||||
|
description to make it clear what's going on (so work slightly
|
||||||
|
differently than `M-x tla-changes' invoked from another buffer -- in
|
||||||
|
that case, just a message is good).
|
||||||
|
=> tla-changes now clears the *tla-changes* buffer before doing
|
||||||
|
anything else.
|
||||||
|
|
||||||
|
* More diff-mode commands should be bound in the *tla-changes* buffer,
|
||||||
|
e.g., `P', and `N'; maybe it can just inherit from the diff-mode
|
||||||
|
keymap?
|
||||||
|
=> We are already inheriting from diff-mode. However, the way the keymap
|
||||||
|
is managed in diff-mode is really strange, and you're right,
|
||||||
|
we're not inheriting `N' and `P'. But still, diff-file-next is
|
||||||
|
available with M-N for example. Strange ...
|
||||||
|
=> initializing tla-changes-mode-map from diff-mode-shared-map
|
||||||
|
did it.
|
||||||
|
|
||||||
|
* It would be nice if the `g' command in a *tla-changes* buffer would
|
||||||
|
would retain any existing marks (I often want to check the changes
|
||||||
|
just one last time before committing).
|
||||||
|
|
||||||
|
* Perhaps when `tla-make-log-function' is non-nil, `tla-make-log' should
|
||||||
|
check the return value, and if nil, make a normal log file. That way
|
||||||
|
the user's special version can only worry about special cases.
|
||||||
|
|
||||||
|
=> I (Matthieu MOY) did something a bit different.
|
||||||
|
tla-make-log-function now defaults to
|
||||||
|
tla-default-make-log-function, which calls "tla make-log". The
|
||||||
|
user can just write a wrapper around this function.
|
||||||
|
|
||||||
|
* Wrapper for tla import.
|
||||||
|
|
||||||
|
- From the working directory, M-x tla-start-project RET should run
|
||||||
|
. tla init-tree
|
||||||
|
. tla import --setup
|
||||||
|
. call tla-edit-log
|
||||||
|
[Mark Triggs: This is pretty much what I have done, except I have
|
||||||
|
used tla-inventory instead of tla-edit-log.]
|
||||||
|
|
||||||
|
- From the archive browser, there should be an option to offer the
|
||||||
|
user to create a new project, as you can already create new empty
|
||||||
|
categories, branches, and versions.
|
||||||
|
|
||||||
|
* There could be a menu to navigate buffers based on the variable
|
||||||
|
tla--buffers-tree. This could also be included in tla-browse.el
|
||||||
|
using tree-widget.
|
||||||
|
=> pulldown/popup menu is implemented. Maybe enough -- Masatake.
|
||||||
|
|
||||||
|
* undo modifications in local copy at tla-inventory buffer
|
||||||
|
Matthieu gave hit in the mailing list:
|
||||||
|
|
||||||
|
What I meant by "undo" was
|
||||||
|
|
||||||
|
cp `tla file-find foo.c` .
|
||||||
|
|
||||||
|
* Run missing, replay and star-merge against specified version.
|
||||||
|
|
||||||
|
* Eliminate all occurence of tla--run-arch.
|
||||||
|
|
||||||
|
* If not in a project tree, `tla-changes' should prompt for the tree
|
||||||
|
name similar to tla-inventory -- often I'd rather start out with
|
||||||
|
`changes' and skip `inventory' entirely.
|
||||||
|
|
||||||
|
* Modeline : I'd like to see something like the "compiling" item in
|
||||||
|
the modeline while compiling with M-x compile RET.
|
||||||
|
|
||||||
|
* An interface to tla help, giving the list of commands, and running
|
||||||
|
"tla <command> -H" on demand.
|
||||||
|
|
||||||
|
* Create archives with --listing and/or --signed
|
||||||
|
|
||||||
|
* make tla-inventory-toggle-* customizable
|
||||||
|
M-x customize-variable RET tla-inventory-display-* RET
|
||||||
|
|
||||||
|
* After committing from a *tla-changes* buffer, it would be good to
|
||||||
|
automatically update the buffer, so there's a clear indication
|
||||||
|
what's changed.
|
||||||
|
|
||||||
|
* Better management of buffers. xtla buffers should have a unique name
|
||||||
|
based on the directory or archive to which it refers. It should be
|
||||||
|
possible to run several tla-{change|inventory|revisions|...} in
|
||||||
|
different trees. We should keep a list of xtla related buffer to be
|
||||||
|
able to delete them afterwards. (The current regexp-based algorithm
|
||||||
|
is not satisfying in my opinion)
|
||||||
|
=> The function is there : tla--get-buffer-create, and used for
|
||||||
|
tla-changes and tla-inventory. It's used by default by
|
||||||
|
tla--show-last-process-buffer and tla--show-error-buffer.
|
||||||
|
|
||||||
|
* Tree widget based archive browser. [see tla-browse.el. -- Masatake]
|
||||||
|
- Libraries should be handled here.
|
||||||
|
|
||||||
|
* C-u C-c C-m generates buggy summary line patch numbers.
|
||||||
|
|
||||||
|
* Allow cherry picking by marking a set of revisions in a *tla-revisions*
|
||||||
|
buffer and the run replay with all of the marked revisions as argument. I
|
||||||
|
(Robert) just had a case where I would need this, i.e. I have a hacking
|
||||||
|
branch with related revisions (but they are interleaved by others) which I
|
||||||
|
want to combine into a single change set for the main branch. "tla delta"
|
||||||
|
does not help here.
|
||||||
|
|
||||||
|
* tla-browse should be stronger against errors.
|
||||||
|
Currently, when an error occur, a tree becomes broken.
|
||||||
|
[Masatake]
|
||||||
|
|
||||||
|
* Should we do something for revision libraries ?
|
||||||
|
|
||||||
|
Yes [Masatake].
|
||||||
|
- Revisions should be marked in *tla-revisions*(done)
|
||||||
|
- Adding(done)
|
||||||
|
- tla-library-tree is needed(done).
|
||||||
|
|
||||||
|
* Interface to store a changeset to a file(tla changeset?) in revisions buffer.
|
||||||
|
[?> ?=] or [?d ?>]
|
||||||
|
|
||||||
|
* Interface to apply a changeset directory to a local copy in inventory buffer.
|
||||||
|
[?M ?=] or [?< ?=] but ?< is serverd for mirror.
|
||||||
|
|
||||||
|
* M-x tla-review-last-patch RET. See my recent post "Improving
|
||||||
|
tla-changes and related commands." on xtla-el-dev@gna.org.
|
||||||
|
(Matthieu)
|
||||||
|
=> finally, I've called it tla-changes-last-revision
|
||||||
|
|
||||||
|
* I (Matthieu) have added a variable tla-buffer-refresh-function and
|
||||||
|
a function tla-generic-refresh calling it. This could be used in
|
||||||
|
all xtla modes.
|
||||||
|
|
||||||
|
* Define xtla own faces. These faces should be
|
||||||
|
derived from font-lock's standard face set.
|
||||||
|
|
||||||
|
* Don't use a string to refer xtla's buffer. Instead use symbol.
|
||||||
|
e.g.
|
||||||
|
Don't use: (get-buffer-create "*tla-missing*")
|
||||||
|
Use: (cdr (assoc 'missing tla--buffer-type-alist))
|
||||||
|
|
||||||
|
* Handle file renaming in changes buffer. Here is the example output:
|
||||||
|
|
||||||
|
[jet@localhost symresolver]$ tla changes
|
||||||
|
* looking for jet@gyve.org--inspector/symresolver--prototype--0.0--patch-9 to compare with
|
||||||
|
* comparing to jet@gyve.org--inspector/symresolver--prototype--0.0--patch-9
|
||||||
|
M Makefile.am
|
||||||
|
=> .arch-ids/symresolver.c.id .arch-ids/lib.c.id
|
||||||
|
=> symresolver.c lib.c
|
||||||
|
|
||||||
|
`=>' should be parsed.
|
||||||
|
|
||||||
|
* Interface to add entries to .arch-inventory
|
||||||
|
|
||||||
|
* Switching "default tree version " in inventory buffer
|
||||||
|
|
||||||
|
* Don't do (concat file "/"). Do (file-name-as-directory file) instead.
|
||||||
|
|
||||||
|
** Check the faces on non X, terminal environment
|
||||||
|
=> [Matthieu] I use xtla most of the time in text mode, but I have
|
||||||
|
a rather much customized Emacs. I've just checked with emacs -q,
|
||||||
|
both in dark and light background.
|
||||||
|
|
||||||
|
* We should definitely switch to ewoc.el to manage lists. This is what
|
||||||
|
pcl-cvs, dired and so are using. We would get a lot of feature (in
|
||||||
|
particular, mouse reactivity) almost for free. The code for marking
|
||||||
|
revisions could also be really improved by this. I already did this
|
||||||
|
for the *tla-bookmarks* buffer (Matthieu MOY) and for
|
||||||
|
*tla-bookmarks-missing* and *tla-revisions*, it's fairly easy to
|
||||||
|
use.
|
||||||
|
|
||||||
|
* Name read engine
|
||||||
|
-- Integrate with other parts of xtla
|
||||||
|
--- Get completion from bookmarks
|
||||||
|
|
||||||
|
* Run lint under a dedicated mode, so the user can jump to the position
|
||||||
|
where the lint reports the problem is.
|
||||||
|
=> There is now a tla tree-lint mode. It's almost finished by now,
|
||||||
|
but still not well tested and incomplete (no context menu[done], ...)
|
||||||
|
|
||||||
|
** (Again) Check `cd' usage. Its changes the default-directory of current buffer.
|
||||||
|
Sometimes it will cause bugs. (let ((default-directory ...))) may be
|
||||||
|
enough in many cases. [Matthieu] Should be OK now.
|
||||||
|
|
||||||
348
dvc/docs/xmtn-readme.txt
Normal file
348
dvc/docs/xmtn-readme.txt
Normal file
@ -0,0 +1,348 @@
|
|||||||
|
* General
|
||||||
|
|
||||||
|
xmtn is an Emacs Lisp package that provides a DVC backend for monotone
|
||||||
|
(the distributed version control system) as well as general facilities
|
||||||
|
for interacting with monotone from Emacs Lisp.
|
||||||
|
|
||||||
|
For more information about monotone, see http://monotone.ca/ .
|
||||||
|
|
||||||
|
xmtn's facilities for interacting with monotone are meant to be
|
||||||
|
reusable by code that is unrelated to DVC, even though they currently
|
||||||
|
depend on the subprocess handling utilities that DVC provides.
|
||||||
|
|
||||||
|
xmtn should work on GNU Emacs 21 or newer. Work on supporting XEmacs
|
||||||
|
has started but is unfinished; patches welcome. On XEmacs, xmtn
|
||||||
|
requires MULE.
|
||||||
|
|
||||||
|
|
||||||
|
* Download and installation
|
||||||
|
|
||||||
|
Follow the download and installation instructions for DVC. xmtn is
|
||||||
|
part of DVC.
|
||||||
|
|
||||||
|
In addition, the variable `xmtn-executable' needs to point to the
|
||||||
|
monotone executable. It defaults to "mtn", which will be sufficient
|
||||||
|
if mtn is in your PATH. Depending on your configuration, the PATH
|
||||||
|
that Emacs sees can differ from the PATH that you see in your shell.
|
||||||
|
Try M-x getenv RET PATH RET if in doubt.
|
||||||
|
|
||||||
|
You may wish to set `dvc-debug' to nil; DVC tends to be a bit chatty.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Brief tutorial
|
||||||
|
|
||||||
|
(DVC's tutorial does not apply to xmtn, it seems to be specific to
|
||||||
|
tla.)
|
||||||
|
|
||||||
|
Start Emacs. Visit a file that is under version control by monotone.
|
||||||
|
Modify the file. While in the file's buffer, press C-x V d to see the
|
||||||
|
diff for this file.
|
||||||
|
|
||||||
|
Pressing C-x V = will bring up the tree diff buffer. (What monotone
|
||||||
|
calls a "workspace" is called a "tree" in DVC.) This buffer shows the
|
||||||
|
list of all modified files in the tree as well as the diffs for those
|
||||||
|
files. Use j to jump back and forth between the name of a file in the
|
||||||
|
list and the diffs for that file. Use RET with point inside a diff
|
||||||
|
hunk to go to the corresponding file at the corresponding position.
|
||||||
|
|
||||||
|
Like many other DVC buffers, the contents of the tree diff buffer can
|
||||||
|
be refreshed using g.
|
||||||
|
|
||||||
|
In the tree diff buffer, files to commit can be marked and unmarked
|
||||||
|
with m and u. Pressing c lets you commit the selected files; it will
|
||||||
|
bring up a log edit buffer where you can enter a commit message.
|
||||||
|
|
||||||
|
In the log edit buffer, the commit can be executed by pressing C-c
|
||||||
|
C-c. To abort the commit, simply don't press C-c C-c -- just switch
|
||||||
|
away from the buffer or kill it. The log edit buffer edits the file
|
||||||
|
_MTN/log.
|
||||||
|
|
||||||
|
To bring up the log edit buffer without going through the tree diff
|
||||||
|
buffer, use C-x V c.
|
||||||
|
|
||||||
|
To view the revision history, use C-x V l or C-x V L. The former
|
||||||
|
shows the full commit message for each revision, while the latter only
|
||||||
|
shows the first line. The resulting buffer is a so-called revlist
|
||||||
|
buffer. In revlist buffers, use cursor up/down to move between
|
||||||
|
revisions, RET to show details on the revision at point, = to show its
|
||||||
|
diff from its parent. Revisions can be marked and unmarked with m and
|
||||||
|
u.
|
||||||
|
|
||||||
|
M-x xmtn-view-heads-revlist shows a revlist buffer with just the heads
|
||||||
|
of the default branch of your tree. To update your tree to one of the
|
||||||
|
revisions in a revlist buffer, move point to it and use M-x
|
||||||
|
xmtn-revlist-update. To merge two head revisions, mark them and use
|
||||||
|
M-x xmtn-revlist-explicit-merge.
|
||||||
|
|
||||||
|
M-x xmtn-view-revlist-for-selector prompts for a monotone selector and
|
||||||
|
shows a revlist buffer with all matching revisions.
|
||||||
|
|
||||||
|
C-x V u performs mtn update. C-x V m shows a revlist buffer with the
|
||||||
|
revisions that mtn update would apply to your tree.
|
||||||
|
|
||||||
|
C-x V f a performs mtn add. M-x dvc-ignore-files and M-x
|
||||||
|
dvc-ignore-file-extensions can be used to add entries to .mt-ignore.
|
||||||
|
These commands can also be used from dired buffers.
|
||||||
|
|
||||||
|
C-x V s shows the status buffer. This currently shows modified,
|
||||||
|
renamed and unknown files. It's supposed to allow operations like
|
||||||
|
diff, commit, revert etc. (like pcl-cvs), but that's not implemented
|
||||||
|
yet. C-x V = is preferable at the moment, although it doesn't show
|
||||||
|
unknown files.
|
||||||
|
|
||||||
|
C-x V a can be used to add a ChangeLog entry to _MTN/log.
|
||||||
|
|
||||||
|
There are other useful operations, but these should be enough to get
|
||||||
|
started.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Known limitations
|
||||||
|
|
||||||
|
xmtn currently just bails out when it needs to operate on a head of a
|
||||||
|
branch and notices that the branch is unmerged. It should prompt the
|
||||||
|
user to select a head instead. To update to a head of an unmerged
|
||||||
|
revision graph, use M-x xmtn-view-heads-revlist and M-x
|
||||||
|
xmtn-revlist-update.
|
||||||
|
|
||||||
|
`xmtn-dvc-diff' breaks when called in a workspace that has no base
|
||||||
|
revision (e.g. a newly created project). mtn diff works in this case.
|
||||||
|
|
||||||
|
Building a revlist buffer is currently a bit slow (or maybe very slow
|
||||||
|
for long histories?), and the revlist display is not very pretty.
|
||||||
|
|
||||||
|
For `dvc-ignore-files' and `dvc-ignore-file-extensions', xmtn operates
|
||||||
|
on the file .mtn-ignore. This may fail to have the intended effect if
|
||||||
|
the user has customized monotone's ignore_file hook in a way that
|
||||||
|
changes the meaning of this file.
|
||||||
|
|
||||||
|
The ability to perform operations such as diff and commit from the
|
||||||
|
status buffer is missing. For now, use the tree diff buffer for this.
|
||||||
|
|
||||||
|
xmtn doesn't define any key bindings for monotone-specific commands.
|
||||||
|
Only the backend-independent key bindings defined by DVC are available.
|
||||||
|
|
||||||
|
For now, I don't see the point of checking automate interface_version:
|
||||||
|
Many of xmtn's operations rely on non-automate commands, so a
|
||||||
|
compatible automate interface_version doesn't guarantee actual
|
||||||
|
compatibility; we have to check for a compatible command version
|
||||||
|
anyway, and that check subsumes the check of interface_version. And
|
||||||
|
declaring incompatibility whenever we see an automate
|
||||||
|
interface_version that is too high for us yields false positives too
|
||||||
|
easily to be useful.
|
||||||
|
|
||||||
|
xmtn currently uses mtn automate get_revision in places where it
|
||||||
|
should be using mtn automate inventory. This is because I was trying
|
||||||
|
to avoid having to implement a parser for mtn automate inventory, and
|
||||||
|
get_revision seemed to return almost the same information. However,
|
||||||
|
get_revision fails if there are missing files -- I discovered this too
|
||||||
|
late. This is part of the reason why many operations first check
|
||||||
|
whether files are missing from the tree, and abort if this is the
|
||||||
|
case.
|
||||||
|
|
||||||
|
DVC REVISION-IDs that refer to the "Nth ancestor" such as `(xmtn
|
||||||
|
(last-revision ...))' or `(xmtn (previous-revision ...))' are
|
||||||
|
ill-defined for non-linear history in monotone. xmtn currently
|
||||||
|
throws an error when it encounters a node that has multiple parents
|
||||||
|
while trying to resolve such IDs.
|
||||||
|
|
||||||
|
The support for international character sets/coding systems is partly
|
||||||
|
based on guesswork but works for my tests.
|
||||||
|
|
||||||
|
xmtn does not entirely follow DVC's philosophy: It only implements
|
||||||
|
DVC's protocols, but doesn't provide its own UI that parallels DVC's.
|
||||||
|
Hence, much of xmtn's functionality is only available through DVC.
|
||||||
|
This is because xmtn currently provides only few features beyond what
|
||||||
|
DVC requires, and implementing a redundant UI was not a high priority
|
||||||
|
for me.
|
||||||
|
|
||||||
|
Currently, the following parts of the DVC protocol are not implemented
|
||||||
|
by xmtn:
|
||||||
|
|
||||||
|
* xmtn-dvc-send-commit-notification, xmtn-dvc-submit-patch: These
|
||||||
|
commands send an e-mail. Probably useful to people who use a
|
||||||
|
certain work flow, but not to me right now. These will have to
|
||||||
|
wait until someone comes along who actually has a use for them.
|
||||||
|
|
||||||
|
* xmtn-insinuate-gnus: Need to find out what, precisely, this is
|
||||||
|
supposed to do. I don't use Gnus myself.
|
||||||
|
|
||||||
|
* xmtn-dvc-save-diff: xhg seems to be the only backend that
|
||||||
|
implements this. It really seems this could be moved into the
|
||||||
|
common part of DVC anyway. Won't bother implementing it right
|
||||||
|
now.
|
||||||
|
|
||||||
|
* xmtn-dvc-pull: Should be easy. But syncing via command line is
|
||||||
|
acceptable to me at the moment. The docstring looks like this
|
||||||
|
needs to do both mtn pull and mtn update -- but I doubt that this
|
||||||
|
is a good idea for monotone.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Internals
|
||||||
|
|
||||||
|
This section describes some of the internals of xmtn and some of the
|
||||||
|
design decisions behind it.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** Conventions
|
||||||
|
|
||||||
|
monotone.el (from montone's contrib/ directory) already uses the
|
||||||
|
prefix mtn-. monotone- is already taken by Wim Oudshoorn's e-monotone
|
||||||
|
package. So this package is named xmtn. xhg, xcg, xdarcs seem to be
|
||||||
|
in similar situations.
|
||||||
|
|
||||||
|
The prefix xmtn- is for definitions exported for the user or for DVC,
|
||||||
|
the prefix xmtn-- is for internal definitions. Similarly,
|
||||||
|
xmtn-automate uses xmtn-automate- and xmtn-automate--, etc.
|
||||||
|
|
||||||
|
It seems like "monotone" is usually written in small letters. The
|
||||||
|
manual capitalizes it at the beginnings of sentences, but e.g. the web
|
||||||
|
page or mtn --version never capitalize it at all -- then again, the
|
||||||
|
web page doesn't capitalize much at all. In xmtn, we capitalize it
|
||||||
|
like a noun. xmtn and mtn (as a command name) are always in lower
|
||||||
|
case.
|
||||||
|
|
||||||
|
Monotone uses the term "workspace", DVC uses the term "tree". In our
|
||||||
|
UI, we use "tree" for consistency with DVC. The idea behind this
|
||||||
|
decision was that consistency with DVC (and other aspects of Emacs'
|
||||||
|
UI) is more important than consistency with other monotone front-ends.
|
||||||
|
But I'm not so sure about this any more; the term "workspace" is so
|
||||||
|
much more clear... But I guess it makes little sense for version
|
||||||
|
control systems that don't distinguish between workspaces and
|
||||||
|
branches.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** Architecture
|
||||||
|
|
||||||
|
This section is unlikely to stay fully up-to-date as xmtn's
|
||||||
|
implementation evolves, but should remain useful as a general
|
||||||
|
introduction to xmtn's architecture.
|
||||||
|
|
||||||
|
xmtn consists of several modules. One way of understanding their
|
||||||
|
relationship is to group them into layers.
|
||||||
|
|
||||||
|
|
||||||
|
User-visible functionality: xmtn-dvc.el, xmtn-revlist.el
|
||||||
|
|
||||||
|
Domain-specific utilities: xmtn-ids.el
|
||||||
|
|
||||||
|
High-level interface to mtn: xmtn-automate.el, xmtn-basic-io.el
|
||||||
|
|
||||||
|
Low-level interface to mtn: xmtn-run.el
|
||||||
|
|
||||||
|
Monotone-related definitions: xmtn-base.el
|
||||||
|
|
||||||
|
Support libraries: xmtn-compat.el
|
||||||
|
|
||||||
|
Language extensions: xmtn-match.el
|
||||||
|
|
||||||
|
|
||||||
|
Each module should only depend on modules at layers beneath it. (At
|
||||||
|
least, that's the idea; the code might not satisfy this perfectly.)
|
||||||
|
|
||||||
|
xmtn-dvc.el implements the protocols required by DVC, except for
|
||||||
|
functionality related to interactive display and manipulation of
|
||||||
|
revision history, which is in xmtn-revlist.el.
|
||||||
|
|
||||||
|
xmtn-ids.el contains code to resolve symbolic revision ids in a
|
||||||
|
certain syntax to explicit hash ids. DVC needs this, but xmtn
|
||||||
|
provides some useful extensions. For example, a symbolic id `(xmtn
|
||||||
|
(previous-revision (previous-revision (revision
|
||||||
|
"75da2575dfc565f6976ed5dd1997bc7afc0ce908"))))' resolves to `(revision
|
||||||
|
"721c3ab9b5099d3ed7d8b807e08382f3c95badec")'; i.e. the parent of the
|
||||||
|
parent of revision 75da2575dfc565f6976ed5dd1997bc7afc0ce908 is
|
||||||
|
revision 721c3ab9b5099d3ed7d8b807e08382f3c95badec.
|
||||||
|
|
||||||
|
xmtn-automate.el and xmtn-basic-io.el implement an interface to
|
||||||
|
monotone's automate functionality and a parser for monotone's basic_io
|
||||||
|
output format. These modules aren't specific to DVC and should be
|
||||||
|
reusable by other Emacs Lisp code that wants to use monotone.
|
||||||
|
|
||||||
|
xmtn-run.el provides functions for running individual (non-automate)
|
||||||
|
monotone commands and checking the version of the monotone executable.
|
||||||
|
The functionality of xmtn-run.el isn't specific to DVC, either, but
|
||||||
|
its current implementation depends on DVC's process handling
|
||||||
|
functions, so it's fairly heavyweight.
|
||||||
|
|
||||||
|
xmtn-base.el was supposed to contain definitions related to monotone
|
||||||
|
that are common to xmtn-run.el, xmtn-automate.el and/or
|
||||||
|
xmtn-basic-io.el, to avoid having to have dependencies on xmtn-run.el
|
||||||
|
in xmtn-automate.el or xmtn-basic-io.el. This refactoring is not
|
||||||
|
complete (yet?), though.
|
||||||
|
|
||||||
|
xmtn-compat.el contains compatibility wrappers for some Emacs Lisp
|
||||||
|
functions that are not fully portable across Emacs versions.
|
||||||
|
|
||||||
|
xmtn-match.el provides a pattern-matching facility for Emacs Lisp that
|
||||||
|
is very useful for destructuring DVC REVISION-IDs and processing
|
||||||
|
basic_io stanzas the way xmtn-basic-io.el parses them. But it is
|
||||||
|
rather generic and could also be useful for code entirely unrelated to
|
||||||
|
montone and DVC.
|
||||||
|
|
||||||
|
There are a few automated regression tests in
|
||||||
|
lisp/tests/xmtn-tests.el.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** Implementation details
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*** Futures
|
||||||
|
|
||||||
|
For some subprocess interactions, xmtn uses a concept called
|
||||||
|
"futures". In this context, a future is a concurrent computation
|
||||||
|
represented by a zero-argument anonymous function that, when called,
|
||||||
|
blocks until the concurrent computation finishes, and returns its
|
||||||
|
result.
|
||||||
|
|
||||||
|
For example, the function `xmtn--unknown-files-future' returns a
|
||||||
|
future for the list of unknown files instead of returning the list of
|
||||||
|
unknown files directly. This allows Emacs Lisp code to ask monotone
|
||||||
|
for the list of unknown files, but then do something different while
|
||||||
|
monotone computes the list. Only when Emacs actually needs the list
|
||||||
|
in order to continue, it calls the future and waits for monotone to
|
||||||
|
finish (if it hasn't finished already).
|
||||||
|
|
||||||
|
If a future is called a second time or more often, it will just keep
|
||||||
|
returning the same result. (What a future does if the concurrent
|
||||||
|
computation terminates unsuccessfully isn't currently very
|
||||||
|
well-defined. It should probably signal an error when it is called.)
|
||||||
|
|
||||||
|
Spawning computations in parallel has yielded tremendous speed-ups for
|
||||||
|
certain parts of xmtn (at least in some versions -- I haven't profiled
|
||||||
|
it recently). Futures make this type of parallelism simple to deal
|
||||||
|
with.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*** Notes on variable names and dynamic bindings
|
||||||
|
|
||||||
|
In higher-order functions (functions that take functions as
|
||||||
|
arguments), xmtn attempts to avoid introducing spurious dynamic
|
||||||
|
bindings because they might shadow bindings that the caller wants to
|
||||||
|
provide to the argument function. xmtn uses `lexical-let' for this
|
||||||
|
purpose. Unfortunately, function arguments are always dynamic
|
||||||
|
bindings in Emacs Lisp. That's why the argument names of higher-order
|
||||||
|
functions in xmtn always have the prefix xmtn-- and are immediately
|
||||||
|
re-bound to (pseudo-)lexical variables using `lexical-let'. This
|
||||||
|
makes it unlikely that the arguments will collide with the caller's
|
||||||
|
variables.
|
||||||
|
|
||||||
|
The alternative would be to always use `lexical-let' for bindings that
|
||||||
|
should be passed through higher-order functions to closures. This is
|
||||||
|
the most reliable approach, and xmtn also follows it. But errors
|
||||||
|
resulting from accidental violations of this convention can be very
|
||||||
|
hard to debug, so the above is still useful for additional safety.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LocalWords: DVC minibuffer UI montone xmtn revlist unmerged docstring backend
|
||||||
|
LocalWords: backends destructuring mtn
|
||||||
24
dvc/dvc-load-install.el.in
Normal file
24
dvc/dvc-load-install.el.in
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
; -*- mode: emacs-lisp -*-
|
||||||
|
;;
|
||||||
|
;; Load DVC easily ...
|
||||||
|
;;
|
||||||
|
;; Manually, you can run
|
||||||
|
;;
|
||||||
|
;; M-x load-file RET /path/to/dvc-load.el RET
|
||||||
|
;;
|
||||||
|
;; (usefull when you want to load DVC after starting "emacs -q"!), or
|
||||||
|
;; add
|
||||||
|
;;
|
||||||
|
;; (load-file "/path/to/this/file/in/installdir/dvc-load.el")
|
||||||
|
;;
|
||||||
|
;; to your ~/.emacs.el
|
||||||
|
|
||||||
|
(add-to-list 'load-path "@lispdir@/")
|
||||||
|
(add-to-list 'Info-default-directory-list "@info_dir@")
|
||||||
|
|
||||||
|
(if (featurep 'dvc-core)
|
||||||
|
(dvc-reload)
|
||||||
|
(if (featurep 'xemacs)
|
||||||
|
(require 'auto-autoloads)
|
||||||
|
(require 'dvc-autoloads)))
|
||||||
|
|
||||||
26
dvc/dvc-load.el.in
Normal file
26
dvc/dvc-load.el.in
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
; -*- mode: emacs-lisp -*-
|
||||||
|
;;
|
||||||
|
;; Load DVC easily ...
|
||||||
|
;;
|
||||||
|
;; Manually, you can run
|
||||||
|
;;
|
||||||
|
;; M-x load-file RET /path/to/dvc-load.el RET
|
||||||
|
;;
|
||||||
|
;; (usefull when you want to load DVC after starting "emacs -q"!), or
|
||||||
|
;; add
|
||||||
|
;;
|
||||||
|
;; (load-file "/path/to/this/file/in/builddir/dvc-load.el")
|
||||||
|
;;
|
||||||
|
;; to your ~/.emacs.el
|
||||||
|
|
||||||
|
(add-to-list 'load-path "@abs_top_builddir@/lisp")
|
||||||
|
(unless (locate-library "ewoc")
|
||||||
|
(add-to-list 'load-path "@abs_top_builddir@/lisp/contrib"))
|
||||||
|
(add-to-list 'Info-default-directory-list "@abs_top_builddir@/texinfo")
|
||||||
|
|
||||||
|
(if (featurep 'dvc-core)
|
||||||
|
(dvc-reload)
|
||||||
|
(if (featurep 'xemacs)
|
||||||
|
(require 'dvc-autoloads "@abs_top_builddir@/lisp/auto-autoloads.elc")
|
||||||
|
(require 'dvc-autoloads)))
|
||||||
|
|
||||||
251
dvc/install-sh
Executable file
251
dvc/install-sh
Executable file
@ -0,0 +1,251 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||||
|
#
|
||||||
|
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
# documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
# the above copyright notice appear in all copies and that both that
|
||||||
|
# copyright notice and this permission notice appear in supporting
|
||||||
|
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
# publicity pertaining to distribution of the software without specific,
|
||||||
|
# written prior permission. M.I.T. makes no representations about the
|
||||||
|
# suitability of this software for any purpose. It is provided "as is"
|
||||||
|
# without express or implied warranty.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit="${DOITPROG-}"
|
||||||
|
|
||||||
|
|
||||||
|
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||||
|
|
||||||
|
mvprog="${MVPROG-mv}"
|
||||||
|
cpprog="${CPPROG-cp}"
|
||||||
|
chmodprog="${CHMODPROG-chmod}"
|
||||||
|
chownprog="${CHOWNPROG-chown}"
|
||||||
|
chgrpprog="${CHGRPPROG-chgrp}"
|
||||||
|
stripprog="${STRIPPROG-strip}"
|
||||||
|
rmprog="${RMPROG-rm}"
|
||||||
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
|
transformbasename=""
|
||||||
|
transform_arg=""
|
||||||
|
instcmd="$mvprog"
|
||||||
|
chmodcmd="$chmodprog 0755"
|
||||||
|
chowncmd=""
|
||||||
|
chgrpcmd=""
|
||||||
|
stripcmd=""
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
mvcmd="$mvprog"
|
||||||
|
src=""
|
||||||
|
dst=""
|
||||||
|
dir_arg=""
|
||||||
|
|
||||||
|
while [ x"$1" != x ]; do
|
||||||
|
case $1 in
|
||||||
|
-c) instcmd="$cpprog"
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-d) dir_arg=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-m) chmodcmd="$chmodprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-s) stripcmd="$stripprog"
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
*) if [ x"$src" = x ]
|
||||||
|
then
|
||||||
|
src=$1
|
||||||
|
else
|
||||||
|
# this colon is to work around a 386BSD /bin/sh bug
|
||||||
|
:
|
||||||
|
dst=$1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ x"$src" = x ]
|
||||||
|
then
|
||||||
|
echo "install: no input file specified"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dir_arg" != x ]; then
|
||||||
|
dst=$src
|
||||||
|
src=""
|
||||||
|
|
||||||
|
if [ -d $dst ]; then
|
||||||
|
instcmd=:
|
||||||
|
chmodcmd=""
|
||||||
|
else
|
||||||
|
instcmd=mkdir
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
|
||||||
|
if [ -f $src -o -d $src ]
|
||||||
|
then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo "install: $src does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dst" = x ]
|
||||||
|
then
|
||||||
|
echo "install: no destination specified"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; if your system
|
||||||
|
# does not like double slashes in filenames, you may need to add some logic
|
||||||
|
|
||||||
|
if [ -d $dst ]
|
||||||
|
then
|
||||||
|
dst="$dst"/`basename $src`
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
## this sed command emulates the dirname command
|
||||||
|
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||||
|
|
||||||
|
# Make sure that the destination directory exists.
|
||||||
|
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||||
|
|
||||||
|
# Skip lots of stat calls in the usual case.
|
||||||
|
if [ ! -d "$dstdir" ]; then
|
||||||
|
defaultIFS='
|
||||||
|
'
|
||||||
|
IFS="${IFS-${defaultIFS}}"
|
||||||
|
|
||||||
|
oIFS="${IFS}"
|
||||||
|
# Some sh's can't handle IFS=/ for some reason.
|
||||||
|
IFS='%'
|
||||||
|
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||||
|
IFS="${oIFS}"
|
||||||
|
|
||||||
|
pathcomp=''
|
||||||
|
|
||||||
|
while [ $# -ne 0 ] ; do
|
||||||
|
pathcomp="${pathcomp}${1}"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ ! -d "${pathcomp}" ] ;
|
||||||
|
then
|
||||||
|
$mkdirprog "${pathcomp}"
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
pathcomp="${pathcomp}/"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ x"$dir_arg" != x ]
|
||||||
|
then
|
||||||
|
$doit $instcmd $dst &&
|
||||||
|
|
||||||
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||||
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||||
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||||
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||||
|
else
|
||||||
|
|
||||||
|
# If we're going to rename the final executable, determine the name now.
|
||||||
|
|
||||||
|
if [ x"$transformarg" = x ]
|
||||||
|
then
|
||||||
|
dstfile=`basename $dst`
|
||||||
|
else
|
||||||
|
dstfile=`basename $dst $transformbasename |
|
||||||
|
sed $transformarg`$transformbasename
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't allow the sed command to completely eliminate the filename
|
||||||
|
|
||||||
|
if [ x"$dstfile" = x ]
|
||||||
|
then
|
||||||
|
dstfile=`basename $dst`
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make a temp file name in the proper directory.
|
||||||
|
|
||||||
|
dsttmp=$dstdir/#inst.$$#
|
||||||
|
|
||||||
|
# Move or copy the file name to the temp name
|
||||||
|
|
||||||
|
$doit $instcmd $src $dsttmp &&
|
||||||
|
|
||||||
|
trap "rm -f ${dsttmp}" 0 &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits
|
||||||
|
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||||
|
|
||||||
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||||
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
|
||||||
|
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||||
|
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||||
|
|
||||||
|
fi &&
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
||||||
97
dvc/lisp/Makefile.in
Normal file
97
dvc/lisp/Makefile.in
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# location of required programms
|
||||||
|
prefix = @prefix@
|
||||||
|
RM = @RM@
|
||||||
|
ETAGS = etags
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
|
||||||
|
datarootdir= @datarootdir@
|
||||||
|
lispdir = @lispdir@
|
||||||
|
|
||||||
|
EMACS_PROG = @EMACS_PROG@
|
||||||
|
|
||||||
|
FLAGS = @FLAGS@
|
||||||
|
|
||||||
|
# Other settings
|
||||||
|
|
||||||
|
OTHERDIRS = @OTHERDIRS@
|
||||||
|
|
||||||
|
ebatch = srcdir=$(srcdir) otherdirs="$(OTHERDIRS)" \
|
||||||
|
$(EMACS_PROG) -batch -q $(FLAGS) -l $(srcdir)/dvc-build.el -f
|
||||||
|
|
||||||
|
alldeps = dvc-version.el dvc-site.el
|
||||||
|
|
||||||
|
all: $(alldeps)
|
||||||
|
$(ebatch) dvc-build-all
|
||||||
|
|
||||||
|
all-verbose: $(alldeps)
|
||||||
|
$(ebatch) dvc-build-all verbose
|
||||||
|
|
||||||
|
# We install foo.el only if there is also foo.elc.
|
||||||
|
install: all
|
||||||
|
$(MKDIR_P) -m 0755 "$(lispdir)"
|
||||||
|
@dlist='$(srcdir) $(srcdir)/contrib' ; \
|
||||||
|
test '$(srcdir)' = '.' || dlist=". $$dlist" ; \
|
||||||
|
for elc in *.elc ; do \
|
||||||
|
el=`echo $$elc | sed 's/.$$//'` ; orig= ; \
|
||||||
|
for d in $$dlist ; do \
|
||||||
|
if [ -r "$$d/$$el" ] ; then \
|
||||||
|
orig="$$d/$$el" ; break ; fi ; done ; \
|
||||||
|
test "$$orig" || continue ; \
|
||||||
|
echo Installing $$el ; \
|
||||||
|
$(INSTALL_DATA) "$$orig" "$(lispdir)" ; \
|
||||||
|
echo Installing $$elc ; \
|
||||||
|
$(INSTALL_DATA) $$elc "$(lispdir)" ; \
|
||||||
|
done
|
||||||
|
$(INSTALL_DATA) $(srcdir)/xmtn-hooks.lua $(lispdir)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.elc dvc-site.el \
|
||||||
|
dvc-autoloads.el auto-autoloads.el custom-load.el
|
||||||
|
|
||||||
|
Makefile: $(srcdir)/Makefile.in ../config.status
|
||||||
|
cd ..; ./config.status
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f Makefile
|
||||||
|
|
||||||
|
maintainer-clean:
|
||||||
|
rm -f dvc-version.el
|
||||||
|
|
||||||
|
TAGS: $(SRCS)
|
||||||
|
@if test "x$(ETAGS)" = "x" ; then \
|
||||||
|
echo "Sorry, no \`etags' program available." ; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) */*.el ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
autoloads:
|
||||||
|
$(ebatch) dvc-build-autoloads $(srcdir)
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
dvc-version.el: ../config.status
|
||||||
|
@echo Creating $@
|
||||||
|
@( echo ';;; $@ (generated file -- do not edit!)' ; \
|
||||||
|
echo '(defconst dvc-version "$(PACKAGE_VERSION)"' ; \
|
||||||
|
echo ' "Version of DVC loaded.' ; \
|
||||||
|
echo 'Please send bug reports to <$(PACKAGE_BUGREPORT)>.")' ; \
|
||||||
|
echo "(provide 'dvc-version)" ) \
|
||||||
|
> $@
|
||||||
|
|
||||||
|
dvc-site.el: ../config.status $(srcdir)/dvc-site.el.in
|
||||||
|
(cd .. ; ./config.status lisp/$@)
|
||||||
|
|
||||||
|
.PHONY: all all-verbose install \
|
||||||
|
clean distclean maintainer-clean
|
||||||
54
dvc/lisp/baz-dvc.el
Normal file
54
dvc/lisp/baz-dvc.el
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
;;; baz-dvc.el --- The dvc layer for baz
|
||||||
|
|
||||||
|
;; Copyright (C) 2005, 2007 by all contributors
|
||||||
|
|
||||||
|
;; Author: Stefan Reichoer, <stefan@xsteve.at>
|
||||||
|
;; Contributors: Matthieu Moy, <Matthieu.Moy@imag.fr>
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; This file provides the common dvc layer for baz support
|
||||||
|
|
||||||
|
(require 'baz)
|
||||||
|
(eval-and-compile (require 'dvc-unified))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(dvc-register-dvc 'baz "Bazaar 1")
|
||||||
|
(defalias 'baz-dvc-tree-root 'baz-tree-root)
|
||||||
|
(defun baz-dvc-diff (base-rev path dont-switch)
|
||||||
|
(baz-changes nil base-rev))
|
||||||
|
(defalias 'baz-dvc-file-diff 'baz-file-diff)
|
||||||
|
(defalias 'baz-dvc-log-edit 'tla-dvc-log-edit)
|
||||||
|
(defun baz-dvc-add (file)
|
||||||
|
(baz-add nil file))
|
||||||
|
(defun baz-dvc-log (arg last-n)
|
||||||
|
"Shows the changelog in the current Arch tree."
|
||||||
|
(baz-logs))
|
||||||
|
(defun baz-dvc-search-file-in-diff (file)
|
||||||
|
(re-search-forward (concat "^\\+\\+\\+ mod/" file "$")))
|
||||||
|
(defalias 'baz-dvc-name-construct 'baz--name-construct)
|
||||||
|
(defun baz-dvc-revision-direct-ancestor (revision)
|
||||||
|
`(baz (revision ,(baz-revision-direct-ancestor (cadr (cadr revision))))))
|
||||||
|
(defun baz-dvc-log-edit-file-name-func ()
|
||||||
|
(baz-make-log))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'baz-dvc-command-version 'baz-command-version)
|
||||||
|
|
||||||
|
(provide 'baz-dvc)
|
||||||
|
;;; baz-dvc.el ends here
|
||||||
337
dvc/lisp/baz.el
Normal file
337
dvc/lisp/baz.el
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
;;; baz.el --- baz related code for dvc
|
||||||
|
|
||||||
|
;; Copyright (C) 2005-2007 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
|
||||||
|
;; Keywords:
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(progn
|
||||||
|
(defvar baz-tla-only-commands '(tla-tag)
|
||||||
|
"List of commands available only with tla.")
|
||||||
|
|
||||||
|
(defun baz-make-alias-for-tla-commands ()
|
||||||
|
"Creates baz- aliases for tla- commands.
|
||||||
|
|
||||||
|
For each commands beginning with \"tla-\", except the ones in
|
||||||
|
`baz-tla-only-list', create the corresponding \"baz-\" alias.
|
||||||
|
|
||||||
|
Most functions in tla*.el are prefixed with tla-, but this allows you to
|
||||||
|
type M-x baz-whatever RET instead. Some functions are available only
|
||||||
|
with baz. They're prefixed with baz- and have no alias."
|
||||||
|
(interactive)
|
||||||
|
(dolist (tla-cmd (apropos-internal "^tla-" 'commandp))
|
||||||
|
(unless (member tla-cmd baz-tla-only-commands)
|
||||||
|
(let* ((tla-cmd-post (substring (symbol-name tla-cmd) 4))
|
||||||
|
(baz-cmd (intern (concat "baz-" tla-cmd-post))))
|
||||||
|
(unless (or (fboundp baz-cmd)
|
||||||
|
(string-match "^dvc" tla-cmd-post))
|
||||||
|
(defalias baz-cmd tla-cmd))))))
|
||||||
|
|
||||||
|
(baz-make-alias-for-tla-commands)
|
||||||
|
;; baz--name-construct is used in baz-dvc.el
|
||||||
|
(eval-after-load "tla"
|
||||||
|
'(progn (defalias 'baz--name-construct 'tla--name-construct) (baz-make-alias-for-tla-commands))))
|
||||||
|
|
||||||
|
(require 'tla)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun baz-branch (source-revision tag-version &optional cacherev synchronously)
|
||||||
|
"Create a tag from SOURCE-REVISION to TAG-VERSION.
|
||||||
|
Run baz branch.
|
||||||
|
If SYNCHRONOUSLY is non-nil, the process for tagging runs synchronously.
|
||||||
|
Else it runs asynchronously."
|
||||||
|
(interactive
|
||||||
|
(list (unless (y-or-n-p "Branch from local tree? ")
|
||||||
|
(tla--name-construct
|
||||||
|
(tla-name-read "Source revision (or version): "
|
||||||
|
'prompt 'prompt 'prompt 'prompt 'maybe)))
|
||||||
|
(tla--name-construct
|
||||||
|
(tla-name-read "New branch: "
|
||||||
|
'prompt 'prompt 'prompt 'prompt))
|
||||||
|
(tla--tag-does-cacherev)
|
||||||
|
nil))
|
||||||
|
(funcall (if synchronously 'tla--run-tla-sync 'tla--run-tla-async)
|
||||||
|
(list "branch"
|
||||||
|
(when (not cacherev) "--no-cacherev")
|
||||||
|
source-revision tag-version)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun baz-status-goto (&optional root against)
|
||||||
|
"Switch to status buffer or run `baz-dvc-status'."
|
||||||
|
(interactive (list (dvc-read-project-tree-maybe
|
||||||
|
(format "Run %s in: "
|
||||||
|
(tla--changes-command)))
|
||||||
|
current-prefix-arg))
|
||||||
|
(unless (tla-has-status-command)
|
||||||
|
(error "status not available with this arch branch"))
|
||||||
|
(let* ((default-directory root)
|
||||||
|
(buffer (dvc-get-buffer 'status default-directory)))
|
||||||
|
(if buffer
|
||||||
|
(dvc-switch-to-buffer buffer)
|
||||||
|
(baz-dvc-status))))
|
||||||
|
|
||||||
|
(defun baz-dvc-status ()
|
||||||
|
"Run \"baz status\" in `default-directory', which must be a tree root.
|
||||||
|
|
||||||
|
Doesn't work with tla. Use `tla-changes' or `tla-tree-lint'
|
||||||
|
instead."
|
||||||
|
(unless (tla-has-status-command)
|
||||||
|
(error "status not available with this arch branch"))
|
||||||
|
(let* ((root default-directory)
|
||||||
|
(buffer (dvc-prepare-changes-buffer
|
||||||
|
(list 'last-revision root)
|
||||||
|
(list 'local-tree root)
|
||||||
|
'status
|
||||||
|
default-directory 'baz)))
|
||||||
|
(when dvc-switch-to-buffer-first
|
||||||
|
(dvc-switch-to-buffer buffer))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(ewoc-enter-first
|
||||||
|
dvc-fileinfo-ewoc
|
||||||
|
(make-dvc-fileinfo-message
|
||||||
|
:text (concat "* Running baz status in tree " root
|
||||||
|
"...\n\n")))
|
||||||
|
(ewoc-enter-last dvc-fileinfo-ewoc
|
||||||
|
(make-dvc-fileinfo-legacy :data (list 'searching-subtrees)))
|
||||||
|
(ewoc-refresh dvc-fileinfo-ewoc)))
|
||||||
|
(dvc-save-some-buffers)
|
||||||
|
(baz--status-internal root buffer nil)
|
||||||
|
(tla--run-tla-async
|
||||||
|
'("inventory" "--nested" "--trees")
|
||||||
|
:related-buffer buffer
|
||||||
|
:finished
|
||||||
|
(lexical-let ((buffer-lex buffer))
|
||||||
|
(lambda (output error status arguments)
|
||||||
|
(let ((subtrees (delete ""
|
||||||
|
(split-string
|
||||||
|
(with-current-buffer
|
||||||
|
output (buffer-string)) "\n"))))
|
||||||
|
(with-current-buffer buffer-lex
|
||||||
|
(let ((subtree-message (car (tla--changes-find-subtree-message))))
|
||||||
|
(dolist (subtree subtrees)
|
||||||
|
(let ((buffer-sub (dvc-get-buffer-create
|
||||||
|
'status subtree)))
|
||||||
|
(with-current-buffer buffer-sub
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(erase-buffer))
|
||||||
|
(dvc-diff-mode)
|
||||||
|
(set (make-local-variable
|
||||||
|
'tla--changes-buffer-master-buffer)
|
||||||
|
buffer-lex))
|
||||||
|
(ewoc-enter-after dvc-fileinfo-ewoc
|
||||||
|
subtree-message
|
||||||
|
(make-dvc-fileinfo-legacy
|
||||||
|
:data (list 'subtree buffer-sub subtree
|
||||||
|
nil)))
|
||||||
|
(baz--status-internal
|
||||||
|
subtree
|
||||||
|
buffer-sub
|
||||||
|
buffer-lex)))
|
||||||
|
(dvc-ewoc-delete dvc-fileinfo-ewoc subtree-message))
|
||||||
|
(recenter))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun baz--status-error-handle (output error status arguments root
|
||||||
|
buffer master-buffer)
|
||||||
|
"Handler for error in \"baz status\"."
|
||||||
|
(if (with-current-buffer error
|
||||||
|
(goto-char (point-min))
|
||||||
|
(looking-at "^Tree is not lint clean"))
|
||||||
|
(let ((buffer (tla--tree-lint-prepare-buffer
|
||||||
|
root
|
||||||
|
(lexical-let ((root-lex root) (buffer-lex buffer) (master-buffer-lex
|
||||||
|
master-buffer))
|
||||||
|
(lambda ()
|
||||||
|
(baz--status-internal root-lex buffer-lex
|
||||||
|
master-buffer-lex)
|
||||||
|
(switch-to-buffer buffer-lex))))))
|
||||||
|
(message "Tree is not lint clean")
|
||||||
|
(save-excursion
|
||||||
|
(tla--tree-lint-parse-buffer output buffer))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(tla--tree-lint-cursor-goto
|
||||||
|
(ewoc-nth tla--tree-lint-cookie 0)))
|
||||||
|
(switch-to-buffer buffer))
|
||||||
|
(dvc-show-changes-buffer output 'tla--parse-baz-status buffer
|
||||||
|
master-buffer "^[^*\\.]")
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(setq dvc-buffer-refresh-function 'baz-dvc-status))
|
||||||
|
(when master-buffer
|
||||||
|
(with-current-buffer master-buffer
|
||||||
|
(ewoc-map (lambda (fi)
|
||||||
|
(let ((x (dvc-fileinfo-legacy-data fi)))
|
||||||
|
(when (and (eq (car x) 'subtree)
|
||||||
|
(eq (cadr x) buffer))
|
||||||
|
(setcar (cdddr x) 'changes)))
|
||||||
|
)
|
||||||
|
dvc-fileinfo-ewoc)))))
|
||||||
|
|
||||||
|
(defun baz--status-internal (root buffer master-buffer)
|
||||||
|
"Internal function to run \"baz status\".
|
||||||
|
|
||||||
|
Run the command in directory ROOT.
|
||||||
|
The output will be displayed in buffer BUFFER.
|
||||||
|
|
||||||
|
BUFFER must already be in changes mode, but mustn't contain any change
|
||||||
|
information. Only roots of subprojects are already in the ewoc.
|
||||||
|
|
||||||
|
If MASTER-BUFFER is non-nil, this run of tla changes is done in a
|
||||||
|
nested project of a bigger one. MASTER-BUFFER is the buffer in which
|
||||||
|
the root of the projects is displayed."
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(tla--run-tla-async
|
||||||
|
`("status")
|
||||||
|
:finished
|
||||||
|
(lexical-let ((root-lex root) (buffer-lex buffer) (master-buffer-lex
|
||||||
|
master-buffer)
|
||||||
|
(-current-buffer--lex (current-buffer)))
|
||||||
|
(lambda (output error status arguments)
|
||||||
|
(if (with-current-buffer output
|
||||||
|
(goto-char (point-min))
|
||||||
|
(re-search-forward
|
||||||
|
tla--files-conflicted-regexp nil t))
|
||||||
|
(baz--status-error-handle
|
||||||
|
output error status arguments root-lex buffer-lex
|
||||||
|
master-buffer-lex)
|
||||||
|
(if master-buffer-lex
|
||||||
|
(message "No changes in subtree %s" root-lex)
|
||||||
|
(message "No changes in %s" root-lex))
|
||||||
|
(with-current-buffer -current-buffer--lex
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(dvc-fileinfo-delete-messages)
|
||||||
|
(ewoc-enter-last
|
||||||
|
dvc-fileinfo-ewoc
|
||||||
|
(make-dvc-fileinfo-message
|
||||||
|
:text (concat "* No changes in "
|
||||||
|
root-lex ".\n\n")))
|
||||||
|
(when master-buffer-lex
|
||||||
|
(with-current-buffer master-buffer-lex
|
||||||
|
(ewoc-map (lambda (fi)
|
||||||
|
(let ((x (dvc-fileinfo-legacy-data fi)))
|
||||||
|
(when (and (eq (car x) 'subtree)
|
||||||
|
(eq (cadr x) buffer-lex))
|
||||||
|
(setcar (cdddr x) 'no-changes)))
|
||||||
|
)
|
||||||
|
dvc-fileinfo-ewoc)))
|
||||||
|
(ewoc-refresh dvc-fileinfo-ewoc))))))
|
||||||
|
:error
|
||||||
|
(lexical-let ((root-lex root) (buffer-lex buffer) (master-buffer-lex
|
||||||
|
master-buffer))
|
||||||
|
(lambda (output error status arguments)
|
||||||
|
(baz--status-error-handle
|
||||||
|
output error status arguments root-lex buffer-lex master-buffer-lex)))
|
||||||
|
)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'baz-merge 'tla-star-merge)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun baz-annotate (file)
|
||||||
|
"Run \"baz annotate\" on FILE.
|
||||||
|
|
||||||
|
Shows the result in a buffer, and create an annotation table for the
|
||||||
|
annotated file's buffer. This allows you to run `baz-trace-line' and
|
||||||
|
`baz-trace-line-show-log'."
|
||||||
|
(interactive (list (read-file-name "Annotate file: "
|
||||||
|
nil nil t
|
||||||
|
(file-name-nondirectory
|
||||||
|
(or (buffer-file-name) "")))))
|
||||||
|
(let ((file (expand-file-name file))
|
||||||
|
(buffer (get-file-buffer file)))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(when (or (not (buffer-modified-p))
|
||||||
|
(y-or-n-p (concat "Save buffer "
|
||||||
|
(buffer-name buffer)
|
||||||
|
"? ")))
|
||||||
|
(save-buffer buffer))
|
||||||
|
(find-file-noselect file)
|
||||||
|
(let* ((default-directory (tla-tree-root file))
|
||||||
|
(buffer (dvc-get-buffer-create tla-arch-branch 'annotate)))
|
||||||
|
(when dvc-switch-to-buffer-first
|
||||||
|
(dvc-switch-to-buffer buffer))
|
||||||
|
(tla--run-tla-async
|
||||||
|
`("annotate"
|
||||||
|
,(tla-file-name-relative-to-root file))
|
||||||
|
:finished (lexical-let ((buffer-lex buffer) (file-lex file))
|
||||||
|
(lambda (output error status arguments)
|
||||||
|
(with-current-buffer buffer-lex
|
||||||
|
(erase-buffer)
|
||||||
|
(insert-buffer-substring output))
|
||||||
|
(tla-annotate-mode)
|
||||||
|
(baz-parse-annotate
|
||||||
|
output
|
||||||
|
(find-buffer-visiting file-lex))))
|
||||||
|
:error
|
||||||
|
(lambda (output error status arguments)
|
||||||
|
(dvc-show-error-buffer error)
|
||||||
|
(dvc-show-last-process-buffer)))))))
|
||||||
|
|
||||||
|
(defvar tla-annotation-table nil
|
||||||
|
"table line-number -> revision built by `baz-parse-annotate'.")
|
||||||
|
|
||||||
|
(defun baz-parse-annotate (annotate-buffer buffer)
|
||||||
|
"Builds a table line-number -> revision from ANNOTATE-BUFFER.
|
||||||
|
|
||||||
|
ANNOTATE-BUFFER must be the output of \"baz annotate\", and BUFFER is
|
||||||
|
the corresponding source buffer."
|
||||||
|
(set-buffer annotate-buffer)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(re-search-forward "^[^ ]*:")
|
||||||
|
(beginning-of-line)
|
||||||
|
(let* ((nb-lines (1+ (count-lines (point)
|
||||||
|
(point-max))))
|
||||||
|
(table (make-vector nb-lines ""))
|
||||||
|
(n 0))
|
||||||
|
(while (looking-at "^\\([^ ]*\\):")
|
||||||
|
(aset table n (match-string 1))
|
||||||
|
(setq n (1+ n))
|
||||||
|
(forward-line 1))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(set (make-local-variable 'tla-annotation-table)
|
||||||
|
table))
|
||||||
|
))
|
||||||
|
|
||||||
|
(defun baz-trace-line (line buffer)
|
||||||
|
"Returns the changeset that lead to LINE in FILE."
|
||||||
|
(interactive (list (count-lines (point-min) (point))
|
||||||
|
(current-buffer)))
|
||||||
|
(unless tla-annotation-table
|
||||||
|
(error "No annotate table in buffer. Run baz-annotate first."))
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(let ((changeset (aref tla-annotation-table line)))
|
||||||
|
(when (interactive-p)
|
||||||
|
(message changeset))
|
||||||
|
changeset)))
|
||||||
|
|
||||||
|
(defun baz-trace-line-show-log (line buffer)
|
||||||
|
"Show the log of the changeset that lead to LINE in FILE."
|
||||||
|
(interactive (list (count-lines (point-min) (point))
|
||||||
|
(current-buffer)))
|
||||||
|
(tla-cat-log (baz-trace-line line buffer)))
|
||||||
|
|
||||||
|
(provide 'baz)
|
||||||
|
|
||||||
|
;;; baz.el ends here
|
||||||
98
dvc/lisp/bzr-core.el
Normal file
98
dvc/lisp/bzr-core.el
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
;;; bzr-core.el --- Core of support for Bazaar 2 in DVC
|
||||||
|
|
||||||
|
;; Copyright (C) 2005-2008 by all contributors
|
||||||
|
|
||||||
|
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
|
||||||
|
;; Contributions from:
|
||||||
|
;; Stefan Reichoer, <stefan@xsteve.at>
|
||||||
|
|
||||||
|
;; Keywords: tools, vc
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
;; TODO autoconf stuff.
|
||||||
|
(defvar bzr-executable (if (eq system-type 'windows-nt) "bzr.bat" "bzr")
|
||||||
|
"The executable used for the bzr command line client")
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-tree-root (&optional location no-error interactive)
|
||||||
|
"Return the tree root for LOCATION, nil if not in a local tree.
|
||||||
|
Computation is done from withing Emacs, by looking at a .bzr/
|
||||||
|
directory in a parent buffer of LOCATION. This is therefore very
|
||||||
|
fast.
|
||||||
|
|
||||||
|
If NO-ERROR is non-nil, don't raise an error if LOCATION is not a
|
||||||
|
bzr-managed tree (but return nil)."
|
||||||
|
(interactive)
|
||||||
|
(dvc-tree-root-helper ".bzr/checkout/" (or interactive
|
||||||
|
(interactive-p))
|
||||||
|
"%S is not a bzr-managed tree"
|
||||||
|
location no-error))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-branch-root (&optional location no-error interactive)
|
||||||
|
"Return the branch root for LOCATION, nil if not in a branch.
|
||||||
|
|
||||||
|
This function allows DVC relevant functions (e.g., log) to work
|
||||||
|
on bzr branches with no tree."
|
||||||
|
(interactive)
|
||||||
|
(dvc-tree-root-helper ".bzr/branch/" (or interactive
|
||||||
|
(interactive-p))
|
||||||
|
"%S is not a bzr-managed branch"
|
||||||
|
location no-error))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-tree-id ()
|
||||||
|
"Call \"bzr log -r 1\" to get the tree-id.
|
||||||
|
Does anyone know of a better way to get this info?"
|
||||||
|
(interactive)
|
||||||
|
(let ((tree-id nil))
|
||||||
|
(dvc-run-dvc-sync
|
||||||
|
'bzr (list "log" "-r" "1")
|
||||||
|
:finished (lambda (output error status arguments)
|
||||||
|
(set-buffer output)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(if (re-search-forward "^branch nick:\\s-*\\(.+\\)$" nil t)
|
||||||
|
(setq tree-id (match-string 1))
|
||||||
|
(setq tree-id "<unknown>")))
|
||||||
|
:error (lambda (output error status arguments)
|
||||||
|
(setq tree-id "<unknown>")))
|
||||||
|
(when (interactive-p)
|
||||||
|
(message "tree-id for %s: %s" default-directory tree-id))
|
||||||
|
tree-id))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-prepare-environment (env)
|
||||||
|
"Prepare the environment to run bzr."
|
||||||
|
(cons "BZR_PROGRESS_BAR=none" env))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-default-global-argument ()
|
||||||
|
"Disable aliases."
|
||||||
|
'("--no-aliases"))
|
||||||
|
|
||||||
|
(defun bzr-read-revision (prompt)
|
||||||
|
"Read a revision for the actual bzr working copy."
|
||||||
|
(read-string prompt (bzr-get-revision-at-point)))
|
||||||
|
|
||||||
|
(provide 'bzr-core)
|
||||||
|
;;; bzr-core.el ends here
|
||||||
135
dvc/lisp/bzr-dvc.el
Normal file
135
dvc/lisp/bzr-dvc.el
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
;;; bzr-dvc.el --- Support for Bazaar 2 in DVC's unification layer
|
||||||
|
|
||||||
|
;; Copyright (C) 2005-2008 by all contributors
|
||||||
|
|
||||||
|
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
|
||||||
|
;; Contributions from:
|
||||||
|
;; Stefan Reichoer, <stefan@xsteve.at>
|
||||||
|
;; Keywords: tools
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(eval-and-compile (require 'dvc-unified))
|
||||||
|
(require 'bzr)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(dvc-register-dvc 'bzr "Bazaar 2")
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-init 'bzr-init)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-inventory 'bzr-inventory)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-pull 'bzr-pull)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-push 'bzr-push)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-merge 'bzr-merge)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-submit-patch 'bzr-submit-patch)
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-add 'bzr-add)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-log-edit-done 'bzr-log-edit-done)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-dvc-search-file-in-diff (file)
|
||||||
|
(re-search-forward (concat "^=== .* '" file "'$")))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-dvc-name-construct (back-end-revision)
|
||||||
|
(nth 1 back-end-revision))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defvar bzr-log-edit-file-name ".tmp-bzr-log-edit.txt"
|
||||||
|
"The filename, used to store the log message before commiting.
|
||||||
|
Usually that file is placed in the tree-root of the working tree.")
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist `(,(concat "^" (regexp-quote bzr-log-edit-file-name)
|
||||||
|
"$") . bzr-log-edit-mode))
|
||||||
|
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-command-version 'bzr-command-version)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-revision-nth-ancestor 'bzr-revision-nth-ancestor)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-log 'bzr-log)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defalias 'bzr-dvc-save-diff 'bzr-save-diff)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-changelog 'bzr-changelog)
|
||||||
|
|
||||||
|
(defun bzr-dvc-update ()
|
||||||
|
(interactive)
|
||||||
|
(bzr-update nil))
|
||||||
|
|
||||||
|
(defun bzr-dvc-edit-ignore-files ()
|
||||||
|
(interactive)
|
||||||
|
(find-file-other-window (concat (bzr-tree-root) ".bzrignore")))
|
||||||
|
|
||||||
|
(defun bzr-dvc-ignore-files (file-list)
|
||||||
|
(interactive (list (dvc-current-file-list)))
|
||||||
|
(when (y-or-n-p (format "Ignore %S for %s? " file-list (bzr-tree-root)))
|
||||||
|
(dolist (f-name file-list)
|
||||||
|
(bzr-ignore (format "./%s" f-name)))))
|
||||||
|
|
||||||
|
(defun bzr-dvc-backend-ignore-file-extensions (extension-list)
|
||||||
|
(dolist (ext-name extension-list)
|
||||||
|
(bzr-ignore (format "*.%s" ext-name))))
|
||||||
|
|
||||||
|
(autoload 'bzr-revlog-get-revision "bzr-revlog")
|
||||||
|
(defalias 'bzr-dvc-revlog-get-revision
|
||||||
|
'bzr-revlog-get-revision)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-delta 'bzr-delta)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-send-commit-notification 'bzr-send-commit-notification)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-prepare-environment 'bzr-prepare-environment)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-file-has-conflict-p 'bzr-file-has-conflict-p)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-resolved 'bzr-resolved)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-annotate-time 'bzr-annotate-time)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-clone 'bzr-checkout)
|
||||||
|
|
||||||
|
(defalias 'bzr-dvc-export-via-email 'bzr-export-via-email)
|
||||||
|
|
||||||
|
(defun bzr-dvc-diff-against-url (path)
|
||||||
|
(let ((buffer (dvc-prepare-changes-buffer
|
||||||
|
nil
|
||||||
|
path
|
||||||
|
'diff default-directory 'bzr)))
|
||||||
|
(dvc-switch-to-buffer-maybe buffer)
|
||||||
|
(message "Running bzr merge --preview %s" path)
|
||||||
|
(dvc-run-dvc-async 'bzr (list "merge" "--preview" "--force" path)
|
||||||
|
:finished
|
||||||
|
(dvc-capturing-lambda (output error status arguments)
|
||||||
|
(dvc-show-changes-buffer output 'bzr-parse-diff
|
||||||
|
(capture buffer))))))
|
||||||
|
|
||||||
|
(provide 'bzr-dvc)
|
||||||
|
;;; bzr-dvc.el ends here
|
||||||
158
dvc/lisp/bzr-gnus.el
Normal file
158
dvc/lisp/bzr-gnus.el
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
;;; bzr-gnus.el --- bzr dvc integration to gnus
|
||||||
|
|
||||||
|
;; Copyright (C) 2008 by all contributors
|
||||||
|
|
||||||
|
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
||||||
|
|
||||||
|
;; DVC 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.
|
||||||
|
|
||||||
|
;; DVC 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; gnus is optional. Load it at compile-time to avoid warnings.
|
||||||
|
(eval-when-compile
|
||||||
|
(condition-case nil
|
||||||
|
(progn
|
||||||
|
(require 'gnus)
|
||||||
|
(require 'gnus-art)
|
||||||
|
(require 'gnus-sum))
|
||||||
|
(error nil)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-insinuate-gnus ()
|
||||||
|
"Integrate bzr into Gnus."
|
||||||
|
(interactive)
|
||||||
|
;; there is nothing special to do yet...
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun bzr-gnus-article-view-patch (n)
|
||||||
|
"View MIME part N in a gnus article, as a bzr changeset.
|
||||||
|
The patch can be embedded or external. If external, the
|
||||||
|
parameter N is ignored."
|
||||||
|
(interactive)
|
||||||
|
(let ((num-of-mime-parts
|
||||||
|
(save-window-excursion
|
||||||
|
(gnus-summary-select-article-buffer)
|
||||||
|
(gnus-article-mime-total-parts))))
|
||||||
|
(if (> num-of-mime-parts 1)
|
||||||
|
(bzr-gnus-article-view-attached-patch 2)
|
||||||
|
(bzr-gnus-article-view-external-patch))))
|
||||||
|
|
||||||
|
(defun bzr-gnus-article-view-attached-patch (n)
|
||||||
|
"View MIME part N, as bzr patchset."
|
||||||
|
(interactive "p")
|
||||||
|
(error "bzr-gnus-article-view-attached-patch not yet implemented"))
|
||||||
|
|
||||||
|
(defun bzr-gnus-article-view-external-patch ()
|
||||||
|
"View an external patch that is referenced in this mail.
|
||||||
|
|
||||||
|
The mail must contain a line starting with 'Committed revision ' and ending
|
||||||
|
with the branch location."
|
||||||
|
(interactive)
|
||||||
|
(let ((revnr)
|
||||||
|
(archive-location)
|
||||||
|
(diff-buffer)
|
||||||
|
(window-conf (current-window-configuration)))
|
||||||
|
(gnus-summary-select-article-buffer)
|
||||||
|
(split-window-vertically)
|
||||||
|
(goto-char (point-min))
|
||||||
|
;; Committed revision 129 to http://my-arch.org/branch1
|
||||||
|
(when (re-search-forward "Committed revision \\([0-9]+\\) to \\(.+\\)$" nil t)
|
||||||
|
(setq revnr (match-string-no-properties 1))
|
||||||
|
(setq archive-location (match-string-no-properties 2)))
|
||||||
|
(gnus-article-show-summary)
|
||||||
|
(if (and revnr archive-location)
|
||||||
|
(progn
|
||||||
|
(message "Viewing bzr revison: %s, location: %s" revnr archive-location)
|
||||||
|
;; bzr diff -r128..129 http://my-arch.org/branch1
|
||||||
|
;; Note: this command needs at least bzr v1.1
|
||||||
|
(setq diff-buffer
|
||||||
|
(bzr-delta `(bzr (revision (local "" ,(- (string-to-number revnr) 1))))
|
||||||
|
`(bzr (revision (local "" ,(string-to-number revnr))))
|
||||||
|
nil
|
||||||
|
archive-location))
|
||||||
|
(save-excursion
|
||||||
|
(set-buffer diff-buffer)
|
||||||
|
(dvc-buffer-push-previous-window-config window-conf)))
|
||||||
|
(message "No external bzr patch found in this article.")
|
||||||
|
(set-window-configuration window-conf))))
|
||||||
|
|
||||||
|
(defun bzr-gnus-article-merge-bundle (n)
|
||||||
|
"Merge MIME part N, as bzr merge bundle."
|
||||||
|
(interactive "p")
|
||||||
|
(unless current-prefix-arg
|
||||||
|
(setq n 2))
|
||||||
|
(gnus-article-part-wrapper n 'bzr-gnus-merge-bundle))
|
||||||
|
|
||||||
|
(defvar bzr-merge-bundle-mapping nil
|
||||||
|
"*Project in which bzr bundles should be applied.
|
||||||
|
|
||||||
|
An alist of rules to map email addresses to target directories.
|
||||||
|
|
||||||
|
This is used by the `bzr-gnus-merge-bundle' function.
|
||||||
|
Example setting: '((\"dvc-dev@gna.org\" \"~/work/bzr/dvc\"))"
|
||||||
|
)
|
||||||
|
;; e.g.: (setq bzr-merge-bundle-mapping '(("dvc-dev@gna.org" "~/work/bzr/dvc")))
|
||||||
|
(defun bzr-gnus-merge-bundle (handle)
|
||||||
|
"Merge a bzr merge bundle via gnus. HANDLE should be the handle of the part."
|
||||||
|
(let ((patch-file-name (concat (dvc-make-temp-name "gnus-bzr-merge-") ".patch"))
|
||||||
|
(window-conf (current-window-configuration))
|
||||||
|
(to-addr (message-fetch-field "To"))
|
||||||
|
(import-dir))
|
||||||
|
(gnus-summary-select-article-buffer)
|
||||||
|
(dvc-gnus-article-extract-log-message)
|
||||||
|
(mm-save-part-to-file handle patch-file-name)
|
||||||
|
|
||||||
|
(dolist (m bzr-merge-bundle-mapping)
|
||||||
|
(when (string-match (regexp-quote (car m)) to-addr)
|
||||||
|
(setq import-dir (dvc-uniquify-file-name (cadr m)))))
|
||||||
|
(delete-other-windows)
|
||||||
|
(dvc-buffer-push-previous-window-config)
|
||||||
|
(find-file patch-file-name)
|
||||||
|
(setq import-dir (dvc-read-directory-name "Merge bzr bundle to: " nil nil t import-dir))
|
||||||
|
(when import-dir
|
||||||
|
(let ((default-directory import-dir))
|
||||||
|
(bzr-merge-bundle patch-file-name)))
|
||||||
|
(delete-file patch-file-name)
|
||||||
|
(kill-buffer (current-buffer)) ;; the patch file
|
||||||
|
(set-window-configuration window-conf)
|
||||||
|
(when (and import-dir (y-or-n-p "Run bzr status in merged tree? "))
|
||||||
|
(let ((default-directory import-dir))
|
||||||
|
(bzr-status)
|
||||||
|
(delete-other-windows)))))
|
||||||
|
|
||||||
|
(defun bzr-gnus-article-pull-bundle-in-branch (n)
|
||||||
|
"Merge MIME part N, as bzr merge bundle."
|
||||||
|
(interactive "p")
|
||||||
|
(unless current-prefix-arg
|
||||||
|
(setq n 2))
|
||||||
|
(gnus-article-part-wrapper n 'bzr-gnus-pull-bundle-in-branch))
|
||||||
|
|
||||||
|
(defun bzr-gnus-pull-bundle-in-branch (handle)
|
||||||
|
"Merge a bzr merge bundle via gnus. HANDLE should be the handle of the part."
|
||||||
|
(let ((patch-file-name (concat (dvc-make-temp-name "gnus-bzr-pull-bundle-") ".patch"))
|
||||||
|
(window-conf (current-window-configuration))
|
||||||
|
(to-addr (message-fetch-field "To"))
|
||||||
|
(import-dir))
|
||||||
|
(gnus-summary-select-article-buffer)
|
||||||
|
(dvc-gnus-article-extract-log-message)
|
||||||
|
(mm-save-part-to-file handle patch-file-name)
|
||||||
|
(message "bzr-gnus-pull-bundle-in-branch: implementation not finished (saved patch to %s)" patch-file-name)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'bzr-gnus)
|
||||||
|
;;; bzr-gnus.el ends here
|
||||||
|
|
||||||
|
|
||||||
221
dvc/lisp/bzr-revision.el
Normal file
221
dvc/lisp/bzr-revision.el
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
;;; bzr-revision.el --- Management of revision lists in bzr
|
||||||
|
|
||||||
|
;; Copyright (C) 2006 - 2008 by all contributors
|
||||||
|
|
||||||
|
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
|
||||||
|
;; Contributions from:
|
||||||
|
;; Stefan Reichoer, <stefan@xsteve.at>
|
||||||
|
;; Keywords:
|
||||||
|
|
||||||
|
;; DVC 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.
|
||||||
|
|
||||||
|
;; DVC 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'dvc-revlist)
|
||||||
|
|
||||||
|
(eval-when-compile (require 'cl))
|
||||||
|
|
||||||
|
(defstruct (bzr-revision-st)
|
||||||
|
revno
|
||||||
|
message
|
||||||
|
creator
|
||||||
|
branch-nick
|
||||||
|
date
|
||||||
|
merges
|
||||||
|
)
|
||||||
|
|
||||||
|
;; bzr revision list
|
||||||
|
|
||||||
|
(defun bzr-revision-list-entry-patch-printer (elem)
|
||||||
|
"TODO"
|
||||||
|
(insert (if (dvc-revlist-entry-patch-marked elem)
|
||||||
|
(concat " " dvc-mark " ") " "))
|
||||||
|
(let ((struct (dvc-revlist-entry-patch-struct elem)))
|
||||||
|
(insert (dvc-face-add "revno: " 'dvc-header)
|
||||||
|
(dvc-face-add (int-to-string (or (bzr-revision-st-revno struct) -99))
|
||||||
|
'dvc-revision-name)
|
||||||
|
"\n")
|
||||||
|
(when dvc-revisions-shows-creator
|
||||||
|
(insert " " (dvc-face-add "committer: " 'dvc-header)
|
||||||
|
(or (bzr-revision-st-creator struct) "?") "\n"))
|
||||||
|
(when dvc-revisions-shows-date
|
||||||
|
(insert " " (dvc-face-add "timestamp: " 'dvc-header)
|
||||||
|
(or (bzr-revision-st-date struct) "?") "\n"))
|
||||||
|
(insert " " (dvc-face-add "branch nick: " 'dvc-header)
|
||||||
|
(or (bzr-revision-st-branch-nick struct) "?") "\n")
|
||||||
|
(when dvc-revisions-shows-summary
|
||||||
|
(insert " " (dvc-face-add "message: " 'dvc-header)
|
||||||
|
(or (bzr-revision-st-message struct) "?") "\n"))
|
||||||
|
))
|
||||||
|
|
||||||
|
;;; bzr log
|
||||||
|
(defun bzr-log-parse-remote (log-buffer location)
|
||||||
|
(bzr-log-parse log-buffer location t))
|
||||||
|
|
||||||
|
(defun bzr-missing-parse (log-buffer location)
|
||||||
|
"Parse the output of bzr missing."
|
||||||
|
(bzr-log-parse log-buffer location nil t))
|
||||||
|
|
||||||
|
(defun bzr-log-parse (log-buffer location &optional remote missing)
|
||||||
|
"Parse the output of bzr log."
|
||||||
|
;;(dvc-trace "location=%S" location)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(let ((root location)
|
||||||
|
(intro-string)
|
||||||
|
(brief (with-current-buffer log-buffer dvc-revlist-brief)))
|
||||||
|
(when missing ;; skip the first status output
|
||||||
|
(unless (re-search-forward "^------------------------------------------------------------$" nil t)
|
||||||
|
(message "No missing revisions: Branches are up to date.")
|
||||||
|
(goto-char (point-max)))
|
||||||
|
(setq intro-string (buffer-substring-no-properties (point-min) (point)))
|
||||||
|
(with-current-buffer log-buffer
|
||||||
|
(let ((buffer-read-only nil))
|
||||||
|
(insert intro-string))))
|
||||||
|
(while (> (point-max) (point))
|
||||||
|
(forward-line 1)
|
||||||
|
(let ((start (point))
|
||||||
|
(message-start-pos)
|
||||||
|
(message-end-pos)
|
||||||
|
(elem (make-bzr-revision-st)))
|
||||||
|
(or (and (re-search-forward
|
||||||
|
"^------------------------------------------------------------$"
|
||||||
|
nil t)
|
||||||
|
(progn (beginning-of-line)
|
||||||
|
t))
|
||||||
|
(goto-char (point-max)))
|
||||||
|
(save-restriction
|
||||||
|
(save-excursion
|
||||||
|
(narrow-to-region start (- (point) 1))
|
||||||
|
;;(dvc-trace "parsing %S" (buffer-string))
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (re-search-forward "^\\([a-z][a-z ]*[a-z]\\):\\( \\|\n\\)" nil t)
|
||||||
|
;;(dvc-trace "match-string=%S" (match-string 1))
|
||||||
|
(cond ((string= (match-string 1) "revno")
|
||||||
|
(setf (bzr-revision-st-revno elem)
|
||||||
|
(string-to-number
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
(point) (line-end-position)))))
|
||||||
|
((string= (match-string 1) "committer")
|
||||||
|
(setf (bzr-revision-st-creator elem)
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
(point) (line-end-position))))
|
||||||
|
((string= (match-string 1) "branch nick")
|
||||||
|
(setf (bzr-revision-st-branch-nick elem)
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
(point) (line-end-position))))
|
||||||
|
((string= (match-string 1) "timestamp")
|
||||||
|
(setf (bzr-revision-st-date elem)
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
(point) (line-end-position))))
|
||||||
|
((string= (match-string 1) "message")
|
||||||
|
;;(dvc-trace "found message")
|
||||||
|
(re-search-forward "^[ \t]*")
|
||||||
|
(setq message-start-pos (point))
|
||||||
|
(setq message-end-pos
|
||||||
|
(if brief
|
||||||
|
(line-end-position)
|
||||||
|
(if (re-search-forward "^--------" nil t) (point) (point-max))))
|
||||||
|
(setf (bzr-revision-st-message elem)
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
message-start-pos message-end-pos))
|
||||||
|
(goto-char (point-max)))
|
||||||
|
(t (dvc-trace "unmanaged field %S" (match-string 1))))
|
||||||
|
(forward-line 1)
|
||||||
|
(beginning-of-line))))
|
||||||
|
(forward-line 1)
|
||||||
|
(with-current-buffer log-buffer
|
||||||
|
(ewoc-enter-last
|
||||||
|
dvc-revlist-cookie
|
||||||
|
`(entry-patch
|
||||||
|
,(make-dvc-revlist-entry-patch
|
||||||
|
:dvc 'bzr
|
||||||
|
:struct elem
|
||||||
|
:rev-id `(bzr (revision
|
||||||
|
,(list (if remote 'remote 'local)
|
||||||
|
root (bzr-revision-st-revno
|
||||||
|
elem)))))))
|
||||||
|
(goto-char (point-min))
|
||||||
|
(dvc-revision-prev))))))
|
||||||
|
|
||||||
|
(defun bzr-log-refresh ()
|
||||||
|
"Refresh a log buffer."
|
||||||
|
(let ((cmd (remove
|
||||||
|
nil
|
||||||
|
(append
|
||||||
|
(list "log")
|
||||||
|
(if dvc-revlist-last-n
|
||||||
|
(list "-r" (format "last:%d.." dvc-revlist-last-n)))
|
||||||
|
(list dvc-revlist-path)))))
|
||||||
|
(dvc-build-revision-list
|
||||||
|
'bzr 'alog default-directory cmd 'bzr-log-parse
|
||||||
|
dvc-revlist-brief dvc-revlist-last-n dvc-revlist-path
|
||||||
|
'bzr-log-refresh))
|
||||||
|
(goto-char (point-min)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-log (path last-n)
|
||||||
|
"Run bzr log for PATH and show only the first line of the log message.
|
||||||
|
LAST-N revisions are shown (default dvc-log-last-n). Note that the
|
||||||
|
LAST-N restriction is applied first, so if both PATH and LAST-N are
|
||||||
|
specified, fewer than LAST-N revisions may be shown."
|
||||||
|
(interactive (list default-directory (if current-prefix-arg (prefix-numeric-value current-prefix-arg) dvc-log-last-n)))
|
||||||
|
(let ((default-directory (bzr-branch-root (or path default-directory)))
|
||||||
|
(dvc-revlist-path path)
|
||||||
|
(dvc-revlist-brief t)
|
||||||
|
(dvc-revlist-last-n last-n))
|
||||||
|
(bzr-log-refresh)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-log-remote (location)
|
||||||
|
"Run bzr log against a remote location."
|
||||||
|
(interactive (list (read-string "Location of the branch: ")))
|
||||||
|
(dvc-build-revision-list 'bzr 'remote-log location `("log" ,location)
|
||||||
|
'bzr-log-parse-remote t nil nil
|
||||||
|
(dvc-capturing-lambda ()
|
||||||
|
(bzr-log-remote (capture location))))
|
||||||
|
(goto-char (point-min)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-changelog (&optional path)
|
||||||
|
"Run bzr log and show the full log message."
|
||||||
|
(interactive (list default-directory))
|
||||||
|
(let ((default-directory (bzr-branch-root (or path default-directory))))
|
||||||
|
(dvc-build-revision-list 'bzr 'alog default-directory '("log") 'bzr-log-parse nil nil path
|
||||||
|
(dvc-capturing-lambda ()
|
||||||
|
(bzr-changelog (capture path))))
|
||||||
|
(goto-char (point-min))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-dvc-missing (&optional other)
|
||||||
|
"Run bzr missing."
|
||||||
|
(interactive "sBzr missing against other: ")
|
||||||
|
(when (string= other "")
|
||||||
|
(setq other nil))
|
||||||
|
;;(message "bzr-dvc-missing %S" other)
|
||||||
|
(dvc-build-revision-list 'bzr 'missing (bzr-tree-root)
|
||||||
|
`("missing" ,other)
|
||||||
|
'bzr-missing-parse
|
||||||
|
nil nil nil
|
||||||
|
(dvc-capturing-lambda ()
|
||||||
|
(bzr-dvc-missing (capture other))))
|
||||||
|
(goto-char (point-min)))
|
||||||
|
|
||||||
|
(provide 'bzr-revision)
|
||||||
|
;;; bzr-revision.el ends here
|
||||||
69
dvc/lisp/bzr-revlog.el
Normal file
69
dvc/lisp/bzr-revlog.el
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
;;; bzr-revlog.el --- Show a log entry for a bzr branch
|
||||||
|
|
||||||
|
;; Copyright (C) 2006 by all contributors
|
||||||
|
|
||||||
|
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
|
||||||
|
;; Keywords:
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'dvc-core)
|
||||||
|
(require 'dvc-revlog)
|
||||||
|
|
||||||
|
(defun bzr-revlog-local (revno &optional path)
|
||||||
|
"Quick and dirty prototype of function using dvc-revlog-mode."
|
||||||
|
(interactive "MRevno: ")
|
||||||
|
(let ((default-directory (or path default-directory)))
|
||||||
|
(dvc-run-dvc-async 'bzr `("log"
|
||||||
|
"-r"
|
||||||
|
,revno)
|
||||||
|
:finished
|
||||||
|
(dvc-capturing-lambda (output error status
|
||||||
|
arguments)
|
||||||
|
(dvc-switch-to-buffer
|
||||||
|
(dvc-revlog-show-revision 'bzr output
|
||||||
|
(capture revno)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun bzr-revlog-get-revision (rev-id)
|
||||||
|
(let ((data (car (dvc-revision-get-data rev-id))))
|
||||||
|
(dvc-trace "dd=%S" default-directory)
|
||||||
|
(dvc-trace "data=%S" data)
|
||||||
|
(cond ((eq (car data) 'local)
|
||||||
|
(let ((default-directory (nth 1 data)))
|
||||||
|
(dvc-run-dvc-sync 'bzr
|
||||||
|
`("log" "--revision"
|
||||||
|
,(int-to-string (nth 2 data)))
|
||||||
|
:finished 'dvc-output-buffer-handler)))
|
||||||
|
((eq (car data) 'remote)
|
||||||
|
(dvc-run-dvc-sync 'bzr
|
||||||
|
`("log" "--revision"
|
||||||
|
,(concat "revno:"
|
||||||
|
(int-to-string (nth 2 data))
|
||||||
|
":"
|
||||||
|
(nth 1 data)))
|
||||||
|
:finished 'dvc-output-buffer-handler))
|
||||||
|
(t (error (format "Revision ID %S not implemented" rev-id))))))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'bzr-revlog)
|
||||||
|
;;; bzr-revlog.el ends here
|
||||||
272
dvc/lisp/bzr-submit.el
Normal file
272
dvc/lisp/bzr-submit.el
Normal file
@ -0,0 +1,272 @@
|
|||||||
|
;;; bzr-submit.el --- Patch submission support for Bazaar 2 in DVC
|
||||||
|
|
||||||
|
;; Copyright (C) 2006 by all contributors
|
||||||
|
|
||||||
|
;; Author: Michael Olson <mwolson@gnu.org>
|
||||||
|
|
||||||
|
;; Keywords: tools, vc
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
;; Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'bzr-core)
|
||||||
|
(require 'bzr)
|
||||||
|
(require 'diff-mode)
|
||||||
|
|
||||||
|
(defgroup dvc-bzr-submit nil
|
||||||
|
"Submitting and applying patches via email for bzr."
|
||||||
|
:group 'dvc
|
||||||
|
:prefix "bzr-submit-")
|
||||||
|
|
||||||
|
(defcustom bzr-apply-patch-mapping nil
|
||||||
|
"*Project in which patches should be applied.
|
||||||
|
|
||||||
|
An alist of rules to map branch nicknames to target directories.
|
||||||
|
|
||||||
|
This is used by the `bzr-gnus-apply-patch' function.
|
||||||
|
Example setting: '((\"dvc-dev-bzr\" \"~/work/bzr/dvc\"))"
|
||||||
|
:type '(repeat (list :tag "Rule"
|
||||||
|
(string :tag "Branch nickname")
|
||||||
|
(string :tag "Target directory")))
|
||||||
|
:group 'dvc-bzr-submit)
|
||||||
|
|
||||||
|
(defcustom bzr-submit-patch-mapping
|
||||||
|
'(("dvc-dev-bzr" ("dvc-dev@gna.org" "dvc")))
|
||||||
|
"*Email addresses that should be used to send patches.
|
||||||
|
|
||||||
|
An alist of rules to map branch nicknames to target email
|
||||||
|
addresses and the base name to use in the attached patch.
|
||||||
|
|
||||||
|
This is used by the `bzr-submit-patch' function."
|
||||||
|
:type '(repeat (list :tag "Rule"
|
||||||
|
(string :tag "Branch nickname")
|
||||||
|
(list :tag "Target"
|
||||||
|
(string :tag "Email address")
|
||||||
|
(string :tag "Base name of patch"))))
|
||||||
|
:group 'dvc-bzr-submit)
|
||||||
|
|
||||||
|
(defcustom bzr-patch-sent-action 'keep-both
|
||||||
|
"*What shall be done, after sending a patch via mail.
|
||||||
|
The possible values are 'keep-patch, 'keep-changes, 'keep-both, 'keep-none."
|
||||||
|
:type '(choice (const keep-patch)
|
||||||
|
(const keep-changes)
|
||||||
|
(const keep-both)
|
||||||
|
(const keep-none))
|
||||||
|
:group 'dvc-bzr-submit)
|
||||||
|
|
||||||
|
(defvar bzr-patch-data nil)
|
||||||
|
|
||||||
|
(defun bzr-changed-files (&optional include-added)
|
||||||
|
"Retrieve a list of files in the current repo that have changed.
|
||||||
|
If INCLUDE-ADDED is specified, include files that are newly-added."
|
||||||
|
(let ((default-directory (bzr-tree-root))
|
||||||
|
(files nil))
|
||||||
|
(dvc-run-dvc-sync
|
||||||
|
'bzr (list "status")
|
||||||
|
:finished (dvc-capturing-lambda
|
||||||
|
(output error status arguments)
|
||||||
|
(set-buffer output)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(when (and include-added
|
||||||
|
(re-search-forward "^added:" nil t))
|
||||||
|
(forward-line 1)
|
||||||
|
(while (looking-at "^ \\([^ ].*\\)$")
|
||||||
|
(setq files (cons (match-string 1) files))
|
||||||
|
(forward-line 1)))
|
||||||
|
(goto-char (point-min))
|
||||||
|
(when (re-search-forward "^modified:" nil t)
|
||||||
|
(forward-line 1)
|
||||||
|
(while (looking-at "^ \\([^ ].*\\)$")
|
||||||
|
(setq files (cons (match-string 1) files))
|
||||||
|
(forward-line 1))))
|
||||||
|
:error (lambda (output error status arguments)
|
||||||
|
(error "An error occurred")))
|
||||||
|
files))
|
||||||
|
|
||||||
|
(defun dvc-read-several-from-list (prompt items)
|
||||||
|
"Read several string ITEMS from list, using PROMPT."
|
||||||
|
(let ((chosen nil)
|
||||||
|
(table (mapcar #'list items))
|
||||||
|
item)
|
||||||
|
(while (progn
|
||||||
|
(and table
|
||||||
|
(setq item (dvc-completing-read prompt table nil t))
|
||||||
|
(stringp item)
|
||||||
|
(not (string= item ""))))
|
||||||
|
(setq chosen (cons item chosen))
|
||||||
|
(setq table (delete (list item) table)))
|
||||||
|
chosen))
|
||||||
|
|
||||||
|
(defun bzr-show-diff-from-file (file)
|
||||||
|
"Display the diff contained in FILE with DVC font-locking."
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert-file-contents-literally file)
|
||||||
|
(let ((buffer (dvc-prepare-changes-buffer nil nil 'diff nil 'bzr))
|
||||||
|
(output (current-buffer)))
|
||||||
|
(when dvc-switch-to-buffer-first
|
||||||
|
(dvc-switch-to-buffer buffer))
|
||||||
|
;; Since we did not search for a tree root, some things may not work from the diff buffer.
|
||||||
|
(dvc-show-changes-buffer output 'bzr-parse-diff buffer))))
|
||||||
|
|
||||||
|
(defun bzr-changes-save-as-patch (file-name
|
||||||
|
&optional included-files prompt-files)
|
||||||
|
"Run \"bzr diff\" to create a .diff file.
|
||||||
|
The changes are stored in the patch file 'FILE-NAME.diff'.
|
||||||
|
INCLUDED-FILES lists the files whose changes will be included. If
|
||||||
|
this is nil, include changes to all files.
|
||||||
|
PROMPT-FILES indicates whether to prompt for the files to include in
|
||||||
|
the patch. This is only heeded when the function is not called
|
||||||
|
interactively."
|
||||||
|
(interactive
|
||||||
|
(list (read-file-name (concat "File to store the patch in "
|
||||||
|
"(without an extension): ")
|
||||||
|
nil "")
|
||||||
|
(dvc-read-several-from-list
|
||||||
|
"Files to include (all by default, RET ends): "
|
||||||
|
(bzr-changed-files t))))
|
||||||
|
(when (and (not (interactive-p)) prompt-files)
|
||||||
|
(setq included-files (dvc-read-several-from-list
|
||||||
|
"Files to include (all by default, RET ends): "
|
||||||
|
(bzr-changed-files t))))
|
||||||
|
(let ((patch-file-name (concat (expand-file-name file-name) ".diff"))
|
||||||
|
(default-directory (bzr-tree-root))
|
||||||
|
(continue t))
|
||||||
|
(dvc-run-dvc-sync
|
||||||
|
'bzr (nconc (list "diff") included-files)
|
||||||
|
:finished (lambda (output error status arguments)
|
||||||
|
(message "No changes occurred"))
|
||||||
|
:error (dvc-capturing-lambda
|
||||||
|
(output error status arguments)
|
||||||
|
(set-buffer output)
|
||||||
|
(write-file patch-file-name)))))
|
||||||
|
|
||||||
|
(defun bzr-undo-diff-from-file (file root-dir)
|
||||||
|
"Undo the changes contained in FILE to the bzr project whose
|
||||||
|
root is ROOT-DIR."
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert-file-contents-literally file)
|
||||||
|
(diff-mode)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(let ((default-directory root-dir)
|
||||||
|
(diff-advance-after-apply-hunk nil))
|
||||||
|
(while (re-search-forward diff-file-header-re nil t)
|
||||||
|
(condition-case nil
|
||||||
|
(while (progn (diff-apply-hunk t)
|
||||||
|
(re-search-forward diff-hunk-header-re nil t)))
|
||||||
|
(error nil))))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-prepare-patch-submission (bzr-tree-root
|
||||||
|
patch-base-name email version-string
|
||||||
|
&optional description subject
|
||||||
|
prompt-files)
|
||||||
|
"Submit a patch to a bzr working copy (at BZR-TREE-ROOT) via email.
|
||||||
|
With this feature it is not necessary to branch a bzr archive.
|
||||||
|
You simply edit your checked out copy from your project and call this function.
|
||||||
|
The function will create a patch as a .diff file (based on PATCH-BASE-NAME)
|
||||||
|
and send it to the given email address EMAIL.
|
||||||
|
VERSION-STRING should indicate the version of bzr that the patch applies to.
|
||||||
|
DESCRIPTION is a brief descsription of the patch.
|
||||||
|
SUBJECT is the subject for the email message.
|
||||||
|
PROMPT-FILES indicates whether to prompt for the files to include in
|
||||||
|
the patch.
|
||||||
|
For an example, how to use this function see: `bzr-submit-patch'."
|
||||||
|
(interactive)
|
||||||
|
|
||||||
|
;; create the patch
|
||||||
|
(let* ((default-directory bzr-tree-root)
|
||||||
|
(patch-directory (expand-file-name ".tmp-dvc/" bzr-tree-root))
|
||||||
|
(patch-full-base-name (expand-file-name patch-base-name
|
||||||
|
patch-directory))
|
||||||
|
(patch-full-name (concat patch-full-base-name ".diff")))
|
||||||
|
(unless (file-exists-p patch-directory)
|
||||||
|
(make-directory patch-directory))
|
||||||
|
(bzr-changes-save-as-patch patch-full-base-name nil prompt-files)
|
||||||
|
|
||||||
|
(require 'reporter)
|
||||||
|
(delete-other-windows)
|
||||||
|
(reporter-submit-bug-report email nil nil nil nil description)
|
||||||
|
|
||||||
|
(set (make-local-variable 'bzr-patch-data)
|
||||||
|
(list patch-full-name bzr-tree-root patch-full-name))
|
||||||
|
(insert "[VERSION] " version-string "\n\n")
|
||||||
|
(insert bzr-command-version)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(mml-attach-file patch-full-name "text/x-patch")
|
||||||
|
(bzr-show-diff-from-file patch-full-name)
|
||||||
|
(other-window 1)
|
||||||
|
|
||||||
|
(goto-char (point-min))
|
||||||
|
(mail-position-on-field "Subject")
|
||||||
|
(insert (or subject "[PATCH] "))))
|
||||||
|
|
||||||
|
(defun bzr-submit-patch-done ()
|
||||||
|
"Clean up after sending a patch via mail.
|
||||||
|
That function is usually called via `message-sent-hook'. Its
|
||||||
|
purpose is to revert the sent changes or to delete sent changeset
|
||||||
|
patch \(see: `bzr-patch-sent-action')."
|
||||||
|
(when bzr-patch-data
|
||||||
|
(when (memq bzr-patch-sent-action '(keep-patch keep-none))
|
||||||
|
(message "Reverting the sent changes in %s" (car bzr-patch-data))
|
||||||
|
(bzr-undo-diff-from-file (car bzr-patch-data) (cadr bzr-patch-data)))
|
||||||
|
(when (memq bzr-patch-sent-action '(keep-changes keep-none))
|
||||||
|
(message "Deleting the sent patch %s" (car (cddr bzr-patch-data)))
|
||||||
|
(delete-file (car (cddr bzr-patch-data))))
|
||||||
|
(when (memq bzr-patch-sent-action '(keep-both))
|
||||||
|
(message "Keeping the sent changes and the sent patch %s"
|
||||||
|
(car (cddr bzr-patch-data))))))
|
||||||
|
(add-hook 'message-sent-hook 'bzr-submit-patch-done)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun bzr-submit-patch ()
|
||||||
|
"Submit a patch for the current bzr project.
|
||||||
|
With this feature it is not necessary to tag an arch archive.
|
||||||
|
You simply edit your checked out copy and call this function.
|
||||||
|
The function will create a patch as *.tar.gz file and prepare a buffer to
|
||||||
|
send the patch via email.
|
||||||
|
|
||||||
|
The variable `bzr-submit-patch-mapping' allows to specify the
|
||||||
|
target email address and the base name of the sent tarball.
|
||||||
|
|
||||||
|
After the user has sent the message, `bzr-submit-patch-done' is called."
|
||||||
|
(interactive)
|
||||||
|
(if (string= (dvc-run-dvc-sync 'bzr '("status" "-V")
|
||||||
|
:finished 'dvc-output-buffer-handler)
|
||||||
|
"")
|
||||||
|
(message "No changes in this bzr working copy - please apply your patch locally and submit it.")
|
||||||
|
(bzr-command-version)
|
||||||
|
(let* ((tree-id (bzr-tree-id))
|
||||||
|
(submit-patch-info (cadr (assoc tree-id
|
||||||
|
bzr-submit-patch-mapping)))
|
||||||
|
(mail-address (or (nth 0 submit-patch-info) ""))
|
||||||
|
(patch-base-file-name (or (nth 1 submit-patch-info) "bzr")))
|
||||||
|
(bzr-prepare-patch-submission
|
||||||
|
(dvc-uniquify-file-name (bzr-tree-root))
|
||||||
|
(concat patch-base-file-name "-patch-"
|
||||||
|
(format-time-string "%Y-%m-%d_%H-%M-%S" (current-time)))
|
||||||
|
mail-address
|
||||||
|
tree-id
|
||||||
|
dvc-patch-email-message-body-template
|
||||||
|
nil
|
||||||
|
(interactive-p)))))
|
||||||
|
|
||||||
|
(provide 'bzr-submit)
|
||||||
|
;;; bzr-submit.el ends here
|
||||||
1363
dvc/lisp/bzr.el
Normal file
1363
dvc/lisp/bzr.el
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user