Mercurial > hg > octave-lyh
annotate doc/interpreter/contrib.txi @ 10599:d0e0bb2ebebb
Remove tabs in .txi files causing problems with pdf formatting.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sun, 02 May 2010 21:19:55 -0700 |
parents | 66fdc831c580 |
children | 3140cb7a05a1 |
rev | line source |
---|---|
8920 | 1 @c Copyright (C) 2008, 2009 Jaroslav Hajek |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
2 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
3 @c This file is part of Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
4 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
5 @c Octave is free software; you can redistribute it and/or modify it |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
6 @c under the terms of the GNU General Public License as published by the |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
7 @c Free Software Foundation; either version 3 of the License, or (at |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
8 @c your option) any later version. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
9 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
13 @c for more details. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
14 @c |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
15 @c You should have received a copy of the GNU General Public License |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
16 @c along with Octave; see the file COPYING. If not, see |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
17 @c <http://www.gnu.org/licenses/>. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
18 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
19 @node Contributing Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
20 @appendix Contributing Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
21 @cindex coding standards |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
22 @cindex Octave development |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
23 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
24 This chapter is dedicated to those who wish to contribute code to Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
25 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
26 @menu |
9032
349616d9c38e
Cleanup top-level documentation menu in octave.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
27 * How to Contribute:: |
349616d9c38e
Cleanup top-level documentation menu in octave.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
28 * General Guidelines:: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
29 * Octave Sources (m-files):: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
30 * C++ Sources:: |
10599
d0e0bb2ebebb
Remove tabs in .txi files causing problems with pdf formatting.
Rik <octave@nomad.inbox5.com>
parents:
9322
diff
changeset
|
31 * Other Sources:: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
32 @end menu |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
33 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
34 @node How to Contribute |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
35 @section How to Contribute |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
36 The mailing list for Octave development discussion and sending contributions is |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
37 @email{maintainers@@octave.org}. This concerns the development of Octave core, |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
38 i.e., code that goes to Octave directly. You may consider developing and |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
39 publishing a package instead; a great place for this is the allied Octave-Forge |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
40 project (@url{http://octave.sf.net}). Note that the Octave project is |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
41 inherently more conservative and follows narrower rules. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
42 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
43 The preferable form of contribution is creating a Mercurial changeset and |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
44 sending it via e-mail to the octave-maintainers mailing list. Mercurial is the |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
45 source code management system currently used to develop Octave. Other forms of |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
46 contributions (e.g., simple diff patches) are also acceptable, but they slow |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
47 down the review process. If you want to make more contributions, you should |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
48 really get familiar with Mercurial. A good place to start is |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
49 @url{http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial}. There you will |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
50 also find help how to install Mercurial. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
51 |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
52 A simple contribution sequence could look like this: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
53 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
54 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
55 hg clone http://www.octave.org/hg/octave |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
56 # make a local copy of the octave |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
57 # source repository |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
58 cd octave |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
59 # change some sources@dots{} |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
60 hg commit -m "make Octave the coolest software ever" |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
61 # commit the changeset into your |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
62 # local repository |
8177
65c4ac814082
hg syntax bug in mercurial example
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8055
diff
changeset
|
63 hg export -o ../cool.diff tip |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
64 # export the changeset to a diff |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
65 # file |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
66 # send ../cool.diff via email |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
67 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
68 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
69 |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
70 You may want to get familiar with Mercurial queues to manage your changesets. |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
71 Here is a slightly less simple example using Mercurial queues, where you work |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
72 on two unrelated changesets in parallel and update one of the changesets after |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
73 discussion in the maintainers mailing list: |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
74 @example |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
75 hg qnew nasty_bug # create a new patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
76 # change sources@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
77 hg qref # save the changes into the patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
78 # change even more@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
79 hg qref -m "solution to nasty bug!" |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
80 # save again with commit message |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
81 hg export -o ../nasty.diff tip |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
82 # export the patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
83 # send ../nasty.diff via email |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
84 hg qpop # undo the application of the patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
85 # and remove the changes from the |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
86 # source tree |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
87 hg qnew doc_improvements # create an unrelated patch |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
88 # change doc sources@dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
89 hg qref -m "could not find myfav.m in the doc" |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
90 # save the changes into the patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
91 hg export -o ../doc.diff tip |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
92 # export the second patch |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
93 # send ../doc.diff tip via email |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
94 hg qpop |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
95 # discussion in the maintainers mailing list @dots{} |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
96 hg qpush nasty_bug # apply the patch again |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
97 # change sources yet again @dots{} |
8200
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
98 hg qref |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
99 hg export -o ../nasty2.diff tip |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
100 # send ../nasty2.diff via email |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
101 @end example |
837487bd3450
help new contributors with mercurial
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8177
diff
changeset
|
102 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
103 @node General Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
104 @section General Guidelines |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
105 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
106 All Octave's sources are distributed under the General Public License (GPL). |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
107 Currently, Octave uses GPL version 3. For details about this license, see |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
108 @url{http://www.gnu.org/licenses/gpl.html}. Therefore, whenever you create a |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
109 new source file, it should have the following comment header (use appropriate |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
110 year, name and comment marks): |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
111 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
112 @example |
9322 | 113 ## Copyright (C) 1996, 1997, 2007 John W. Eaton <jwe@@octave.org> |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
114 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
115 ## This file is part of Octave. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
116 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
117 ## Octave is free software; you can redistribute it and/or |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
118 ## modify it under the terms of the GNU General Public |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
119 ## License as published by the Free Software Foundation; |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
120 ## either version 3 of the License, or (at your option) any |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
121 ## later version. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
122 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
123 ## Octave is distributed in the hope that it will be useful, |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
124 ## but WITHOUT ANY WARRANTY; without even the implied |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
125 ## warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
126 ## PURPOSE. See the GNU General Public License for more |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
127 ## details. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
128 ## |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
129 ## You should have received a copy of the GNU General Public |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
130 ## License along with Octave; see the file COPYING. If not, |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
131 ## see <http://www.gnu.org/licenses/>. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
132 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
133 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
134 Always include ChangeLog entries in changesets. After making your source |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
135 changes, record and briefly describe the changes in the nearest ChangeLog file |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
136 upwards in the directory tree. Use the previous entries as a template. Your |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
137 entry should contain your name and email, and the path to the modified source |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
138 file relative to the parent directory of the ChangeLog file. If there are more |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
139 functions in the file, you should also include the name of the modified function |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
140 (in parentheses after file path). Example: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
141 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
142 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
143 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
144 2008-04-02 David Bateman <dbateman@@free.fr> |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
145 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
146 * graphics.cc (void gnuplot_backend::close_figure (const |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
147 octave_value&) const): Allow for an input and output stream. |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
148 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
149 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
150 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
151 @noindent |
8203 | 152 The ChangeLog entries should describe what is changed, not why. Any |
153 explanation of why a change is needed should appear as comments in the | |
8204 | 154 code, particularly if there is something that might not be obvious to |
155 someone reading it later. | |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
156 |
8202
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
8200
diff
changeset
|
157 The preferred comment mark for places that may need further attention is FIXME. |
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
8200
diff
changeset
|
158 |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
159 @node Octave Sources (m-files) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
160 @section Octave Sources (m-files) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
161 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
162 Don't use tabs. Tabs cause trouble. If you are used to them, set up your editor |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
163 so that it converts tabs to spaces. Indent the bodies of the statement blocks. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
164 Recommended indent is 2 spaces. When calling functions, put spaces after commas |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
165 and before the calling parentheses, like this: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
166 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
167 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
168 x = max (sin (y+3), 2); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
169 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
170 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
171 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
172 An exception are matrix and vector constructors: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
173 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
174 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
175 [sin(x), cos(x)] |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
176 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
177 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
178 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
179 Here, putting spaces after @code{sin}, @code{cos} would result in a parse error. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
180 In indexing expression, do not put a space after the identifier (this |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
181 differentiates indexing and function calls nicely). The space after comma is not |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
182 necessary if index expressions are simple, i.e., you may write |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
183 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
184 A(:,i,j) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
185 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
186 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
187 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
188 but |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
189 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
190 @example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
191 A([1:i-1;i+1:n], XI(:,2:n-1)) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
192 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
193 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
194 Use lowercase names if possible. Uppercase is acceptable for variable names |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
195 consisting of 1-2 letters. Do not use mixed case names. Function names must be |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
196 lowercase. Function names are global, so choose them wisely. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
197 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
198 Always use a specific end-of-block statement (like @code{endif}, |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
199 @code{endswitch}) rather than generic @code{end}. Enclose the @code{if}, |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
200 @code{while}, @code{until} and @code{switch} conditions in parentheses, |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
201 like in C: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
202 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
203 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
204 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
205 if (isvector (a)) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
206 s = sum(a); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
207 endif |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
208 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
209 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
210 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
211 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
212 Do not do this, however, with @code{for}: |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
213 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
214 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
215 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
216 for i = 1:n |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
217 b(i) = sum (a(:,i)); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
218 endfor |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
219 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
220 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
221 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
222 @node C++ Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
223 @section C++ Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
224 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
225 Don't use tabs. Tabs cause trouble. If you are used to them, set up your editor |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
226 so that it converts tabs to spaces. Format function headers like this: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
227 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
228 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
229 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
230 static bool |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
231 matches_patterns (const string_vector& patterns, int pat_idx, |
10599
d0e0bb2ebebb
Remove tabs in .txi files causing problems with pdf formatting.
Rik <octave@nomad.inbox5.com>
parents:
9322
diff
changeset
|
232 int num_pat, const std::string& name) |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
233 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
234 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
235 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
236 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
237 The function name should start in column 1, and multi-line argument lists should |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
238 be aligned on the first char after the open parenthesis. You should put a space |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
239 after the left open parenthesis and after commas, for both function definitions |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
240 and function calls. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
241 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
242 Recommended indent is 2 spaces. When indenting, indent the statement after |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
243 control structures (like @code{if}, @code{while}, etc.). If there is a compound |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
244 statement, indent @i{both} the curly braces and the body of the statement (so |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
245 that the body gets indented by @i{two} indents). Example: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
246 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
247 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
248 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
249 if (have_args) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
250 @{ |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
251 idx.push_back (first_args); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
252 have_args = false; |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
253 @} |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
254 else |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
255 idx.push_back (make_value_list (*p_args, *p_arg_nm, &tmp)); |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
256 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
257 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
258 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
259 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
260 If you have nested @code{if} statements, use extra braces for extra |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
261 clarification. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
262 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
263 Split long expressions in such a way that a continuation line starts with an |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
264 operator rather than identifier. If the split occurs inside braces, continuation |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
265 should be aligned with the first char after the innermost braces enclosing the |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
266 split. Example: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
267 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
268 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
269 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
270 SVD::type type = ((nargout == 0 || nargout == 1) |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
271 ? SVD::sigma_only |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
272 : (nargin == 2) ? SVD::economy : SVD::std); |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
273 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
274 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
275 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
276 @noindent |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
277 Consider putting extra braces around a multiline expression to make it more |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
278 readable, even if they are not necessary. Also, do not hesitate to put extra |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
279 braces anywhere if it improves clarity. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
280 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
281 Try declaring variables just before they're needed. Use local variables of |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
282 blocks - it helps optimization. Don't write multi-line variable declaration |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
283 with a single type specification and multiple variables. If the variables don't |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
284 fit on single line, repeat the type specification. Example: |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
285 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
286 @example |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
287 @group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
288 octave_value retval; |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
289 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
290 octave_idx_type nr = b.rows (); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
291 octave_idx_type nc = b.cols (); |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
292 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
293 double d1, d2; |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
294 @end group |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
295 @end example |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
296 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
297 Use lowercase names if possible. Uppercase is acceptable for variable names |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
298 consisting of 1-2 letters. Do not use mixed case names. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
299 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
300 Try to use Octave's types and classes if possible. Otherwise, try to use C++ |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
301 standard library. Use of STL containers and algorithms is encouraged. Use |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
302 templates wisely to reduce code duplication. Avoid comma expressions, labels |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
303 and gotos, and explicit typecasts. If you need to typecast, use the modern C++ |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
304 casting operators. In functions, try to reduce the number of @code{return} |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
305 statements - use nested @code{if} statements if possible. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
306 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
307 @node Other Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
308 @section Other Sources |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
309 Apart from C++ and Octave language (m-files), Octave's sources include files |
9209
923c7cb7f13f
Simplify TeXinfo files by eliminating redundant @iftex followed by @tex construction.
Rik <rdrider0-list@yahoo.com>
parents:
9081
diff
changeset
|
310 written in C, Fortran, M4, perl, unix shell, AWK, texinfo and @TeX{}. There are |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
311 not many rules to follow when using these other languages; some of them are |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
312 summarized below. In any case, the golden rule is: if you modify a source |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
313 file, try to follow any conventions you can detect in the file or other similar |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
314 files. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
315 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
316 For C you should obviously follow all C++ rules that can apply. |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
317 |
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
318 If you happen to modify a Fortran file, you should stay within Fortran 77 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
319 with common extensions like @code{END DO}. Currently, we want all sources |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
320 to be compilable with the f2c and g77 compilers, without special flags if |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
321 possible. This usually means that non-legacy compilers also accept the sources. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
322 |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
323 The M4 macro language is mainly used for autoconf configuration files. You should |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
324 follow normal M4 rules when contributing to these files. Some M4 files come |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
325 from external source, namely the Autoconf archive |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
326 @url{http://autoconf-archive.cryp.to}. |
8055
d51c3541be28
contrib.txi: new documentation for contributors
Jaroslav Hajek <highegg@gmail.com>
parents:
diff
changeset
|
327 |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
328 If you give a code example in the documentation written in texinfo with the |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
329 @code{@@example} environment, you should be aware that the text within such an |
9081
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
330 environment will not be wrapped. It is recommended that you keep the lines |
c79cf77061b7
Cleanup documentation files contrib.texi, bugs.texi, install.texi, emacs.texi
Rik <rdrider0-list@yahoo.com>
parents:
9032
diff
changeset
|
331 short enough to fit on pages in the generated pdf or ps documents. Here is a |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
332 ruler (in an @code{@@example} environment) for finding the appropriate line |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
333 width: |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
334 |
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
335 @example |
8516 | 336 @group |
337 1 2 3 4 5 6 | |
338 123456789012345678901234567890123456789012345678901234567890 | |
339 @end group | |
8348
d95c4e31bb2d
recommend limited line width in code examples
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8204
diff
changeset
|
340 @end example |