pax_global_header00006660000000000000000000000064145662023510014516gustar00rootroot0000000000000052 comment=7b714dfe60d4de2cac41ca7d59546f7c73f832ba tlf/000077500000000000000000000000001456620235100116475ustar00rootroot00000000000000tlf/.github/000077500000000000000000000000001456620235100132075ustar00rootroot00000000000000tlf/.github/workflows/000077500000000000000000000000001456620235100152445ustar00rootroot00000000000000tlf/.github/workflows/ci-build-ubuntu-20.yml000066400000000000000000000025531456620235100212230ustar00rootroot00000000000000name: CI build for Ubuntu 20 on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-20.04 timeout-minutes: 3 env: TERM: xterm AM_COLOR_TESTS: always steps: - uses: actions/checkout@v3 - name: Show OS info run: cat /etc/os-release - name: Install dependencies run: | sudo apt-get -qq update sudo apt-get install -y libhamlib-dev libxmlrpc-core-c3-dev libcmocka-dev python3-pexpect astyle - name: Set up datadir run: mkdir datadir && ln -s $PWD/share datadir/tlf - name: Check source formatting run: | F=$(astyle --dry-run --formatted --options=tools/astylerc src/*.[ch]) if [ ! -z "$F" ] ; then sed -e 's/^F/To be f/' <<< $F; exit 1; fi - name: Autoreconf and basic make run: | autoreconf -i && ./configure --datadir=$PWD/datadir && make -j2 - name: Configure with xmlrpc run: | make clean && ./configure --datadir=$PWD/datadir --enable-fldigi-xmlrpc && make -j2 - name: Run tests id: run_tests continue-on-error: true run: make check - name: Show failed test results if: ${{ steps.run_tests.outcome == 'failure' }} run: | for f in test/run_*.log; do grep -q FAILED $f && echo -e "\n>>> $f:\n" && cat $f done exit 1 tlf/.github/workflows/ci-build.yml000066400000000000000000000030361456620235100174610ustar00rootroot00000000000000name: CI build on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest timeout-minutes: 3 env: TERM: xterm AM_COLOR_TESTS: always steps: - uses: actions/checkout@v3 - name: Show OS info run: cat /etc/os-release - name: Install dependencies run: | sudo apt-get -qq update sudo apt-get install -y libhamlib-dev libxmlrpc-core-c3-dev libcmocka-dev python3-pexpect python3-dev astyle - name: Set up datadir run: mkdir datadir && ln -s $PWD/share datadir/tlf - name: Check source formatting run: | F=$(astyle --dry-run --formatted --options=tools/astylerc src/*.[ch]) if [ ! -z "$F" ] ; then sed -e 's/^F/To be f/' <<< $F; exit 1; fi - name: Autoreconf and basic make run: | autoreconf -i && ./configure --datadir=$PWD/datadir && make -j2 - name: Configure with xmlrpc run: | make clean && ./configure --datadir=$PWD/datadir --enable-fldigi-xmlrpc && make -j2 - name: Configure with xmlrpc and Python plugin run: | make clean && ./configure --datadir=$PWD/datadir --enable-fldigi-xmlrpc --enable-python-plugin && make -j2 - name: Run tests id: run_tests continue-on-error: true run: make check - name: Show failed test results if: ${{ steps.run_tests.outcome == 'failure' }} run: | for f in test/run_*.log; do grep -q FAILED $f && echo -e "\n>>> $f:\n" && cat $f done exit 1 tlf/.gitignore000066400000000000000000000005121456620235100136350ustar00rootroot00000000000000*~ Makefile Makefile.in *.[oa] *.code-workspace *.gcda *.gcno *.swp tlf tlf.1 README autom4te.cache aclocal.m4 compile config.guess config.h config.h.in config.log config.status config.sub configure depcomp install-sh missing src/.deps src/cscope.out src/.gdbinit stamp-h1 test/defs.* test/run_* test/*.log test/.deps test-driver tlf/.travis.yml000066400000000000000000000011421456620235100137560ustar00rootroot00000000000000language: C before_install: - sudo apt-get -qq update - sudo apt-get install -y libhamlib-dev - sudo apt-get install -y libxmlrpc-core-c3-dev - wget https://cmocka.org/files/1.1/cmocka-1.1.5.tar.xz - tar -xvf cmocka-1.1.5.tar.xz - cd cmocka-1.1.5 - mkdir build - cd build - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug .. - make - sudo make install - cd ../.. - rm -rf cmocka-1.1.5 cmocka-1.1.5.tar.xz script: - autoreconf -i && ./configure && make - make clean && ./configure --enable-fldigi-xmlrpc && make - make check; rc=$?; cat test/run_*.log; exit $rc tlf/AUTHORS000066400000000000000000000004021456620235100127130ustar00rootroot00000000000000Rein Couperus Thomas Beierlein contributions by: Joop Stakenborg (PG4I), Dimiter Kroumov (LZ3NY), Martin OK1RR Andy G4KNO Fred DH5FS Nate N0NB Mario DH5YM Ervin HA2OS Zoltan HA5CQZ Stephen W8BSD Joerg DL8DTL and others tlf/COPYING000066400000000000000000000432541456620235100127120ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. tlf/ChangeLog000066400000000000000000005077621456620235100134420ustar00rootroot000000000000002019-10-28 Thomas Beierlein * NEWS, ToDo: Update NEWS and ToDo files 2019-09-30 Thomas Beierlein * src/fldigixmlrpc.c, src/gettxinfo.c, src/globalvars.h, src/main.c, test/data.c: Fix definition of 'rigmode' variable Newest version of hamlib has an extended range of modei definitions and therefore defined it as UInt64. That conflicts with the former definition of 'rigmode' as 32 bit int. 2019-09-29 Thomas Beierlein * INSTALL: Fix dependencies for Debian like distributions Thx to Juajo EA8BGO for reporting. 2019-09-18 zcsahok * src/gettxinfo.c: Fix sideband selection An unnoticed constant caused wrong sideband selection when switching to SSB. Moved SSB and CW settings to functions. 2019-09-20 Thomas Beierlein * src/parse_logcfg.c, src/parse_logcfg.h, src/rules.c: Refactor parsing of config files * src/parse_logcfg.c, src/rules.c: rewording of startup messages 2019-09-18 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/readqtccalls.c, src/rules.c, src/sendqrg.c: Fix some minor display problems (Tnx HA5CQZ) - unify capitalisation - do not use fixed display positions - show voice keyer messages only in verbose mode 2019-09-16 Thomas Beierlein * src/addmult.c, src/audio.c, src/background_process.c, src/bandmap.c, src/bands.c, src/callinput.c, src/changefreq.c, src/changepars.c, src/clusterinfo.c, src/err_utils.c, src/fldigixmlrpc.c, src/freq_display.c, src/grabspot.c, src/lancode.c, src/main.c, src/parse_logcfg.c, src/rules.c, src/searchlog.c, src/sendbuf.c, src/sendqrg.c, src/showinfo.c, src/splitscreen.c, src/ui_utils.c, src/writecabrillo.c: apply astylerc rules 2019-09-15 Thomas Beierlein * src/main.c, src/startmsg.c, src/startmsg.h: Change handling of verbose startup * Do no longer slow down display of infos. Instead ask for continuation before clearing the screen. That gives time to read the messages. * Message display checks for enough room to display. If screen gets full clear and start anew from above (after a small delay or confirmation). * src/getmessages.c, src/getmessages.h, src/main.c: Refactor check for first run of TLf in new directory * Test it quite early. Show GPL and set 'verbose' mode. 2019-09-13 Thomas Beierlein * src/main.c: Fix color settings for TERM=xterm-256color 2019-09-09 Thomas Beierlein * src/lancode.c: fix missing ntoh conversion 2019-07-15 Thomas Beierlein * src/background_process.c, src/background_process.h, src/changepars.c, src/logit.c: Fix Simulator mode for CQWW contest. - Fix sidetone management (Do not change own frequency during QSO and make random change of sidetone for other station working - Add a little timing space before getting called by other station - Refactor management of simulation stages - Improve logic to turn on/off of simulator mode 2019-07-19 Thomas Beierlein * src/err_utils.c: Make sure INFO messages can be read at least 1 second 2019-07-12 Thomas Beierlein * src/logit.c, src/recall_exchange.c: Recall old exchange only if exchange field is empty If RECALL_MULTS is set keep the content of the exchange field if not empty. Also do not empty the exchange field if no old exchange could be found. 2019-07-06 zcsahok * src/main.c: improve command line argument handling Switched to Argp as it provides a number of features (usage, version, error messages, long arguments, ...) out of the box. The original issue was that argument option had to be written without space (-fmyfile.dat). Now both this, the "normal' format (-f myfile.dat), and the long format (--config=myfile.dat) are also supported. 2019-06-23 zcsahok * src/changefreq.c, src/freq_display.c, src/freq_display.h: fix frequency adjustment function (Ctrl-F) Replace key_get() with key_poll(). In order to avoid flickering the order of freq_display() and time_update() was reversed. Minor code cleanup was done in freq_display.c. Ctrl-F is now completely live in the sense that it also takes over freq changes from the rig. The cluster display below Ctrl-F is also updated and the displayed values are all in sync. For TRX there is a delay of 1 sec but that's tolerable as it's the normal behavior. 2019-06-17 zcsahok * src/callinput.c: allow CQ<->S&P switch even if call input field is non-empty 2019-06-14 zcsahok * src/cleanup.c: do not highlight exch field on CQ<->S&P 2019-06-02 Thomas Beierlein * src/writecabrillo.c: Fix possible use of NULL pointer 2019-05-28 Thomas Beierlein * src/callinput.c: Allow wider adjustment QRG of grabbed station The reported QRG of spotted stations may not be exact. So after a grab of it from the bandmap list you may want to adjust the QRG a little. On the other side after a grab if you just tune away you would like the call input field to become empty automatically. The patch widens the allowed adjustment to +/-500 Hz. That should hopefully be enough. Problem reported by Fred DH5FS. 2019-05-05 Thomas Beierlein * src/err_utils.c, src/splitscreen.c, src/splitscreen.h, src/ui_utils.c, src/ui_utils.h: Respect screensize for packet interface As panels do not support screen resize we need some additional code to renew the packet window and setup the split display. 2019-04-13 Thomas Beierlein * src/callinput.c, src/changepars.c, src/changepars.h, src/clusterinfo.c, src/muf.c, src/ui_utils.c, test/test_clusterinfo.c: Respect vertical screen size for informational pop up windows - propagation window - cluster info - network info - multiplier info 2019-04-05 Thomas Beierlein * src/bandmap.c: Use full vertical screen size for bandmap display Fix display of bandmap info and menu. Position adapts to size of screen * src/clear_display.c, src/main.c: Respect vertical screen size for main window 2019-03-27 Thomas Beierlein * src/err_utils.c, src/getwwv.c, src/lancode.c, src/lancode.h, src/showinfo.c, src/splitscreen.c: Display of infos and errors always on bottom line of window. Fix the display position for the following items: - error messages - infoline with country information - new WWV/WCY announcements - talk command input - send cluster command 2019-05-05 Thomas Beierlein * src/callinput.c, src/grabspot.c, src/time_update.c: Fixup display of TRX and MEM info - Remove arbitrary remnants just before the displayed values - Erase fields if not rig control is available. 2019-03-27 Thomas Beierlein * src/ui_utils.c: Handle KEY_RESIZE Pick up new screen size after resize of terminal window and redraw display 2019-05-13 Thomas Beierlein * src/err_utils.c: Simplify wipe of info line 2019-04-13 Thomas Beierlein * src/callinput.c, src/grabspot.c: Fix display of MEM frequency * src/grabspot.c, src/sendqrg.c: Fix wrong prototyp declarations After the switch to use freq_t for all frequency values there was a type mismatch for send_bandswitch parameter. 2019-04-03 zcsahok * src/qrb.c: fix get_qrb return value * src/qrb.c, src/qrb.h, src/showinfo.c, src/showinfo.h: show only valid DX info 2019-03-25 Thomas Beierlein * Refactor handling of warnings, errors and informational messages * Factor out common sequences for better readability * Allows to change place and mode of display in an easy way. That will be needed for resizing the display. 2019-03-28 zcsahok * test/data.c: fix bandfrequency in test/data.c 2019-03-24 zcsahok * src/background_process.c, src/lancode.c: fix FREQMSG * switch to use of freq_t 2019-02-17 Thomas Beierlein * tlf.1.in: Add documentation for Multiplier aliases 2019-02-03 Thomas Beierlein * src/getexchange.c, src/makelogline.c, src/readcalls.c: Fix mult handling for SECTION_MULT and SERIAL+SECTION With the possibility to use aliases for section entries we need to record the original entered comment in log. The recognized section gets recorded in the section column. Tlf now use the recorded section for building the reached multiplier list during read of an existing log file. Respect also alias settings for parsing of QSO sections in getexchange() and checkexchange(). 2019-01-27 Thomas Beierlein * src/addmult.c, src/addmult.h, test/test_addmult.c: Add new function to look for best match in given possible mult The function check if mult name or one of its aliases is a substring of the searchstring and returns the best matching length. If the returned length is equal the searchsting length then we have an exact match. 2019-01-26 Thomas Beierlein * src/addmult.c, test/test_addmult.c: Add parsing of alias list 2019-01-21 Thomas Beierlein * src/addmult.c, src/addmult.h: Change internal representation of possible multipliers The change allows to associate each multiplier with a list of aliases. If the alias is used it will be counted for the according multiplier. * src/addmult.c, src/addmult.h, src/changepars.c, src/getexchange.c, src/globalvars.h, src/searchlog.c, test/test_addmult.c: Make handling of possible mults opaque Concentrate implementation dateils in addmult.c. Introduce getter functions for access to mult number and to mult name. 2018-10-11 Eric Tamme * src/lancode.c, src/parse_logcfg.c, tlf.1.in: Add lan port config directive - Allows to specify on which port number TLF is listening for incoming broadcasts from other instances. - Allows even to run multiple instances of TLF on the same server. 2019-01-05 Thomas Beierlein * share/help.txt, src/changepars.c, src/main.c, src/parse_logcfg.c, tlf.1.in: Drop SCAN related data - S-METER keyword and variables - clean up man page and help.txt 2019-01-12 Thomas Beierlein * src/parse_logcfg.c, tlf.1.in: Add CALLMASTER= keyword to parser and man page. Allow loading from different callmaster database file 2019-01-05 Thomas Beierlein * ToDo, share/logcfg.dat: Add ToDo list for version 1.4 2019-01-03 Thomas Beierlein * src/searchlog.c, test/test_searchlog.c: Refactor lookup of zonenumber - 2019-01-02 Thomas Beierlein * test/test_searchlog.c: Add tests for USEPARTIAL call suggestions If USEPARTIAL is set and there is only one matching call in already worked stations or in callmaster database use it as suggestion for callinput. 2018-12-30 Thomas Beierlein * src/searchlog.c: Fix zone display for old behaviour If multiplier is WAZ or ITU zone the following algorithm is used: - First try to pick up the zone from the comment string of the selected QSOs. Use the last one found. - If no QSO with zoneinfo is found use zone_export (set by getctydata() according to the country information. - If there are a zoneinfo field, but it is not readable as zonenumber use either the zone from zone_fix (calculated from the actual exchange field) or again from zone_export. That allows an override of the calculated zone. NOTE: The algorithm has some drawbacks. * If a single station has a different zone number than the normal ones i it is not guaranteed, that we use this number. * If a zonenumber is found during scan of former QSOs it is no longer possible to use the override for searchlog operation. Show that zone number on lower line of search window and use it to check for already worked zones. 2018-12-29 Thomas Beierlein * src/searchlog.c: Factor out display of search results * src/searchlog.c: Factor out display of partials * src/searchlog.c: fix display for WARC bands 2018-12-15 Thomas Beierlein * src/searchlog.c, test/test_searchlog.c: Factor out display related code - Drawing of search window - Display of call info for 'hiscall' fragment - converting bandstring to display line Add testcode for last function * src/searchlog.c, test/test_searchlog.c: Factor out filtering of Log for relevant QSOs * src/searchlog.c, test/test_searchlog.c: Add first testcode for searchlog() function Test basics of filtering relevant QSOs from log file based on 'hiscall'. Factor out preparation of display results for search window. Simplify. * src/searchlog.c: Drop DL1YFK "worked window" patch. The dropped code did not change anything relevant. The lookup for qsos in question before was always exact, so a 'best match' makes no sense. * src/checklogfile.c, test/test_checklogfile.c: extend test_checklogfile() and adapt tested code checklogfile() now guarantees that the logline is terminated by \n 2018-12-14 Thomas Beierlein * src/checklogfile.c, test/test_checklogfile.c: added test_checklogline.c and fix handling of wrong line length Prepares for refactoring and tightens requests to the checking As a first step checklogfile should guarantee a correct linelength of each log line. 2018-12-06 Thomas Beierlein * src/checklogfile.c, src/editlog.c, src/getmessages.c, src/setparameters.c: Refactor logedit() function - Drop use of checklogfile() in not needed places. - Adapt checklogfile() for use with logedit() Do not exit program if file not found. Use ncurses for all text output. - Use existing checklogfile() to check the log after editing Original code was a copy of that function with small adaption wrt text output and error handling. Be aware that the functionality is still broken as before. 2018-12-05 zcsahok * configure.ac: switch to C99 mode Gives us more room for better coding, e.g. 'bool' type, for-loop variables on the fly and other useful things. 2018-11-28 Thomas Beierlein * src/editlog.c: Fix assertion after edit of logfile Stop background processing also during edit of log file 2018-11-20 Thomas Beierlein * test/Makefile.am: Use CMOCKA_LIBS for locating library 2018-11-10 Thomas Beierlein * src/bandmap.c: Fix compiler warning from clang Calculation the difference of two unsigned numbers gives an unsigned result. clang warns that doing an abs() of it makes no sense. Thanks Nate N0NB for reporting. 2018-11-03 Nate Bargmann * src/clear_display.c, src/log_to_disk.c: Show blanks instead of '---' in NO_RST mode It looks like this patch only replaces the '---' string seen on the log entry line with ' ' and does not replace those characters in the log file where they are needed for proper Cabrillo generation. Testing is necessary. * rules/arrlss: Correct transposition of check and section rules/arrlss Per http://www.arrl.org/sweepstakes the proper format for the sent exchange is: # A % 83 CT where sending my call is also a required part of the exchange. Added commented ALT macros that were available in CT. Added NO_RST as it is not used in ARRL SS. 2018-11-01 zcsahok * src/sendqrg.c: fix SegV on missing RIGPORT 2018-10-22 Thomas Beierlein * add tests for reading QTC lines - make qtc_line global to ease test 2018-10-20 Thomas Beierlein * configure.ac: Fix requested cmocka version. Check for cmocka test framework and warn if not installed 2018-10-18 zcsahok * fix config.h usage * make hamlib mandatory 2018-10-16 Thomas Beierlein * INSTALL: add build dependencies to install instructions * NEWS: Fix typo 2018-10-13 Thomas Beierlein * src/callinput.c, src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/main.c: move variable to related file 2018-10-12 Eric Tamme * src/parse_logcfg.c: fix missing comma in command array 2018-09-30 Ervin Hegedus * src/callinput.c, src/fldigixmlrpc.c, src/main.c: BMAUTOADD adds callsign to bandmap when Fldigi set it. Show correct CTY info when call comes from Fldigi. Changed RTTY-REV mode freq calc. 2018-09-28 Thomas Beierlein * Makefile.am, test/Makefile.am, test/test_initial_exchange.c: Fix 'make distcheck' 'make distcheck' does an VPATH install where the build directory is not the source directory. That failed for data file used during unit tests. 2018-09-27 Thomas Beierlein * test/Makefile.am: add missing files to test/Makefile.am and src/Makefile.am * src/checkparameters.c, src/writeparas.c, src/writeparas.h, tlf.1.in: Fix assertion if no .paras file exists during start 2018-09-23 Thomas Beierlein * AUTHORS, INSTALL: update INSTALL and AUTHORS file 2018-08-09 Stephen Hurd * src/audio.c, src/background_process.c, src/callinput.c, src/changepars.c, src/checklogfile.c, src/deleteqso.c, src/editlog.c, src/fldigixmlrpc.c, src/freq_display.c, src/getexchange.c, src/getmessages.c, src/gettxinfo.c, src/keyer.c, src/logview.c, src/muf.c, src/parse_logcfg.c, src/qtcwin.c, src/readcalls.c, src/score.c, src/scroll_log.c, src/sendbuf.c, src/sendqrg.c, src/show_help.c, src/splitscreen.c, src/write_keyer.c: Fix warnings. While many of these return codes should be checked, none of them actually are, so having the return codes stored in variables is pointless. Create IGNORE() macro to ignore ignored unused results warnings. 2018-09-23 Thomas Beierlein * src/rules.c: make memory allocation error fatal 2018-08-10 Stephen Hurd * test/data.c, test/test_sendbuf.c: Update the DIGIMODE tests for PrepareSPcall() tests. Add digi_message to data in tests. * tlf.1.in: Add documentation for DKF1..DKF12, ALT_DK1..ALT_DK10, DKCQM, DKSPM, DKSPC * src/autocq.c, src/callinput.c, src/getexchange.c, src/globalvars.h, src/keyer.c, src/listmessages.c, src/logit.c, src/main.c, src/messagechange.c, src/parse_logcfg.c, src/rules.c, src/sendbuf.c, src/sendbuf.h, src/sendspcall.c, src/writeparas.c: Use separate messages for RTTY than CW RTTY contests use a space, not newline at end of messages and should start with a CR. To enable starting with CR, add a | character that is translated to CR Add config keys DKF1..DKF12, ALT_DK1..ALT_DK10, DKCQM, DKSPM, DKSPC Default values are the CW message with | at the start and the trailing newline changed to a space. Note that in callinput.c, in SSB mode, ENTER on a dupe when NOB4 is not set would send F7 message in CW. This now sends the voice F7 message instead since that was likely the intent. New function send_standard_message(int) added which sends the passed message number using the current trxmode (cw, voice, or digi). Also added is send_keyer_message(int) which works as above, but in voice mode will still send CW. This is used by the CW keyer. LIST and MESSAGE will now show/edit the DIGI messages in DIGI mode. In CW and voice modes, the CW messages will be shown/changed. 2018-08-08 Stephen Hurd * src/background_process.c, src/background_process.h, src/edit_last.c, src/editlog.c, src/globalvars.h, src/logit.c, src/main.c, src/setparameters.c, src/writeparas.c: Use condition variables to start/stop the background process. Testing a global in a loop without volatile can cause various issues with optimizers. Further, the sleep(1) granularity made the background task unresponsive. Instead, use condition variables and mutexes to allow waiting for the background thread to be restarted, then running immediately when the condition occurs. 2018-09-16 Stephen Hurd * src/dxcc.c, src/dxcc.h, src/getctydata.c: Use stdbool.h for booleans. 2018-08-08 Stephen Hurd * src/calledit.c, src/callinput.c, src/dxcc.c, src/dxcc.h, src/getctydata.c, src/getctydata.h, src/grabspot.c, src/showinfo.c, src/showinfo.h: Support CT9 cty.dat files This adds three new overrides, lat/lon, continent, and time offset. showinfo() now needs a prefix, so create add a getctydata_pfx() function which returns the prefix rather than the country. If a callsign in cty.dat starts with an '=', it will only use exact matching, not prefix matching. To allow backward compatibility, Tlf remembers if it saw any '=' prefixes and if so, find_full_match() will only match those. If there were no '=' prefixes, the behaviour is as before, and it will match any prefix. 2018-09-17 Thomas Beierlein * src/bandmap.c, src/gettxinfo.c, src/sendqrg.c: Fix wrong includes and possible NULL pointer problem. 2018-08-09 Stephen Hurd * src/main.c: There are more than two valid TERM values... Remove the hack which replaced any TERM value that wasn't "xterm" with "rxvt". Forcing rxvt means that if the terminal is not rxvt compatible, all kinds of ncurses things would break. The most common difference is F1 - F4. rxvt uses \E[11~, \E[12~, \E[13~ and \E[14~ while most modern xterm compatibles use \E[OP, \E[OQ, \EOR, and \EOS respectively. xterm-color and xterm-256color for example would suffer from this issue, and F1 to F4 would not work correctly. 2018-09-16 Thomas Beierlein * src/background_process.c, src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/parse_logcfg.c: Rename fldigi_get() to fldigi_isenabled() 2018-08-10 Stephen Hurd * src/background_process.c, src/changepars.c, src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/main.c, src/parse_logcfg.c: Clean up various race conditions in fldigi stuff Furthermore have fldigi_xmlrpc_query() return -1 when use_fldigi is false. Returning success resulted in uninitialized data being used by callers, making it unsafe to ever turn off fldigi from tlf. 2018-08-08 Stephen Hurd * src/fldigixmlrpc.c: Fix text.get_rx. Was using start:end instead of start:length Don't request more characters than we can accept. Copy all the received bytes into the result, rather than one less than was received. * src/readcalls.c: POSIX doesn't define the -w option It seems to be a GNU extension, and doesn't seem to be needed in this use case. The FreeBSD uniq utility doesn't support it. * src/netkeyer.c, src/sockserv.c: Add missing socket headers. These are necessary to build on at least FreeBSD, and likely many more systems. I'm actually surprised Linux builds without them. * src/getctydata.c: malloc() is defined in stdlib.h. stdlib.h has been the correct header for malloc() since C89. 2018-06-05 Thomas Beierlein * src/background_process.c, src/changepars.c, src/fldigixmlrpc.c, src/main.c, src/parse_logcfg.c: Drop unused variable and rename for better readability 2018-05-23 Ervin Hegedus * doc/README.RTTY, src/background_process.c, src/changepars.c, src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/main.c, src/parse_logcfg.c, src/rtty.c, tlf.1.in: Extend Fldigi interface 2018-05-03 Thomas Beierlein * src/callinput.c: Fix bug in BMAUTO_ADD and BMAUTO_GRAB logic. After logging a new contact in S&P mode the next station from bandmap you tune over got falsely the spot frequency of that last logged station. 2018-03-30 Nate Bargmann * doc/Makefile.am, doc/Xresources, tlf.1.in: Update man page for more consistency New keywords, commands, and configuration parameters are now in bold while value descriptions and files and pathnames are in italics. Typed strings are enclosed in double quotes while typed key names are enclosed in single quotes. Tried to ensure that text is more clear and from an objective point of discussion. Added a sample Xresources file for configuring Xterm with Linux console compatible color scheme for use with Tlf. 2018-02-25 Thomas Beierlein * src/readcabrillo.c, test/test_cabrillo.c: Use freq2band() conversion. Adapt test code 2018-02-24 Thomas Beierlein * src/bandmap.c, src/bandmap.h, src/bands.c, src/bands.h: Move bandcorners and freq2band() to bands.c 2018-01-22 Thomas Beierlein * src/bands.c, src/bands.h, src/callinput.c: Move next_band to bands.c * src/bands.h, src/callinput.c, src/tlf.h: Move IsWarcIndex to bands.h 2018-01-21 Thomas Beierlein * src/addcall.c, src/addmult.c, src/addpfx.c, src/bandmap.c, src/bands.c, src/bands.h, src/focm.c, src/globalvars.h, src/paccdx.c, src/readcalls.c, src/showpxmap.c, src/showscore.c, src/showzones.c, src/tlf.h, test/test_addcall.c, test/test_addmult.c, test/test_score.c: Move inxes[] to bands.c and adapt test code * src/Makefile.am, src/bands.c, src/bands.h: Add new files bands.c and bands.h Will concentrate all band and frequency related definitions in one place. 2018-03-28 Nate Bargmann * tlf.1.in: Add documentation for winkeydaemon (#92) The winkeydaemon adds cwdaemon style support for K1EL "Win Keyers" and compatible devices such as the Ham Gadgets Master Keyer 1. 2018-03-01 zcsahok * src/searchlog.c, src/searchlog.h: allow leading spaces in callmaster file 2018-02-23 zcsahok * src/addmult.c: allow space before comment in addmult 2018-02-23 Thomas Beierlein * tools/.astylerc: add astyle formatting rules * Reformat using .astylerc 2018-02-21 zcsahok * src/initial_exchange.c, src/initial_exchange.h: fix initial_exchange: allow DOS line endings and multiple columns 2018-02-19 zcsahok * .gitignore, Makefile.am: create README from README.md * README => README.md: added README.md 2018-02-08 zcsahok * src/callinput.c, src/callinput.h: Fix wrong return value of callinput() This PR fixes the "long CQ bug": when sending a longer series of unanswered CQ's the cursor sometimes jumps to the exchange field. This causes F1 to send your call instead of CQ, so the op has to press either Esc or Tab to get back to CQ'ing. Quite annoying, but keeps op awake. :-) An Easter egg version of this "feature" is: start tlf press F3 14 times CW keyer window pops up. The bug is a result of two issues. In callinput() key codes returned as char although they fit in an int only. E.g. F1 is 0x109 and F3 is 0x10B. On return only the lower 8 bits are kept and thus F1 is transformed into a Tab/Ctrl-I (0x09) and F3 into Ctrl-K (0x0B). callinput() is supposed to return to logit() only when some non-local keypress is to be handled (e.g. Enter). Instead it returns when its internal counter i reaches 14: for (i = strlen(hiscall); i <= 13; i++) { The idea may have been an optimization to avoid excessive calls to strlen and track call length in i. But this doesn't bring anything as this check is done only once per keypress and in the inner loop [while (x < 1)] strlen and other stuff is happening 100 times a second anyway. * src/logit.c, src/logit.h, src/main.c: Fix prototyp of logit() function Old prototype was a remnant from starting 'logit()' as thread in former code. 2018-01-31 zcsahok * .gitignore, .travis.yml, Makefile.am, configure.ac, test/Makefile.am, test/data.c, test/functions.c, test/generate_defs.pl, test/test.h, test/test_locator2longlat.c, test/test_score.c, test/test_zone_nr.c: introduce test framework based on cmocka * test/test_addcall.c, test/test_dxcc.c, test/test_getctydata.c: ported some more tests 2018-01-31 Thomas Beierlein * .travis.yml: Add Travis-CI configuration file 2018-01-15 zcsahok * src/callinput.h, src/gettxinfo.c, src/gettxinfo.h: Factor out band switching logic and change return type of gettxinfo() 2018-01-21 zcsahok * src/gettxinfo.c: limit frequency polling to once per 200ms 2018-01-20 zcsahok * src/gettxinfo.c: use freq2band() for gettxinfo() * src/bandmap.c, src/bandmap.h: Cleanup freq2band() 2018-01-20 Thomas Beierlein * src/callinput.c: Fix band switching After introduction of BANDINDEX_OOB the band up/down key did not work on upper and lower band (10->160 or 160->10) 2017-12-26 Ervin Hegedus * src/logit.c: Removed the cleanup() from the end of the change_mode() In case of SPRINTMODE the TU_MESSAGES was cut by the cleanup(). That is wrong. 2017-12-26 zcsahok * src/callinput.c: BMAUTOGRAB only in S&P mode 2017-11-17 Ervin Hegedus * src/background_process.c, src/cabrillo_utils.h, src/main.c, src/qtc_log.c, src/qtc_log.h, src/readcabrillo.c: Refactor writing of QTC log file contest and reading in cabrillo files are using the same code now. 2017-10-10 Ervin Hegedus * src/globalvars.h, src/main.c, src/makelogline.c, src/readcabrillo.c: Replaced time_ptr_cabrillo pointer to static struct * src/main.c: Changed '-c' (convert) cli argument to '-i' (import) 2017-10-07 Thomas Beierlein * src/cabrillo_utils.h, src/readcabrillo.c: pick up addition for QTC conversion from HA2OS 2017-07-03 Ervin Hegedus * src/Makefile.am, src/cabrillo_utils.c, src/cabrillo_utils.h, src/getexchange.c, src/getexchange.h, src/globalvars.h, src/main.c, src/makelogline.c, src/readcabrillo.c, src/readcabrillo.h, src/writecabrillo.c: Add readcabrillo feature 2017-12-07 Ervin Hegedus * doc/New_Bandmap.txt, src/parse_logcfg.c, tlf.1.in: Fixed BANDMAP configuration directive (added 'O' option to string), added some documentation 2017-11-23 Thomas Beierlein * src/bandmap.c, src/main.c: cleanup - Rely directly on the initialised list 2017-11-23 Ervin Hegedus * src/bandmap.c: Add CQ zone value to BM spot from INIT_EXCH list, if exists 2017-11-20 Ervin Hegedus * src/bandmap.c, src/bandmap.h: New feature: hide/mark spots on BM if them are multipliers 2017-12-05 tnalpgge * tlf.1.in: Correct documentation on Enter key to match observed behavior 2017-12-02 Thomas Beierlein * src/callinput.c, src/showzones.c, src/time_update.c: move zones display to using panels Old code blinks zone display in 2s interval. Tnx for reporting Fred DH5FS. 2017-12-01 zcsahok * src/callinput.c: spawn $SHELL instead of sh Use user's setting instead of plain sh when opening a shell using '!' 2017-11-25 zcsahok * src/logview.c: Switch back to normal keypad mode in logview 2017-11-23 Thomas Beierlein * share/callmaster, share/cty.dat: update callmaster database and cty.dat Version are VER20171103 for callmaster VER20171122 for cty.dat 2017-10-09 Thomas Beierlein * src/parse_logcfg.c: fix wrong parsing of QTC= keyword 2017-07-04 Ervin Hegedus * rules/tesla, share/cabrillo.fmt: Added Tesla memorial contest rule and cabrillo format 2017-05-29 Thomas Beierlein * src/addmult.c, src/addpfx.c, src/bandmap.c, src/clear_display.c, src/clusterinfo.c, src/gettxinfo.c, src/globalvars.h, src/main.c, src/paccdx.c, src/score.c, src/searchlog.c, src/showscore.c, src/tlf.h: Add a special OOB out_of_band entry * Tlf normally recognizes the band in use from rigs frequency. If the rig is outside of any band there is a indeterminate state resulting in irregular characters on display and possible wrong entries into the contest statistics. Tnx to Zoltan Csahok HA5CQZ for pointing out the problem. 2017-06-14 Thomas Beierlein * src/callinput.c: make skip of WARC-bands during contest more robust In case of multiple neighboured WARC bands skip all until next contest band is reached. 2017-05-29 zcsahok * src/callinput.c, src/gettxinfo.c: Refactor band switching code into a common function. 2017-05-09 Ervin Hegedus * src/genqtclist.c, src/qtc_log.c, src/qtcwin.c, src/writecabrillo.c: Bugfix: when QTC was set up as BOTH (eg. RTTY) the CABRILLO had created as wrong format 2017-05-11 zcsahok * src/keyer.c, src/main.c, src/parse_logcfg.c: added option to use backspace in the keyer window This is for the fast but not perfectly typers: 2017-04-15 Thomas Beierlein * src/addcall.c, src/readcalls.c: struct needs initialization 2017-04-10 Thomas Beierlein * src/getctydata.c: factor out common code getctynr and getctydata uses the same code to prepare the call and look it up in prefix table. 2017-04-10 Thomas Beierlein * src/getctydata.h, src/setcontest.c: switch to getctynr() as we are only interested in the number here 2017-04-09 Thomas Beierlein * src/dxcc.c, src/dxcc.h, src/readctydata.c, src/readctydata.h: move load_ctydata() to dxcc.c 2017-01-12 Thomas Beierlein * src/getctydata.c: Refactor getctydata() code 2017-02-18 Thomas Beierlein * src/addcall.c, src/getctydata.c: fix inconsistent usage of getctydata() in addcall2() 2017-03-18 Thomas Beierlein * src/prevqso.c: resend report and qso nr with at least 3 digits 2017-03-01 Thomas Beierlein * src/addmult.c, src/changepars.c, src/globalvars.h, src/main.c, src/makelogline.c, src/readcalls.c, src/searchlog.c, src/showscore.c, src/tlf.h: add a structure to represent worked multis 2017-02-23 Thomas Beierlein * src/changepars.c, src/main.c, src/parse_logcfg.c, src/sendqrg.c: Allow arbitrary long string for 'RIGPORT' keyword Tnx Ed W3NR for pointing out. 2017-02-09 Thomas Beierlein * src/dxcc.c, src/dxcc.h: make usage of function more secure Only non negative indices allowed. Check for out of bounds index. Return empty dummy data if no element found. 2017-02-19 Thomas Beierlein * src/addcall.c, src/addpfx.c, src/addpfx.h, src/makelogline.c, src/readcalls.c: change interface to add_pfx() function gets now pfxstr to add and bandindex for worked band. Makes function more independent if called for data coming from LAN 2017-02-06 Thomas Beierlein * doc/FAQ: add hints to correct own CQ zone to FAQ * share/cty.dat: update cty.dat file 2017-02-04 Ervin Hegedus * src/main.c, src/parse_logcfg.c, src/tlf.h: Removed unused UNIQUECALL values 2017-02-04 Thomas Beierlein * src/addmult.c, src/globalvars.h, src/makelogline.c, src/readcalls.c, src/showscore.c: Added UNIQUE_CALL_MULTI handling - unique call signs can now be counted as multis for allband or per band. (Needed e.g. for minitest like contests). * src/main.c, src/parse_logcfg.c, src/tlf.h, tlf.1.in: Accept UNIQUE_CALL_MULTI keyword 2017-01-12 Ervin Hegedus * src/addcall.c, src/main.c, src/parse_logcfg.c, src/readcalls.c, src/searchlog.c, src/tlf.h, tlf.1.in: Added new feature: MINITEST keyword to support the Mini CW test Optional an argument may passed to MINITEST, instead of hardcoded value 2017-01-30 Thomas Beierlein * macros/ax_with_curses_extra.m4: Better recognition of If ax_with_ncurses finds a ncursesw instance the former code checks only for . If not there the search fails. That lead to problems at least in Arch Linux which has only installed. The patched version here checks first for and if not found also for . Tested for the following distributions: Gentoo, Debian 7..9, Linux Mint 17 and 18.1, Arch Linux, Ubuntu * src/get_time.c: clarify function of get_time() 2017-01-20 Thomas Beierlein * src/getctydata.c, tlf.1.in: Fix recognition of cq zone for 1Axxx stations 2017-01-15 Thomas Beierlein * src/writecabrillo.c: fix warning about redefinition of _GNU_SOURCE 2017-01-05 Thomas Beierlein * src/main.c, src/parse_logcfg.c: drop remnants of old 'keyerport' variable * src/changepars.c, src/keyer.c, src/main.c, src/sendbuf.c, src/speedupndown.c, src/stoptx.c, src/write_keyer.c: switch to new 'cwkeyer' variable * src/background_process.c, src/callinput.c, src/gettxinfo.c, src/keyer.c, src/main.c, src/qtcwin.c, src/rtty.c, src/sendbuf.c, src/sendspcall.c, src/stoptx.c, src/write_keyer.c: switch to new 'digikeyer' variable 2017-01-04 Thomas Beierlein * src/main.c, src/parse_logcfg.c: prepare for separate keyers for CW and digimode 2017-01-14 Thomas Beierlein * src/getpx.c: better implementation of getpx() - handles callsigns with only letters - correct handling of callsigns with long numbers, e.g. DR2006Q or 9A800VZ 2017-01-06 Ervin Hegedus * src/parse_logcfg.c: Fixed wrong parsing for EXCLUDE_MULTILIST parameters 2017-01-10 Thomas Beierlein * src/readcalls.c: Fix test for countrynr in countrylist As getctydata() has a sideeffect of changing 'countrynr' itself we need to switch to use a local variable 'countrynr_tocheck' for the comparison. 2017-01-05 Thomas Beierlein * src/callinput.c, src/getexchange.c, src/gettxinfo.c, src/qtcwin.c, src/rtty.c: simplify logic to call 'show_rtty' Call 'show_rtty' whenever we are in DIGIMODE. 2016-12-29 Thomas Beierlein * src/sendqrg.c: add message if RIGPTT is not available for that rig 2016-08-14 Nate Bargmann * share/logcfg.dat, src/callinput.c, src/gettxinfo.c, src/main.c, src/parse_logcfg.c, src/sendqrg.c, tlf.1.in: Enable Hamlib CAT PTT if wanted and available Introduce a new keyword for logcfg.dat, RIGPTT, which is a directive to test for a Hamlib radio backend's PTT via CAT capability. If the backend reports it is capable, Hamlib CAT PTT will be used in place of the netkeyer PTT if Tlf is compiled with Hamlib support. 2016-12-22 Thomas Beierlein * src/splitscreen.c: output of cluster message needs a packet screen Each cluster message (external or from internal network between multiple loggers) will be processed in several steps: putting it on cluster screen, looking for a personal conversation, adding to bandmap. The change guarantees that it will only be added to the cluster screen if such an object got initialized. (That would not be the case if we started with the 'nopacket'-option or have no cluster configured). 2016-12-21 Thomas Beierlein * src/splitscreen.c: Migrate packet screen to ncurses panels Old implementation used a separate newterm call to get a separate display for packet screen -- separate from normal logger display. It was quite a hack but worked ok. In new ncurses6 newterm does no longer give us a separate screen. So we had to switch to use ncurses panels for the packet screen. A popup panel covers inow the whole screen when we switch to packet. That window is split into two derived windows for display of cluster messages and a second one for input - as did the old implementation. 2016-12-13 Thomas Beierlein * macros/ax_with_curses.m4, macros/ax_with_curses_extra.m4, src/Makefile.am: Use new AX_WITH_CURSES macro New macro uses pkg-config for detecting libs and cflags for programs using ncurses and falls back to old finding out the parameters 'by hand'. For TLF it fixes: - Using libtinfo if stripped out from libncurses - Added feature_test_macros for correct color handling if needed. 2016-12-29 Thomas Beierlein * doc/README.RTTY: adapt README.RTTY 2016-12-28 Thomas Beierlein * src/fldigixmlrpc.c: Make xmlrpc fldigi interface thread safe 2016-05-07 Thomas Beierlein * src/cleanup.c, src/keyer.c, src/main.c, src/qtcwin.c, src/sendbuf.c, src/write_keyer.c, src/write_keyer.h: refactor handling of send cw or digi data Cleanup code so that all data for cw or digi keying goes through the write_keyer() interface. That means anyone who wants to send code has to use the keyer_append() function which (in an thread safe manner) appends the data to a keybuffer. The actual keying is done by a background thread which regularly has to call the write_keyer() function. 2016-12-04 Thomas Beierlein * src/main.c, src/parse_logcfg.c, tlf.1.in: Set fldigis default URL automatically. * src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/stoptx.c: minor changes - rename to 'fldigi_to_rx()' - do not add to a string of unknown length. Send '^r' on separate call afterwards. 2016-11-23 Thomas Beierlein * src/background_process.c, src/callinput.c, src/fldigixmlrpc.c, src/fldigixmlrpc.h, src/gettxinfo.c, src/main.c, src/rtty.c, src/stoptx.c, src/write_keyer.c, src/main.c, src/parse_logcfg.c, src/tlf.h, tlf.1.in: Allow new keyword FLDIGI to set up fldigi xmlrpc interface 2016-12-02 Thomas Beierlein * src/background_process.c, src/callinput.c, src/edit_last.c, src/get_time.c, src/getmessages.c, src/grabspot.c, src/lancode.c, src/score.c, src/scroll_log.c, src/searchlog.c: Cleanup - fix type mismatches for 64 bit compilers * src/sendbuf.c: cleanup some external declarations 2016-11-28 Thomas Beierlein * src/callinput.c, src/showpxmap.c: Fix bug: autosend did not work as Enter key was wrongly checked 2016-11-17 Thomas Beierlein * src/bandmap.c: fix bandmap display If stations in bandmap are really close to each other (0.1 kcs) after a grab from bandmap tlf showed the call on the frequency below as actual frequency. The above fixes the behaviour and does some minor corrections on comments. 2016-11-16 Thomas Beierlein * src/edit_last.c: Fix bug: Enter did not end editing of last QSOs. fixed. 2016-11-01 Thomas Beierlein * src/callinput.c: Fix bug: grab_next() not working without BMAUTOGRAB set The grab functionality did not work if BMAUTOGRAB was not set. Closer inspection showed that it worked shortly but got overridden by the tune-away functionality. The main reason was the time delay between requesting the change to a new QRG and the read back of the actual QRG. To fix it we introduced a small state machine for grabbing spots with i an intermediate IN_PROGRESS state which changes to REACHED as soon as the actual QRG reaches the spot QRG. And only then the tune-away functionality can do their work. * src/qtcvars.h, src/readqtccalls.c: drop unused variable 2016-08-01 Ervin Hegedus * doc/README_QTC.txt, rules/waedc_eu, src/main.c, src/parse_logcfg.c, src/qtcvars.h, src/qtcwin.c, tlf.1.in: QTC_RECV_LAZY config option to skip the RECV restrictions 2016-08-01 Thomas Beierlein * ChangeLog, NEWS, configure.ac: Prepare for tlf-1.2.4.2 bug fix release 2016-07-28 Thomas Beierlein * src/show_help.c: drop old unused implementation of show_help(), fix segmentation fault if help.txt gets found in local directory 2016-07-18 zcsahok * src/netkeyer.c, src/netkeyer.h: netkeyer: streamlined (part 2) - add syntactic sugar - fix buffer overflow 2016-07-03 zcsahok * src/netkeyer.c: netkeyer: streamlined (part 1) 2016-06-26 Nate Bargmann * configure.ac: Remove unwanted indentation from '--help' output * src/calledit.c, src/callinput.c, src/getexchange.c: Fix and keys for call input and exchange fields * tlf.1.in: Update the man page Many updates to the manual page. Many more corrections and additions likely remain. 2016-05-16 zcsahok * src/sendbuf.c: sendbuf.c: fix replace_n, reworked ExpandMacro 2016-05-11 Colin Tuckley * tlf.1.in: Fix spelling errors. 2016-05-09 Ervin Hegedus * src/gettxinfo.c: Aligned hamlib's passband argument to the new macro: RIG_PASSBAND_NORMAL 2016-05-04 Thomas Beierlein * src/checklogfile.c: fix possible resource leaks 2016-05-03 Thomas Beierlein * src/dxcc.c: support reloading the cty.dat database Free the g_ptr_arrays for dxcc and prefix data befre reallocation 2016-05-03 Thomas Beierlein * src/readctydata.c, src/readctydata.h: split out loading of cty database from named file That allows a better testability as we can provide a specialised cty.dat file. 2016-05-03 Thomas Beierlein * src/show_help.c: fix memory leak 2016-04-28 Thomas Beierlein * src/addmult.c: fix possible buffer overflows due to strncpy 2016-03-25 Thomas Beierlein * src/bandmap.c: respect 'S'kip not dupes setting for bandmap * src/addpfx.c: fix possible segmentation fault Do only remember MAX_PFX_LEN chars from prefix (atm 5). As prefix regognition is not perfect we get sometimes longer prefix signatures which led to segfaults. 2016-03-06 Thomas Beierlein * Makefile.am: autoconf needs some more hints to find our macros 2016-03-04 Thomas Beierlein * src/callinput.c: allow BMAUTOGRAB also in Run mode * src/callinput.c: update run/s&p mode display after alt/ctrl-g 2016-03-03 Thomas Beierlein * src/bandmap.c, src/bandmap.h, src/callinput.c: Implement BMAUTOGRAB If set callinput field will automatically grab an active spot from the bandmap if TRX frequency is near spot frequency. Works only in S&P mode. 2016-02-10 Thomas Beierlein * src/callinput.c: change autoadd triggering Former version had difficulties to distinct between callsigns entered by the operator and callsigns grabbed from bandmap. Now 'freqstore' remembers the actual QRG as soon as the operator enters any chars into the call input field. That frequency is used to detect QRG changes (tuning away). In any other case (e.g. callsign grabbed from bandmap) 'freqstore' stays 0. 2016-02-09 Thomas Beierlein * src/background_process.c, src/callinput.c, src/main.c, src/parse_logcfg.c: Move AUTOGRAB function to callinput() 2016-02-08 Thomas Beierlein * src/addspot.c, src/addspot.h: Refactor code to add a spot to bandmap - Split out the code to format a fake DX spot, add it to the own spot list and send it to other stations on the LAN. * tlf.1.in: Add description to man page 2016-02-05 Ervin Hegedus * src/background_process.c, src/main.c, src/parse_logcfg.c: Improve new BMAUTOADD feature 2016-01-26 Thomas Beierlein * src/ui_utils.c, tlf.1.in: Add some warning to lookup_keys() If some special key combinations (Alt/Ctrl-PgUp/PgDown) do not work on the terminal give a message to the user and suggest using ':cqd' Add that to the man page also 2016-01-25 Nate Bargmann * src/bandmap.c: Initialize dupe value when a new spot is created Checking with Valgrind memcheck generated in the report that, "Conditional jump or move depends on uninitialised value(s)" in bmdata_write_file (bandmap.c:134). The result is that various values could be written for the dupe value in .bmdata.dat. Fixed by setting the dupe variable to 0 in bandmap_addspot(). This variable is only used in bandmap_show() and is never stored back into the allspots GList. * src/main.c: Make sure that rig control is closed properly on exit If Hamlib is enabled in the build, close the rig port and release the rig instance on exit. 2016-01-24 Thomas Beierlein * src/callinput.c, src/main.c, src/ui_utils.c, src/ui_utils.h: determine key codes for extended keys during startup 2016-01-23 Nate Bargmann * src/changepars.c: Combine EXIT and QUIT stanzas The case stanzas for EXIT and QUIT were identical so combine them. * src/sockserv.c: Use memmove() for overlapping strings. Checking Tlf with Valgrind showed that memcpy() was assigning a string back onto itself. The Glibc documentation says doing so will result in undefined behavior and recommends using memmove() instead. * doc/keynames.txt, src/callinput.c: Use keyname() to test for Ctrl/Alt PageUp/Down keys Testing has shown that the ordinal values for these extended keys are defined in the terminfo database and vary across systems. Use the ncurses keyname() function along with strcmp() to determine the keys based on their names which appears to be consistent across the systems tested. 2016-01-21 Nate Bargmann * src/callinput.c, tlf.1.in: Add Alt-PageUp/PageDown keys for Auto_CQ delay Some terminals consume the Ctl-PageUp/PageDown keys (Xfce Terminal is one). Add Alt-PageUp/PageDown as alternatives for increasing or decreasing the Auto_CQ pause delay time. 2016-01-20 Nate Bargmann * src/splitscreen.c: Ensure keypad is called when exiting packet screen When the packet screen is opened, keypad(entwin, TRUE) is called on the entwin window. When set_term(mainscreen) was called, the keypad was not being redirected back to stdscr. This should now be fixed and the arrow keys respond as expected in the call input field. * src/main.c: Don't call obsolete crmode() function Ncurses documentation advises that crmode() should not be used. In curses.h it is a macro that calls cbreak(), so call cbreak() instead for clarity. 2016-01-17 Nate Bargmann * src/getexchange.c: Merge F11 processing with other F keys The old code had a skip in the numbering of the F keys jumping from 138 for F10 to 140 for F11. As Ncurses now assigns sequential values using the KEY_F(n) = KEY_F(0) + n macro, this special handling is no longer necessary. 2016-01-12 Nate Bargmann * src/audio.c, src/autocq.c, src/calledit.c, src/callinput.c, src/changefreq.c, src/changepars.c, src/edit_last.c, src/getexchange.c, src/keyer.c, src/main.c, src/messagechange.c, src/qtcwin.c, src/showpxmap.c, src/tlf_curses.h, src/ui_utils.c, tlf.1.in: Process input keystrokes using keypad() Ncurses provides the keypad() function that maps most escaped key codes to named constants found in curses.h. The onechar() function has been reworked to minimize the amount of key escapes that need to be caught. Those that are caught are assigned values to match the Ncurses declared constants. Keys were tested on the Linux console, and the following X11 terminal emulators, Xfce Terminal, Gnome Terminal, Xterm, and Qterm. Update the tested constants to match the Ncurses defined constants in the rest of the sort where key_get() and key_poll() are called. Ncurses will honor the value of the environment variable ESCDELAY but to avoid the users having to set it, use the set_escdelay() function to set the delay to 25 mS (default is 1000 mS when unset) when the environment variable is unset. Should that be too short, users can set it via the usual method, i.e. 'export ESCDELAY=125' would set a delay of 125 mS. 2016-01-08 Nate Bargmann * doc/keynames.txt: Add keynames.txt Document the decimal value and name string as returned by keyname() and accepted by key_defined() for Ncurses by default. Keystrokes are processed from the various codes as shown by 'showkey -a' and escaped sequences are assigned to values corresponding to the values and names in this file. 2016-01-02 Ervin Hegedus * src/fldigixmlrpc.c: Fixed hamlib-related variable compile error 2016-01-02 Thomas Beierlein * src/fldigixmlrpc.c: fix unreachable code sequences * src/fldigixmlrpc.c, src/gettxinfo.c: fix compile errors with --disable-hamlib 2015-12-31 Thomas Beierlein * configure.ac: Use mailing list address in AC_INIT macro ... as suggested by Nate N0NB 2015-12-30 Nate Bargmann * configure.ac: Set temporary CFLAGS, CPPFLAGS, LIBS variables To assist AC_CHECK_LIB and AC_CHECK_HEADERS temporarily set the user variables to the paths found by pkg-config. 2015-12-29 Thomas Beierlein * src/addmult.c: Correct logic for WYSIWYG multis coming in via LAN 2015-12-20 Thomas Beierlein * src/addmult.c: keep the list of possible multis sorted * src/addmult.c: better tests for possible mults for ARRL_SS and DX_&_SECTIONS Old logic failed if some multi was part of a multi coming later in the multi list (e.g. NE and ONE). Then tlf picked up the first one and mised the other one. New logic scans all possible multis and keeps the longest one which matches. Added some syntactic sugar - ALL_BAND or PER_BAND to make clear if a multi counts per band or only once per contest. 2015-12-19 Thomas Beierlein * src/addmult.c, src/addmult.h, src/main.c: cleanup logic init_and_load_multipliers is now responsible for (freeing and new) allocation of the mults_possible array. It now handles empty multiplier filenames gracefully by giving back an empty mults_possible array. The former check for naming the file is now the responsibility of the calling function (if needed). 2015-12-14 Thomas Beierlein * src/addmult.c: Tests for empty strings are already handled in remember_multi(). Furthermore for-loops tests themself if endcondition is already fulfilled when entered. So we can drop some needless tests. 2015-12-19 Nate Bargmann * macros/ax_with_curses.m4, src/tlf_curses.h, src/tlf_panel.h: Revert local changes to macros/ax_with_curses.m4 Tom, DL1JBE, reported that on some systems with ncursesw installed, the modification made to macros/ax_with_curses.m4 caused a compilation failure. The patch reverts those changes and returns the macro file to its original format of serial 15. Also updated src/tlf_curses.h and src/tlf_panel.h to extend the header macro tests to the ncursesw headers. * configure.ac, src/Makefile.am: Set LIBM_LIB to preserve the LIBS variable Autoconf documentation states the LIBS is a precious variable reserved for the user. Add macros to define HAVE_LIBM in config.h and LIBM_LIB in src/Makefile. Add LIBM_LIB to tlf_LDADD in src/Makefile.am. * configure.ac, src/Makefile.am, src/addmult.c, src/readctydata.c, src/rules.c, src/searchlog.c, src/show_help.c, src/writecabrillo.c: Define PACKAGE_DATA_DIR in src/Makefile.am Automake provides the predefined 'pkgdatadir' Makefile variable which is the same path as the previously calculated PACKAGE_DATA_DIR value in configure.ac. Use it to set PACKAGE_DATA_DIR as a -D value to the preprocessor via AM_CPPFLAGS in src/Makefile.am which is passed to the source files during preprocessing. This conforms with current Autotools convention. As PACKAGE_DATA_DIR is longer defined in config.h, remove its include directive from those files that were only including it for the PACKAGE_DATA_DIR definition. 2015-12-18 Nate Bargmann * configure.ac, macros/ax_append_flag.m4, macros/ax_cflags_warn_all.m4, macros/ax_require_defined.m4, src/Makefile.am: Use AX_CFLAGS_WARN_ALL to determine compiler warnings As CFLAGS is a a precious user variable, use the AX_CFLAGS_WARN_ALL macro and have it assign the warning flag(s) to AM_CFLAGS which is then substituted into the Makefile. This macro determines the best warning for various compilers. This macro depends on the AX_APPEND_FLAG and AX_REQUIRE_DEFINED macros (in separate files). * configure.ac, src/Makefile.am: Update Fldigi XML RPC stanza in configure.ac The Autoconf documentation states that LIBS and CFLAGS are reserved for the user. Refactor the Fldigi XML RPC stanza to avoid assignment to those precious variables. Instead assign new LIBXMLRPC_LIB, LIBXMLRPC_CLIENT_LIB, and LIBXMLRPC_UTIL_LIB to tlf_LDDADD in src/Makefile.am. Define the HAVE_LIBXMLRPC, HAVE_LIBXMLRPC_CLIENT, and HAVE_LIBXMLRPC_UTIL macros for config.h Also use standard Autoconf macros instead of raw shell if conditional and complete quoting per current Autoconf convention. * configure.ac, src/Makefile.am: Update Hamlib stanza in configure.ac The Autoconf documentation states that LIBS and CFLAGS are reserved for the user. Refactor the Hamlib stanza to avoid assignment to those precious variables. Instead assign the HAMLIB_CFLAGS and HAMLIB_LIBS generated by the pkg-config macro to AM_CFLAGS and tlf_LDDADD in src/Makefile.am respectively. Also use standard Autoconf macros instead of raw shell if conditional and complete quoting per current Autoconf standards. * acinclude.m4, configure.ac, macros/ax_pthread.m4, src/Makefile.am: Update to AX_PTHREAD macro The newer ax_pthread.m4 macro file from the Autoconf archive provides updated searches for determining the correct pthread compilation flags and linking libraries. This version also adds support for clang which is becoming more important as a supported compiler. As the ACX_PTHREAD macro is now outdated, remove acinclude.m4 from the repository. * configure.ac, src/Makefile.am: Use glib macro to detect glib The glib package includes its own M4 macro that uses pkg-config and also compiles against the library to ensure it is available and suitable for use. Also check that pkg-config is really available and exit configure with an error if it is not. 2015-12-16 Nate Bargmann * macros/ax_with_curses_extra.m4: Fix bug in ax_with_curses_extra.m4 Found a bug where the AX_WITH_CURSES_PANEL macro would incorrectly reset the ax_cv_panel variable to 'no' when checking for the panel.h header a second time even though it had found it as ncurses/panel.h on the previous call. Confirmed working by David, CT1DRB. 2015-12-15 Nate Bargmann * Load ncurses.h via tlf_curses.h Regarding Tlf Issue #51, this patch provides consistency in the form of having the build system determine which ncurses header file is available. The build system will set relevant macros in config.h and boilerplate in tlf_curses.h will select the proper include path based on the tests. This patch confines the boiler plate to one file resulting in minimal editing of the other source files. this patch resolves the problem of distributions putting panel.h in /usr/include/ncurses rather than in /usr/include. Thanks to David, CT1DRB, for reporting this issue with OpenSuSE LEAP 42.1. The build system will set relevant macros in config.h and boilerplate in tlf_panel.h will select the proper include path based on the tests. This patch confines the boiler plate to one file resulting in minimal editing of the other source files. * configure.ac, macros/ax_with_curses.m4, macros/ax_with_curses_extra.m4, src/Makefile.am: Switch Autoconf Archive macros for Curses search Use the AX_WITH_CURSES and AX_WITH_CURSES_PANEL macros to determine the library and header files location for curses. For now the AX_WITH_CURSES macro is edited to only look for ncurses or curses and not ncursesw. Also the configure options have been commented out as ncurses is required. Macros are set in config.h to allow testing for the proper header file location to include. 2015-12-14 Nate Bargmann * configure.ac: Adjust tests in configure.ac Reposition several tests to be run before the tests for third party packages. Temporarily comment out the AC_PROG_GCC_TRADITIONAL and AC_FUNC_STRFTIME macros as the Autoconf documentation states they are obsolescent. Temporarily comment out the AC_HEADER_STDBOOL macro as no source file loads stdbool.h at this time. Remove some header files from AC_CHECK_HEADERS as they are already checked by the AC_HEADER_STDC macro. * .gitignore, config.h.in, configure.ac: Remove generated config.h.in file Have Autoconf check for src/tlf.h to assure the build system is working in the correct project directory. As the AC_CONFIG_HEADERS macro will generate config.h.in upon build system bootstrap, there is no need to carry this file in the repository. Have git ignore generated config.h.in. 2015-12-08 Nate Bargmann * .gitignore: Have Git ignore backup files ( *~ ). 2015-12-12 Ervin Hegedus * doc/README.RTTY, src/fldigixmlrpc.c, src/gettxinfo.c, src/globalvars.h, src/main.c: Added new feature: calculate the QRG in different modulations, as FSK, LSB/USB 2015-12-11 Thomas Beierlein * src/readcalls.c: Fix bug in using multarray_nr for 'SERIAL&SECTION' keyword Back in tlf 0.9.10 there was some inconsistent handling of the index for adding new multis to mults[] array. Sometimes they were counted from 0 sometimes from 1 (depending on the contest). That was fixed some time ago but there was a remnant in 'readcalls()' function left. That got dropped now. * src/addmult.c: Fix bug in multcounting for ARRL-SS 'multarray_nr' is the number of multis in 'mults[]' array. So to add a new mult first copy it into the array and later increment the number of the multis. 2015-12-09 Thomas Beierlein * src/main.c, src/ui_utils.c, src/ui_utils.h: Move refreshp() to ui_utils.c 2015-12-03 Nate Bargmann * src/addmult.c: Test for existence of MULT_LIST in install directory Code only checked for MULT_LIST value in the working directory. Now also check for the file in the installation directory. e.g. /usr/local/share/tlf 2015-12-05 Nate Bargmann * tlf.1.in: Fix typos in tlf.1.in 2015-11-30 Nate Bargmann * share/logcfg.dat, src/editlog.c, src/parse_logcfg.c: Prefer 'mcedit' for logcfg.dat Also make sure that old values of 'mc' and 'MC' are recognized. Enable 'mcedit' as a log file editor. * rules/Makefile.am, rules/arrl160m_usa: Add ARRL 160m USA rules file Ensure the new file is distributed and installed. 2015-11-29 Thomas Beierlein * src/addcall.c: simplify switch logic in addcall() and addcall2() Replace hard coded bandmask and bandindex values by switch variable and finally merge the different switch branches which are now identical together. 2015-11-19 Thomas Beierlein * src/addcall.c, src/globalvars.h, src/main.c, src/paccdx.c, src/readcalls.c, src/showscore.c: extend countryscore[] to full number of bands see * src/addcall.c, src/globalvars.h, src/main.c, src/readcalls.c, src/showscore.c: extend zonescore[] and countryscore[] array to full number of bands Until now there was a distinction between counting things for all bands (WARC and non WARC) and counting zones and countries for contest bands only. The handling can be simplified if we unify the handling and count zones and countries for ALL bands. We can then ignore the non WARC entries for contest scoring. Furthermore it is more easy to add additional bands later. 2015-11-28 Nate Bargmann * Move includes from headers as much as possible. Only include other header files in header files if absolutely necessary. Source files declare all needed includes. This results in five local headers that still include other headers src/globalvars.h:2:# include "tlf.h" src/globalvars.h:5:#include src/nicebox.h:24:#include src/qtcvars.h:21:#include "globalvars.h" src/searchlog.h:24:#include src/sendqrg.h:25:# include src/sendqrg.h:29:# include This minimizes, but doesn't entirely eliminate dependency chains when including certain header files. All local header files should have include guards so multiple include directives should not cause an error. 2015-11-23 Thomas Beierlein * src/addcall.c: Drop redundant test for 'pfxnummultinr>0' 'pfcnumcntidx > -1' can only be true if 'pfxnummultinr > 0'. 2015-11-22 Thomas Beierlein * src/addcall.c: Fix lookup in pfxnummulti table If getctydata() did not find the country (returns 0) then pfxnumcntidx got set to a wrong number. 2015-11-18 Thomas Beierlein * src/bandmap.c: fix calculation of remaining time during bandmap read Lastly spot->timeout got changed to unsigned. We must take care that we do not get a wrap around if the diff between writing und reading the bandmap data is too big. * src/bandmap.c, src/bandmap.h, src/time_update.c: Fix saving of bandmap data Bandmap data are saved every 10s. It works now even if the bandmap is not shown and even if auto CQ is working. * src/autocq.c: Fix some small bug in auto_cq mode: - Do a time_update() to keep displayed time and bandmap actual (tnx HA2OS for reporting) 2015-11-01 Thomas Beierlein * share/Makefile.am, share/qtcmerge.py: Delete files no longer needed * share/cty.dat: update cty.dat to VER20151027 2015-10-28 Ervin Hegedus * rules/waedc_dx_rtty, rules/waedc_eu_rtty: Modified rule files for WAE RTTY, for EU and DX stations * src/qtcwin.c: Some minor changes to fixup the QTC send method in RTTY * src/genqtclist.c: Fixed gentclist item length bug: if QTC set up as BOTH, then the SEND length wasn't calculated correctly * src/qtcwin.c: Fixed empty record command issue: if qtcrec_command was empty, Tlf drops an error 2015-10-31 Thomas Beierlein * datastructures: update description of datastructures * src/background_process.c, src/main.c, src/searchlog.c, src/searchlog.h: switch callmaster database to growing arrays * src/searchlog.c: Allow comment lines in callmaster data base 2015-10-30 Thomas Beierlein * share/callmaster: update callmaster file * doc/FAQ: extend the FAQ 2015-10-25 Thomas Beierlein * src/clusterinfo.c: drop unused code, initialize spot array 2015-10-27 Ervin Hegedus * src/callinput.c: Fixed immediate auto_cq bug: if Tlf sends CQ in auto mode, and op press the first letter of callsign, that will be lost 2015-10-25 Thomas Beierlein * src/checklogfile.c, src/checkqtclogfile.c: Fix some NULL pointer warnings * doc/FAQ: Add information about refreshing callmaster database and CTY.DAT to FAQ 2015-10-22 Thomas Beierlein * README: drop reference to not longer accessible wikispaces pages 2015-10-13 Thomas Beierlein * src/bandmap.c: Cleanup bmdata_read_file - fix memory leak - close file pointer - restructure parsing loop - simplify * src/writecabrillo.c: Close opened file pointers in case of error 2015-10-11 Ervin Hegedus * src/bandmap.c: Added new feature: save bandmap state when bandmap state changed, and 10 secs elapsed till last write; this file will read by Tlf when starts again 2015-10-06 Thomas Beierlein * src/bandmap.c: Do not show QRG in bandmap when no active rig control in use Show bandmap around center frequency for actual selectzed band and mode. 2015-09-22 Ervin Hegedus * rules/waedc_dx, rules/waedc_dx_rtty, rules/waedc_eu, rules/waedc_eu_rtty, share/qtcmerge.py, src/writecabrillo.c: Full 'QTC' line support in cabrillo output 2015-09-13 Ervin Hegedus * src/qtcwin.c: Fixed fill QTC time bug: after the last fill, the minutes remained in all lines 2015-09-22 Thomas Beierlein * ChangeLog, NEWS: Add missing NEWS and ChangeLog entries for tlf-1.2.2_pre1 2015-09-16 Thomas Beierlein * src/bandmap.c, src/bandmap.h, src/parse_logcfg.c, src/time_update.c: Improve bandmap display code - display actual QRG on bandmap - center bandmap around QRG - update bandmap every second - do not show WARC spots in contest mode 2015-09-13 Ervin Hegedus * src/qtcwin.c: Fixed fill QTC time bug: after the last fill, the minutes remained in all lines 2015-08-30 Ervin Hegedus * src/bandmap.c: New feature: better handling of bandmap for WAE stations - show station as workable on bandmap as long as it has any QTC capable flags left 2015-09-01 Ervin Hegedus * src/qtcwin.c: New feature: Ctrl-R to start and stop QTC recording - show recording state (on/off) 2015-08-31 Ervin Hegedus * src/main.c, src/parse_logcfg.c, src/qtcvars.h, src/qtcwin.c, tlf.1.in: New feature: QTC_AUTO_FILLTIME - CTRL-F shortkey to fill the first two letters of QTC time 2015-08-27 Ervin Hegedus * src/background_process.c, src/lancode.c, src/lancode.h, src/qtcutil.c, src/qtcutil.h, src/qtcvars.h, src/qtcwin.c, src/readqtccalls.c: New feature: new QTC capable flags: - 'L': 'later', 'N': 'NO' for callsigns, - indicates them in bandmap and worked window - send QTC flags through LAN to another nodes * src/bandmap.c, src/main.c, src/parse_logcfg.c, src/qtcutil.c, src/qtcutil.h, src/qtcvars.h, src/readqtccalls.c, src/searchlog.c, tlf.1.in: New feature: initial QTC capable callsigns list, and indicates them in bandmap and worked window 2015-09-05 Ervin Hegedus * src/background_process.c, src/lancode.c, src/lancode.h, src/qtcutil.c, src/qtcutil.h, src/qtcwin.c, src/readqtccalls.c: New feature: QTC flags sending through LAN to another nodes, when user mark a callsign. 2015-08-05 Ervin Hegedus * src/qtcwin.c: Added new feature: move to next field in callsign/serial/qtc nr fields with SPACE or ENTER * src/qtcwin.c rules/waedc_eu: Fix some minor problems as result to last WAEDC SSB 2015-08-14 Thomas Beierlein * Fix handling of ITUMULT and WAZMULT keyword CQ and ITU zones gets scored in the same 'zones[]' array. The commit fixes the following problems: - zones[] array was to small (only for 40 CQ zones) - display of worked zones did not work - rescoring did not recognize the already worked zones. 2015-08-03 Thomas Beierlein * src/splitscreen.c: fix segfault due to possible buffer overrun 2015-04-05 Thomas Beierlein * rules/Makefile.am, rules/aadx_as, rules/aadx_dx: Add All Asian DX contest 2015-07-10 Thomas Beierlein * src/addcall.c, src/makelogline.c: Fix PFX_MULT_MULTIBAND logic * PFX_MULT_MULTIBAND counts prefix as multi, when country/continent is excluded 2015-07-09 Thomas Beierlein * src/initial_exchange.c: Fix potential memory leak 2015-04-30 Thomas Beierlein * src/showscore.c: clean up of display code for PFX_MULT_MULTIBAND 2015-04-06 Thomas Beierlein * src/addpfx.c, src/addpfx.h, src/globalvars.h, src/readcalls.c, src/showscore.c: cleanup PFX_MULT_MULTIBAND logic * src/addcall.c, src/addcall.h, src/main.c, src/parse_logcfg.c, src/readcalls.c, tlf.1.in: Add EXCLUDE_MULTILIST keyword 2015-07-07 Thomas Beierlein * src/addcall.c, src/globalvars.h, src/main.c, src/makelogline.c, src/parse_logcfg.c, src/readcalls.c, src/searchlog.c, src/tlf.h, tlf.1.in: Add PFX_NUM_MULTI keyword 2015-06-20 Thomas Beierlein * src/callinput.c, src/changepars.c, src/main.c, src/printcall.c, tlf.1.in: autosend now supports manual start feature (see issue #12). * Set :char to 'm' for manual mode. Enter key starts sending cw but you can type additional characters to the call sign. As soon as tlf sent all characters it sneds the exchange. * src/log_to_disk.c, src/main.c, src/prevqso.c, src/prevqso.h: resending of last qsonr honors also last report * src/sendbuf.c, src/sendbuf.h: factor out conversion to short cw numbers * src/sendbuf.c, src/setcontest.c: drop contradictory setting of shortqsonr for ARLL_SS 2015-05-31 dh5fs * src/prevqso.c: update "repeat number" string its better to send "5NN" as prefix before repeating the number then NR, some people react better to that under low S/N conds 2015-04-05 Thomas Beierlein * src/addcall.c, src/addpfx.c, src/globalvars.h, src/main.c, src/makelogline.c, src/parse_logcfg.c, src/readcalls.c, src/showscore.c, tlf.1.in: add multi scoring for prefixes per band - new keyword PFX_MULT_MULTIBAND - adapted counting and display 2014-07-02 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/readcalls.c, src/readcalls.h, src/score.c, tlf.1.in: add more keywords for CONTINENT handling - CONTINENTLIST continents to score points for - CONTINENT_LIST_POINTS points for the continent from CONTINENTLIST - USE_CONTINENTLIST_ONLY Zero points for other continents 2014-06-21 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/score.c, src/showscore.c, tlf.1.in: add BANDWEIGHT_MULTIS and BANDWEIGHT_POINTS keywords - allow to give a weight for the multis on different bands e.g. BANDWEIGHT_MULTIS=160:4,80:3,20:2 - Multis for Bands not in list are multiplied by 1 - allows to give a weight for the points on different bands - Points for Bands not in list are multiplied by 1 2015-03-01 Thomas Beierlein * src/score.c: refactored for better test and maintenance The goal was to get a better understanding or the point scoring logic and to allow easy extensions in future. - Split score() into contest specific rules and universal point scoring logic - factored out some common functions - added some comments and made structure more clear 2015-02-27 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/score.c: cleanup and fix COUNTRYLIST= handling - Fix initialisation of countrynr 2015-02-22 Nate Bargmann * configure.ac, tlf.1.in: Update manual page to current conventions The man pages project provides guidelines for writing manual pages. This rewrite attempts to bring the Tlf man page up to those standards. It is likely that several errors and omissions still exist. 2015-02-16 Thomas Beierlein * src/Makefile.am, src/onechar.c, src/onechar.h, src/ui_utils.c: Move onechar() routine and make it static We hide the onechar() routine to force the use of the new key_get() and key_poll() routines. That is a first step to switch to a different handling of key input. The next step will be a switch to curses keypad mode where curses decodes the ESC sequences itself. That will allow for: - handling more terminal types - resizing the program window - accepting mouse input 2015-02-13 Thomas Beierlein * src/audio.c, src/bandmap.c, src/calledit.c, src/callinput.c, src/changefreq.c, src/changepars.c, src/checklogfile.c, src/deleteqso.c, src/edit_last.c, src/focm.c, src/getexchange.c, src/keyer.c, src/listmessages.c, src/main.c, src/messagechange.c, src/muf.c, src/setparameters.c, src/show_help.c, src/showpxmap.c: unify key input handling - move usage of 'getchar()' to 'key_get()' getchar() bypassed the curses key input routines. So we drop them and use key_get() instead to ask for the next key from the user. - curses getch() does not handle multi character escape sequences (e.g. function keys) well. So we switch to using the new key_get() function which will give us only one key code per key press. - switch to key_get in all remaining cases where onechar() was used. * src/audio.c, src/autocq.c, src/callinput.c, src/getexchange.c: use new key_poll() function Change all places where we only poll for keypresses without waiting to use the new key_poll() function. * src/ui_utils.c, src/ui_utils.h: add utility functions for non/blocking user input 2015-02-02 Thomas Beierlein * src/audio.c, src/autocq.c, src/callinput.c, src/changepars.c, src/cleanup.c, src/clear_display.c, src/clusterinfo.c, src/freq_display.c, src/log_to_disk.c, src/logit.c, src/muf.c, src/nicebox.c, src/printcall.c, src/rtty.c, src/searchlog.c, src/showinfo.c, src/showpxmap.c, src/splitscreen.c, src/time_update.c, src/writecabrillo.c: Use modify_config() instead checking 'use_rxvt' * src/Makefile.am, src/ui_utils.c, src/ui_utils.h: Add files to provide User Interface utilities - Linux terminal requires A_BOLD to be set for most attributes. Instead of adding the check for use_rxvt to each attribute settings we provide modify_attr() function to do it instead. 2015-02-03 Thomas Beierlein * many files... fixup #include files - add include guards - drop includes already included by tlf.h - sort out otherwise inherited includes and make them explicit 2015-01-24 dh5fs * share/darcmults: darc_mults Multiplier file for DARC contests (Oct/14) 2015-01-18 Thomas Beierlein * src/Makefile.am, src/background_process.c, src/getexchange.c, src/logit.c, src/logit.h, src/main.c, src/parse_logcfg.c, src/set_tone.c, src/set_tone.h, src/write_tone.h: drop unneeded include file (write_tone.h) - function is already exported by set_tone.h - cleanup according includes * src/callinput.c, src/changepars.c: rework display of remaining sections in multiplierinfo 2015-01-17 Thomas Beierlein * src/getctydata.c, src/getctydata.h: backport fixes from waedc-qtc, add include guards * src/calledit.c, src/callinput.c, src/getwwv.c, src/globalvars.h, src/logit.c, src/scroll_log.c, src/searchlog.c, src/showinfo.c: Fix lint reports and cleanup - cleanup old crap from globalvars.h - fix potential truncations in handling of timeoffset - fix conditions never met in callinput.c - fix possible NULL pointers going into file functions (searchlog.c, ) - fix warning about uninitialized call2[] variable - Exit if logfile could not be opened (scroll_log.c) * src/bandmap.c, src/rtty.c, tlf.1.in: backport some fixes from waedc-qtc branch 2014-12-30 Thomas Beierlein * src/listmessages.c, src/logit.c, src/main.c, src/messagechange.c, src/parse_logcfg.c: cleanup * switch to using SP_TU_MSG and CQ_TU_MSG instead of hardcoded value * fix 'parse_logcfg()' * src/listmessages.c, src/listmessages.h, src/tlf.h: adapt :list command * :list now shows also the S&P_CALL_MSG * fix twisted definition of SP_TU_MSG and CQ_TU_MSG * add #include guard * src/parse_logcfg.c, tlf.1.in: Allow to use a custom S&P message instead of the autogenerated one. * extend message[] field by one * add new Keyword S&P_CALL_MSG * Use the new S&P_CALL_MSG if set * src/main.c, src/sendspcall.c, src/tlf.h: Allow to use a custom S&P message instead of the autogenerated one. * extend message[] field by one * Use the new SP_CALL_MSG if set 2014-10-27 Thomas Beierlein * src/callinput.c: Unify sending of call in S&P mode. - Normally the key is handled by using 'sendspcall()' after key. - F1 key in empty call field did also send the own call but by separate code. Now we use 'sendspcall()' in these case too. 2014-12-22 Ervin Hegedus * src/rtty.c: Seek gMFSK.log to end of the file, when Tlf starts 2014-12-20 Reiner Herrmann * scripts/soundlog: Remove bashisms in sh script. * scripts/soundlog: Drop -d /dev/dsp1 in favor of default. Taken from Debian patch by John AC6SL . * scripts/soundlog: Change hardcoded home directory with $HOME. Taken from Debian patch by John AC6SL . 2014-11-03 Thomas Beierlein * src/fldigixmlrpc.c, src/fldigixmlrpc.h: New code from airween to read offset frequency from fldigi via xmlrpc - Added new configure option: --enable-fldigi-xmlrpc - Added fldigixmlrpc.[ch] files to read the carrier value of Fldigi - Modified affected parts of code, when indicated/used the RIG freq: * show frequency at right middle part in main window * store the correct freq when user grabs the spot * restore the correct freq when user loads a station from the bandmap - finally add missing #include and include-guard 2014-10-31 Thomas Beierlein * src/parse_logcfg.c: Convert CALL= from logcfg.dat always to upper case. - Pierre VE3KTB reported that cqww scoring did not work correctly if he enters his own call in mixed or lower case. Thanks for the report. 2014-10-27 Thomas Beierlein * src/callinput.c, src/main.c: Fix use of Alt-0..Alt-9 messages - message[] field had one member to much. Range of input keys was also one too wide. 2014-10-26 Thomas Beierlein * src/main.c: comment usage of cw/digi/phone messages 2014-10-09 Thomas Beierlein * src/keyer.c: put keyer into a popup window - define keyer window size and position - pop up a panel at keyer start and hide when it stops 2014-09-24 Ervin Hegedus * src/main.c, tlf.1.in: Added new startup argument: '-r', which disables radio control 2014-09-24 Ervin Hegedus * src/getexchange.c, src/makelogline.c: Added extra check for exchange field for CQ-WW-RTTY - CQWW RTTY contest requires the two letter province for US and Canada stations in the exchange. * src/logit.c: Modified automatic cq zone nr copy to comment variable, if that's not empty - If the user modified the exchange field, which was filled out by Tlf from cty.dat, then Tlf rewrite the original value if switching back forth between call input and comment field. * src/getexchange.c, src/makelogline.c: Added extra check for exchange field for CQ-WW-RTTY * src/logit.c: Modified automatic cq zone nr copy to comment variable, if that's not empty * src/main.c: Added new startup argument: '-r', which disables radio control 2014-09-23 Thomas Beierlein * src/main.c: fix initialization of digi modems. - write_tone() works only for NET_KEYER and therefore calling it in the wrong context gave only an error resulting in switching back to SSB mode. 2014-09-07 Thomas Beierlein * src/sendbuf.h: make sendbuf() and buffer[] private - new code should use sendmessage() instead * src/keyer.c, src/main.c: cleanup keyer() - second part - correct logic for sending - do not send control characters to the keyer - drop no longer used logic to buffer input and display it via buffer[] and buloc. That code was not functional for a long time. Even in 0.9.10 it was no longer used correctly. 2014-09-06 Thomas Beierlein * src/keyer.c, src/sendbuf.c, src/sendbuf.h: cleanup keyer() - first part - use sendmessage() instead of sendbuf() - cleanup some unused code 2014-09-02 Thomas Beierlein * src/logit.c, src/speedupndown.c: use sendmessage() instead of sendbuf() * src/speedupndown.c: Refactor speedup() and speeddown() 2014-09-02 Thomas Beierlein * src/Makefile.am, src/callinput.h, src/getexchange.h, src/keyer.h, src/parse_logcfg.c, src/speeddown.c, src/speeddown.h, src/speedup.c, src/speedup.h, src/speedupndown.c, src/speedupndown.h: merge speedup.c and speeddown.c to speedupndown.c - there is a lot of duplicated code which can be factored out 2014-09-01 Thomas Beierlein * src/background_process.c, src/callinput.c, src/changepars.c, src/getexchange.c, src/prevqso.c, src/sendspcall.c: Use sendmessage(msg) instead of sendbuf() 2014-08-31 Thomas Beierlein * src/background_process.c, src/background_process.h, src/callinput.c, src/changepars.c, src/getexchange.c, src/keyer.c, src/logit.c, src/main.c, src/prevqso.c, src/prevqso.h, src/sendspcall.c, src/sendspcall.h, src/speeddown.c, src/speeddown.h, src/speedup.c, src/speedup.h: cleanup - refactor all declarations of 'extern char buffer[]' to sendbuf.h preparing a later drop of sendbuf() function and replacement by sendbuf(char *msg). * src/sendbuf.c: factor out macro expansion from sendbuf() function 2014-08-23 Thomas Beierlein * src/displayit.c, src/displayit.h, src/sendbuf.c, src/sendbuf.h: fix displayit() - functions relied on termbuf terminated with newline. Dropped last character in display if not present. 2014-06-20 Thomas Beierlein * src/clusterinfo.c, src/clusterinfo.h, src/time_update.c: cleanup clusterinfo() - split out functions not belonging to the cluster display 2014-06-19 Thomas Beierlein * src/clusterinfo.c, src/clusterinfo.h, src/main.c, src/splitscreen.c: cleanup clusterinfo() - drop compiler warnings - simplify - cleanup include files - add include guard - move datastructures to file scope - rename 'ptr' variable to 'nr_of_spots' 2014-06-18 Thomas Beierlein * src/getmessages.c, src/main.c, src/muf.c, src/qrb.c, src/qrb.h, src/showinfo.c, src/showinfo.h: cleanup qrb calculation - change internal representation of station coordinates from string to double numbers - drop usage of global variables and make them local function parameters - cleaunp include files - add include guard 2014-06-17 Thomas Beierlein * src/main.c, src/muf.c, src/muf.h, src/sunup.c, src/sunup.h: cleanup call of sunup() function - move global vars to parameters - cleanup includes - add include guard 2014-06-01 Thomas Beierlein * datastructures, src/clusterinfo.c, src/main.c, src/printcall.c, src/sendbuf.c: a little cleanup - make global variable local - fix doxygen syntax - update description of datastructures 2014-05-28 Thomas Beierlein * src/background_process.c, src/main.c: restructure threading logic - background thread gets started as before but main logging function 'logit()' stays in the main thread - add an cleanup function via atexit() to stop background thread 2014-05-24 Thomas Beierlein * src/main.c, src/rtty.c, src/rtty.h: add correct deinitialisation of RTTY controller 2014-05-19 Thomas Beierlein * src/main.c, src/startmsg.c: restructure main() - factor out option parsing and curses initialization - defer color initialisation until logcfg.dat is read - factor out loading of databases - minor fixes to failure handling - factor out initialisation of hamlib, packet and lan connection - factor out initialisation of keyer device 2014-05-16 Thomas Beierlein * src/addcall.c, src/bandmap.c, src/clusterinfo.c, src/focm.c, src/globalvars.h, src/main.c, src/readcalls.c, src/recall_exchange.c, src/searchcallarray.c, src/tlf.h: add a structure to represent worked stations - move single fields containing parts of the information to a common struct ('callarray[]', 'call_band[]', 'call_exchange[]' and 'call_country') - rename 'callarray_nr' to 'nr_worked' 2014-04-27 Ervin Hegedus * tlf.1.in: Adding new config option and macro 2014-04-26 Sebastian Kricner * src/callinput.c: Fragezeichen für Rufzeichen hinzugefügt - Wenn im Eingabefeld ein Fragezeichen eingegeben wird und es kein leeres Feld ist, werden die Buchstaben in CW gesendet, gefolgt von einem Fragezeichen. 2014-05-07 Thomas Beierlein * src/addcall.c, src/searchlog.c: Extend searchlog() to show warc bands - works only in QSO or DXPED mode where you are allowed to work the WARC bands - fix for contest mode if there are some warc qsos in log (will not be shown now) Based on HA2OS initial work on that. Thanks Ervin. 2014-05-04 Thomas Beierlein * src/bandmap.c, src/focm.c, src/showscore.c: use new IsWarcIndex() * src/addcall.c, src/readcalls.c: add statistics info also for warc bands - countryscore and zonescore are evaluated only for non-warc bands * src/addmult.c, src/tlf.h: prepare for display of WARC bands - add entries to tlf.h - complete conversion table 'inxes[]' from band index to band mask - add macros IsWarcMask() and IsWarcIndex() 2014-04-29 Thomas Beierlein * src/splitscreen.c: handle newterm() not being able to allocate a second screen - happens for ncurses 5.8 and 5.9 with --enable-sp-funcs - do not change color settings in that case and do not switch to the packetscreen which is NULL resulting in a segfault 2014-05-01 Ervin Hegedus * src/sendspcall.c, tlf.1.in: add hiscall before send "DE" if SEND_DE is used in DIGIMODE * src/sendbuf.c, tlf.1.in: added new placeholder: ! for exchange of other station 2014-04-29 Thomas Beierlein * tlf.1.in: add documentation for MY_QRA (needed for Stewperry contest) 2014-03-02 Ervin Hegedus * src/gettxinfo.c, src/sendqrg.c: Handle RIG_ENIMPL and RIG_ENAVAIL response from hamlib's rig_get_vfo() call - call rig_get_freq() if rig_get_vfo() is not implemented - error codes are reported as negative numbers 2014-04-21 Thomas Beierlein * config.h.in, configure.ac: Drop test for GNU compatible malloc from configure.ac The test seems to fail sporadically (e.g. reported for OpenSUSE 13.1). That test only checks that malloc does return a valid pointer for an requested memory block of size 0. As we do not use these behaviour we do not need to check for it. 2014-02-15 Thomas Beierlein * src/locator2longlat.c, src/showscore.c: split show_summary for stewperry from other display - ARRL FD uses POWERMULT as an real multiplier, but only as integer value. So round it to nearest integer and use it as multiplier. - for STEWPERRY the POWERMULT may be a fractional number and multiplies the final score by that multiplier. 2014-02-13 Thomas Beierlein * src/locator2longlat.c, src/main.c, src/qrb.c, src/qrb.h, src/score.c, src/showinfo.c: unify QRB calculation - rename old qrb() to qrb_() and change it to use the new qrb() for real work - move calc_qrb() to qrb() - add comments about positive sign for east longitudes to qrb() and locator2longlat() 2013-10-14 airween * src/log_to_disk.c: Modified log_to_disk.c for keep the new logfile format: column 80 contains the '*'. 2014-02-09 Thomas Beierlein * src/focm.c, src/main.c, src/score.c, src/setcontest.c, src/showpxmap.c, src/showscore.c: rename internal contest identifier to 'focm' * src/Makefile.am, src/foc.c, src/foc.h, src/focm.c, src/focm.h, src/score.c, src/setcontest.c, src/showpxmap.c, src/showscore.c: renamed file to focm.[ch] for FOC Marathon 2013-08-06 Thomas Beierlein * src/callinput.c: Fix input of new CW weight factor with Alt-w 2012-05-13 Thomas Beierlein * src/displayit.c, src/keyer.c, src/sendbuf.c: some cleanup for keyer logic - Fix comments - drop unneeded code - leaving keyer switches back to correct mode (RUN/S&P) 2014-02-02 Thomas Beierlein * src/bandmap.c: add missing parentheses 2014-02-08 Thomas Beierlein * src/background_process.c, src/clusterinfo.c, src/gettxinfo.c, src/searchlog.c, src/sendqrg.c: further cleanup of minor problems - make variable static to allow only local access - initialize rigfreq in different files - handle problem if file could not be opened 2014-02-02 Thomas Beierlein * src/readcalls.c: fix some minor problems - make array index unsigned - leave function if logfile could not be opened 2014-02-05 Thomas Beierlein * src/callinput.c: drop unneeded tests of HAVE_LIBHAMLIB and redundant code * src/gettxinfo.c, src/main.c, src/sendqrg.c: make rigfreq local 2014-02-04 Thomas Beierlein * src/sendqrg.c, src/sendqrg.h, src/startmsg.h: cleanup header files and add include guards 2014-02-04 Thomas Beierlein * src/sendqrg.c, src/sendqrg.h: drop all remaining native_rig_ functions * src/gettxinfo.c: drop all calls to native_rig_ functions from gettxinfo() * src/gettxinfo.c, src/sendqrg.c, src/sendqrg.h: drop native_rig_reset_rit() * src/main.c, src/sendqrg.c: drop unneeded native_rig_get_mode() * src/sendqrg.c, src/sendqrg.h: drop init_ and close_ function for native_rig * src/main.c: disabling rig control if no hamlib library compiled in * src/main.c, src/parse_logcfg.c, src/sendqrg.c: Drop old logic which allowed to have only a rigportnumber - RIGPORT expects a whole portname (e.g. /dev/ttyS0") * src/log_to_disk.c: add header file to fix implicit declaration of score2() 2014-01-29 Thomas Beierlein * share/cabrillo.fmt, share/cty.dat: update files (thanks OK1RR) * src/foc.c: score 6banders as 5banders with an additionla bonus 2014-01-28 airween * src/showscore.c, tlf.1.in: Round final score when POWERMULT is float 2014-01-28 Thomas Beierlein * src/foc.c, src/foc.h, src/showpxmap.c: add list of countries to work - scan initial exchange file and build list of countries - display which countries are worked and which are missing - Call with Alt+M 2014-01-27 airween * src/showscore.c, tlf.1.in: Fixed POWERMULT config keyword * src/main.c, src/score.c, src/showscore.c: Handle POWERMULT config variable 2014-01-26 Thomas Beierlein * src/foc.c: changed display of scoring results 2014-01-19 Thomas Beierlein * src/keyer.c, src/parse_logcfg.c, src/sendqrg.c, src/sendqrg.h, src/speeddown.c, src/speedup.c, src/tlf.h, src/write_keyer.c: drop support for ORION_KEYER - A check on the mailing list showed that nobody seems to be interested in that feature. It was also not mentioned in the man page or on Rein's old tlf page. 2014-01-23 airween * src/getexchange.c, src/parse_logcfg.c, src/score.c: Adding POWERMULT keyword, and multiple the calculated points with it (Stewperry rules, #7) 2014-01-23 Thomas Beierlein * src/foc.c, src/foc.h, src/getsummary.c, src/showscore.c, src/showscore.h: writecabrillo uses new function 'get_total_score()' - In case we have complex scoring rules these function can redirect to a contest specific calculation 2014-01-21 Thomas Beierlein * src/readcalls.c: initialize complete call statistics - rescoring works by rereading the logfile and building the whole statistical data from there. Until now band and country data for worked calls got not reinitialized. Therefore we got wrong result when deleting the last call and rescoring. * src/foc.c: fix scoring for FOC marathon 1 point per QSO 2 points per country 5 points per continent 5b qso gets 10 points bonus 6b qso gets 15 points bonus Gx4FOC joker counts double * rules/Makefile.am, rules/foc, rules/focmarathon, share/cabrillo.fmt, src/setcontest.c: renamed contest 'foc' to 'focmarathon', added keydefinitions - Thanks OK1RR. 2014-01-18 Thomas Beierlein * src/globalvars.h, src/main.c, src/makelogline.c: cleanup - move scoring logic to 'makelogline' - refactor padding with spaces and simplify * src/makelogline.c: delimit strcat operations - from time to time we have segfaults from copying to long information fields into the logline. Then we are past the next column. If we later try to fill up the space we get a segfault. - Now we delimit all strcat operations which can have a variable field length. 2014-01-14 Thomas Beierlein * src/makelogline.c: split contest independent and dependent part of log line * src/makelogline.c, src/makelogline.h: start cleanup makelogline function gave segfaults more than once. Needs a serious overhaul. - add include guard - move include files to .c - sort out different tasks - sort order of preparing time and qso number * src/callinput.c: fix bug in autosend start logic - triggered autostart even if only a frequency for band change was entered - new logic checks if inputfield contains a plain number and does not start autosend if true 2014-01-13 Thomas Beierlein * rules/Makefile.am, rules/foc: add foc rules file * src/foc.c: score continents correctly * src/foc.c, src/foc.h, src/showscore.c: implement basic display of contest score 2014-01-11 Thomas Beierlein * src/parse_logcfg.c: fix wrong setting of LAN designator * src/foc.c, src/foc.h: fix declaration syntax 2014-01-10 Thomas Beierlein * src/foc.c, src/foc.h, src/score.c, src/score.h: add basic scoring logic for qsos - report 1 one for normal qso - regex match Gx4FOC/xxx and give him 2 points * src/foc.c, src/foc.h, src/main.c, src/setcontest.c: contest recognition and initialization 2014-01-09 Thomas Beierlein * src/foc.c, src/foc.h: added contest files * src/Makefile.am: start handling of FOC contest * src/parse_logcfg.c: drop unneeded code dupliction 2014-01-05 Thomas Beierlein * src/addcall.c: adapt evaluation of LAN Logline to longer prefixes prepared by makelogline 2013-12-31 Thomas Beierlein * src/gettxinfo.c, src/sendqrg.c: call 'rig_get_vfo' before using RIG_VFO_CURR - allows to switch VFO on the rig without losing control by tlf. Tnx HA2OS for help. 2013-12-28 airween * src/getexchange.c, src/score.c: Fixed Stewperry QRB calculation error 2013-12-23 airween * rules/stewperry: Added rules/stewperry rule file * src/getexchange.c, src/locator2longlat.c, src/locator2longlat.h, src/parse_logcfg.c: Fixed Stewperry rules: check MYQRA when Tlf starts, and check the station's QRA as exchange 2013-12-15 airween * src/Makefile.am, src/getexchange.c, src/globalvars.h, src/locator2longlat.c, src/locator2longlat.h, src/main.c, src/parse_logcfg.c, 2013-12-27 Thomas Beierlein * src/main.c, src/parse_logcfg.c, tlf.1.in: Drop keyword '2EU3DX_POINTS' - Keyword was not supported for a long time - It got recognized but did nothing. 2013-12-19..12-21 Thomas Beierlein * src/background_process.c, src/background_process.h, src/logit.c, src/logit.h, src/main.c, src/autocq.c, src/main.c, src/sendbuf.c, src/sendbuf.h, src/callinput.c, src/getexchange.c, src/keyer.c, src/listmessages.c, src/messagechange.c, src/parse_logcfg.c, src/writeparas.c, src/bandmap.c, src/bandmap.h, src/checklogfile.c, src/globalvars.h, src/grabspot.c, src/main.c, src/sendbuf.c, src/sendqrg.c, src/showinfo.c, src/splitscreen.c, src/time_update.c: Cleanup a lot of inconsistencies (see log messages for detail) 2013-12-15 Thomas Beierlein * src/showscore.c: fix wrong order of tests for mult counting - DX_&_SECTIONS has precedence over MULT_LIST in UNIVERSAL contest - Thanks Ed W3NR and Fred DH5FS for pointing it out 2013-12-13 Thomas Beierlein * src/autocq.c, src/callinput.c, src/getexchange.c, src/keyer.c, src/logit.c, src/sendbuf.c, src/sendbuf.h: send CW/DIGI messages only if not empty - avoid turning on and off transmitter in CW and Digimodes if message is empty - Thanks Ervin HA2OS for pointing out. 2013-12-12 dh5fs * tlf.1.in, share/help.txt, src/parse_logcfg.c, src/lancode.c: Allow portnumbers for LAN-stations via ADDNODE command 2013-11-28 Thomas Beierlein * help.txt, share/Makefile.am, share/help.txt, src/callinput.c, src/changepars.c, src/show_help.c, src/show_help.h: move 'help.txt' to /share/help.txt - add 'help.txt' to distribution - install 'help.txt' as default hep file - can be overridden by an own 'help.txt' in actual directory - correct description for ':help' command in man page 2013-11-28 dh5fs * src/callinput.c: Update callinput.c modify CFM message to complete QSO * help.txt: Create help.txt online help file 2013-11-27 Thomas Beierlein * src/dxcc.c, src/dxcc.h: add special handling for '*...' prefixes - strip '*' from prefix - remember in describing structure 2013-11-24 Thomas Beierlein * src/makelogline.c: move zone id in logline a char right - make room for 5 letter prefixes (e.g. HK0/a) 2013-11-18..11-20 Thomas Beierlein * src/Makefile.am, src/cw_utils.c, src/callinput.c, src/clear_display, src/cw_utils.h, src/parse_logcfg.c, src/getexchange.c, src/main.c, src/speeddown.c, src/speedup.c, src/tlf.h, src/write_keyer.c, src/autocq.c, src/speed_conversion.h: refactor CW speed logic - add new 'cw_utils' - move speedstr definition to cw_utils - move 'speed_conversion' to cw_utils - add SetCWSpeed and use it in parse_logcfg - add GetCWSpeed and start to use it - drop separate handling of 'keyspeed' variable - move calculation of CW message length to cw_utils 2013-11-19 airween * share/cty.dat: Added new cty.dat, released 2013-11-18 * share/callmaster, share/cty.dat: New databases from Ervin HA2OS 2013-11-15 Thomas Beierlein * src/lancode.c, src/parse_logcfg.c, tlf.1.in: Initialise tlf's node designator (THISNODE=...) to 'A' - Even if you do not use the LAN features and forgot to name your node in logcfg.dat the node designator is used internally for adding a QSO to the bandmap. - Add further check logic to allow only designators 'A'..'H' - document default setting for node designator in man page 2013-11-11..12-09 Thomas Beierlein 2013-12-06 dh5fs * src/callinput.c, src/changepars.c, src/keyer.c: implement reworked autosend feature - starts after 2..5 characters - shorter calls have to be finished with ENTER key - calculates the expected time to send the call from cw speed and switches to sending exchange after that time is reached - Allow autosend feature only in RUN mode - Adapt ':char' command (accept 0 (off) or 2..5 as number of characters before autosend start. Changing input can be dropped with ESC) - SPACE and DOWN no longer starts autosend feature, but jumps to exchange field - A progress indicator shows the characters already sent. 2013-10-28 Thomas Beierlein * src/main.c, src/muf.c, src/muf.h: cleanup use of internal variables - use M_PI from math.h - make some global variables privat 2013-10-27 Thomas Beierlein * rules/cqww, share/cabrillo.fmt: fix cabrillo definition - use TX identifier at end of line only for cqww contest 2013-10-25 Thomas Beierlein * src/writecabrillo.c: Fix handling of non existing cabrillo format file 2013-10-14 Thomas Beierlein * src/log_to_disk.c: Change accepted line length from LAN - Log lines are longer since we added the QRG to its end. The LAN code missed that change until now. - Thanks airween HA2OS for the patch. 2013-08-27 Thomas Beierlein * src/addcall.c, src/addmult.c, src/checklogfile.c, src/editlog.c: close opened files if not needed 2013-08-12 Thomas Beierlein * src/callinput.c, src/changepars.c, src/splitscreen.c: Cleanup screen when leaving TLF with active cluster - If packet cluster was active when you leaved TLF there was an intermix of tlf's screen content and the screen before tlf where started. Reason was the second terminal for the cluster display which must be closed with endwin() before leaving the program. Added the code to cleanup_telnet() and called that routine when leaving tlf. 2013-08-07 Thomas Beierlein * src/changepars.c, src/listmessages.c: Some small fixes - give a short hint to use PgUp or PgDwn for :scv - simplify display of cw messages (:list) 2013-08-06 Thomas Beierlein * src/callinput.c: Fix switching on/off the score window 2013-07-23 Thomas Beierlein * src/clusterinfo.c, src/gettxinfo.c, src/main.c, src/sendqrg.c: Improve handling of problems in rig link - Report any error during startup of hamlib rig link - In case of errors ask if user want to continue without rig control. Otherwise exit tlf. - If get_frequency fails (maybe because rig is switched off) report frequency as 0.0. Do not change band settings from transceiver. (Show and log the actual frequency as 0, meaning no rig control available at the moment) - writecabrillo() will insert start-of-band frequency in log calculated from band information 2013-07-15 Thomas Beierlein * src/callinput.c, src/keyer.c, src/messagechange.c: CW messages can no longer be edited by Shift+Fx key - The quick recall of an Fx message via Shift+Fx for edit got dropped as the recognition of the keys is not reliable for some terminal emulators. So we do no longer rely on that feature. Use :mes or edit the config file instead. 2013-07-14 Thomas Beierlein * src/showpxmap.c: fix display of worked countries for cqww - uses line 1..5 omitting the line with the contest information - clear the lines before und after use 2013-07-10 Thomas Beierlein * src/main.c, src/showscore.c: Fix display of contest statistics - Q/M calculates now QSOs per multi (was: points per multi) - display Q/M with one digit after decimal point - display Q/M always - show band rate only for bands with more than ten QSOs 2013-07-07 Nate Bargmann * many files...: Correct GPL boilerplate in sources The license boilerplate in the source files incorrectly referenced the Library General Public License. Given that only 'COPYING' (GPL 2.0) is included in the tlf directory, and all other documentation references the GPL, the reference to 'Library' is presumed to be incorrect. With the concurrance of Tom and Rein, this patch set removes the word 'Library' from the boilerplate in all .c and .h files where it occurred. Include minor Free Software Foundation mailing address correction with this patch set. 2013-06-29 Thomas Beierlein * src/dxcc.c, src/readctydata.c: make parsing cty.dat more robust - ignore country lines which do not have the needed components 2013-06-18 Thomas Beierlein * src/log_to_disk.c, src/makelogline.c: Move reset of RST to another place - Setting RST to its default value after a QSO is not the job of a routine which prepares the log line for the last QSO. 2013-06-16 Thomas Beierlein * rules/arrlfd, src/callinput.c, src/clear_display.c, src/getexchange.c, src/log_to_disk.c, src/main.c, src/makelogline.c, src/parse_logcfg.c, tlf.1.in: add new configuration switch NO_RST - will be needed for contests which do not record any exchange (e.g. ARRLFD or CW Open) - do not add RST into log and do not show RST if NO_RST is set, just add '---' instead - suppress redisplay of RST after PgUp/PgDwn if NO_RST is set, as it does not make sense to change RST if no RST is used. - document NO_RST in man page and add it to arrlfd rule file 2013-06-14 Thomas Beierlein * share/cabrillo.fmt: ARRL-FD do not use cabrillo. Tnx Nate N0NB 2013-06-10 Thomas Beierlein * src/makelogline.c: Fix for WYSIWYG_ONCE - points were not written for WYSIWYG_ONCE * src/getsummary.c, src/writecabrillo.c: simplify - use get_nr_of_points() and get_nr_of_mults() to calculate claimed score 2013-06-03 Nate Bargmann * rules/arrlfd: rules/arrlfd: Update to current FD rules - The arrlfd rules file was dated so bring it up to date with changes in Fd and TLF. - fix recognition of ARRL Field day rules (rule file asked for 'arrlfd' contest, but parser looked for 'arrl_fd') 2013-05-06 Nate Bargmann * configure.ac: configure.ac: Enable silent make rules Use Autoconf help string formatter for Hamlib option. 2013-05-05 Nate Bargmann * share/arrlsections: arrlsections: Add new Canadian sections Remove invalid sections. 2013-05-30 Thomas Beierlein * src/showscore.c, src/showscore.h: Refactor calculation of total score - factor out calculation of nr of points and mults 2013-06-02 Thomas Beierlein * src/showscore.c: factor out common code into 'display_header()' - gets list of bands to show as parameter * src/showscore.c: simplify display of headerline and setting of active band - rename bandindex_normal and bandindex_warc to bi_normal/warc - show bands in header line according to the list of band indices in bi_normal or bi_warc - simplify highlighting the actual band (do it now on the fly while printing the line in first place.) 2013-05-30 Thomas Beierlein * src/showscore.c: Refactor display algorithm for individual score lines - define the column 'START_COL' where the display of the score should start - use a table for defining the column number where we display the different score points for each band - use two further tables to define which bands should be shown for each column - rollup the display of the 6 columns into one loop using the above mentioned tables 2013-05-30 Thomas Beierlein * src/showscore.c: Change display of score for ARRL SS - Display points and mults (here section) for ARRL SS similar to other contests. 2013-05-29 Thomas Beierlein * src/showscore.c: simplify showscore() - add some comments - drop unneeded variable initialisation - unify display of summary for different contests - factor out display of summary line 2013-05-25 Thomas Beierlein * src/edit_last.c: Fix character input in edit_last() - display only visible part of logline 2013-05-22 Thomas Beierlein * src/writecabrillo.c: Fix frequency output for WARC bands in cabrillo file - Original code missed all cases for QSOs in WARC bands. No frequency information for that bands were written to cabrillo file. - Even if no WARC bands should be used in contests we add the correct frequency output for these bands 2013-05-21 Thomas Beierlein * src/writecabrillo.c: Fix band output for 12m in ADIF file - Original code missed the case for QSOs in 12m band. The ADIF file got no band output for that band. Fixed. 2013-03-17 Thomas Beierlein * src/changepars.c: Reread contest rules file after edit of logcfg.dat with :SET or :CFG * src/changepars.c, src/getsummary.c, src/writecabrillo.c: Refactor - move control of cluster display out to calling context - reuse code to ask for sent exchange - drop unused external variable declarations * src/getsummary.c, src/getsummary.h: Rework to support Cabrillo v3.0 format - refactor code to ask for input - write some entries only to cabrillo file if user provided some input 2013-01-16 Thomas Beierlein * src/getsummary.c, src/getsummary.h, src/writecabrillo.c: Simplify writing cabrillo header - Until now the cabrillo header was written to a separate file by 'getsummary()' and finally copied together with the formatted QSO-lines. Changed it so that we write the header direct to the final file and therefore can drop the copying. 2013-01-12 Thomas Beierlein * rules/arrlss, share/cabrillo.fmt: Add cabrillo definition for ARRL Sweepstake 2013-01-09 Thomas Beierlein * src/parse_logcfg.c: Fix parsing of CALL in logcfg.dat - drop trailing whitespace - for now keep the trailing NL as a lot of code in other parts of tlf rely on that NL character 2013-01-05 Thomas Beierlein * src/parse_logcfg.c: Fix parsing of CONTEST, LOGFILE, KEYER_DEVICE and TELNETHOST - Use g_strchomp to drop NL and trailing whitespaces from keywords - simplify with g_strlcpy * src/parse_logcfg.c: Fix parsing controllerport (ignore trailing whitespace) 2013-01-06 Thomas Beierlein * src/parse_logcfg.c, tlf.1.in: Reduce minimal lifetime for bandmap entries to 30s (requested by DH5YM) 2012-12-12 Thomas Beierlein * src/getexchange.c: allow Ctrl-k to start keyer during getexchange() 2012-12-09 Thomas Beierlein * src/getexchange.c: Allow editing of exchange field - starts with 'left' key if exchange field is not empty - supports the following keys: - ctrl-A start of line - ctrl-E end of line - left one char left - right one char right - del delete key under cursor - backspace delete char left from cursor - any non control char insert if string not to long * src/getexchange.c, src/getexchange.h: Move prototypes of internal functions to hide visibility - add comments 2012-12-24 Thomas Beierlein * NEWS, configure.ac: prepare for tlf-1.2.0_pre3 prerelease 2012-12-12 Thomas Beierlein * doc/README.cabrillo: Add description of new cabrillo handling 2012-12-08 Thomas Beierlein * src/writecabrillo.c: Make token parsing reentrant. 2012-10-06 Thomas Beierlein * doc/Makefile.am, doc/README.cab, doc/README.cabrillo, share/cabrillo.fmt, src/writecabrillo.c: Add some more tokens to cabrillo handling - Drop old write_cabrillo code - You can now specify EXC1..EXC4 to address first to fourth space delimited token from exchange field - Rename README.cab file and fix spelling errors in cabrillo.fmt 2012-12-05 Thomas Beierlein * src/autocq.c: Use stoptx() to stop auto_cq message. Old code did overwrite the right screen border in case of ESC key to stop sending. 2012-11-29 Thomas Beierlein * src/callinput.c, src/getexchange.c: enable F-keys for digimode also in exchange field - While in digimode the F-keys only worked in the input field. Changed logic so that they will also be accepted in the exchange field. - Support also F10 and F11 in exchange field. - While using CTCOMPATIBLE 'INS' key always send only a cw message even when in SSB mode. Fixed. 2012-11-25 Thomas Beierlein * src/callinput.c, src/getexchange.c: simplify - drop unneeded cursor positioning - redraw call and comment input field before waiting for a new character - use printcall() and refresh_comment(), but only if needed - unify handling of band up and down - drop unneeded call to time_update() 2012-11-28 Thomas Beierlein * src/getexchange.c, src/searchlog.c: fix display of zone and section in searchlog window 2012-11-27 Thomas Beierlein * src/addmult.c: Fix memory leak 2012-11-25 Thomas Beierlein * src/callinput.c: Drop not needed duplication of code for handling Fx message keys 2012-11-24 Thomas Beierlein * src/changepars.c: Adapt behaviour of :SCVOLUME command. - Can be set even if sidetone device is console speaker. 2012-11-22 Thomas Beierlein * src/main.c, src/parse_logcfg.c, tlf.1.in: Allow setting of SIDETONE_VOLUME even if SOUNDCARD is not set. - To allow to turn off cwdaemons sidetone output it is needed to set the volume of the sidetone to 0. Until now that was only possible if SOUNDCARD was se in logcfg.dat which switches to a soundcard for sidetone output. - Fix for recognition of SIDETONE_VOLUME value (drop trailing \n) - Allow volume setting independent of chosen sidetone device. - Add information to man page. * src/callinput.c: Cleanup old code * src/initial_exchange.c, src/initial_exchange.h, src/main.c: Make errors in initial exchange file more verbose. Thanks Mario DH5YM. - make_ie_list() checks format of initial exchange entries (exactly one call exchange) and complains about errors. It is difficult to find the problematic line for long exchange files. - New code reports the line number and ask for confirmation to continue without initial exchanges in case of error. 2012-10-28 Thomas Beierlein * tlf.1.in: minor correction to man page 2012-10-26 Thomas Beierlein * src/callinput.c: fix tune logic. - adapt to cwdaemons behaviour. It tunes only for a given time and than automatically stop. - So request some tuning time (6s) and allow for an early stop with any key press. - Change TUNE_UP constant if you want a different time. 2012-10-24 Thomas Beierlein * src/callinput.c, src/getexchange.c, src/time_update.c: stop flickering cursor while searchlog is shown - during wait for input in call input or exchange field the searchlog panel is regularly updated. That makes the cursor switch between different places and showing a flickering effect. - New logic dropped the time delay from 'time_update()' (as that function should not determine the speed of the keyboard polling) and added the delay into the polling loop so that the cursor is a long time in the input field. 2012-10-27 Thomas Beierlein * src/callinput.c: convert file back to Unix LF endings 2012-10-26 Thomas Beierlein * src/set_tone.c: work around bugs in cwdaemon versions - cwdaemon < 0.9.6 always set volume to 70% at change of tone freq - cwdaemon >=0.9.6 do not set volume at all after change of freq resulting in no tone output if you have a freq=0 in between - So... to be sure we set the volume back to our chosen value or to 70% (like cwdaemon) if no volume got specified 2012-10-23 Thomas Beierlein * src/sendspcall.c: use '}' and '{' only for MFJ1278 keyer to switch TX on and off 2012-10-13 Thomas Beierlein * src/sendbuf.c: correct parsing of special characters in sendbuf() function - old logic assumes that there is always a trailing newline so it checks only until strlen(text)-1 is reached - new code checks all characters until string end. * src/write_keyer.c: shorten macro output in digimode - old implementation had 5 empty lines for each macro output (1 from message eol, 2 from write_keyer routine, 1 from echo, 1 from fldigi) - dropped 1 of the lines in output string - used '-n' switch to force echo to not append a further newline - simplify command formatting 2012-10-06 Thomas Beierlein * src/getexchange.c, src/rtty.c: update miniterm also while in getexchange() * src/rtty.c: make miniterm output more robust - strncpy may leave non terminated strings, so switch to g_strlcpy i - mvprintw needs a format string to avoid interpretation of '%' signs in the received text. * src/rtty.c: rework digimode receive routine 'rx_rtty()' - fix buffer overrun in rx_addtext - better logic to skip start of line info from GMFSK and FlDigi - do not skip start of line if serial modem (MFJ or similar) 2012-10-18 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/parse_logcfg.h, src/rules.c: ask for confirmation if errors in logcfg.dat or rule file detected - for some time tlf reports errors in both configuration files but gives user only 2 seconds time to read the problem. The changes records that some problems exists and ask the user after processing the files if we should continue or stop the program and fix the problem. That gives them time to read the problems and think it over. 2012-10-14 Thomas Beierlein * src/parse_logcfg.c, src/set_tone.c: fix control of sidetone output - CWTONE drops trailing newline now (was not recognized by cwdaemon 0.9.2 if there was a trailing newline) - :tone did not initialize box correctly. Old screen contents showed through the frame. 2012-10-09 Thomas Beierlein * src/parse_logcfg.c: Correct wording for some error message * rules/arrl10m_dx: fix typo wrt CQ_TU_MSG 2012-09-19 Thomas Beierlein * src/getsummary.c: cut erase strings which are too long for screen width 2012-09-17 Thomas Beierlein * rules/arrl10m_dx, rules/arrldx_dx, rules/arrldx_usa, rules/contest, rules/cqww, rules/eusprint, rules/lzdx, rules/pacc_dx, rules/pacc_pa, rules/spdx_dx, rules/spdx_sp, rules/template, rules/wpx, share/cabrillo.fmt: add some more cabrillo format specifications - rename wpx cabrillo format into UNIVERSAL - complete rule files with information which format to use - new format for EU-SPRINT contest 2012-09-17 Thomas Beierlein * src/writecabrillo.c: add handling of EXC_S item containing '#' special character - use old 'getsummary' to ask for exchange for now 2012-09-12 Thomas Beierlein * src/writecabrillo.c: add handling of TX entry for cqww.m2 and other contests 2012-09-10 Thomas Beierlein * src/writecabrillo.c: Basic implementation of 'prepare_line' function - format entries according to list of items from QSO: line definition - add entry by entry to linebuffer - !! atm not complete 2012-09-14 Thomas Beierlein * src/searchlog.c: Old code segfaults for really long calls in 'searchlog' - happens for long call signs which fill the call field - strchr return NULL if space is not found, so limit string only if a space is really found 2012-09-10 Thomas Beierlein * share/cabrillo.fmt, src/writecabrillo.c: drop position from cabrillo format definitions - Each field in the QSO line is separated by one space from the next. - So knowing the length of each field we can determine the position from that information if we have the field entries defined in order 2012-09-09 Thomas Beierlein * src/writecabrillo.c: Parse QSO logline into relevant pieces for writecabrillo 2012-09-07 Thomas Beierlein * src/writecabrillo.c: Fill in qso_t structure and start parsing the qso line 2012-09-09 Thomas Beierlein * src/writecabrillo.c: fix possible segfault due to wrong allocation size 2012-09-07 Thomas Beierlein * src/writecabrillo.c: fix memory leak The list of split parts of the entry needs to be freed after being used. 2012-09-04 Thomas Beierlein * src/writecabrillo.c: Parse each item description for QSO: line - convert item name to a enumed tag - parse and convert position and fieldwidth - add all converted items to an array in the format description 2012-08-10 Thomas Beierlein * src/writecabrillo.c: First steps to new 'write_cabrillo' - Complete rewrite of main flow for the function. !Not all functionality implemented. - 'read_cabrillo_format' lookup file with needed cabrillo format description in local dir or datadir and parses some keys (atm only 'QSO:') - QSO: key is split into separate items each describing one entry in cabrillos QSO: line. Be aware !! Keywords have to be case sensitive * share/cabrillo.fmt: First simple definition of a cabrillo format file 2012-08-23 Thomas Beierlein * src/parse_logcfg.c: Second part of reworked parsing logic - All keywords which require a parameter after an '=' use the preparsed fields[1] variable now. - To catch wrong syntax in the config file the macro PARAMETER_NEEDED tests if needed that there was such a '=' in the config entry. 2012-08-16 Thomas Beierlein * src/parse_logcfg.c: Fixes nasty problem in parsing of preferences from logcfg.dat and rules file - David N1EA and Martin OK1RR reports not working CLUSTERLOGIN. - Reason was change in parsing logic done between tlf-1.0.5 and tlf-1.1.0. TLF now stopped at keyword CLUSTER mas it was a substring of CLUSTERLOGIN. So CLUSTERLOGIN got never called. Thorough inspection showed that it may affect also other settings. - New logic starts by splitting the inputline at a potential '=' sign. First part: the keyword, second part (if available): the parameters. The keyword gets stripped on both sides, the parameter only from leading spaces. That allows something like ' CALL = DL1JBE'. - All keywords in the keyword list were stripped from a trailing '=' sign. If you need to decide if it got called correctly, than look at the second field in the parsed array. 2012-08-23 Thomas Beierlein * .gitignore, aclocal.m4: remove unneeded 'aclocal.m4' and add it to .gitignore - They will be created automatically if you run 'autoreconf' after an checkout. so there is no need to have it in the repository. 2012-08-13 Thomas Beierlein * src/changepars.c, src/main.c, src/parse_logcfg.c: Add tilde expansion for config file switch (-f) - -f command line switch allows use of an alternate logfile. Until now it does not recognize '~' as abbreviation for the users HOME directory (Thanks David N1EA for reporting). - If logfilename starts with ~/ it gets replaced by users home directory. * src/checklogfile.c: fix uninitialized variable 2012-08-13 Thomas Beierlein * tlf.1.in: comment CWBANDWIDTH= preference switch - Normally in CW mode tlf sets the (hamlib defined) default bandwidth during each switch of bands. - If you need a different bandwidth you can set it with these switch in logcfg.dat 2012-08-10 Thomas Beierlein * config.h.in, configure.ac, configure.in: Prepare for Automake-1.13 which no longer accepts a configure.in - move configure.in to configure.ac - regenerate config.h.in 2012-08-10 Thomas Beierlein * doc/Makefile.am, doc/README.cab, share/Makefile.am, share/cabrillo.fmt, tlf.1.in: add rudimental files with description of new cabrillo mechanism and format specification (needs to be completed). Document new CABRILLO= statement for rules file. 2012-08-09 Thomas Beierlein * src/main.c, src/parse_logcfg.c: add recognition of new keyword CABRILLO= That keyword has to be used to name the cabrillo format definition to be used when writing cabrillo logs. 2012-06-26 Thomas Beierlein * src/writecabrillo.c: first work for new writecabrillo 2012-07-02 Thomas Beierlein * src/writecabrillo.c: Use g_strstrip instead home made function * src/checklogfile.c, src/checklogfile.h, src/main.c: Implement new logfile check and repair operation. - all line have to be a) a comment line starting with ';' or b) starts with a valid bandnumber - The length of each logline has to be LOGLINELEN (including \n) a) If to long -> cannot handle that file type (possible truncation) b) If some line to short -> maybe old log format, so ask if it should try to repair (fill with needed amount of spaces). 2012-07-01 Thomas Beierlein * src/main.c: Add warning if console window is too small for TLF (needs at least 25x80) 2012-06-26 Thomas Beierlein * src/writecabrillo.c: Write QRG to cabrillo file if available in log file 2012-06-12 Thomas Beierlein * src/writecabrillo.c: Write QRG to ADIF file if available in log file 2012-01-06 Thomas Beierlein * src/writecabrillo.c: renamed adif and cabrillo file according to OK1RR: cabrillo: .cbr adif: .adi 2012-06-06 Thomas Beierlein * src/makelogline.c, src/tlf.h: Record the working QRG in the log i ATTENTION! New log line format in use! At the moment that is incompatible with old log files. Back them up before experimenting. Code to migrate old log to new format will follow in next days. - make logline 7 characters longer to accommodate the QRG with one decimal precision. - record QRG at end of logline if you have the rig online * src/gettxinfo.c: Fix wrong check for lowest band frequency. rig_get_freq() reports frequency in Hz so we have to check against 1800000 Hz for lower border of 160m band. Furthermore simplify switch logic and add an default case if rig is not in ham band. 2012-06-06 Thomas Beierlein * configure.in: Abort configure if ncurses libs not available. Tnx Jens DK2AB for pointing it out. 2012-05-19 Thomas Beierlein * src/note.c: fix note input to add it to the internal recorded log lines and to adapt to wider logline length 2012-05-17 Thomas Beierlein * src/deleteqso.c, src/deleteqso.h: Simplify - Make logic independent of 'logline4'. Use 'qsos' instead. - check for filesize >= LOGLINELEN * src/edit_last.c, src/edit_last.h, src/main.c: New implementation of edit_last() to enable longer loglines and thus make room for record of QRG Needs a new mechanism to get and store editbuffer. Former use of logline_edit field, which was shared with some other code for displaying the last 5 qsos, was error prone. Use a separate editbuffer instead and get the content from the qsos[] database every time we start to edit a line. Write content of editbuffer back to qsos[] and file after finishing the edit. Furthermore refactor out common code - highlight and unhighlite line - limit len of displayed output line - make number of lines easier to configure - correct handling of empty log file - fix edit of upper line !! Be aware that edit on ';' notes is broken - better handling of to hop from field to field - move definition of logline_edit fields into main.c 2012-05-14 Thomas Beierlein * src/checklogfile.c, src/deleteqso.c, src/edit_last.c, src/editlog.c, src/getmessages.c, src/globalvars.h, src/last10.c, src/main.c, src/makelogline.c, src/readcalls.c, src/scroll_log.c, src/searchlog.c, src/tlf.h: use LOGLINELEN to specify the size of a logline and the needed checks and buffers 2012-04-20 Thomas Beierlein * src/bandmap.c, src/cleanup.c, src/clear_display.c, src/main.c, src/note.c, src/searchlog.c, src/showscore.c, src/tlf.h: Fix some more color settings i - use C_ names wherever possible - Drop use of 'DUPECOLOR' and use only 'C_DUPE'. - invert color definition for 'C_DUPE' to avoid the STANDOUT attribute. - change 'attron' to 'attrset' as old color definition required always an 'standout' attribute which got not reset by attron 2012-04-18 Thomas Beierlein * rules/Makefile.am, share/Makefile.am: add forgotten files to Makefile.am * ChangeLog, NEWS, configure.in: Prepare TLF-1.1.2 maintenance release (see NEWS for details). * share/usa_canada_states: remove old 'usa_canada_states' file, use arrldx_mults instead * rules/arrldx_dx, share/arrldx_mults: add actual mults file for ARRLDX contest for DX and adapt path (tnx Fred DH5FS) 2012-03-31 Thomas Beierlein * rules/arrl10m_dx, share/arrl10m_mults: add ARRL 10m contest (tnx Fred DH5FS) * src/parse_logcfg.c, src/score.c: correct naming of functions * src/score.c: simplify loop exit logic 2012-03-18 Thomas Beierlein * src/parse_logcfg.c: fix recognition of COUNTRYLIST= keyword - multiplier_list was uninitialized. If it was not empty COUNTRYLIST definitions would not be recognized - use glib for better handling of string termination 2012-03-19 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/score.c: simplify COUNTRYLIST handling - renamed 'multiplier_only' to 'countrylist_only' - renamed 'multiplier_points' to 'countrylist_points' - simplify naming scheme for local variables 2012-03-16 Thomas Beierlein * src/getexchange.c: rework checkexchange handling - fix out of bounds error resulting in a segfault - better maintainability by automatic calculation of loop boundaries for pattern scanning 2012-02-28 Thomas Beierlein * src/parse_logcfg.c: better recognition of unknown keywords in logcfg.dat and rules file 2012-02-27 Thomas Beierlein * rules/arrldx_dx, rules/pacc_dx, rules/spdx_dx: fix wrong keyword: 'RECALL_EXCHANGE' is 'RECALL_MULTS' now 2012-02-19 Thomas Beierlein * src/audio.c: Simplify audio recording by factoring out common code 2012-01-18 Thomas Beierlein * src/main.c: simplify string handling 2012-01-17 Thomas Beierlein * src/Makefile.am, src/printfield.c, src/printfield.h, src/showscore.c, src/showscore.h: Merge printfield() into showscore.c - only used for showscore() - simplify printfield() function. - drop unneeded include file from showscore.c 2012-01-15 Thomas Beierlein * NEWS: Fix spelling error for G4KNO 2012-01-14 Thomas Beierlein * src/calledit.c: simplify calledit() - drop not working keys for 'home' and 'down' - factor out display code - fix display of background for partials when leaving edit mode 2012-01-12 Thomas Beierlein * src/changepars.c, src/main.c: Make sure that no packet related functions get called if started with 'tlf -n' 2012-01-12 Thomas Beierlein * src/makelogline.c, src/makelogline.h: Fix makelogline segfault if not in contest mode Logline gets not cut back to 68 characters. Results in a buffer overflow. Add description of logline format 2012-01-08 Thomas Beierlein * doc/Makefile.am, doc/README.ssb: Added README.ssb from Andy, G4KNO. Thanks for contributing. 2012-01-03 Thomas Beierlein * scripts/play_vk: fix spelling of unmute command. Tnx G4KNO 2011-12-22 Thomas Beierlein * NEWS, doc/README: move tlf's history of changes to NEWS file * tlf.1.in: adapt man page to new features 2011-12-21 Thomas Beierlein * Makefile.am, NEWS, New_Bandmap.txt, doc/Makefile.am, doc/New_Bandmap.txt: Move New_Bandmap.txt to doc/ * NEWS: summarize changes made between tlf-1.0.5 and tlf-1.1.0 * share/cty.dat: new cty.dat from OK1RR. Thanks 2011-12-17 Thomas Beierlein * New_Bandmap.txt, share/logcfg.dat: document configuration of bandmap filtering * src/parse_logcfg.c: fix location of #endif line * src/bandmap.c: leave some headroom for grabbing next frequency * src/bandmap.c, src/checklogfile.h, src/logit.c, src/netkeyer.c, src/printcall.c, src/showscore.c, src/splitscreen.c, src/startmsg.c, src/tlf.h: further cleanup - fix implicit declaration warnings - drop unused variables 2011-12-14 Thomas Beierlein * src/parse_logcfg.c, src/rules.c: cleanup - drop unused variable - fix wrong initialisation of 'buff' 2011-12-14 Thomas Beierlein * tlf.1.in: Fix description of LOWBAND_DOUBLE keyword in man page. 2011-12-13 Thomas Beierlein * src/parse_logcfg.c: divide lifetime by 2 as aging is done every two seconds * src/parse_logcfg.c: allow configuration of bandmap filtering in logcfg.dat 2011-12-12 Thomas Beierlein * src/parse_logcfg.c, src/tlf.h: fix recognition of keywords - keywords with parameters did not work if keyword was not in first column 2011-12-10 Thomas Beierlein * src/bandmap.c, src/bandmap.h: dupes will be skipped during ctrl-g - make that feature configurable via bm_config.skipdupes 2011-12-11 Thomas Beierlein * src/parse_logcfg.c, src/parse_logcfg.h: better report of unsupported config keywords 2011-11-24 Thomas Beierlein * src/dxcc.c, src/grabspot.c, src/grabspot.h: fix prototypes - fix missing '#include ' - add missing prototype for 'grab_next' - change prototype of grabspot to return void * src/addmult.c: fix wrong check for empty string in multiplier file * src/callinput.c, src/changepars.c, src/main.c, src/printcall.c, src/rtty.c: Fix use of 'miniterm' variable - clean old code - add comments - save and restore variable if temporary disabled * New_Bandmap.txt: Add some additional information describing the new bandmap functions. * src/callinput.c, src/grabspot.c: Fix calculation of zone and prefix for grabspot() - Zone and prefix was not calculated correctly during grab of a station from bandmap. It was needed to call 'getctydata()' instead of 'getctynr()' - Drop clear_display after grab. Now the info line is displayed properly. Thanks Fred DM3F for reporting. 2011-11-16 Thomas Beierlein * INSTALL, configure.in: prepare for TLF-1.1pre3 release * scripts/Makefile.am, scripts/play_vk, src/callinput.c: Use external script 'play_vk' for playing of SSB voice key messages * share/Makefile.am: add list of usa_canada_states to installation files - in distribution since 0.9.11 but forgotten in Makefile.am 2011-11-14 Thomas Beierlein * src/getexchange.c: change parsing of section for ARRL SS - trailing spaces in mults_possible[] and cut out section string deleted - compare only pure non-space strings * src/getexchange.c: Fix possible segfaults - old code segfaults if serial number >9999 was entered - simplify reading of check value * src/getexchange.c, src/searchlog.c, src/searchlog.h: Display parsing results for ARRL SS - displayed on lower line of Search panel again * src/searchlog.c: fix display of needed sections - readcalls cuts always 3 char to worked mults[] for some contests - ignore possible trailing spaces in compare * src/clear_display.c: display contest name on info line 2011-11-10 Thomas Beierlein * rules/Makefile.am: add forgotten general 'contest' rule file to installable files * rules/arrlss: Better defaults for CW messages - exchange has to use serial number instead of a fixed '1' - make check consistent between messages * src/getexchange.c: Fix recognition of 'U' precedent - got introduced late and was not recognized properly - add some comments to the meaning of the searchpatterns * src/searchlog.c: some minor optimization - drop unneeded statement - break out of loop as soon as possible * src/searchlog.c, src/showscore.c, src/showscore.h: Fix display of section in ARRL_SS - moved display code to searchlog.c - use SearchPanel for display - thanks for reporting to Ben NJ8J 2011-11-07 Thomas Beierlein * src/callinput.c, src/getexchange.c, src/logit.c, src/logit.h: make Ctrl-A also work in exchange field - calls addspot() to add the actual call to the bandmap - correct hide of searchlog 2011-11-07 Thomas Beierlein * src/readcalls.c: strip trailing spaces on comments from log file 2011-11-06 Thomas Beierlein * src/changefreq.c, src/changefreq.h: hide cursor during frequency change * src/callinput.c: Allow edit of old QSO's only if call field is empty * src/calledit.c, src/callinput.c, src/getexchange.c: correct display of cursor if searchwindow is shown 2011-11-05 Thomas Beierlein * src/main.c, src/searchlog.h: fix display of startup messages 2011-11-06 Thomas Beierlein * src/listmessages.c: correct displayed message name for CQmsg 2011-09-24 Thomas Beierlein * src/parse_logcfg.c, src/tlf.h: Report unsupported config keywords during startup * rules/arrldx_dx, rules/arrldx_usa, rules/arrlfd, rules/arrlss, rules/contest, rules/cqww, rules/dxped, rules/eusprint, rules/lzdx, rules/pacc_dx, rules/pacc_pa, rules/qso, rules/spdx_dx, rules/spdx_sp, rules/ssa_mt, rules/template, rules/wpx, src/parse_logcfg.c: change keywords in parse_logcfg.c to correspond to man page The keywords for CQ_TU_MSG, VKCQM and VKSPM were not recognized correctly. Fixed. Adapt contest rules to changed keywords. 2011-11-03 Thomas Beierlein * src/getexchange.c: Send VKCQM and VKSPM voice messages after end of QSO - Drop a change made by Rein in tlf-0.9.22 to not send these messages if in SSB mode 2011-11-01 Thomas Beierlein * src/getexchange.c: '+' and 'INSERT' respect CTCOMPATIBLE mode also during getexchange() 2011-10-29 Thomas Beierlein * src/callinput.c: '+' and 'INSERT' respect CTCOMPATIBLE mode now - if callfield not empty both keys are working now only if CTCOMPATIBLE is set in logcfg.dat 2011-10-28 Thomas Beierlein * src/gettxinfo.c: Fix upper boundaries for 160 and 40 meters. - Thanks Ben NJ8J for reporting 2011-10-27 Thomas Beierlein * aclocal.m4, configure.in: prepare for prerelease 2 of tlf-1.1 - fix aclocal.m4 * src/clear_display.c, src/printfield.c, src/showscore.c: move score display in upper right corner of display * src/logit.c, src/searchlog.c, src/searchlog.h: Hide searchlog panel at more points 2011-10-23 Thomas Beierlein * src/muf.c: propagation display uses panel code now * src/searchlog.c, src/searchlog.h, src/time_update.c: Use panel code for show and hide of searchlog 2011-01-30 Thomas Beierlein * src/nicebox.c, src/nicebox.h: factorisation to support nicebox for given window 2011-10-20 Thomas Beierlein * src/addmult.c, src/audio.c, src/autocq.c, src/background_process.c, src/bandmap.c, src/calledit.c, src/callinput.c, src/changepars.c, src/checklogfile.c, src/cleanup.c, src/clear_display.c, src/clusterinfo.c, src/deleteqso.c, src/displayit.c, src/edit_last.c, src/editlog.c, src/freq_display.c, src/getexchange.c, src/getmessages.c, src/gettxinfo.c, src/grabspot.c, src/keyer.c, src/lancode.c, src/listmessages.c, src/log_to_disk.c, src/logit.c, src/logview.c, src/main.c, src/messagechange.c, src/muf.c, src/netkeyer.c, src/parse_logcfg.c, src/printcall.c, src/readcalls.c, src/readctydata.c, src/recall_exchange.c, src/rtty.c, src/rules.c, src/searchlog.c, src/sendbuf.c, src/sendqrg.c, src/setparameters.c, src/show_help.c, src/showpxmap.c, src/showscore.c, src/splitscreen.c, src/startmsg.c, src/writeparas.c: switch all refresh() calls for use of curses panels - add a fake refreshp() function which replaces the old refresh() and calls 'update_panels()' followed by 'doupdate'. - serialize refreshp() calls from different threads 2011-10-23 Thomas Beierlein * src/bandmap.c: fix delete of first line in bandmap (was one char to short) 2011-01-28 Thomas Beierlein * config.h.in, configure.in: Prepare usage curses panel library 2011-10-17 Thomas Beierlein * src/clusterinfo.c, src/splitscreen.c: proper locking for spot_ptr[] array 2011-10-16 Thomas Beierlein * share/logcfg.dat, src/callinput.c, src/changepars.c, src/clusterinfo.c, src/main.c, src/parse_logcfg.c, src/setparameters.c, src/tlf.h, tlf.1.in: Drop old SPOTLIST display - ALT-a now switches between Nocluster->Cluster->Bandmap-> - 'cluster == MAP' displays the new bandmap and writes the last 8 spots to Xplanet's marker file. 2011-10-14 Thomas Beierlein * src/Makefile.am, src/cluster_bg.c, src/cluster_bg.h: Delete unneeded cluster_bg.[ch] files - functionality is now in clusterinfo.c * src/background_process.c, src/background_process.h, src/cluster_bg.c, src/clusterinfo.c: Move 'getclusterinfo()' to clusterinfo.c * src/cluster_bg.c, src/cluster_bg.h, src/clusterinfo.c, src/clusterinfo.h: Move 'loadbandmap()' to clusterinfo.c 2011-10-13 Thomas Beierlein * src/cluster_bg.c: change source of data for loadbandmap() 2011-10-11 Thomas Beierlein * src/callinput.c, src/cluster_bg.c, src/main.c: cleanup unneeded code - drop double extern declarations - drop handling of spotinfo filed as nobody uses that information * src/cluster_bg.c, src/main.c, src/splitscreen.c: on the fly recognition of WWV/WCY announcements 2011-10-07 Thomas Beierlein * src/bandmap.c: keep display of frequency memory (#) 2011-10-06 Thomas Beierlein * src/addmult.c, src/addmult.h, src/globalvars.h, src/readcalls.c: refactor registration of worked multiplier and multi initialisation * src/addmult.c, src/addmult.h, src/searchlog.c, src/searchlog.h: move 'load_multipliers()' to addmult.c * src/addmult.c: drop old comment regarding 'wysiwymultsg' variable 2011-10-05 Thomas Beierlein * README: Edited README 2011-10-05 Thomas Beierlein * .gitignore, src/showscore.c: Do not show mults per band in WYSIWYG_ONCE mode. 2011-10-05 Thomas Beierlein * src/addmult.c, src/globalvars.h, src/main.c, src/readcalls.c, src/showscore.c: Remove 'wysiwygmults' variable * src/addmult.c, src/changepars.c, src/getsummary.c, src/globalvars.h, src/readcalls.c, src/showscore.c: Remove 'multcount' variable 2011-10-02 Thomas Beierlein * src/addmult.c: Further simplifications 2011-10-01 Thomas Beierlein * src/addmult.c, src/changepars.c, src/getexchange.c, src/globalvars.h, src/main.c, src/showscore.c: Complete new handling of mults_possible[] length 2011-09-30 Thomas Beierlein * src/addmult.c: Prepare factorization of addmult() and addmult2() Prepare factorization of lookup of possible mults and worked mults 2011-09-24 Thomas Beierlein * src/parse_logcfg.c, src/tlf.h: Report unsupported config keywords during startup * rules/arrldx_dx, rules/arrldx_usa, rules/arrlfd, rules/arrlss, rules/contest, rules/cqww, rules/dxped, rules/eusprint, rules/lzdx, rules/pacc_dx, rules/pacc_pa, rules/qso, rules/spdx_dx, rules/spdx_sp, rules/ssa_mt, rules/template, rules/wpx, src/parse_logcfg.c: change keywords in parse_logcfg.c to correspond to man page The keywords for CQ_TU_MSG, VKCQM and VKSPM were not recognized correctly. Fixed. Adapt contest rules to changed keywords. 2011-10-01 Thomas Beierlein * src/addmult.c, src/changepars.c, src/getexchange.c, src/globalvars.h, src/main.c, src/showscore.c: Complete new handling of mults_possible[] length 2011-09-30 Thomas Beierlein * src/addmult.c: first steps to a rework multi scoring 2011-10-01 Thomas Beierlein * src/main.c, src/parse_logcfg.c, src/searchlog.c, tlf.1.in: Better handling of lines from external multiplier file - Allow comment lines (starting with '#') - strip leading and trailing whitespace - drop empty lines Furthermore drop unneeded string variables and make global ones local. 2011-02-03 Thomas Beierlein * rules/arrldx_dx, rules/arrldx_usa, rules/arrlfd, rules/arrlss, rules/contest, rules/cqww, rules/dxped, rules/eusprint, rules/lzdx, rules/pacc_dx, rules/pacc_pa, rules/qso, rules/spdx_dx, rules/spdx_sp, rules/ssa_mt, rules/template, rules/wpx: fix format and drop false comment in rule files 2011-09-24 Thomas Beierlein * share/logcfg.dat, src/main.c, src/parse_logcfg.c, src/showscore.c, tlf.1.in: drop MANY_CALLS config statement * datastructures: commented use of 'mults_possible' array 2011-09-19 Thomas Beierlein * src/readcalls.c: Correct rescoring for WYSIWYG_* methods * src/addmult.c: strip trailing spaces from comment for WYSIWYG_... handling * src/readcalls.c: Fixed handling of comments for WYSIWYG_ONCE and _MULTI - Old code dropped multi at first space in comment string. Changed to strip only trailing spaces. Was so back before tlf-0.9.21 * src/readcalls.c, src/recall_exchange.c, src/searchcallarray.c: Fix wrong use of callarray_nr 2011-09-22 Thomas Beierlein * src/addmult.c, src/changepars.c, src/getexchange.c, src/globalvars.h, src/main.c, src/searchlog.c, src/showscore.c: Switch mults_possible[] to a growing array. 2011-09-21 Thomas Beierlein * src/main.c, src/searchlog.c: add comments and rearrange variable definitions 2011-09-20 Thomas Beierlein * src/parse_logcfg.c: Logcfg.dat now allows >9 points for scoring Fix possible overflows if there are point declaration above 9 points. 2011-09-15 Thomas Beierlein * README: Add a summary description to README. The summary was copied from the TLF page on Savannah. It gives a short intro which is shown on GitHubs TLF repo page. 2011-07-26 Thomas Beierlein * tlf.1.in: Drop ORION exception from RIGMODEL explanation 2011-06-10 Thomas Beierlein * src/callinput.c, src/clear_display.c, src/getexchange.c, src/keyer.c, src/logit.c, src/main.c, src/sendbuf.c: make curx and cury local variables 2011-06-08 Thomas Beierlein * src/getpx.c, src/showinfo.c: Adding comments, small improvements, cleanup 2011-05-31 Thomas Beierlein * src/log_to_disk.c, src/log_to_disk.h: add spot to bandmap for stations worked in S&P 2011-05-29 Thomas Beierlein * config.h.in, configure.in: some modernisation 2011-05-11 Thomas Beierlein * src/background_process.c, src/log_to_disk.c, src/log_to_disk.h, src/logit.c, src/scroll_log.c: fixed handling of exclusive access to log_to_disk 2011-05-02 Thomas Beierlein * src/addcall.c, src/getctydata.c: simplify * src/set_tone.c: drop unneeded calculation of speedstr 2011-04-29 Thomas Beierlein * src/addcall.c, src/readcalls.c, src/searchcallarray.c: Fixed handling of callarray entries 2011-04-14 Thomas Beierlein * src/addmult.c: use #define instead of fixed value for number of bands * src/addspot.c: spot broadcasts to other stations contains the identifier of the sending station now * src/addcall.c: add_call() remembers worked band now * src/readcalls.c: regroup code fragment 2011-03-03 Thomas Beierlein * src/searchlog.c: correct position of pfx in bottom line of check window 2011-07-21 Thomas Beierlein * Makefile.am, New_Bandmap.txt: add New_Bandmap.txt to EXTRA_DIST File contains description of new bandmap features. 2011-07-23 Thomas Beierlein * src/grabspot.c: fix compilation without hamlib 2011-07-06 Thomas Beierlein * src/callinput.c, src/grabspot.c: implemented scanning up and down in grab_next() switch keys: ctrl-g is for scanning now as Alt-g gets grabbed from the terminal emulator 2011-07-05 Thomas Beierlein * src/callinput.c: change meaning of Alt-G to jump to next spot * src/bandmap.c, src/bandmap.h, src/grabspot.c: extended 'grab' function to switch to next spot up- or downwards 2011-07-04 Thomas Beierlein * src/grabspot.c: Grabspot switches to S&P if in run mode and remembers QRG * src/bandmap.c, src/bandmap.h, src/grabspot.c, src/main.c, src/main.h: started new grabspot implementation 2011-06-28 Thomas Beierlein * src/bandmap.c, src/bandmap.h: First work on grabspot 2011-06-27 Thomas Beierlein * src/bandmap.c, src/bandmap.h: restructure filtering 2011-06-23 Thomas Beierlein * src/bandmap.c: add some comments * src/bandmap.c: - rename 'spots' structure to 'allspots' - add mutex to protect 'allspots' data structure 2011-06-10 Thomas Beierlein * src/cluster_bg.c, src/getctydata.c, src/getctydata.h: implement getctynr which does not change any global strings like pfstr, ituzone, countrynr, continent and so on ... (port from tlf-1.0.5) 2011-05-16 Thomas Beierlein * src/addspot.c, src/bandmap.c: fix display of reporting node 2011-05-02 Thomas Beierlein * src/bandmap.c: Fix bandmap_show crashes 2011-04-29 Thomas Beierlein * src/addcall.c, src/readcalls.c, src/searchcallarray.c: Fixed handling of callarray entries 2011-04-14 Thomas Beierlein * src/bandmap.c: bm_isdupe() respects worked band now * src/bandmap.c: fix display of dupes in bandmap * src/addspot.c: spot broadcasts to other stations contains the identifier of the sending station now * src/callinput.c: '.' calls new bm_menu() now * src/bandmap.c, src/bandmap.h: bm_is_dupe() check implemented * src/readcalls.c: regroup code fragment 2011-03-09 Thomas Beierlein * src/cluster_bg.c: - drop display of old bandmap - call bm_show() to display the new one 2011-03-08 Thomas Beierlein * src/tlf.h: new definition of BANDINDEX_xx 2011-03-07 Thomas Beierlein * src/Makefile.am, src/bandmap.c, src/bandmap.h, src/cluster_bg.c, src/splitscreen.c: First work for new bandmap - add bandmap.[ch] - call according functions - bandmap stores freq in Hz as integers 2011-02-24 Thomas Beierlein * src/showinfo.c: - correct display of 1A stations - simplify 2011-02-25 Thomas Beierlein * src/bandmap.h: First steps to define the behaviour of the new bandmap 2011-02-23 Thomas Beierlein * src/addcall.c, src/cluster_bg.c, src/searchcallarray.c, src/tlf.h: - fix wrong false return value from searchcallarray - simplify 2011-02-22 Thomas Beierlein * src/main.c, src/makelogline.c, src/score.c: simplify handling of score points * configure.in, src/Makefile.am, src/addcall.c, src/addspot.c, src/callinput.c, src/cluster_bg.c, src/dxcc.c, src/dxcc.h, src/getctydata.c, src/getmessages.c, src/getwwv.c, src/globalvars.h, src/main.c, src/makelogline.c, src/muf.c, src/readctydata.c, src/score.c, src/searchlog.c, src/showinfo.c, src/showpxmap.c, src/tlf.h: switch cty data handling to growing arrays needs GLib, so also add a check to configure.in 2011-06-09 thomas beierlein version 1.0.5 * fixes some nasty racing condition between bandmap code and checkwindow. In result prefix in lower line of checkwindow got displayed wrong, but country was right. Thanks Martin OK1RR for reporting. 2011-05-22 thomas beierlein version 1.0.4 * fix for wrong handling of recalled exchange - Thanks Martin OK1RR for reporting. - All calls from initial exchange file will be recognised even if part of a complex call, e.g. DL1CCL in LA/DL1CCL/p - All calls from former QSO's have to be exact including any pre- or postcombination - Now complete exchange will be recalled (not only first word) 2011-02-07 thomas beierlein version 1.0.3 * fix buffer overflow in 'send_lan_message' * fix wrong count of points and qso's for last band entry. Thanks Martin OK1RR for reporting. 2011-01-31 thomas beierlein version 1.0.2 * fix bug in sendto call. cwdaemon needs a zero terminated string. Thanks for reporting Andy G4KNO 2011-01-15 thomas beierlein version 1.0.1 * fix calculation of sun up and down time based on longitude from country description in cty.dat 2011-01-13 thomas beierlein * fix bug in cty.dat and in the routine which reads in the file 2011-01-08 thomas beierlein * fix logfile read error. Last QSO got read twice. * Optimize searchlog() for speed and also optimize partial call lookup. 2010-12-23 thomas beierlein version 1.0.0 * fix some possible buffer overflow in exchange handling for cqww * fix handling of changing RST, especially resetting the values to 59/599 * make Backspace and Delete-Keys the same 2010-12-19 thomas beierlein * fix some code problems reported by Stephan F8FCE. Thanks. * changed ESC handling in comment and call input field 2010-12-04 thomas beierlein * add new cty.dat provided by OK1RR * fix typos in man page and clarify CQDELAY handling * fix CQDELAY handling in parse_cfg 2010-11-29 thomas beierlein * fix parsing for MARKERDOTS and MARKERCALL keywords * fix buffer overrun during write of markerfile * add new callmaster file provided by OK1RR 2010-10-18 thomas beierlein * fix installation commands for 'make distcheck' 2010-09-11 thomas beierlein * fix calculation of sunrise and sunset times * fix calculation of QSO Rate * some minor fixes of uninitialized variables 2010-01-xx thomas beierlein * better recognition of hamlib install (tnx F8FCE) * fix a lot of buffer overrun for string handling (as glibc and gcc use -D_FORTIFY_SOURCE for stricter checking of buffer overruns) * rewrote handling of initial exchange file. It now allows empty and comment lines (#) and spaces around the callsign. Leading space before comment gets ignored. * Fix input handling of notes. * Fix autocq handling. First characters gets no longer swallowed. * Drop code for old not functional LPT_KEYER and COM1_KEYER. * strip autogenerated files from repository. 2007-12-21 rein couperus * changed searchlog.c ('possible calls') 2007-12-18 rein couperus * changed cluster_bg.c to fix possible buffer overflow * changed searchlog.c -> compare now starts at beginning of callsign. 2003-09-10 dimiter (mitko) kroumov version 0.9.1: * added an autoRXVTdiscovery and a hack XTERM arrows by putting "linux" native driver as TERMinal in the environment. * Introduced WAZMULT (CQWW like) and ITUMULT switches as contest rule multipliers * logcfg.dat has been split up. added a new "rules/" directory for the contest rules file. 2002-11-03 rein couperus version 0.8.6: * bug fixes: various modules * fixed getctydata.c to interpret ctydb properly * fixed bug in callinput.c allowing input of too many characters in call field * added TIME_OFFSET to allow running PC on local time instead of UTC * added arrl sweepstakes contest with flexible exchange input 2002-10-01 rein couperus version 0.8.1: * various modules: added frequency data, talk data and serialnr data network distribution * added :info and :freq displays 2002-09-07 rein couperus version 0.8.0: * lancode.c, lancode.h: added networking module * various modules: major code changes to interface to the networking module for log data and packet data distribution 2002-08-30 rein couperus version 0.7.3: * background_process.c: added cw simulator mode * changeparams.c: added command :simulator * logit.c, call_input.c: added simulator code * main.c: added various global variables for cw simulator * searchlog.c: fixed bug to enable working more than 20 JA's (now 999) 2002-08-30 rein couperus version 0.7.2: * configure.in : added --enable-hamlib to switch on Hamlib support * sendtxinfo.c, main.c: changed the code to support library switch 2002-08-21 rein couperus version 0.7.1: * parse_logcfg.c: added RIGPORT parameter * clusterinfo.c : added ctrl-g support for spot list 2002-08-21 rein couperus version 0.7.0: * sendqrg.c: added Hamlib support * gettxinfo.c: added Hamlib support * parse_logconfig.c: added Hamlib support * added rig.h 2002-08-12 rein couperus version 0.6.1: * splitscreen.c: telnet client does now display correctly when long buffers come in. * preliminary fix for bandmap display * added FIFO interface to cluster monitor * added command to logcfg.dat: FIFO_INTERFACE this starts a FIFO called clfile in the working directory for added flexibility and backward compatibility with previous versions 2002-08-08 rein couperus version 0.6.0: * major rewrite of all routines making disk access. * Removed all system calls. * included telnet client and tnc terminal based on splitscreen by Dave Brown, N2RJT. Now fully integrated with tlf. * Added commands to logcfg.com: TELNETHOST, TELNETPORT TNCPORT (1 or 2) * callinput.c: ESCAPE now erases call + exchange * show_score.c: Color change in header line 2002-07-21 rein couperus * searchlog.c: now keeps logdata in ram to speed up dupe check removed sys calls and reference to /tmp/tlf * store_to disk.c copy logdata into ram array * delete_qso.c remove qso from ram array * edit_last.c change qso in ram array * readcalls.c read qso data into ram array * main.c added global qso array (3000 qso's) 2002-07-21 rein couperus * searchlog.c: changed partials routine to run in RAM added load_partials function * main.c: added load partials from disk * time_update.c removed disk access to logfile every 5 secs * score.c changed cqww scoring (2 pts within NA) 2002-07-14 Rein Couperus * edit_last.c: added insert and delete * removed call to tlf_deletelogline 2002-07-13 Rein Couperus tlf-0.5.4.3: * main.c: added mixedmode parameter * searchlog.c added mixed mode capability to dupe logic * writecabrillo.c added wysiwyg multiplier format and mixed capability * changeparameters.c added :CWMODE, :SSBMODE and :DIGIMODE commands * show_help.c added new mode switch commands 2002-07-07 Rein Couperus tlf-0.5.4.2: * readcalls.c: fixed logic for wysiwyg multipliers * getexchange.c : added "\" command 2002-06-09 Rein Couperus tlf-0.5.4.1: adjustments for bugs in debian floppy version (delete last qso, write cabrillo) * deleteqso.c: killed the system call to script tlf_deletelogline, wrote inline code to do the job. *writecabrillo.c: removed system call to 'sed' 2002-05-31 Rein Couperus tlf-0.5.4: * tlf.h: added definition of EDITOR_E3 * various: added support for e3 editor (debian floppy ) * clusterinfo.c: read cl3file only if read successful 2002-05-26 Rein Couperus tlf-0.5.3: * getmessages.c: don't initialize call and logfile name if present in logcfg.dat * getctydata.c: bug fix: calculate right cty for /P calls 2002-05-26 Rein Couperus tlf-0.5.3: * score.c: wpx + cqww: added 2 point mode for NA stations * searchlog.c: added red warning signal in case of call lock (check partials) * parse_logcfg.c: added generic parameters 2EU3DX_POINTS, COUNTRY_MULT, PORTABLE_MULT2 , SERIAL_EXCHANGE for use in logcfg.dat (e.g. in Region 1 field day..). * added new parameters and logic to various files to enable "universal" contest * edit_last.c : added new code to edit last qso ("@" command) 2002-05-24 Rein Couperus tlf-0.5.2a: bug fixes: * deleteqso.c: fixed call to tlf_deletelogline * writecabrillo.c: changed version to 0.5.2 New feature: allow CW logging without external keyer.... * tlf.h: added #definition NO_KEYER * write_keyer.c: check explicitly for presence of keyer * parse_logcfg.c: make default NO_KEYER * main.c: initialize keyerport to NO_KEYER * keyer.c: bail out if NO_KEYER * sendbuf.c: bail out if NO_KEYER 2002-05-24 Rein Couperus * tlf-0.5.2: Automatic generation of .paras file in working directory * changed tlf_cleanup to automatically generate clfile and wwvfile at startup * removed .paras, clfile, wwvfile and logfiles from /examples/xxx/ * added parameter MANY_CALLS to logcfg.dat * added parameters POWERMULT to logcfg.dat (for arrlfd) * update of scoring routine for arrlfd * added larger partial call window 2002-05-19 Rein Couperus * tlf-0.5.1: Initial version with automake and autoconf. tlf/Doxyfile000066400000000000000000003251211456620235100133610ustar00rootroot00000000000000# Doxyfile 1.8.17 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the configuration # file that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = TLF # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all generated output in the proper direction. # Possible values are: None, LTR, RTL and Context. # The default value is: None. OUTPUT_TEXT_DIRECTION = None # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be # interpreted by doxygen. # The default value is: NO. JAVADOC_BANNER = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. # When you need a literal { or } or , in the value part of an alias you have to # escape them by means of a backslash (\), this can lead to conflicts with the # commands \{ and \} for these it is advised to use the version @{ and @} or use # a double escape (\\{ and \\}) ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice # sources only. Doxygen will then generate output that is more tailored for that # language. For instance, namespaces will be presented as modules, types will be # separated into more groups, etc. # The default value is: NO. OPTIMIZE_OUTPUT_SLICE = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, # Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files), VHDL, tcl. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is # Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 5. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual # methods of a class will be included in the documentation. # The default value is: NO. EXTRACT_PRIV_VIRTUAL = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # (including Cygwin) ands Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = YES # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. If # EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. # The default value is: NO. WARN_AS_ERROR = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: https://www.gnu.org/software/libiconv/) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), # *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen # C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f, *.for, *.tcl, *.vhd, # *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ *.h # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have JavaScript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: https://developer.apple.com/xcode/), introduced with OSX # 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. FORMULA_MACROFILE = # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. # The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /