diff options
author | db <db@FreeBSD.org> | 2008-05-28 22:32:58 +0800 |
---|---|---|
committer | db <db@FreeBSD.org> | 2008-05-28 22:32:58 +0800 |
commit | 2a6880792041b9e7e9837386caa0b2a8dc8f7aa7 (patch) | |
tree | f303543ab01e9fee31c44364e39cd925e1119b34 /comms | |
parent | d877b14143c31614d6cc9f0d050efb773d760570 (diff) | |
download | freebsd-ports-gnome-2a6880792041b9e7e9837386caa0b2a8dc8f7aa7.tar.gz freebsd-ports-gnome-2a6880792041b9e7e9837386caa0b2a8dc8f7aa7.tar.zst freebsd-ports-gnome-2a6880792041b9e7e9837386caa0b2a8dc8f7aa7.zip |
- Update to 8.04
- Remove patch files accepted by vendor
Diffstat (limited to 'comms')
-rw-r--r-- | comms/kb/Makefile | 49 | ||||
-rw-r--r-- | comms/kb/distinfo | 12 | ||||
-rw-r--r-- | comms/kb/files/Makefile | 4 | ||||
-rw-r--r-- | comms/kb/files/README_TIPS | 138 | ||||
-rw-r--r-- | comms/kb/files/bsd_bells.c | 163 | ||||
-rw-r--r-- | comms/kb/files/kb | 6 | ||||
-rw-r--r-- | comms/kb/files/kb-icon.png | bin | 0 -> 2788 bytes | |||
-rw-r--r-- | comms/kb/files/kb.1 | 26 | ||||
-rw-r--r-- | comms/kb/files/kbserver | 34 | ||||
-rw-r--r-- | comms/kb/files/patch-boxes.c | 35 | ||||
-rw-r--r-- | comms/kb/files/patch-elogs.c | 915 | ||||
-rw-r--r-- | comms/kb/files/patch-fields.c | 15 | ||||
-rw-r--r-- | comms/kb/files/patch-globs.h | 27 | ||||
-rw-r--r-- | comms/kb/files/patch-init.c | 165 | ||||
-rw-r--r-- | comms/kb/files/patch-io.c | 533 | ||||
-rw-r--r-- | comms/kb/files/patch-kb.c | 32 | ||||
-rw-r--r-- | comms/kb/files/patch-support.c | 124 | ||||
-rw-r--r-- | comms/kb/files/pkg_message | 8 | ||||
-rw-r--r-- | comms/kb/pkg-plist | 13 |
19 files changed, 280 insertions, 2019 deletions
diff --git a/comms/kb/Makefile b/comms/kb/Makefile index 961431af4519..aa4daef29943 100644 --- a/comms/kb/Makefile +++ b/comms/kb/Makefile @@ -5,8 +5,7 @@ # $FreeBSD$ PORTNAME= kb -PORTVERSION= 7.09 -PORTREVISION= 1 +PORTVERSION= 8.04 CATEGORIES= comms hamradio MASTER_SITES= http://www.db.net/downloads/ \ ${MASTER_SITE_LOCAL} @@ -16,34 +15,50 @@ DISTFILES= kb_src-${PORTVERSION}.tar.gz kb_inst-${PORTVERSION}.tar.gz MAINTAINER= db@FreeBSD.org COMMENT= Amateur Radio contest logger +USE_XLIB= yes USE_GNOME= libgnome gtk20 libbonobo NO_WRKSUBDIR= yes PKGMESSAGE= ${FILESDIR}/pkg_message +MAN1= kb.1 + +DESKTOP_ENTRIES="KB" \ + "Kick Butt logger" \ + "${PREFIX}/share/pixmaps/kb/icons/kb-icon.png" \ + "kb" \ + "" \ + true + pre-configure: @${CP} ${FILESDIR}/Makefile ${WRKSRC} -.if exists(/usr/include/dev/speaker/speaker.h) - @${REINPLACE_CMD} -e 's|-UBSDSOUND|-DBSDSOUND="<dev/speaker/speaker.h>"|' ${WRKSRC}/Makefile -.elif exists(/usr/include/machine/speaker.h) - @${REINPLACE_CMD} -e 's|-UBSDSOUND|-DBSDSOUND="<machine/speaker.h>"|' ${WRKSRC}/Makefile +.if !exists(/usr/include/dev/speaker/speaker.h) + @${REINPLACE_CMD} -e 's|-DSPKR|-DOLDSPKR|' ${WRKSRC}/Makefile .endif - @${RM} ${WRKSRC}/kb_server - @${RM} ${WRKSRC}/kb - @${CP} ${FILESDIR}/bsd_bells.c ${WRKSRC} do-install: - @${INSTALL_SCRIPT} ${FILESDIR}/kbserver ${LOCALBASE}/etc/rc.d ${INSTALL_SCRIPT} ${FILESDIR}/kb ${LOCALBASE}/bin ${INSTALL_PROGRAM} ${WRKSRC}/kb ${LOCALBASE}/bin/kb_bin - ${INSTALL_PROGRAM} ${WRKSRC}/kb_server ${LOCALBASE}/sbin + ${INSTALL_PROGRAM} ${WRKSRC}/kb_server ${LOCALBASE}/bin + ${INSTALL_DATA} ${FILESDIR}/kb.1 ${MANPREFIX}/man/man1 ${MKDIR} ${DATADIR} -.for f in ${WRKSRC}/COUNTY.CQP ${WRKSRC}/DEFAULT.INI \ - ${WRKSRC}/CALL_LIB.LST ${WRKSRC}/CALL_SS.LST \ - ${WRKSRC}/CALL_FD.LST ${WRKSRC}/HELP.LST \ - ${WRKSRC}/COUNTRY.LST ${WRKSRC}/HELPFD.LST \ - ${WRKSRC}/SECTION.LST ${WRKSRC}/STATE.LST +.for f in COUNTY.CQP DEFAULT.INI CALL_LIB.LST CALL_SS.LST \ + CALL_FD.LST HELP.LST COUNTRY.LST HELPFD.LST \ + SECTION.LST STATE.LST ${INSTALL_DATA} ${WRKSRC}/$f ${DATADIR} .endfor - @${CAT} ${PKGMESSAGE} + ${MKDIR} ${PREFIX}/share/pixmaps/kb/icons + ${INSTALL_DATA} ${FILESDIR}/kb-icon.png \ + ${PREFIX}/share/pixmaps/kb/icons/kb-icon.png +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${FILESDIR}/README_TIPS ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/kb_bsd/README_BSD ${DOCSDIR} +.for f in LICENSE README README_KINKS README_SRC + ${INSTALL_DATA} ${WRKSRC}/$f ${DOCSDIR} +.endfor +.endif + @${ECHO} "" + @${ECHO} "Docs are in ${DOCSDIR} pay particular attention to README_BSD" + @${ECHO} "" .include <bsd.port.mk> diff --git a/comms/kb/distinfo b/comms/kb/distinfo index 0de283044f71..a67a147d1385 100644 --- a/comms/kb/distinfo +++ b/comms/kb/distinfo @@ -1,6 +1,6 @@ -MD5 (kb_src-7.09.tar.gz) = 2ac7a11e18c245278800f00b9bf3d300 -SHA256 (kb_src-7.09.tar.gz) = 7b6a7a8c8fbe01fbe1086f5b783414b056bf1d5db5945d086a3e7e6de1bfa6f8 -SIZE (kb_src-7.09.tar.gz) = 93896 -MD5 (kb_inst-7.09.tar.gz) = 1984eb53d5ba56b43c188f07de9ae3dd -SHA256 (kb_inst-7.09.tar.gz) = 0890702b3ee182d056e9a33055aa4519fded84b15a67556279173865c1eb10d2 -SIZE (kb_inst-7.09.tar.gz) = 199940 +MD5 (kb_src-8.04.tar.gz) = 9c37650b59509ca781b7f47b7e04eb4a +SHA256 (kb_src-8.04.tar.gz) = 0294ba1ff6b40dda7db1065a53088e3d6d642411c51cddc14b866027840c6a8f +SIZE (kb_src-8.04.tar.gz) = 96647 +MD5 (kb_inst-8.04.tar.gz) = 3eb637845509d4b344f023ac5da2d087 +SHA256 (kb_inst-8.04.tar.gz) = cd6707ae05b544e74bc0fdf25ab84c17f93394953f6f1a4fb1c5a84c63af5add +SIZE (kb_inst-8.04.tar.gz) = 321463 diff --git a/comms/kb/files/Makefile b/comms/kb/files/Makefile index 8d3d0025cbc1..b08957d056c4 100644 --- a/comms/kb/files/Makefile +++ b/comms/kb/files/Makefile @@ -6,11 +6,11 @@ LIBS+= `pkg-config --cflags --libs gtk+-2.0` LIBS+= `pkg-config --cflags --libs libgnome-2.0` LIBS+= `pkg-config --cflags --libs bonobo-activation-2.0` -all: kb_server kb +all: kb kb_server kb_server: kb_server.c ${CC} ${CFLAGS} -o kb_server kb_server.c -lm kb: boxes.c fboxes.c kb.c radio.c bsd_bells.c fields.c sboxes.c \ couzon.c init.c kb_server.c support.c elogs.c io.c network.c tree.c - ${CC} ${CFLAGS} -I. ${LIBS} kb.c -UBSDSOUND -o kb + ${CC} ${CFLAGS} -DSPKR -I. ${LIBS} kb.c -o kb diff --git a/comms/kb/files/README_TIPS b/comms/kb/files/README_TIPS new file mode 100644 index 000000000000..b4c05ea19111 --- /dev/null +++ b/comms/kb/files/README_TIPS @@ -0,0 +1,138 @@ +Tips for the System Administrator: + +Prior to Field Day: + +To prevent users from inadvertently starting up more than one kb_server +(which would be a very bad thing), I put the kb_server executable on the +non-server computers with a different name. That way, if the server +computer dies and a backup computer needs to become the server, the file +is there and just needs to be renamed back to kb_server. + +I set up the network computers at home before Field Day to make sure +everything works as expected. Last year, the battery died in one of the +computers less than a week before Field Day, and a hard disk died on +another a couple of weeks before that. Much better to have it happen at +home! I also set up all the Initial Screen information before Field Day +to save time at the site. KB will save a zero-byte data file that will +come up automatically when you start KB at Field Day. (It's most +convenient to do this in June, since KB's default contest for May is WPX +CW. In June, it's Field Day.) + +At Field Day: + +It's best to start up the client on the server computer before the other +clients are started. This will minimize network traffic, since the +first client connected to the server is assumed to be the master client. + When the master client is on a different computer from the server, +all the traffic between them is over the network, not local. If you +lose the master client (say someone accidentally exits KB on that +machine), the second-connected client automatically becomes the master, +and the network keeps going, but less efficiently. Similarly, when +shutting down the network, it's best (but not essential) to shut down +the remote clients first and then the master client last. When the last +client has exited, the server program shuts down automatically. + +If a network computer gets turned off by accident, restart it. When you +reconnect it to the network, all the log information will be +resynchronized with what's already on the network. If it's a client +that goes down, it's all automatic. If it's the server, you'll have to +reconnect all the clients after the server is running again. + +The VHF station at the AARA Field Day uses KB, but is not connected to +the network. 6-meters is logged as 160-meters, and the higher bands are +logged up from there. The VHF ops leave me a note as to which "band" is +which. After Field Day, I edit the band designators on the electronic +dupe sheets to reflect the correct bands. I then copy the VHF dupe +sheet file into the HF dupe sheet file for submittal. (Be careful here, +since the filenames from the HF and VHF stations for ALL of the files +(main data file, log, dupe sheets, etc.) will be identical. Take +appropriate action to keep them straight.) There is a command-line +capability with KB to specify a non-default file name, but using it at +Field Day, especially with unfamiliar users, is probably asking for trouble. + +The GOTA station must not be networked with the other stations, since +all computers on the network are assumed to be logging with the same +call sign. The GOTA station will need its own dupe sheet. All warnings +about the identical file names for the VHF station apply here too. + +I tend to prepare for the worst, so I like to do a file back-up +occasionally (to either a floppy disk or USB memory stick) using Alt-O +(Output). Use separate media for the main network, VHF, and GOTA +stations to avoid overwriting the identically-named data files. (If you +have a separate server computer, you won't have to interrupt any +operators on the network to do this.) KB forces a hard disk write after +every logged QSO, and I've never lost a contact using KB (with power +outages, etc.), but I don't want to be a goat at Field Day(!). + +After Field Day: + +See VHF station tip above (for after Field Day items). + +The summary sheet that KB generates is for use as an aid in filling out +the ARRL online entry form. It is not for submittal to ARRL. (ARRL +only wants the dupe sheets.) + +Tips for Operators/Users: + +General: + +At the AARA Field Day (the first two years we used KB), we set up a +"Demo" computer to allow users to get familiar with how KB works. This +computer was not networked to any of the "official" computers (the ones +with real Field Day logs on them). They could play with this computer, +get stuck, ask questions, work North Korea, etc. We also gave a +training session on this computer an hour or two before Field Day +started. We won't be doing a demo station this year, but by now our ops +are familiar enough with KB that it isn't necessary. + +Specific: + +When using KB to send messages (either CW or DVK), it is more convenient +to "shift the function keys". This allows each message to be sent with +a single keystroke. Which type of message is sent (CW or DVK) is +determined by which mode has been selected (CW or phone). The menu bar +functions then require pressing the shift key in conjunction with the +appropriate function key. + +There are two "dupe modes" in KB: Ask and Always. "Ask" is good for +search-and-pounce operation. If a dupe is encountered, KB will ask +whether the operator wants to work that call again or not. "Always" is +good for running stations. In this mode, KB will mark each dupe with a +red star (and zero points), and let the operator continue without +interruption. (When running, it's a lot faster to just work the dupes +rather than to argue with them about it.) + +When editing a previously logged call (to correct any logging errors), +the proper way to complete the task is to press <Enter>. Many +unfamiliar users (at our Field Day) hit <Escape> instead. Unfortunately +for them, <Escape> is the command to clear a field. Fortunately for +them (but only if they know about it), Alt-<Escape> will restore the +original contents of that field (before it was edited). Then they can +try editing again, and use <Enter> to resume operating. + +Also, when sending CW or DVK messages, the proper way to interrupt the +message is to press <Pause/Break>. Unfortunately, unfamiliar operators +like to use <Escape> for this too, and KB dutifully clears the field. +There's no way to retrieve the previous contents in this case, however. + (I'm going to try more Post-It notes on the keyboard this year.) + +Many of our club's operators are long-time users of CT and WriteLog. In +those programs, the space bar is used like a tab key. In KB, the space +bar is used to reassemble two parts of a call sign. (For example, the +operator only gets the last two letters of the call, RC, then asks for +the rest. When the rest is received, the operator has typed in the call +field: RC VE3, which when <Enter> or <TAB> is pressed, gets reassembled +to VE3RC. (Before Field Day 2006 started, our ops were insisting that +the space bar "has to be" used like a tab key, until they saw this. +Then they wondered how they could ever operate again without it. We got +no complaints about the space bar in 2007.) + +An operator at one station can send a message across the network using +Alt-M. (When the rate is slow, and/or the ops want to harass each other, +they can stay in touch this way.) The messages will cover up part of +the menu bar (and the automatically generated network messages will also +do this). Pressing Alt-R will redraw the screen with the full menu bar +restored. + + + diff --git a/comms/kb/files/bsd_bells.c b/comms/kb/files/bsd_bells.c deleted file mode 100644 index 86661c57bac2..000000000000 --- a/comms/kb/files/bsd_bells.c +++ /dev/null @@ -1,163 +0,0 @@ -#ifdef DEBUG_BELLS -#include <stdio.h> -#include <stdlib.h> -#include <dev/speaker/speaker.h> -#include <fcntl.h> -#include "kb_bells.h" -#define MAX_BELLS (SPEED_CHANGE_SOUND+1) -int fd_bells; - -static void bsd_play_bells(int isound); -main() -{ - int i; - fd_bells = open("/dev/speaker",O_RDWR); - - if(fd_bells<0) { - fprintf(stderr,"kldload speaker.ko\n"); - exit(-1); - } - - for(i=1;i < MAX_BELLS;i++) { - printf("%d \n", i); - bsd_play_bells(i); - getchar(); - } -} -#endif - -static void bsd_play_bells(int isound) -{ - tone_t tones; - - switch(isound) - { - case BELL_SOUND : - play_bell_sound (); - break; - case DUPE_SOUND : - play_dupe_sound (); - break; - case MESSAGE_SOUND : - play_message_sound (); - break; - case BAND_CHANGE_SOUND : - play_band_change_sound (); - break; - case SINGLE_MULT_SOUND : - play_single_mult_sound (); - break; - case DOUBLE_MULT_SOUND : - play_double_mult_sound (); - break; - case BAD_CALL_SOUND : - play_bad_call_sound (); - break; - case BAD_KEY_SOUND : - play_bad_key_sound (); - break; - case SPEED_CHANGE_SOUND : - play_speed_change_sound (); - break; - default: - break; - } -} -#define DELAY_TO_HZ(x) (x/4) -play_bell_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x474); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_dupe_sound () -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0xfe0); - tones.duration = 12; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x17c8); - tones.duration = 12; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_message_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0xd58); - tones.duration = 12; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x8e8); - tones.duration = 12; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0xd58); - tones.duration = 12; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_band_change_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x710); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = 0; - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x710); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = 0; - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_single_mult_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x8e8); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x6ac); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_double_mult_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x8e8); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x6ac); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = 0; - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x8e8); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); - tones.frequency = DELAY_TO_HZ(0x6ac); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_bad_call_sound () -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x11d0); - tones.duration = 38; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_bad_key_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x17cc); - tones.duration = 42; - ioctl(fd_bells, SPKRTONE, &tones); -} -play_speed_change_sound() -{ - tone_t tones; - tones.frequency = DELAY_TO_HZ(0x710); - tones.duration = 6; - ioctl(fd_bells, SPKRTONE, &tones); -} - diff --git a/comms/kb/files/kb b/comms/kb/files/kb index 43865762c67d..180a869c4a02 100644 --- a/comms/kb/files/kb +++ b/comms/kb/files/kb @@ -1,7 +1,9 @@ #!/bin/sh -if [ ! -e ~/.kb ] ; then +if [ ! -e ~/.kb ];then mkdir ~/.kb + cd ~/.kb + ln -s /usr/local/bin/kb_server kb_server fi -cp -f /usr/local/share/kb/* ~/.kb cd ~/.kb +cp -f /usr/local/share/kb/* . exec kb_bin diff --git a/comms/kb/files/kb-icon.png b/comms/kb/files/kb-icon.png Binary files differnew file mode 100644 index 000000000000..5b82aa4ae126 --- /dev/null +++ b/comms/kb/files/kb-icon.png diff --git a/comms/kb/files/kb.1 b/comms/kb/files/kb.1 new file mode 100644 index 000000000000..83275c29a1af --- /dev/null +++ b/comms/kb/files/kb.1 @@ -0,0 +1,26 @@ +.Dd May 24, 2008 +.Os Unix +.Dt kb 1 +.Sh NAME +.Nm kb +.Nd Contest logger for gnome +.Sh SYNOPSIS +This program is a contest logger specifically written for the gnome +window manager, +though it will work under all window managers. +.Sh DESCRIPTION +.B kb +kb consists of a pair of programs, the kb GUI and the kb_server, which +is a logging reflector. A multi-op site can use one copy of kb_server to +replicate all events/logs to all clients running kb over a LAN; +such as at a field day. This does mean a lot of LAN traffic but +also means any user can take over the job of the kb_server and with +the replicated logs there is a lot of backup as well. +.Sh SEE ALSO +If documents were installed for kb on your system: README_BSD,README_SRC, +README, README_KINKS and README_TIPS. +.Pp +The location of documents is system dependent, but is typically in +/usr/local/share/doc/kb for BSD system and /usr/share/doc/kb for Linux systems. +.Sh AUTHORS +Walter J. Legowski (WA1KKM) <wa1kkm@k2ct.net> diff --git a/comms/kb/files/kbserver b/comms/kb/files/kbserver deleted file mode 100644 index 4c83805581e4..000000000000 --- a/comms/kb/files/kbserver +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/sh -# -# PROVIDE: kbserver -# REQUIRE: NETWORKING -# -# Add the following lines to /etc/rc.conf to enable kb_server -# -#kbserver_enable="YES" - -. /etc/rc.subr - -name=kbserver -rcvar=`set_rcvar` -load_rc_config $name -kbserver_enable=${kbserver_enable-"NO"} - -command=/usr/local/sbin/kb_server -start_cmd=kbserver_start -stop_cmd=kbserver_stop - -kbserver_start() -{ - echo "Starting kb_server: " - ${command} - return 0 -} -kbserver_stop() -{ - echo "Stopping kb_server: " - killall kb_server - return 0 -} - -run_rc_command "$1" diff --git a/comms/kb/files/patch-boxes.c b/comms/kb/files/patch-boxes.c deleted file mode 100644 index 2a6e8ae0b3db..000000000000 --- a/comms/kb/files/patch-boxes.c +++ /dev/null @@ -1,35 +0,0 @@ ---- boxes.c.orig 2007-11-24 19:46:36.000000000 -0500 -+++ boxes.c 2007-11-24 19:42:17.000000000 -0500 -@@ -749,8 +749,13 @@ - guint ikey, istate; - gchar msg[43], email_file_names[5][13], lpr_line[81]; - gint margin=9; -+#ifdef BSD -+ const gchar *lpr_cmd = -+ "lpr "; -+#else - const gchar *lpr_cmd = - "lpr -r -o page-top=36 -o page-left=18 -o page-bottom=36 "; -+#endif - const gchar *print_file_names[4] = {"PRINT.SUM", "PRINT.DUP", - "PRINT.LOG", "PRINT.MLT"}; - -@@ -778,14 +783,14 @@ - if(icall_count) - { - write_summary_file (print_file_names[obd->item], margin); -- strcpy(lpr_line, lpr_cmd); -- strcat(lpr_line, print_file_names[obd->item]); -+ snprintf(lpr_line, sizeof(lpr_line), "%s %s", lpr_cmd, -+ print_file_names[obd->item]); - icopy = system(lpr_line); - if(isel_contest==WPX) - { - write_multiplier_file (print_file_names[3], margin); -- strcpy(lpr_line, lpr_cmd); -- strcat(lpr_line, print_file_names[3]); -+ snprintf(lpr_line, sizeof(lpr_line), "%s %s", lpr_cmd, -+ print_file_names[3]); - icopy = system(lpr_line); - } - if(!icopy) diff --git a/comms/kb/files/patch-elogs.c b/comms/kb/files/patch-elogs.c deleted file mode 100644 index 0cb6442775de..000000000000 --- a/comms/kb/files/patch-elogs.c +++ /dev/null @@ -1,915 +0,0 @@ ---- elogs.c.orig 2007-11-22 13:24:56.000000000 -0500 -+++ elogs.c 2007-11-22 14:19:17.000000000 -0500 -@@ -56,7 +56,6 @@ - gchar locus_line[4], ops_line[45]; - gint iqsos[2] = {0, 0}, idupes[2] = {0, 0}, ipoints[2] = {0, 0}; - gint mults[2] = {0, 0}, izones[2] = {0, 0}, nlw[2] = {0, 0}; -- gchar skip_line[3] = {'\r', '\n', '\0'}; - const gchar *stpr = "State/Province: "; - const gchar *category_choices[8] = {"Single Operator", - "Single Operator, Assisted", -@@ -106,9 +105,7 @@ - concat(line_out, cr_array[1].date, 4, 5, !COPY); - strcat(line_out, " "); - strcat(line_out, select_contest_items[isel_contest]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Call: "); - strcpy(station, init_screen_choices[0]); -@@ -169,9 +166,7 @@ - strcat(line_out, "Section: ___"); - break; - } -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp, "%s\n\n", line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Category: "); - for(i=0; i<8; i++) -@@ -192,16 +187,12 @@ - strcpy(ops_line, ""); - break; - } -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp, "%s\n\n", line_out); - if(strlen(ops_line)) - { - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, ops_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp, "%s\n\n", line_out); - } - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Mode: "); -@@ -211,24 +202,18 @@ - strcat(line_out, power_line); - concat(line_out, blank80, 0, 9, !COPY); - strcat(line_out, "Hours of Operation: __"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp, "%s\n\n\n", line_out); - switch (isel_contest) - { - case DX : - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " Net QSO Country Claimed"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " QSOs Points Mults Score"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp, "%s\n\n", line_out); - for(i=0; i<6; i++) - { - concat(line_out, blank80, 0, margin+2, COPY); -@@ -247,10 +232,9 @@ - int_to_comma (score_mb.mults[mode][i], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n", line_out); - } -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "All Bands"); - concat(line_out, blank80, 0, 3, !COPY); -@@ -269,21 +253,17 @@ - int_to_comma (ipoints[mode]*mults[mode], score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - case FD : - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " Net CW Net PH"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " QSOs QSOs"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - for(i=0; i<6; i++) - { - concat(line_out, blank80, 0, margin+2, COPY); -@@ -297,10 +277,9 @@ - int_to_comma (score_mb.qsos[PH][i]-score_mb.dupes[PH][i], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "All Bands"); - concat(line_out, blank80, 0, 4, !COPY); -@@ -315,8 +294,7 @@ - int_to_comma (iqsos[CW]-idupes[CW]+iqsos[PH]-idupes[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "QSO Points"); - concat(line_out, blank80, 0, 3, !COPY); -@@ -331,8 +309,7 @@ - int_to_comma (ipoints[CW]+ipoints[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Power Multiplier"); - concat(line_out, blank80, 0, 21, !COPY); -@@ -345,43 +322,34 @@ - int_to_comma (pm, sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "QSO Score"); - concat(line_out, blank80, 0, 28, !COPY); - int_to_comma (pm*(ipoints[CW]+ipoints[PH]), sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Bonus Points"); - concat(line_out, blank80, 0, 24, !COPY); - concat(line_out, under_line, 0, 6, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Claimed Score"); - concat(line_out, blank80, 0, 23, !COPY); - concat(line_out, under_line, 0, 6, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - case WPX : - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " Net QSO Prefix Claimed"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " QSOs Points Mults Score"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - for(i=0; i<6; i++) - { - concat(line_out, blank80, 0, margin+2, COPY); -@@ -400,10 +368,9 @@ - int_to_comma (score_mb.mults[mode][i], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "All Bands"); - concat(line_out, blank80, 0, 3, !COPY); -@@ -422,8 +389,7 @@ - int_to_comma (ipoints[mode]*mults[mode], score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - case CQP : - break; -@@ -431,14 +397,11 @@ - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " Net QSO Country Zone Claimed"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " QSOs Points Mults Mults Score"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - for(i=0; i<6; i++) - { - concat(line_out, blank80, 0, margin+2, COPY); -@@ -461,10 +424,9 @@ - int_to_comma (score_mb.zones[mode][i], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "All Bands"); - concat(line_out, blank80, 0, 2, !COPY); -@@ -487,22 +449,17 @@ - int_to_comma (ipoints[mode]*(mults[mode]+izones[mode]), score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - case SS : - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " Net QSO Section Claimed"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " QSOs Points Mults Score"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - concat(line_out, blank80, 0, 12, !COPY); - int_to_comma (iqsos[mode]-idupes[mode], sum_line); -@@ -520,21 +477,15 @@ - int_to_comma (ipoints[mode]*mults[mode], score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " ARRL Sections Check-Off List"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " (Sections worked marked with an asterisk)"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - for(j=1; j<11; j++) - { - concat(line_out, blank80, 0, margin, COPY); -@@ -554,8 +505,7 @@ - strcat(line_out, mult_line); - strcat(line_out, locus_line); - } -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - break; - case A160 : -@@ -565,18 +515,14 @@ - int_to_comma (iqsos[CW]-idupes[CW], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "QSO Points"); - concat(line_out, blank80, 0, 9, !COPY); - int_to_comma (ipoints[CW], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "States/Prov"); - for(i=0; i<2; i++) -@@ -587,9 +533,7 @@ - int_to_comma (nlw[CW], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Countries"); - nlw[0] = 0; -@@ -602,18 +546,14 @@ - int_to_comma (nlw[CW], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Total Mults"); - concat(line_out, blank80, 0, 8, !COPY); - int_to_comma (mults[CW], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Claimed Score"); - concat(line_out, blank80, 0, 1, !COPY); -@@ -621,16 +561,13 @@ - score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - case TEN : - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - " CW Phone All"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "QSOs"); - concat(line_out, blank80, 0, 15, !COPY); -@@ -645,9 +582,7 @@ - int_to_comma (iqsos[CW]-idupes[CW]+iqsos[PH]-idupes[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "QSO Points"); - concat(line_out, blank80, 0, 9, !COPY); -@@ -662,9 +597,7 @@ - int_to_comma (ipoints[CW]+ipoints[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "States/Prov"); - for(i=0; i<2; i++) -@@ -683,9 +616,7 @@ - int_to_comma (nlw[CW]+nlw[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Countries"); - nlw[0] = 0; -@@ -706,9 +637,7 @@ - int_to_comma (nlw[CW]+nlw[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Total Mults"); - concat(line_out, blank80, 0, 8, !COPY); -@@ -723,9 +652,7 @@ - int_to_comma (mults[CW]+mults[PH], sum_line); - left_blank_pad (sum_line, sizeof(sum_line)); - strcat(line_out, sum_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Claimed Score"); - concat(line_out, blank80, 0, 30, !COPY); -@@ -733,76 +660,51 @@ - score_line); - left_blank_pad (score_line, sizeof(score_line)); - strcat(line_out, score_line); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - break; - } -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"\n\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - "Club Participation? ( ) Yes ( ) No If yes, print name below."); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Name of Club: "); - concat(line_out, under_line, 0, 49, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Rigs: "); - concat(line_out, under_line, 0, 57, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - concat(line_out, under_line, 0, 63, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Antennas: "); - concat(line_out, under_line, 0, 53, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - concat(line_out, under_line, 0, 63, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Remarks: "); - concat(line_out, under_line, 0, 54, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - concat(line_out, under_line, 0, 63, !COPY); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n%s\n\n",line_out,line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - "This is to certify that in this contest I have operated my"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - "transmitter within the limitations of my license and have"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, - "observed fully the rules and regulations of the contest."); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, "Date "); - concat(line_out, under_line, 0, 9, !COPY); -@@ -810,25 +712,20 @@ - concat(line_out, under_line, 0, 22, !COPY); - strcat(line_out, ", "); - strcat(line_out, init_screen_choices[1]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, init_screen_choices[2]); - strcat(line_out, ", "); - strcat(line_out, init_screen_choices[1]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, init_screen_choices[3]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - if(strlen(init_screen_choices[4])) - { - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, init_screen_choices[4]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, init_screen_choices[5]); -@@ -836,8 +733,7 @@ - strcat(line_out, init_screen_choices[6]); - strcat(line_out, " "); - strcat(line_out, init_screen_choices[7]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - fflush(fp); - fsync(fileno(fp)); - fclose(fp); -@@ -852,7 +748,6 @@ - gchar station[14], mode_line[6], dupe_line[2]; - gchar title_line[74], header_line1[74], call_hold[14], call_fill[14]; - gint iqsos[2] = {0, 0}, max_lines=54; -- gchar skip_line[3] = {'\r', '\n', '\0'}; - gchar form_feed[2] = {'\f', '\0'}; - - fp = fopen(filnam, "w"); -@@ -924,10 +819,7 @@ - int_to_char (npages, npages_char); - left_blank_pad (npages_char, sizeof(npages_char)); - strcat(line_out, npages_char); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n\n",line_out); - } - if(margin || new_mb) - { -@@ -936,9 +828,7 @@ - strcat(line_out, header_line1); - strcat(line_out, bandw[i]); - strcat(line_out, mode_char[j]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - } - strcpy(call_hold, ""); - ic = 0; -@@ -973,8 +863,7 @@ - ic %= 4; - if(!ic) - { -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - idl++; - } - } -@@ -986,14 +875,13 @@ - } - if(ic) - { -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - if(margin) - fputs(form_feed, fp); - } - if(!margin) -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - } - fflush(fp); - fsync(fileno(fp)); -@@ -1014,7 +902,6 @@ - gchar hl2_zone[7], hl2_country[10]; - gint iqsos[2] = {0, 0}, nqsos[2] = {0, 0}; - gint nzones[2] = {0, 0}, nmults[2] = {0, 0}, npts[2] = {0, 0}; -- gchar skip_line[3] = {'\r', '\n', '\0'}; - gchar form_feed[2] = {'\f', '\0'}; - - fp = fopen(filnam, "w"); -@@ -1154,19 +1041,13 @@ - strcat(line_out, ipage_char); - strcat(line_out, " of "); - strcat(line_out, npages_char); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, header_line1); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, header_line2); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - } - for(i=(ipage-1)*50+1; i<=ipage*50; i++) - { -@@ -1361,11 +1242,10 @@ - npts[0] += atoi(cr_array[i].points); - npts[1] += atoi(cr_array[i].points); - strcat(line_out, cr_array[i].points); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - else if(margin) -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - } - if(margin) - { -@@ -1385,7 +1265,7 @@ - left_blank_pad (footer2_vars[2], sizeof(footer2_vars[2])); - int_to_char (npts[1], footer2_vars[3]); - left_blank_pad (footer2_vars[3], sizeof(footer2_vars[3])); -- fputs(skip_line, fp); -+ fprintf(fp,"\n"); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, footer_line1); - concat(line_out, blank80, 0, 9, !COPY); -@@ -1402,8 +1282,7 @@ - strcat(line_out, footer1_vars[2]); - concat(line_out, blank80, 0, 3, !COPY); - strcat(line_out, footer1_vars[3]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, footer_line2); - concat(line_out, blank80, 0, 9, !COPY); -@@ -1420,9 +1299,7 @@ - strcat(line_out, footer2_vars[2]); - concat(line_out, blank80, 0, 3, !COPY); - strcat(line_out, footer2_vars[3]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(form_feed, fp); -+ fprintf(fp,"%s\f\n",line_out); - } - } - fflush(fp); -@@ -1439,7 +1316,6 @@ - gchar title_line[74], header_line1[74]; - gint max_lines=54; - gint iqsos[2] = {0, 0}; -- gchar skip_line[3] = {'\r', '\n', '\0'}; - gchar form_feed[2] = {'\f', '\0'}; - - fp = fopen(filnam, "w"); -@@ -1499,15 +1375,10 @@ - strcat(line_out, ipage_char); - strcat(line_out, " of "); - strcat(line_out, npages_char); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n\n",line_out); - concat(line_out, blank80, 0, margin, COPY); - strcat(line_out, header_line1); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(skip_line, fp); -+ fprintf(fp,"%s\n\n",line_out); - } - jfirst = (ipage-1)*max_lines*10+1; - jlast = ipage*max_lines*10<px_tree.npx ? -@@ -1525,14 +1396,12 @@ - ic %= 10; - if(!ic) - { -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - } - if(ic) - { -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - if(margin) - fputs(form_feed, fp); -@@ -1662,8 +1531,7 @@ - strcat(category_cab, " "); - strcat(category_cab, mode_cab); - strcpy(line_out, "START-OF-LOG: 2.0"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - if(strlen(section)>0) - { - strcpy(line_out, "ARRL-SECTION: "); -@@ -1671,80 +1539,45 @@ - } - else - strcpy(line_out, "ARRL-SECTION:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "CALLSIGN: "); - strcat(line_out, init_screen_choices[0]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "CATEGORY: "); - strcat(line_out, category_cab); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - if(isel_contest==WPX && !strcmp(init_screen_choices[11], "<SO-TRI/SE>")) - { - strcpy(line_out, "CATEGORY-OVERLAY: "); - strcat(line_out, "TB-WIRES"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - strcpy(line_out, "CLAIMED-SCORE: "); - strcat(line_out, score_cab); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "CLUB:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "CONTEST: "); - strcat(line_out, contest_cab); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "NAME: "); - strcat(line_out, init_screen_choices[2]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - strcpy(line_out, "ADDRESS: "); - strcat(line_out, init_screen_choices[3]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- if(strlen(init_screen_choices[4])) -- { -- strcpy(line_out, "ADDRESS: "); -- strcat(line_out, init_screen_choices[4]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- strcpy(line_out, "ADDRESS: "); -- strcat(line_out, init_screen_choices[5]); -- strcat(line_out, ", "); -- strcat(line_out, init_screen_choices[6]); -- strcat(line_out, " "); -- strcat(line_out, init_screen_choices[7]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- } -- else -- { -- strcpy(line_out, "ADDRESS: "); -- strcat(line_out, init_screen_choices[5]); -- strcat(line_out, ", "); -- strcat(line_out, init_screen_choices[6]); -- strcat(line_out, " "); -- strcat(line_out, init_screen_choices[7]); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- strcpy(line_out, "ADDRESS:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- } -- strcpy(line_out, "OPERATORS:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- strcpy(line_out, "SOAPBOX:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -- fputs(line_out, fp); -- fputs(line_out, fp); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); -+ if(strlen(init_screen_choices[4])!=0) -+ fprintf(fp,"ADDRESS: %s\n", -+ init_screen_choices[4]); -+ fprintf(fp,"ADDRESS: %s, %s %s\n",init_screen_choices[5], -+ init_screen_choices[6],init_screen_choices[7]); -+ -+ fprintf(fp,"OPERATORS:\n"); -+ fprintf(fp,"SOAPBOX:\n"); -+ fprintf(fp,"SOAPBOX:\n"); -+ fprintf(fp,"SOAPBOX:\n"); -+ fprintf(fp,"SOAPBOX:\n"); -+ fprintf(fp,"SOAPBOX:\n"); - switch (isel_contest) - { - case WPX : -@@ -1790,8 +1623,7 @@ - strcat(line_out, exch_rcvd_cab); - strcat(line_out, " "); - strcat(line_out, cr_array[i].tx); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - break; - case FD : -@@ -1836,8 +1668,7 @@ - strcat(line_out, exch_rcvd_cab); - strcat(line_out, " "); - strcat(line_out, cr_array[i].tx); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - break; - case CQP : -@@ -1892,8 +1723,7 @@ - strcat(line_out, ck_rcvd_cab); - strcat(line_out, " "); - strcat(line_out, rst_rcvd_cab); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - break; - case A160 : -@@ -1947,8 +1777,7 @@ - strcat(line_out, exch_rcvd_cab); - strcat(line_out, " "); - strcat(line_out, cr_array[i].tx); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - break; - default : -@@ -1995,13 +1824,10 @@ - strcat(line_out, exch_rcvd_cab); - strcat(line_out, " "); - strcat(line_out, cr_array[i].tx); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"%s\n",line_out); - } - } -- strcpy(line_out, "END-OF-LOG:"); -- add_eol_chars (line_out); -- fputs(line_out, fp); -+ fprintf(fp,"END-OF-LOG:\n"); - fflush(fp); - fsync(fileno(fp)); - fclose(fp); diff --git a/comms/kb/files/patch-fields.c b/comms/kb/files/patch-fields.c deleted file mode 100644 index cfcf3b859c03..000000000000 --- a/comms/kb/files/patch-fields.c +++ /dev/null @@ -1,15 +0,0 @@ ---- fields.c.orig 2007-09-10 10:57:01.000000000 -0400 -+++ fields.c 2007-11-22 19:53:19.000000000 -0500 -@@ -1418,6 +1418,12 @@ - gint cyan_bar_color, text_color; - gchar str_hold[81]; - -+ /* If esk->ikey is nul shunt it off here. I saw it happen - db VA3DB */ -+ if (esd->ikey == '\0') -+ { -+ play_bells (BELL_SOUND); -+ return; -+ } - beep = 1; - ccol = *esd->cursor_colp-esd->field_col; - lflp = strlen(esd->field_linep); diff --git a/comms/kb/files/patch-globs.h b/comms/kb/files/patch-globs.h deleted file mode 100644 index df7aaf0da8b2..000000000000 --- a/comms/kb/files/patch-globs.h +++ /dev/null @@ -1,27 +0,0 @@ ---- globs.h.orig 2007-07-20 10:26:01.000000000 -0400 -+++ globs.h 2007-11-23 09:38:53.000000000 -0500 -@@ -169,8 +169,15 @@ - "<18.0>", "<19.2>", "<20.6>", "<22.2>", "<24.0>", - "<26.2>", "<28.8>", "<32.0>", "<36.0>", "<41.1>", - "<48.0>", "<57.6>", "<72.0>"}; -+/* These device names are really specific to FreeBSD -db */ -+#ifdef BSD -+static const gchar *port_bracket[6] = {"<OFF>", "<ttyd0>", "<ttyd1>", -+ "<ttyU0>", "<ttyU1>", "<TELNET>"}; -+#else - static const gchar *port_bracket[6] = {"<OFF>", "<ttyS0>", "<ttyS1>", - "<ttyUSB0>", "<ttyUSB1>", "<TELNET>"}; -+#endif -+ - static const gchar *yn_bracket[2] = {"<YES>", "<NO>"}; - static const gchar *dupe_bracket[2] = {"<ASK>", "<ALWAYS>"}; - static const gchar *partial_bracket[3] = {"<NO>", "<2>", "<3>"}; -@@ -178,7 +185,7 @@ - " Station Call Sign", "Operator Call Sign", - " Operator Name", " Address", - " Address", " City", -- " State", " Zip Code", -+ " State/Province", " Zip/Postal Code", - " Latitude", " Longitude", - " Offset to UTC", " Entry Category", - " Power", " Contest Type", diff --git a/comms/kb/files/patch-init.c b/comms/kb/files/patch-init.c index 4081df6845f9..2227c09a0e66 100644 --- a/comms/kb/files/patch-init.c +++ b/comms/kb/files/patch-init.c @@ -1,150 +1,19 @@ ---- init.c.orig 2007-09-10 10:34:21.000000000 -0400 -+++ init.c 2007-11-24 16:43:45.000000000 -0500 -@@ -30,6 +30,7 @@ - static gint set_error_check(gpointer data); - static gint check_precedence(void); - static gint butt_kick(gpointer widget); -+static void set_fixed_font(GtkWidget *); - struct init_vars - { - gint row1; -@@ -108,33 +109,13 @@ - (col1+9)*wcol, - (row1+9)*hrow+hrow/2, - layout); -- pfd = pango_font_description_from_string ("misc fixed 16"); -- pc = gtk_widget_get_pango_context (widget); -- pl = pango_context_get_language (pc); -- pfm = pango_context_get_metrics (pc, pfd, pl); -- ipfmgadw = pango_font_metrics_get_approximate_digit_width (pfm); -- cursor_offset = 8-pango_font_metrics_get_descent (pfm)/PANGO_SCALE; -- pango_font_metrics_unref (pfm); -- if(ipfmgadw==10240) -- { -- pango_layout_set_font_description (layout, pfd); -- pango_font_description_free (pfd); -- } -- else -- { -- pango_font_description_free (pfd); -- pfd = pango_font_description_from_string ("luxi mono 12"); -- pango_layout_set_font_description (layout, pfd); -- pango_font_description_free (pfd); -- printf("%s\n", missing_font); -- printf("For a more readable KB screen "); -- printf("add the Misc Fixed font to your system.\n"); -- printf("%s\n", missing_font); -- write_line (row1+23, col1+20, missing_font, HI_RED, SAVEPIX); -- write_line (row1+24, col1+6, -- "Now Using Alternate Font. KB Screens May Exhibit Display Problems.", -- HI_RED, SAVEPIX); -- } -+ /* Original code would only work on a 1024 wide screen. -+ * This works for other sized screens, including mine which is 1280 wide. -+ * -+ * - Diane VA3DB db@db.net -+ */ -+ set_fixed_font(widget); -+ - concat(comp_mon, __DATE__, 0, 2, COPY); - concat(comp_yr, __DATE__, 7, 10, COPY); - while(strcmp(comp_mon, month_array[icm]) && icm<11) -@@ -404,6 +385,7 @@ - mode = CW; - else - mode = PH; -+ shift_fkeys = 0; - if(!sccfn && strcmp(init_screen_choices[16], port_bracket[0])) +--- init.c.orig 2008-05-27 11:46:25.000000000 -0400 ++++ init.c 2008-05-27 11:47:49.000000000 -0400 +@@ -525,6 +525,8 @@ + pfd = pango_font_description_from_string ("misc fixed 16"); + pfm = pango_context_get_metrics (pc, pfd, pl); + ipfmgadw = pango_font_metrics_get_approximate_digit_width (pfm); ++/* A misc fixed 16 is not a monospace font! -db */ ++#if 0 + if(ipfmgadw/PANGO_SCALE==wcol) { - idisplay_type = IDT_KEYER; -@@ -1139,8 +1121,13 @@ - beep = 0; - break; - case 7 : -- if(isdigit_ui(ikey) || ikey=='-') -- beep = 0; -+ /* Canadian postal codes will be ANA[space]NAN -+ * I will cheat and allow any combination of alpha, numeric and space. -+ * - Diane VA3DB <db@db.net> -+ */ -+ ikey = toupper_ui(ikey); -+ if(isalpha_ui(ikey) || isdigit_ui(ikey) || ikey==' ' || ikey=='-') -+ beep = 0; - break; - case 8 : - ikey = toupper_ui(ikey); -@@ -1163,7 +1150,7 @@ - edit_line (&esd); - } - else -- play_bells (BAD_KEY_SOUND); -+ play_bells (BAD_KEY_SOUND); + cursor_offset = 4; +@@ -533,6 +535,7 @@ + pango_font_description_free (pfd); } - return TRUE; - } -@@ -1791,6 +1778,7 @@ - } - write_ini_file (); - insert_mode = 0; -+ shift_fkeys = 0; - shift_fkeys = (strcmp(set_screen_choices[11], yn_bracket[1])); - ssd->done = TRUE; - break; -@@ -2381,3 +2369,57 @@ - update_rect.height); - return TRUE; - } -+ -+/* -+ * set_fixed_font -+ * -+ * Author - Diane Bruce <db@db.net> VA3DB -+ * Inputs - None -+ * Output - None -+ * Side effects - Try to find a font that fits the screen -+ * giving 80 columns across -+ * KB relies upon the width of a monospace font being equal -+ * in width to one of 80 (NUMBER_OF_COLUMNS) columns. -+ * Bugs - I am sure there must be better ways of doing this. -+ * There is probably a mapping function between -+ * font size and pixel width. I'll look for that next. -+ */ -+#define SBUFSIZE 64 -+static void -+set_fixed_font(GtkWidget *widget) -+{ -+ int width_col; -+ char font_desc[SBUFSIZE]; -+ int width_font; -+ int font_size; -+ gint ipfmgadw; -+ PangoFontDescription *pfd; -+ PangoContext *pc; -+ PangoLanguage *pl; -+ PangoFontMetrics *pfm; -+ -+ width_col = widget->allocation.width/NUMBER_OF_COLUMNS; -+ -+ pc = gtk_widget_get_pango_context (widget); -+ pl = pango_context_get_language (pc); -+ -+ for (font_size = 10; font_size < 24; font_size++) -+ { -+ snprintf(font_desc, sizeof(font_desc)-1, "monospace %d", font_size); -+ -+ pfd = pango_font_description_from_string (font_desc); -+ pfm = pango_context_get_metrics (pc, pfd, pl); -+ ipfmgadw = pango_font_metrics_get_approximate_digit_width (pfm); -+ if (ipfmgadw/PANGO_SCALE == width_col) -+ { -+ printf("Found a good font [%s]\n", font_desc); -+ pango_font_metrics_unref (pfm); -+ break; -+ } -+ pango_font_metrics_unref (pfm); -+ } -+ -+ cursor_offset = 8-pango_font_metrics_get_descent (pfm)/PANGO_SCALE; -+ pango_layout_set_font_description (layout, pfd); -+ pango_font_description_free (pfd); -+} + else ++#endif + { + for(nff=0; nff<2; nff++) + { diff --git a/comms/kb/files/patch-io.c b/comms/kb/files/patch-io.c deleted file mode 100644 index aea395044f47..000000000000 --- a/comms/kb/files/patch-io.c +++ /dev/null @@ -1,533 +0,0 @@ ---- io.c.orig 2007-07-01 15:19:57.000000000 -0400 -+++ io.c 2008-02-21 11:30:53.000000000 -0500 -@@ -17,6 +17,7 @@ - static void rewrite_contest_file(void); - static void write_call_library_file(void); - static gint process_tmp_file(const gchar *filnam); -+static char* chomp(char *s); - - static void fill_iend_array(void) - { -@@ -99,24 +100,22 @@ - strcat(contest_line, cr_array[qnum].tx); - strcpy(field_hold, cr_array[qnum].prefix); - right_blank_pad(field_hold, sizeof(cr_array[qnum].prefix)); -- strcat(contest_line, field_hold); -- add_eol_chars (contest_line); -+ sprintf(contest_line,"%s%s\n",contest_line,field_hold); - } - - static void read_ini_file(void) - { - FILE *fp; - gchar filnam[13], msg[49], contest_ini_line[76]; -- gint i, icolon, lcil, socil; -+ gint i, socil; -+ char *token; - guint answer; - -- strcpy(filnam, contest_file_base); -- strcat(filnam, ".INI"); -+ snprintf(filnam,sizeof(filnam), "%s.INI", contest_file_base); - fp = fopen(filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, filnam); -- strcat(msg, " does not exist. Use default? (Y/N)"); -+ snprintf(msg,sizeof(msg),"%s does not exist. Use default? (Y/N)"); - play_bells (DUPE_SOUND); - answer = boxed_message (msg, 0, LT_GRAY); - if(toupper_ui(answer)=='Y') fp = fopen("DEFAULT.INI","r"); -@@ -125,53 +124,41 @@ - socil = sizeof(contest_ini_line); - for(i=0; i<MAX_INIT_ITEMS; i++) - { -- fgets(contest_ini_line, socil, fp); -- if(feof(fp)) break; -- icolon = kb_index (contest_ini_line, ":"); -- if(icolon>-1) -- { -- lcil = strlen(contest_ini_line); -- if(contest_ini_line[lcil-1]=='\n') contest_ini_line[lcil-1] = '\0'; -- if(contest_ini_line[lcil-2]=='\r') contest_ini_line[lcil-2] = '\0'; -- lcil = strlen(contest_ini_line); -- if(lcil>icolon+1) -- concat(init_screen_choices[i], contest_ini_line, -- icolon+1, lcil-1, COPY); -- } -+ if(fgets(contest_ini_line, socil, fp) == NULL) -+ break; -+ token = strtok(contest_ini_line, ":\r\n"); -+ if (token != NULL) -+ { -+ token = strtok(NULL,":\r\n"); -+ if (token != NULL) -+ strcpy(init_screen_choices[i], token); -+ } - } - for(i=0; i<MAX_SET_ITEMS; i++) - { -- fgets(contest_ini_line, socil, fp); -- if(feof(fp)) break; -- icolon = kb_index (contest_ini_line, ":"); -- if(icolon>-1) -- { -- lcil = strlen(contest_ini_line); -- if(contest_ini_line[lcil-1]=='\n') contest_ini_line[lcil-1] = '\0'; -- if(contest_ini_line[lcil-2]=='\r') contest_ini_line[lcil-2] = '\0'; -- lcil = strlen(contest_ini_line); -- if(lcil>icolon+1) -- concat(set_screen_choices[i], contest_ini_line, -- icolon+1, lcil-1, COPY); -- } -+ if(fgets(contest_ini_line, socil, fp) == NULL) -+ break; -+ token = strtok(contest_ini_line, ":\r\n"); -+ if (token != NULL) -+ { -+ token = strtok(NULL,":\r\n"); -+ if (token != NULL) -+ strcpy(set_screen_choices[i], token); -+ } - } - if(!strcmp(set_screen_choices[1], "<NEVER>")) - strcpy(set_screen_choices[1], dupe_bracket[0]); - for(i=0; i<MAX_KEYER_ITEMS; i++) - { -- fgets(contest_ini_line, socil, fp); -- if(feof(fp)) break; -- icolon = kb_index (contest_ini_line, ":"); -- if(icolon>-1) -- { -- lcil = strlen(contest_ini_line); -- if(contest_ini_line[lcil-1]=='\n') contest_ini_line[lcil-1] = '\0'; -- if(contest_ini_line[lcil-2]=='\r') contest_ini_line[lcil-2] = '\0'; -- lcil = strlen(contest_ini_line); -- if(lcil>icolon+1) -- concat(keyer_screen_choices[i], contest_ini_line, -- icolon+1, lcil-1, COPY); -- } -+ if(fgets(contest_ini_line, socil, fp) == NULL) -+ break; -+ token = strtok(contest_ini_line, ":\r\n"); -+ if(token != NULL) -+ { -+ token = strtok(NULL,":\r\n"); -+ if (token != NULL) -+ strcpy(keyer_screen_choices[i], token); -+ } - } - fclose(fp); - } -@@ -187,17 +174,14 @@ - fp = fopen(filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, "Error reading "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error reading %s", filnam); - rw_error_box (main_drawing_area, msg); - return; - } - icall_count = 0; - socl = sizeof(contest_line); -- for( ; ; ) -+ while(fgets(contest_line, socl, fp) != NULL) - { -- fgets(contest_line, socl, fp); -- if(feof(fp)) break; - icall_count++; - fill_cr_array_all (contest_line, icall_count); - } -@@ -257,16 +241,13 @@ - gchar filnam[13], contest_line[76]; - - ded_num = 0; -- strcpy(filnam, contest_file_base); -- strcat(filnam, ".DED"); -+ sprintf(filnam,"%s.DED", filnam); - fp = fopen(filnam, "r"); - if(fp==NULL) - return; - socl = sizeof(contest_line); -- for( ; ; ) -+ while(fgets(contest_line, socl, fp) != NULL) - { -- fgets(contest_line, socl, fp); -- if(feof(fp)) break; - ded_num++; - strcpy(ded_array[ded_num], contest_line); - } -@@ -276,7 +257,7 @@ - static void read_locus_file(void) - { - FILE *fp; -- gint i, j, lcil, icn, soli; -+ gint i, j, icn, soli; - gchar filnam[13], msg[49], clat[5], clong[6]; - gchar line_in[80]; - gint n=0; -@@ -320,20 +301,14 @@ - fp = fopen(filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, "Error reading "); -- strcat(msg, filnam); -+ snprintf(msg,sizeof(msg),"Error reading %s",filnam); - rw_error_box (main_drawing_area, msg); - return; - } - soli = sizeof(line_in); -- for( ; ; ) -+ while(fgets(line_in, soli, fp) != NULL) - { -- fgets(line_in, soli, fp); -- if(feof(fp)) break; -- lcil = strlen(line_in); -- if(line_in[lcil-1]=='\n') line_in[lcil-1] = '\0'; -- if(line_in[lcil-2]=='\r') line_in[lcil-2] = '\0'; -- lcil = strlen(line_in); -+ chomp(line_in); - n++; - concat(loci.locus_name[n], line_in, - col_num[icn][0], col_num[icn][1], COPY); -@@ -376,8 +351,7 @@ - fp = fopen(filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, "Error reading "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error reading %s",filnam); - rw_error_box (main_drawing_area, msg); - return; - } -@@ -385,12 +359,12 @@ - contest_nc[i][0] = '\0'; - for(i=0; i<MAX_COUNTRIES; i++) - { -- countries.country_name[i][0] = '\0';
-- countries.country_abv[i][0] = '\0';
-- countries.country_syn[i][0] = '\0';
-- countries.continent_abv[i][0] = '\0';
-- countries.zones_in_country[i][0] = '\0';
-- countries.country_lat[i] = 0.;
-+ countries.country_name[i][0] = '\0'; -+ countries.country_abv[i][0] = '\0'; -+ countries.country_syn[i][0] = '\0'; -+ countries.continent_abv[i][0] = '\0'; -+ countries.zones_in_country[i][0] = '\0'; -+ countries.country_lat[i] = 0.; - countries.country_long[i] = 0.; - } - for(i=0; i<6; i++) -@@ -401,13 +375,9 @@ - countries.izone_worked[i][j] = 0; - } - soli = sizeof(line_in); -- for( ; ; ) -+ while(fgets(line_in, soli, fp) != NULL) - { -- fgets(line_in, soli, fp); -- if(feof(fp)) break; -- lcil = strlen(line_in); -- if(line_in[lcil-1]=='\n') line_in[lcil-1] = '\0'; -- if(line_in[lcil-2]=='\r') line_in[lcil-2] = '\0'; -+ chomp(line_in); - lcil = strlen(line_in); - if(line_in[0]=='-') - { -@@ -456,11 +426,11 @@ - countries.country_lat[0] = -89.; - for(i=0; i<=n; i++) - { -- right_blank_unpad (countries.country_name[i]);
-- right_blank_unpad (countries.country_abv[i]);
-- right_blank_unpad (countries.country_syn[i]);
-- right_blank_unpad (countries.continent_abv[i]);
-- right_blank_unpad (countries.zones_in_country[i]);
-+ right_blank_unpad (countries.country_name[i]); -+ right_blank_unpad (countries.country_abv[i]); -+ right_blank_unpad (countries.country_syn[i]); -+ right_blank_unpad (countries.continent_abv[i]); -+ right_blank_unpad (countries.zones_in_country[i]); - } - for(i=0; i<=notc; i++) - { -@@ -491,16 +461,16 @@ - for(k=j; k<=n; k++) - { - strcpy(countries.country_name[k], -- countries.country_name[k+1]);
-+ countries.country_name[k+1]); - strcpy(countries.country_abv[k], -- countries.country_abv[k+1]);
-+ countries.country_abv[k+1]); - strcpy(countries.country_syn[k], -- countries.country_syn[k+1]);
-+ countries.country_syn[k+1]); - strcpy(countries.continent_abv[k], -- countries.continent_abv[k+1]);
-+ countries.continent_abv[k+1]); - strcpy(countries.zones_in_country[k], -- countries.zones_in_country[k+1]);
-- countries.country_lat[k] = countries.country_lat[k+1];
-+ countries.zones_in_country[k+1]); -+ countries.country_lat[k] = countries.country_lat[k+1]; - countries.country_long[k] = countries.country_long[k+1]; - } - n--; -@@ -557,19 +527,14 @@ - fp = fopen(clib.filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, "Error reading "); -- strcat(msg, clib.filnam); -+ snprintf(msg, sizeof(msg), "Error reading %s", clib.filnam); - rw_error_box (main_drawing_area, msg); - return; - } - soli = sizeof(line_in); -- for( ; ; ) -+ while(fgets(line_in, soli, fp) != NULL) - { -- fgets(line_in, soli, fp); -- if(feof(fp)) break; -- lcil = strlen(line_in); -- if(line_in[lcil-1]=='\n') line_in[lcil-1] = '\0'; -- if(line_in[lcil-2]=='\r') line_in[lcil-2] = '\0'; -+ chomp(line_in); - right_blank_pad (line_in, soli); - lcil = strlen(line_in); - n++; -@@ -595,9 +560,9 @@ - fclose(fp); - for(i=0; i<=n; i++) - { -- right_blank_unpad (clib.call[i]);
-- right_blank_unpad (clib.country[i]);
-- right_blank_unpad (clib.section[i]);
-+ right_blank_unpad (clib.call[i]); -+ right_blank_unpad (clib.country[i]); -+ right_blank_unpad (clib.section[i]); - right_blank_unpad (clib.county[i]); - } - clib.number_of_calls = n+1; -@@ -606,7 +571,6 @@ - static void read_help_file(void) - { - FILE *fp; -- gint lcil, soli; - gchar filnam[13], msg[49]; - gchar line_in[80]; - gint n=-1; -@@ -622,19 +586,13 @@ - fp = fopen(filnam, "r"); - if(fp==NULL) - { -- strcpy(msg, "Error reading "); -- strcat(msg, filnam); -+ snprintf(msg,sizeof(msg), "Error reading %s",filnam); - rw_error_box (main_drawing_area, msg); - return; - } -- soli = sizeof(line_in); -- for( ; ; ) -+ while(fgets(line_in, sizeof(line_in), fp) != NULL) - { -- fgets(line_in, soli, fp); -- if(feof(fp)) break; -- lcil = strlen(line_in); -- if(line_in[lcil-1]=='\n') line_in[lcil-1] = '\0'; -- if(line_in[lcil-2]=='\r') line_in[lcil-2] = '\0'; -+ chomp(line_in); - n++; - strcpy(helpbv.help_lines[n], line_in); - } -@@ -652,13 +610,10 @@ - fp = fopen(filnam, "w"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, filnam); -+ snprintf(msg,sizeof(msg),"Error writing %s",filnam); - rw_error_box (main_drawing_area, msg); - return; - } --// fflush(fp); --// fsync(fileno(fp)); - fclose(fp); - } - -@@ -672,11 +627,7 @@ - concat(filnam_hold, filnam, 0, idot-1, COPY); - else - strcpy(filnam_hold, filnam); -- strcpy(msg, "cp "); -- strcat(msg, filnam); -- strcat(msg, " "); -- strcat(msg, filnam_hold); -- strcat(msg, ".BAK"); -+ snprintf(msg, sizeof(msg), "cp %s %s.BAK",filnam,filnam_hold); - icopy = system(msg); - return icopy; - } -@@ -687,13 +638,11 @@ - gchar filnam[13], msg[49], contest_ini_line[76]; - gint i; - -- strcpy(filnam, contest_file_base); -- strcat(filnam, ".INI"); -+ snprintf(filnam, sizeof(filnam), "%s.INI", contest_file_base); - fp = fopen(filnam, "w"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error writing %s", filnam); - rw_error_box (main_drawing_area, msg); - return; - } -@@ -703,8 +652,7 @@ - left_blank_unpad(contest_ini_line); - strcat(contest_ini_line, ":"); - strcat(contest_ini_line, init_screen_choices[i]); -- add_eol_chars (contest_ini_line); -- fputs(contest_ini_line, fp); -+ fprintf(fp,"%s\n",contest_ini_line); - } - for(i=0; i<MAX_SET_ITEMS; i++) - { -@@ -712,8 +660,7 @@ - left_blank_unpad(contest_ini_line); - strcat(contest_ini_line, ":"); - strcat(contest_ini_line, set_screen_choices[i]); -- add_eol_chars (contest_ini_line); -- fputs(contest_ini_line, fp); -+ fprintf(fp,"%s\n",contest_ini_line); - } - for(i=0; i<MAX_KEYER_ITEMS; i++) - { -@@ -721,8 +668,7 @@ - left_blank_unpad(contest_ini_line); - strcat(contest_ini_line, ":"); - strcat(contest_ini_line, keyer_screen_choices[i]); -- add_eol_chars (contest_ini_line); -- fputs(contest_ini_line, fp); -+ fprintf(fp,"%s\n",contest_ini_line); - } - fflush(fp); - fsync(fileno(fp)); -@@ -738,8 +684,7 @@ - fp = fopen(filnam, "a"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error writing %s", filnam); - rw_error_box (main_drawing_area, msg); - return; - } -@@ -757,21 +702,18 @@ - FILE *fp; - gchar filnam[13], msg[49], contest_line[76]; - -- strcpy(filnam, contest_file_base); -- strcat(filnam, ".DED"); -+ snprintf(filnam, sizeof(filnam), "%s.DED", contest_file_base); - fp = fopen(filnam, "a"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error writing %s",filnam); - rw_error_box (main_drawing_area, msg); - return; - } - strcpy(contest_line, cmd); -- add_eol_chars (contest_line); -- fputs(contest_line, fp); -+ fprintf(fp,"%s\n",contest_line); - make_contest_line (contest_line, qnum); -- fputs(contest_line, fp); -+ fprintf(fp, "%s\n", contest_line); - fflush(fp); - fsync(fileno(fp)); - fclose(fp); -@@ -789,8 +731,7 @@ - fp = fopen(filnam, "w"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, filnam); -+ snprintf(msg, sizeof(msg), "Error writing %s", filnam); - rw_error_box (main_drawing_area, msg); - return; - } -@@ -813,8 +754,7 @@ - fp = fopen(clib.filnam, "w"); - if(fp==NULL) - { -- strcpy(msg, "Error writing "); -- strcat(msg, clib.filnam); -+ snprintf(msg, sizeof(msg),"Error writing %s",clib.filnam); - rw_error_box (main_drawing_area, msg); - return; - } -@@ -856,8 +796,7 @@ - strcat(library_line, " "); - strcat(library_line, clib.check[9999]); - right_blank_unpad(library_line); -- add_eol_chars (library_line); -- fputs(library_line, fp); -+ fprintf(fp,"%s\n",library_line); - } - fflush(fp); - fsync(fileno(fp)); -@@ -867,24 +806,35 @@ - static gint process_tmp_file(const gchar *filnam) - { - FILE *fp; -+ FILE *pfp; - gchar filnam_hold[14], psc_line[81], system_line[41]; - gint ami_running=-1; - -- strcpy(filnam_hold, filnam); -- strcat(filnam_hold, ".tmp"); -- strcpy(system_line, "ps -C "); -- strcat(system_line, filnam); -- strcat(system_line, " | sort > "); -- strcat(system_line, filnam_hold); -- system(system_line); -- fp = fopen(filnam_hold, "r"); -- if(fp!=NULL) -+ snprintf(system_line, sizeof(system_line) - 1, "ps|grep %s|grep -v grep", -+ filnam); -+ pfp = popen(system_line, "r"); -+ if(pfp!=NULL) - { -- fgets(psc_line, sizeof(psc_line), fp); -+ fgets(psc_line, sizeof(psc_line), pfp); - if(kb_index (psc_line, filnam)>-1) - ami_running = 0; -- fclose(fp); -- remove(filnam_hold); -+ fclose(pfp); - } - return ami_running; - } -+ -+static char* -+chomp(char *s) -+{ -+ char *p; -+ -+ p = strchr(s, '\n'); -+ if (p != NULL) -+ { -+ *p = '\0'; -+ p--; -+ if (*p == '\r') -+ *p = '\0'; -+ } -+} -+ diff --git a/comms/kb/files/patch-kb.c b/comms/kb/files/patch-kb.c deleted file mode 100644 index b1554aeef8b6..000000000000 --- a/comms/kb/files/patch-kb.c +++ /dev/null @@ -1,32 +0,0 @@ ---- kb.c.orig 2007-09-10 14:58:04.000000000 -0400 -+++ kb.c 2007-11-24 14:46:35.000000000 -0500 -@@ -1,7 +1,12 @@ - #include <stdio.h> - #include <fcntl.h> - #include <sys/ioctl.h> -+#if (defined(__unix__) || defined(unix)) && !defined(USG) -+#include <sys/param.h> -+#endif -+#ifndef BSD - #include <sys/io.h> -+#endif - #include <stdlib.h> - #include <time.h> - #include <string.h> -@@ -3090,10 +3095,14 @@ - - gtk_key_snooper_install (kp_snooper, drawing_area); - -+#ifdef __FreeBSD__ -+ fd_bells = open("/dev/speaker", O_RDWR); -+#else - fd_bells = open("/dev/kb_bells", O_RDWR); -+#endif - g_thread_init (NULL); - gtk_main (); -- close(fd_bells); -- -+ if(fd_bells > 0) -+ close(fd_bells); - return 0; - } diff --git a/comms/kb/files/patch-support.c b/comms/kb/files/patch-support.c index 6e28e8e1a5ce..3afb6d6f0504 100644 --- a/comms/kb/files/patch-support.c +++ b/comms/kb/files/patch-support.c @@ -1,86 +1,50 @@ ---- support.c.orig 2007-07-18 14:21:10.000000000 -0400 -+++ support.c 2007-12-20 18:48:00.000000000 -0500 -@@ -1,3 +1,6 @@ -+#ifdef BSDSOUND -+#include BSDSOUND -+#endif - #include <termios.h> - #include <libgnome/libgnome.h> - #include <sys/utsname.h> -@@ -20,7 +23,6 @@ - static void concat(gchar *s1, const gchar *s2, gint is2, gint js2, - gint nullout_s1); - static gint kb_index(const gchar *s1, const gchar *s2); --static void add_eol_chars(gchar *line_out); - static void left_zero_pad(gchar *s1, gint ss1); - static void left_blank_pad(gchar *s1, gint ss1); - static void left_blank_unpad(gchar *s1); -@@ -144,10 +146,22 @@ - layout); - } +--- support.c.orig 2008-03-30 09:31:55.000000000 -0400 ++++ support.c 2008-05-14 08:05:30.000000000 -0400 +@@ -4,7 +4,11 @@ + #include <signal.h> -+#ifdef BSDSOUND -+#include "bsd_bells.c" -+#endif - static void play_bells(int isound) - { -- if(!strcmp(set_screen_choices[3], "<YES>")) -- ioctl(fd_bells, _IO(KB_BELLS_IOCTL_BASE, isound)); -+ if(fd_bells<0) -+ return; -+ if(strcmp(set_screen_choices[3], "<YES>") !=0) -+ return; -+#ifdef BSD -+#ifdef BSDSOUND -+ bsd_play_bells(isound); -+#endif + #ifdef BSD ++#ifdef OLDSPKR ++#include <machine/speaker.h> +#else -+ ioctl(fd_bells, _IO(KB_BELLS_IOCTL_BASE, isound)); + #include <dev/speaker/speaker.h> +#endif - } + #include "bsd_bells.c" + #endif - static void get_kb_time(void) -@@ -189,25 +203,8 @@ - - static void fill_kb_dt(void) +@@ -1199,31 +1203,21 @@ + static gint get_running_pid(const gchar *filnam) { -- gchar *t1; -- -- t1 = asctime(&kb_time); -- kb_dt.date[0] = month_num[2*kb_time.tm_mon]; -- kb_dt.date[1] = month_num[2*kb_time.tm_mon+1]; -- kb_dt.date[2] = *(t1+8); -- if(kb_dt.date[2]==' ') -- kb_dt.date[2] = '0'; -- kb_dt.date[3] = *(t1+9); -- kb_dt.date[4] = *(t1+22); -- kb_dt.date[5] = *(t1+23); -- kb_dt.date[6] = '\0'; -- kb_dt.time[0] = *(t1+11); -- kb_dt.time[1] = *(t1+12); -- kb_dt.time[2] = *(t1+14); -- kb_dt.time[3] = *(t1+15); -- kb_dt.time[4] = *(t1+17); -- kb_dt.time[5] = *(t1+18); -- kb_dt.time[6] = '\0'; -+ strftime(kb_dt.date, sizeof(kb_dt.date), "%m%d%g", &kb_time); -+ strftime(kb_dt.time, sizeof(kb_dt.time), "%H%M%S", &kb_time); - } - - static gint idelta_time(const gchar *day1, const gchar *day2, -@@ -284,15 +281,6 @@ - return -1;
- }
+ FILE *fp; +- gchar filnam_hold[14], psc_line[81], system_line[41]; ++ gchar psc_line[81], system_line[41]; + gint ami_running=-1; --static void add_eol_chars(gchar *line_out) --{ -- gint lcil; -- -- lcil = strlen(line_out); -- line_out[lcil] = '\r'; -- line_out[lcil+1] = '\n'; -- line_out[lcil+2] = '\0'; --} - - static void left_zero_pad(gchar *s1, gint ss1)
- {
+- strcpy(filnam_hold, filnam); +- strcat(filnam_hold, ".tmp"); + #ifdef BSD +- strcpy(system_line, "ps | grep "); +- strcat(system_line, filnam); +- strcat(system_line, " | grep -v grep > "); +- strcat(system_line, filnam_hold); ++ sprintf(system_line, "ps | grep %s | grep -v grep", filnam); + #else +- strcpy(system_line, "ps -C "); +- strcat(system_line, filnam); +- strcat(system_line, " | sort > "); +- strcat(system_line, filnam_hold); ++ sprintf(system_line, "ps -C | grep %s | sort", filnam); + #endif +- system(system_line); +- fp = fopen(filnam_hold, "r"); ++ fp = popen(system_line, "r"); + if(fp!=NULL) + { + fgets(psc_line, sizeof(psc_line), fp); + if(kb_index (psc_line, filnam)>-1) + ami_running = atoi(psc_line); + fclose(fp); +- remove(filnam_hold); + } + return ami_running; + } diff --git a/comms/kb/files/pkg_message b/comms/kb/files/pkg_message deleted file mode 100644 index 1b1b70002057..000000000000 --- a/comms/kb/files/pkg_message +++ /dev/null @@ -1,8 +0,0 @@ -kb is now installed. -If you want the speaker bell to work, make sure you add -speaker_load="YES" to /boot/loader.conf if your kernel -does not have speaker support. You will also need to modify -/etc/devfs.conf to add permission for users to use the speaker. -... -perm speaker 0660 -... diff --git a/comms/kb/pkg-plist b/comms/kb/pkg-plist index e6ad72b3a5dc..b967898a6caa 100644 --- a/comms/kb/pkg-plist +++ b/comms/kb/pkg-plist @@ -1,7 +1,6 @@ bin/kb bin/kb_bin -sbin/kb_server -etc/rc.d/kbserver +bin/kb_server %%DATADIR%%/CALL_FD.LST %%DATADIR%%/CALL_LIB.LST %%DATADIR%%/CALL_SS.LST @@ -12,4 +11,14 @@ etc/rc.d/kbserver %%DATADIR%%/HELPFD.LST %%DATADIR%%/SECTION.LST %%DATADIR%%/STATE.LST +share/pixmaps/kb/icons/kb-icon.png +%%PORTDOCS%%%%DOCSDIR%%/LICENSE +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/README_BSD +%%PORTDOCS%%%%DOCSDIR%%/README_KINKS +%%PORTDOCS%%%%DOCSDIR%%/README_SRC +%%PORTDOCS%%%%DOCSDIR%%/README_TIPS +%%PORTDOCS%%@dirrm %%DOCSDIR%% +@dirrm share/pixmaps/kb/icons +@dirrm share/pixmaps/kb @dirrm %%DATADIR%% |