Mercurial > emacs
changeset 52423:d5ad9d67bb1a
New file.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Wed, 03 Sep 2003 23:01:05 +0000 |
parents | 11b0aed20b26 |
children | 700abb70b17f |
files | lispintro/makefile.w32-in lispref/makefile.w32-in man/makefile.w32-in nt/envadd.bat |
diffstat | 4 files changed, 580 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lispintro/makefile.w32-in Wed Sep 03 23:01:05 2003 +0000 @@ -0,0 +1,71 @@ +#### Makefile for the Emacs Lisp Introduction manual + +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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. + +# GNU Emacs 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. + +srcdir = . + +infodir = $(srcdir)/../info + +INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi +# The file name eintr must fit within 5 characters, to allow for +# -NN extensions to fit into DOS 8+3 limits without clashing +INFO_TARGETS = $(infodir)/eintr +DVI_TARGETS = emacs-lisp-intro.dvi + +MAKEINFO = makeinfo +INSTALL_INFO = install-info +TEXI2DVI = texi2dvi +DVIPS = dvips +ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ + "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C + +.SUFFIXES: .dvi .ps .texi + +info: $(INFO_TARGETS) + $(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) + +dvi: $(DVI_TARGETS) + +$(infodir)/eintr: $(INFO_SOURCES) + $(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi + +emacs-lisp-intro.dvi: $(INFO_SOURCES) + $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi + +emacs-lisp-intro.html: $(INFO_SOURCES) + $(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi + +.dvi.ps: + $(DVIPS) $< -o $@ + +mostlyclean: + rm -f *.log *.cp *.fn *.ky *.pg *.vr *.tp + +clean: mostlyclean + rm -f *.dvi $(infodir)/eintr* + +distclean: clean + +maintainer-clean: distclean + rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lispref/makefile.w32-in Wed Sep 03 23:01:05 2003 +0000 @@ -0,0 +1,138 @@ +# Makefile for the GNU Emacs Lisp Reference Manual. + +# Copyright (C) 1990,1991,1992,1993,1994,1995,1996,1998,1999,2000,2001 +# Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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. + +# GNU Emacs 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. + +# Standard configure variables. +srcdir = . + +infodir = $(srcdir)/../info + +# Redefine `TEX' if `tex' does not invoke plain TeX. For example: +# TEX=platex +TEX=tex +INSTALL_INFO = install-info +MAKEINFO = makeinfo + +# The environment variable and its value to add $(srcdir) to the path +# searched for TeX input files. +texinputdir = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" /C + +# The name of the manual: +VERSION=2.9 +manual = elisp-manual-21-$(VERSION) + +# Uncomment this line for permuted index. +# permuted_index = 1 + +# List of all the texinfo files in the manual: + +srcs = \ + $(srcdir)/abbrevs.texi \ + $(srcdir)/advice.texi \ + $(srcdir)/anti.texi \ + $(srcdir)/back.texi \ + $(srcdir)/backups.texi \ + $(srcdir)/buffers.texi \ + $(srcdir)/calendar.texi \ + $(srcdir)/commands.texi \ + $(srcdir)/compile.texi \ + $(srcdir)/control.texi \ + $(srcdir)/customize.texi \ + $(srcdir)/debugging.texi \ + $(srcdir)/display.texi \ + $(srcdir)/edebug.texi \ + $(srcdir)/elisp.texi \ + $(srcdir)/errors.texi \ + $(srcdir)/eval.texi \ + $(srcdir)/files.texi \ + $(srcdir)/frames.texi \ + $(srcdir)/functions.texi \ + $(srcdir)/hash.texi \ + $(srcdir)/help.texi \ + $(srcdir)/hooks.texi \ + $(srcdir)/internals.texi \ + $(srcdir)/intro.texi \ + $(srcdir)/keymaps.texi \ + $(srcdir)/lists.texi \ + $(srcdir)/loading.texi \ + $(srcdir)/locals.texi \ + $(srcdir)/macros.texi \ + $(srcdir)/maps.texi \ + $(srcdir)/markers.texi \ + $(srcdir)/minibuf.texi \ + $(srcdir)/modes.texi \ + $(srcdir)/nonascii.texi \ + $(srcdir)/numbers.texi \ + $(srcdir)/objects.texi \ + $(srcdir)/os.texi \ + $(srcdir)/positions.texi \ + $(srcdir)/processes.texi \ + $(srcdir)/searching.texi \ + $(srcdir)/sequences.texi \ + $(srcdir)/streams.texi \ + $(srcdir)/strings.texi \ + $(srcdir)/symbols.texi \ + $(srcdir)/syntax.texi \ + $(srcdir)/text.texi \ + $(srcdir)/tips.texi \ + $(srcdir)/variables.texi \ + $(srcdir)/windows.texi \ + $(srcdir)/index.unperm \ + $(srcdir)/index.perm \ + $(srcdir)/gpl.texi \ + $(srcdir)/doclicense.texi + + +.PHONY: clean + +# The info file is named `elisp'. +info: $(infodir)/elisp + $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp + +$(infodir)/elisp: $(srcs) index.texi + $(MAKEINFO) -I. -I$(srcdir) $(srcdir)/elisp.texi -o $(infodir)/elisp + +elisp.dvi: $(srcs) index.texi +# Avoid losing old contents of aux file entirely. + -ren elisp.aux elisp.oaux +# First shot to define xrefs. + $(texinputdir) $(TEX) $(srcdir)/elisp.texi + if not a$(permuted_index) == a sh $(srcdir)/permute-index + if not a$(permuted_index) == a ren permuted.fns elisp.fns + if not a$(permuted_index) == a texindex elisp.tp + if a$(permuted_index) == a texindex elisp.?? + $(texinputdir) $(TEX) $(srcdir)/elisp.texi + +index.texi: + if a$(permuted_index) == a cp $(srcdir)/index.unperm index.texi + if not a$(permuted_index) == a cp $(srcdir)/index.perm index.texi + +clean: + rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \ + *.vr *.vrs *.pg *.pgs *.ky *.kys + rm -f make.out core + rm -f index.texi + rm -f $(infodir)/elisp* + +distclean: clean + +maintainer-clean: clean + rm -f elisp elisp-* elisp.dvi elisp.oaux
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/makefile.w32-in Wed Sep 03 23:01:05 2003 +0000 @@ -0,0 +1,327 @@ +#### Makefile for the Emacs Manual and other documentation. + +# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs 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. + +# GNU Emacs 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. + +# Where to find the source code. The source code for Emacs's C kernel is +# expected to be in $(srcdir)/src, and the source code for Emacs's +# utility programs is expected to be in $(srcdir)/lib-src. This is +# set by the configure script's `--srcdir' option. +srcdir=. + +infodir = $(srcdir)/../info + +# The makeinfo program is part of the Texinfo distribution. +MAKEINFO = makeinfo +MULTI_INSTALL_INFO = $(srcdir)\..\nt\multi-install-info.bat +INFO_TARGETS = $(infodir)/emacs $(infodir)/ccmode \ + $(infodir)/cl $(infodir)/dired-x \ + $(infodir)/ediff $(infodir)/forms \ + $(infodir)/gnus $(infodir)/info \ + $(infodir)/message $(infodir)/mh-e \ + $(infodir)/reftex $(infodir)/sc \ + $(infodir)/vip $(infodir)/viper \ + $(infodir)/widget $(infodir)/efaq \ + $(infodir)/ada-mode $(infodir)/autotype \ + $(infodir)/calc $(infodir)/idlwave \ + $(infodir)/eudc $(infodir)/ebrowse \ + $(infodir)/pcl-cvs $(infodir)/woman \ + $(infodir)/emacs-mime $(infodir)/eshell \ + $(infodir)/speedbar $(infodir)/tramp \ + $(infodir)/ses $(infodir)/smtpmail +DVI_TARGETS = emacs.dvi calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \ + ediff.dvi forms.dvi gnus.dvi message.dvi mh-e.dvi \ + reftex.dvi sc.dvi vip.dvi viper.dvi widget.dvi faq.dvi \ + ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \ + pcl-cvs.dvi woman.dvi emacs-mime.dvi eshell.dvi \ + speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi +INFOSOURCES = info.texi + +# The following rule does not work with all versions of `make'. +.SUFFIXES: .texi .dvi +.texi.dvi: + texi2dvi $< + +TEXI2DVI = texi2dvi +ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ + "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C + +EMACSSOURCES= \ + $(srcdir)/emacs.texi \ + $(srcdir)/doclicense.texi \ + $(srcdir)/screen.texi \ + $(srcdir)/commands.texi \ + $(srcdir)/entering.texi \ + $(srcdir)/basic.texi \ + $(srcdir)/mini.texi \ + $(srcdir)/m-x.texi \ + $(srcdir)/help.texi \ + $(srcdir)/mark.texi \ + $(srcdir)/killing.texi \ + $(srcdir)/regs.texi \ + $(srcdir)/display.texi \ + $(srcdir)/search.texi \ + $(srcdir)/fixit.texi \ + $(srcdir)/files.texi \ + $(srcdir)/buffers.texi \ + $(srcdir)/windows.texi \ + $(srcdir)/frames.texi \ + $(srcdir)/mule.texi \ + $(srcdir)/major.texi \ + $(srcdir)/indent.texi \ + $(srcdir)/text.texi \ + $(srcdir)/programs.texi \ + $(srcdir)/building.texi \ + $(srcdir)/maintaining.texi \ + $(srcdir)/abbrevs.texi \ + $(srcdir)/picture.texi \ + $(srcdir)/sending.texi \ + $(srcdir)/rmail.texi \ + $(srcdir)/dired.texi \ + $(srcdir)/calendar.texi \ + $(srcdir)/misc.texi \ + $(srcdir)/custom.texi \ + $(srcdir)/trouble.texi \ + $(srcdir)/cmdargs.texi \ + $(srcdir)/xresources.texi \ + $(srcdir)/anti.texi \ + $(srcdir)/macos.texi \ + $(srcdir)/msdog.texi \ + $(srcdir)/gnu.texi \ + $(srcdir)/glossary.texi \ + $(srcdir)/ack.texi \ + $(srcdir)/kmacro.texi + +info: $(INFO_TARGETS) + $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) + +dvi: $(DVI_TARGETS) + +# Note that all the Info targets build the Info files +# in srcdir. There is no provision for Info files +# to exist in the build directory. +# In a distribution of Emacs, the Info files should be up to date. + +# The following target uses an explicit -o switch to work around +# the @setfilename directive in info.texi, which is required for +# the Texinfo distribution. + +$(infodir)/info: $(INFOSOURCES) + $(MAKEINFO) --no-split info.texi -o $@ + +info.dvi: $(INFOSOURCES) + $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi + +$(infodir)/emacs: $(EMACSSOURCES) + $(MAKEINFO) emacs.texi + +emacs.dvi: $(EMACSSOURCES) + $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi + +# This target is here so you could easily get the list of the *.texi +# files which belong to the Emacs manual (as opposed to the separate +# manuals for CL, CC Mode, Ebrowse, etc.). With this target, you can +# say things like "grep foo `make emacsman`". +emacsman: + @echo $(EMACSSOURCES) + +$(infodir)/ccmode: cc-mode.texi + $(MAKEINFO) cc-mode.texi +cc-mode.dvi: cc-mode.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi + +$(infodir)/ada-mode: ada-mode.texi + $(MAKEINFO) ada-mode.texi +ada-mode.dvi: ada-mode.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi + +$(infodir)/pcl-cvs: pcl-cvs.texi + $(MAKEINFO) pcl-cvs.texi +pcl-cvs.dvi: pcl-cvs.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi + +$(infodir)/eshell: eshell.texi + $(MAKEINFO) eshell.texi +eshell.dvi: eshell.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi + +$(infodir)/cl: cl.texi + $(MAKEINFO) cl.texi +cl.dvi: cl.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi + +$(infodir)/dired-x: dired-x.texi + $(MAKEINFO) dired-x.texi +dired-x.dvi: dired-x.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi + +$(infodir)/ediff: ediff.texi + $(MAKEINFO) ediff.texi +ediff.dvi: ediff.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi + +$(infodir)/forms: forms.texi + $(MAKEINFO) forms.texi +forms.dvi: forms.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi + +$(infodir)/gnus: gnus.texi + $(MAKEINFO) gnus.texi +gnus.dvi: gnus.texi + sed -e '/@iflatex/,/@end iflatex/d' $(srcdir)/gnus.texi > gnustmp.texi + $(ENVADD) $(TEXI2DVI) gnustmp.texi + cp gnustmp.dvi $*.dvi + rm gnustmp.* + +$(infodir)/message: message.texi + $(MAKEINFO) message.texi +message.dvi: message.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi + +$(infodir)/mh-e: mh-e.texi + $(MAKEINFO) mh-e.texi +mh-e.dvi: mh-e.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi + +$(infodir)/reftex: reftex.texi + $(MAKEINFO) reftex.texi +reftex.dvi: reftex.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi + +$(infodir)/sc: sc.texi + $(MAKEINFO) sc.texi +sc.dvi: sc.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi + +$(infodir)/vip: vip.texi + $(MAKEINFO) vip.texi +vip.dvi: vip.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi + +$(infodir)/viper: viper.texi + $(MAKEINFO) viper.texi +viper.dvi: viper.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi + +$(infodir)/widget: widget.texi + $(MAKEINFO) widget.texi +widget.dvi: widget.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi + +$(infodir)/efaq: faq.texi + $(MAKEINFO) faq.texi +faq.dvi: faq.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi + +../etc/GNU: gnu1.texi gnu.texi + $(MAKEINFO) --no-headers -o ../etc/GNU gnu1.texi + +$(infodir)/autotype: autotype.texi + $(MAKEINFO) autotype.texi +autotype.dvi: autotype.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi + +$(infodir)/calc: calc.texi + $(MAKEINFO) calc.texi + +calc.dvi: calc.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi + +# This is produced with --no-split to avoid making files whose +# names clash on DOS 8+3 filesystems +$(infodir)/idlwave: idlwave.texi + $(MAKEINFO) --no-split idlwave.texi +idlwave.dvi: idlwave.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi + +$(infodir)/eudc: eudc.texi + $(MAKEINFO) eudc.texi +eudc.dvi: eudc.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi + +$(infodir)/ebrowse: ebrowse.texi + $(MAKEINFO) ebrowse.texi +ebrowse.dvi: ebrowse.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi + +$(infodir)/woman: woman.texi + $(MAKEINFO) woman.texi +woman.dvi: woman.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi + +$(infodir)/speedbar: speedbar.texi + $(MAKEINFO) speedbar.texi +speedbar.dvi: speedbar.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi + +$(infodir)/emacs-mime: emacs-mime.texi + $(MAKEINFO) emacs-mime.texi +emacs-mime.dvi: emacs-mime.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi + +$(infodir)/tramp: tramp.texi + $(MAKEINFO) tramp.texi +tramp.dvi: tramp.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi + +$(infodir)/ses: ses.texi + $(MAKEINFO) ses.texi +ses.dvi: ses.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi + +$(infodir)/smtpmail: smtpmail.texi + $(MAKEINFO) smtpmail.texi +smtpmail.dvi: smtpmail.texi + $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi + +mostlyclean: + rm -f *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.* + +clean: mostlyclean + rm -f *.dvi + rm -f $(infodir)/emacs* $(infodir)/ccmode* \ + $(infodir)/cl* $(infodir)/dired-x* \ + $(infodir)/ediff* $(infodir)/forms* \ + $(infodir)/gnus* $(infodir)/info* \ + $(infodir)/message* $(infodir)/mh-e* \ + $(infodir)/reftex* $(infodir)/sc* \ + $(infodir)/vip* $(infodir)/viper* \ + $(infodir)/widget* $(infodir)/efaq* \ + $(infodir)/ada-mode* $(infodir)/autotype* \ + $(infodir)/calc* $(infodir)/idlwave* \ + $(infodir)/eudc* $(infodir)/ebrowse* \ + $(infodir)/pcl-cvs* $(infodir)/woman* \ + $(infodir)/emacs-mime* $(infodir)/eshell* \ + $(infodir)/speedbar* $(infodir)/tramp* \ + $(infodir)/ses* $(infodir)/smtpmail* + +distclean: clean + +maintainer-clean: distclean + rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc +# Don't delete these, because they are outside the current directory. +# for file in $(INFO_TARGETS); do rm -f $${file}*; done + + +# Formerly this directory had texindex.c and getopt.c in it +# and this makefile built them to make texindex. +# That caused trouble because this is run entirely in the source directory. +# Since we expect to get texi2dvi from elsewhere, +# it is ok to expect texindex from elsewhere also.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nt/envadd.bat Wed Sep 03 23:01:05 2003 +0000 @@ -0,0 +1,44 @@ +rem Hack to change/add environment variables in the makefiles for the +rem Windows platform. +rem +rem Copyright (c) 1993-2000 Free Software Foundation, Inc. +rem +rem This file is part of GNU Emacs. +rem +rem GNU Emacs is free software; you can redistribute it and/or modify +rem it under the terms of the GNU General Public License as published by +rem the Free Software Foundation; either version 2, or (at your option) +rem any later version. +rem +rem GNU Emacs is distributed in the hope that it will be useful, +rem but WITHOUT ANY WARRANTY; without even the implied warranty of +rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +rem GNU General Public License for more details. +rem +rem You should have received a copy of the GNU General Public License +rem along with GNU Emacs; see the file COPYING. If not, write to +rem the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +rem Boston, MA 02111-1307, USA. +rem +rem +rem Usage: +rem envadd "ENV1=VAL1" "ENV2=VAL2" ... /C <command line> +rem +rem The "/C" switch marks the end of environment variables, and the +rem beginning of the command line. +rem +rem By Peter 'Luna' Runestig <peter@runestig.com> 2003 + +:Loop +if .%1% == ./C goto EndLoop +rem just to avoid an endless loop: +if .%1% == . goto EndLoop +set %1 +shift +goto Loop +:EndLoop + +rem Eat the "/C" +shift +rem Now, run the command line +%1 %2 %3 %4 %5 %6 %7 %8 %9