2
1
/* ## The PyHST program is Copyright (C) 2002-2008 of the */
3
2
/* ## European Synchrotron Radiation Facility (ESRF). */
5
4
/* ## You may use, distribute and copy the PyMCA XRF Toolkit under the terms of */
6
/* ## GNU General Public License version 2, which is displayed below, or (at your */
5
/* ## GNU General Public License version 3, which is displayed below, or (at your */
7
6
/* ## option) any later version. */
9
/* ## ------------------------------------------------------------------------- */
11
/* ## GNU GENERAL PUBLIC LICENSE */
12
/* ## Version 2, June 1991 */
14
/* ## Copyright (C) 1989, 1991 Free Software Foundation, Inc. */
15
/* ## 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA */
16
/* ## Everyone is permitted to copy and distribute verbatim copies */
17
/* ## of this license document, but changing it is not allowed. */
21
/* ## The licenses for most software are designed to take away your */
22
/* ## freedom to share and change it. By contrast, the GNU General Public */
23
/* ## License is intended to guarantee your freedom to share and change free */
24
/* ## software--to make sure the software is free for all its users. This */
25
/* ## General Public License applies to most of the Free Software */
26
/* ## Foundation's software and to any other program whose authors commit to */
27
/* ## using it. (Some other Free Software Foundation software is covered by */
28
/* ## the GNU Library General Public License instead.) You can apply it to */
29
/* ## your programs, too. */
31
/* ## When we speak of free software, we are referring to freedom, not */
32
/* ## price. Our General Public Licenses are designed to make sure that you */
33
/* ## have the freedom to distribute copies of free software (and charge for */
34
/* ## this service if you wish), that you receive source code or can get it */
35
/* ## if you want it, that you can change the software or use pieces of it */
36
/* ## in new free programs; and that you know you can do these things. */
38
/* ## To protect your rights, we need to make restrictions that forbid */
39
/* ## anyone to deny you these rights or to ask you to surrender the rights. */
40
/* ## These restrictions translate to certain responsibilities for you if you */
41
/* ## distribute copies of the software, or if you modify it. */
43
/* ## For example, if you distribute copies of such a program, whether */
44
/* ## gratis or for a fee, you must give the recipients all the rights that */
45
/* ## you have. You must make sure that they, too, receive or can get the */
46
/* ## source code. And you must show them these terms so they know their */
49
/* ## We protect your rights with two steps: (1) copyright the software, and */
50
/* ## (2) offer you this license which gives you legal permission to copy, */
51
/* ## distribute and/or modify the software. */
53
/* ## Also, for each author's protection and ours, we want to make certain */
54
/* ## that everyone understands that there is no warranty for this free */
55
/* ## software. If the software is modified by someone else and passed on, we */
56
/* ## want its recipients to know that what they have is not the original, so */
57
/* ## that any problems introduced by others will not reflect on the original */
58
/* ## authors' reputations. */
60
/* ## Finally, any free program is threatened constantly by software */
61
/* ## patents. We wish to avoid the danger that redistributors of a free */
62
/* ## program will individually obtain patent licenses, in effect making the */
63
/* ## program proprietary. To prevent this, we have made it clear that any */
64
/* ## patent must be licensed for everyone's free use or not licensed at all. */
66
/* ## The precise terms and conditions for copying, distribution and */
67
/* ## modification follow. */
69
/* ## GNU GENERAL PUBLIC LICENSE */
70
/* ## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION */
72
/* ## 0. This License applies to any program or other work which contains */
73
/* ## a notice placed by the copyright holder saying it may be distributed */
74
/* ## under the terms of this General Public License. The "Program", below, */
75
/* ## refers to any such program or work, and a "work based on the Program" */
76
/* ## means either the Program or any derivative work under copyright law: */
77
/* ## that is to say, a work containing the Program or a portion of it, */
78
/* ## either verbatim or with modifications and/or translated into another */
79
/* ## language. (Hereinafter, translation is included without limitation in */
80
/* ## the term "modification".) Each licensee is addressed as "you". */
82
/* ## Activities other than copying, distribution and modification are not */
83
/* ## covered by this License; they are outside its scope. The act of */
84
/* ## running the Program is not restricted, and the output from the Program */
85
/* ## is covered only if its contents constitute a work based on the */
86
/* ## Program (independent of having been made by running the Program). */
87
/* ## Whether that is true depends on what the Program does. */
89
/* ## 1. You may copy and distribute verbatim copies of the Program's */
90
/* ## source code as you receive it, in any medium, provided that you */
91
/* ## conspicuously and appropriately publish on each copy an appropriate */
92
/* ## copyright notice and disclaimer of warranty; keep intact all the */
93
/* ## notices that refer to this License and to the absence of any warranty; */
94
/* ## and give any other recipients of the Program a copy of this License */
95
/* ## along with the Program. */
97
/* ## You may charge a fee for the physical act of transferring a copy, and */
98
/* ## you may at your option offer warranty protection in exchange for a fee. */
100
/* ## 2. You may modify your copy or copies of the Program or any portion */
101
/* ## of it, thus forming a work based on the Program, and copy and */
102
/* ## distribute such modifications or work under the terms of Section 1 */
103
/* ## above, provided that you also meet all of these conditions: */
105
/* ## a) You must cause the modified files to carry prominent notices */
106
/* ## stating that you changed the files and the date of any change. */
108
/* ## b) You must cause any work that you distribute or publish, that in */
109
/* ## whole or in part contains or is derived from the Program or any */
110
/* ## part thereof, to be licensed as a whole at no charge to all third */
111
/* ## parties under the terms of this License. */
113
/* ## c) If the modified program normally reads commands interactively */
114
/* ## when run, you must cause it, when started running for such */
115
/* ## interactive use in the most ordinary way, to print or display an */
116
/* ## announcement including an appropriate copyright notice and a */
117
/* ## notice that there is no warranty (or else, saying that you provide */
118
/* ## a warranty) and that users may redistribute the program under */
119
/* ## these conditions, and telling the user how to view a copy of this */
120
/* ## License. (Exception: if the Program itself is interactive but */
121
/* ## does not normally print such an announcement, your work based on */
122
/* ## the Program is not required to print an announcement.) */
124
/* ## These requirements apply to the modified work as a whole. If */
125
/* ## identifiable sections of that work are not derived from the Program, */
126
/* ## and can be reasonably considered independent and separate works in */
127
/* ## themselves, then this License, and its terms, do not apply to those */
128
/* ## sections when you distribute them as separate works. But when you */
129
/* ## distribute the same sections as part of a whole which is a work based */
130
/* ## on the Program, the distribution of the whole must be on the terms of */
131
/* ## this License, whose permissions for other licensees extend to the */
132
/* ## entire whole, and thus to each and every part regardless of who wrote it. */
134
/* ## Thus, it is not the intent of this section to claim rights or contest */
135
/* ## your rights to work written entirely by you; rather, the intent is to */
136
/* ## exercise the right to control the distribution of derivative or */
137
/* ## collective works based on the Program. */
139
/* ## In addition, mere aggregation of another work not based on the Program */
140
/* ## with the Program (or with a work based on the Program) on a volume of */
141
/* ## a storage or distribution medium does not bring the other work under */
142
/* ## the scope of this License. */
144
/* ## 3. You may copy and distribute the Program (or a work based on it, */
145
/* ## under Section 2) in object code or executable form under the terms of */
146
/* ## Sections 1 and 2 above provided that you also do one of the following: */
148
/* ## a) Accompany it with the complete corresponding machine-readable */
149
/* ## source code, which must be distributed under the terms of Sections */
150
/* ## 1 and 2 above on a medium customarily used for software interchange; or, */
152
/* ## b) Accompany it with a written offer, valid for at least three */
153
/* ## years, to give any third party, for a charge no more than your */
154
/* ## cost of physically performing source distribution, a complete */
155
/* ## machine-readable copy of the corresponding source code, to be */
156
/* ## distributed under the terms of Sections 1 and 2 above on a medium */
157
/* ## customarily used for software interchange; or, */
159
/* ## c) Accompany it with the information you received as to the offer */
160
/* ## to distribute corresponding source code. (This alternative is */
161
/* ## allowed only for noncommercial distribution and only if you */
162
/* ## received the program in object code or executable form with such */
163
/* ## an offer, in accord with Subsection b above.) */
165
/* ## The source code for a work means the preferred form of the work for */
166
/* ## making modifications to it. For an executable work, complete source */
167
/* ## code means all the source code for all modules it contains, plus any */
168
/* ## associated interface definition files, plus the scripts used to */
169
/* ## control compilation and installation of the executable. However, as a */
170
/* ## special exception, the source code distributed need not include */
171
/* ## anything that is normally distributed (in either source or binary */
172
/* ## form) with the major components (compiler, kernel, and so on) of the */
173
/* ## operating system on which the executable runs, unless that component */
174
/* ## itself accompanies the executable. */
176
/* ## If distribution of executable or object code is made by offering */
177
/* ## access to copy from a designated place, then offering equivalent */
178
/* ## access to copy the source code from the same place counts as */
179
/* ## distribution of the source code, even though third parties are not */
180
/* ## compelled to copy the source along with the object code. */
182
/* ## 4. You may not copy, modify, sublicense, or distribute the Program */
183
/* ## except as expressly provided under this License. Any attempt */
184
/* ## otherwise to copy, modify, sublicense or distribute the Program is */
185
/* ## void, and will automatically terminate your rights under this License. */
186
/* ## However, parties who have received copies, or rights, from you under */
187
/* ## this License will not have their licenses terminated so long as such */
188
/* ## parties remain in full compliance. */
190
/* ## 5. You are not required to accept this License, since you have not */
191
/* ## signed it. However, nothing else grants you permission to modify or */
192
/* ## distribute the Program or its derivative works. These actions are */
193
/* ## prohibited by law if you do not accept this License. Therefore, by */
194
/* ## modifying or distributing the Program (or any work based on the */
195
/* ## Program), you indicate your acceptance of this License to do so, and */
196
/* ## all its terms and conditions for copying, distributing or modifying */
197
/* ## the Program or works based on it. */
199
/* ## 6. Each time you redistribute the Program (or any work based on the */
200
/* ## Program), the recipient automatically receives a license from the */
201
/* ## original licensor to copy, distribute or modify the Program subject to */
202
/* ## these terms and conditions. You may not impose any further */
203
/* ## restrictions on the recipients' exercise of the rights granted herein. */
204
/* ## You are not responsible for enforcing compliance by third parties to */
205
/* ## this License. */
207
/* ## 7. If, as a consequence of a court judgment or allegation of patent */
208
/* ## infringement or for any other reason (not limited to patent issues), */
209
/* ## conditions are imposed on you (whether by court order, agreement or */
210
/* ## otherwise) that contradict the conditions of this License, they do not */
211
/* ## excuse you from the conditions of this License. If you cannot */
212
/* ## distribute so as to satisfy simultaneously your obligations under this */
213
/* ## License and any other pertinent obligations, then as a consequence you */
214
/* ## may not distribute the Program at all. For example, if a patent */
215
/* ## license would not permit royalty-free redistribution of the Program by */
216
/* ## all those who receive copies directly or indirectly through you, then */
217
/* ## the only way you could satisfy both it and this License would be to */
218
/* ## refrain entirely from distribution of the Program. */
220
/* ## If any portion of this section is held invalid or unenforceable under */
221
/* ## any particular circumstance, the balance of the section is intended to */
222
/* ## apply and the section as a whole is intended to apply in other */
223
/* ## circumstances. */
225
/* ## It is not the purpose of this section to induce you to infringe any */
226
/* ## patents or other property right claims or to contest validity of any */
227
/* ## such claims; this section has the sole purpose of protecting the */
228
/* ## integrity of the free software distribution system, which is */
229
/* ## implemented by public license practices. Many people have made */
230
/* ## generous contributions to the wide range of software distributed */
231
/* ## through that system in reliance on consistent application of that */
232
/* ## system; it is up to the author/donor to decide if he or she is willing */
233
/* ## to distribute software through any other system and a licensee cannot */
234
/* ## impose that choice. */
236
/* ## This section is intended to make thoroughly clear what is believed to */
237
/* ## be a consequence of the rest of this License. */
239
/* ## 8. If the distribution and/or use of the Program is restricted in */
240
/* ## certain countries either by patents or by copyrighted interfaces, the */
241
/* ## original copyright holder who places the Program under this License */
242
/* ## may add an explicit geographical distribution limitation excluding */
243
/* ## those countries, so that distribution is permitted only in or among */
244
/* ## countries not thus excluded. In such case, this License incorporates */
245
/* ## the limitation as if written in the body of this License. */
247
/* ## 9. The Free Software Foundation may publish revised and/or new versions */
248
/* ## of the General Public License from time to time. Such new versions will */
249
/* ## be similar in spirit to the present version, but may differ in detail to */
250
/* ## address new problems or concerns. */
252
/* ## Each version is given a distinguishing version number. If the Program */
253
/* ## specifies a version number of this License which applies to it and "any */
254
/* ## later version", you have the option of following the terms and conditions */
255
/* ## either of that version or of any later version published by the Free */
256
/* ## Software Foundation. If the Program does not specify a version number of */
257
/* ## this License, you may choose any version ever published by the Free Software */
260
/* ## 10. If you wish to incorporate parts of the Program into other free */
261
/* ## programs whose distribution conditions are different, write to the author */
262
/* ## to ask for permission. For software which is copyrighted by the Free */
263
/* ## Software Foundation, write to the Free Software Foundation; we sometimes */
264
/* ## make exceptions for this. Our decision will be guided by the two goals */
265
/* ## of preserving the free status of all derivatives of our free software and */
266
/* ## of promoting the sharing and reuse of software generally. */
270
/* ## 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY */
271
/* ## FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN */
272
/* ## OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES */
273
/* ## PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED */
274
/* ## OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
275
/* ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS */
276
/* ## TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE */
277
/* ## PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, */
278
/* ## REPAIR OR CORRECTION. */
280
/* ## 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING */
281
/* ## WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR */
282
/* ## REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, */
283
/* ## INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING */
284
/* ## OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED */
285
/* ## TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY */
286
/* ## YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER */
287
/* ## PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE */
288
/* ## POSSIBILITY OF SUCH DAMAGES. */
290
/* ## END OF TERMS AND CONDITIONS */
292
/* ## How to Apply These Terms to Your New Programs */
294
/* ## If you develop a new program, and you want it to be of the greatest */
295
/* ## possible use to the public, the best way to achieve this is to make it */
296
/* ## free software which everyone can redistribute and change under these terms. */
298
/* ## To do so, attach the following notices to the program. It is safest */
299
/* ## to attach them to the start of each source file to most effectively */
300
/* ## convey the exclusion of warranty; and each file should have at least */
301
/* ## the "copyright" line and a pointer to where the full notice is found. */
303
/* ## <one line to give the program's name and a brief idea of what it does.> */
304
/* ## Copyright (C) <year> <name of author> */
306
/* ## This program is free software; you can redistribute it and/or modify */
307
/* ## it under the terms of the GNU General Public License as published by */
308
/* ## the Free Software Foundation; either version 2 of the License, or */
309
/* ## (at your option) any later version. */
311
/* ## This program is distributed in the hope that it will be useful, */
312
/* ## but WITHOUT ANY WARRANTY; without even the implied warranty of */
313
/* ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
314
/* ## GNU General Public License for more details. */
316
/* ## You should have received a copy of the GNU General Public License */
317
/* ## along with this program; if not, write to the Free Software */
318
/* ## Foundation, Inc., 51 Franklin Steet, Fifth Floor, */
319
/* ## Boston, MA 02110-1301, USA. */
322
/* ## Also add information on how to contact you by electronic and paper mail. */
324
/* ## If the program is interactive, make it output a short notice like this */
325
/* ## when it starts in an interactive mode: */
327
/* ## Gnomovision version 69, Copyright (C) year name of author */
328
/* ## Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. */
329
/* ## This is free software, and you are welcome to redistribute it */
330
/* ## under certain conditions; type `show c' for details. */
332
/* ## The hypothetical commands `show w' and `show c' should show the appropriate */
333
/* ## parts of the General Public License. Of course, the commands you use may */
334
/* ## be called something other than `show w' and `show c'; they could even be */
335
/* ## mouse-clicks or menu items--whatever suits your program. */
337
/* ## You should also get your employer (if you work as a programmer) or your */
338
/* ## school, if any, to sign a "copyright disclaimer" for the program, if */
339
/* ## necessary. Here is a sample; alter the names: */
341
/* ## Yoyodyne, Inc., hereby disclaims all copyright interest in the program */
342
/* ## `Gnomovision' (which makes passes at compilers) written by James Hacker. */
344
/* ## <signature of Ty Coon>, 1 April 1989 */
345
/* ## Ty Coon, President of Vice */
347
/* ## This General Public License does not permit incorporating your program into */
348
/* ## proprietary programs. If your program is a subroutine library, you may */
349
/* ## consider it more useful to permit linking proprietary applications with the */
350
/* ## library. If this is what you want to do, use the GNU Library General */
351
/* ## Public License instead of this License. */
353
/* ## ------------------------------------------------------------------------- */
358
10
#include <stdlib.h>