[Pkg-wmaker-commits] [wmfrog] 127/145: debian/patches: Remove directory; patches applied upstream.

Doug Torrance dtorrance-guest at moszumanska.debian.org
Sun Aug 23 05:46:39 UTC 2015


This is an automated email from the git hooks/post-receive script.

dtorrance-guest pushed a commit to branch master
in repository wmfrog.

commit 40e10086fcbca10d9527648e707564461f83343c
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date:   Tue Sep 9 23:06:15 2014 -0500

    debian/patches: Remove directory; patches applied upstream.
---
 debian/patches/20-weather.pl.patch            |   60 --
 debian/patches/30-wmfrog.c-no-output.patch    |   35 -
 debian/patches/fix_weather.pl_typos.patch     |   24 -
 debian/patches/new-station-lookup-url.patch   |   35 -
 debian/patches/renamed-wmfrog.c.patch         | 1350 -------------------------
 debian/patches/series                         |    6 -
 debian/patches/weather.pl-new-line-skip.patch |   21 -
 7 files changed, 1531 deletions(-)

diff --git a/debian/patches/20-weather.pl.patch b/debian/patches/20-weather.pl.patch
deleted file mode 100644
index da7118d..0000000
--- a/debian/patches/20-weather.pl.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Description:  Check that $tmpfolder/$station exists.
- .
- Otherwise, grep returns a "No such file or directory" error if it doesn't.
-Author: Jari Aalto <jari.aalto at cante.net>
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-24
-
---- a/Src/weather.pl
-+++ b/Src/weather.pl
-@@ -367,32 +367,35 @@
- 
- # Check for ok temperature
- 
--open GREP, "grep Temp $tmpfolder/${station} | ";
--$templine = <GREP>;
-+if ( -f "$tmpfolder/$station" )
-+{
-+    open GREP, "grep Temp $tmpfolder/${station} | ";
-+    $templine = <GREP>;
- 
--$templine = ~m/^Temp:(.*)$/;
-+    $templine = ~m/^Temp:(.*)$/;
- 
--{
--    if ( $temp > -50  and  $temp < 150 )
-     {
--	if ( $lasttemp > -50  and  $lasttemp < 150 )
-+	if ( $temp > -50  and  $temp < 150 )
- 	{
--	    if ( $temp > -2  and  $temp < 2 )
-+	    if ( $lasttemp > -50  and  $lasttemp < 150 )
- 	    {
--		if ( $lasttemp > 7  or  $lasttemp < -7 )
-+		if ( $temp > -2  and  $temp < 2 )
- 		{
--		    $station = "";	# probably invalid
-+		    if ( $lasttemp > 7  or  $lasttemp < -7 )
-+		    {
-+			$station = "";	# probably invalid
-+		    }
- 		}
- 	    }
- 	}
-+	else
-+	{
-+	    $station = "";
-+	}
-     }
--    else
--    {
--	$station = "";
--    }
--}
- 
--close GREP;
-+    close GREP;
-+}
- 
- debug("Station: $station");
- 
diff --git a/debian/patches/30-wmfrog.c-no-output.patch b/debian/patches/30-wmfrog.c-no-output.patch
deleted file mode 100644
index 81a02af..0000000
--- a/debian/patches/30-wmfrog.c-no-output.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Description: Fix spelling of "Don't"
-  Adapted from 30-wmfrog.c-no-output.patch for version 0.3.1.
-Author: Jari Aalto <jari.aalto at cante.net>
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-23
-
---- a/Src/wmFrog.c
-+++ b/Src/wmFrog.c
-@@ -321,7 +321,7 @@
-                 print_usage();
-                 exit(-1);
-             } else if (sscanf(argv[i + 1], "%d", &maxWind) != 1) {
--                fprintf(stderr, "Dont understand the max wind value have entered (%s).\n", argv[i + 1]);
-+                fprintf(stderr, "Don't understand the max wind value have entered (%s).\n", argv[i + 1]);
-                 print_usage();
-                 exit(-1);
-             }
-@@ -331,7 +331,7 @@
-                 print_usage();
-                 exit(-1);
-             } else if (sscanf(argv[i + 1], "%d", &timeOffset) != 1) {
--                fprintf(stderr, "Dont understand the time offset value have entered (%s).\n", argv[i + 1]);
-+                fprintf(stderr, "Don't understand the time offset value have entered (%s).\n", argv[i + 1]);
-                 print_usage();
-                 exit(-1);
-             }
-@@ -362,7 +362,7 @@
-                 exit(-1);
-             } else if (sscanf(argv[i + 1], "%ld", &UpdateDelay) != 1) {
- 
--                fprintf(stderr, "Dont understand the delay time you have entered (%s).\n", argv[i + 1]);
-+                fprintf(stderr, "Don't understand the delay time you have entered (%s).\n", argv[i + 1]);
-                 print_usage();
-                 exit(-1);
-             }
diff --git a/debian/patches/fix_weather.pl_typos.patch b/debian/patches/fix_weather.pl_typos.patch
deleted file mode 100644
index 9c0b6c0..0000000
--- a/debian/patches/fix_weather.pl_typos.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Description: Fix typos in weather.pl.
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-24
-
---- a/Src/weather.pl
-+++ b/Src/weather.pl
-@@ -114,7 +114,7 @@
- $line   .= $newLine;
- chomp $line;
- 
--$line = ~s/<hr>//;
-+$line =~ s/<hr>//;
- $line = "METAR $station $line";
- 
- close DATA;
-@@ -178,7 +178,7 @@
-     $obsc	= "";
-     $misc	= "";
-     $j		= 0;
--    $curent	= $args[$i]
-+    $curent	= $args[$i];
-     $wasCloud   = "no";
- 
-     debug("cur : $curent");
diff --git a/debian/patches/new-station-lookup-url.patch b/debian/patches/new-station-lookup-url.patch
deleted file mode 100644
index 29474f2..0000000
--- a/debian/patches/new-station-lookup-url.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Description: New Metereological Station Information Lookup page
- This patch updates the url of the NOAA's Metereological Station
- Information Lookup page in the INSTALL documentation file and and the
- wmfrog --help text.
- .
- It also updates the url of the METAR/TAF information page mentioned by
- the wmfrog --help text.
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-24
-
---- a/INSTALL
-+++ b/INSTALL
-@@ -37,7 +37,7 @@
- Use
- --------------------------------------------------------------------------------
- Find your METAR station name here: 
--http://www.nws.noaa.gov/tg/siteloc.shtml
-+http://www.nws.noaa.gov/tg/siteloc.php
- For example Reno, NV is KRNO
- Also you will want to set your Time offset from UTC(GMT), for example Pacific time is GMT-8, so offset is -8
- 
---- a/Src/wmfrog.c
-+++ b/Src/wmfrog.c
-@@ -407,9 +407,9 @@
-     printf("\t-l\t\t\t\tSet a label to replace the station ID \n\n");
- 
-     printf("\n\nTo find out more about the METAR/TAF system, look at:\n");
--    printf("	 http://www.nws.noaa.gov/oso/oso1/oso12/metar.htm \n\n");
-+    printf("	 http://nws.noaa.gov/ops2/Surface/metar_taf.htm \n\n");
-     printf("To find your city Metar code go to  NOAA's ""Meteorological Station Information\nLookup"" page at:\n\n");
--    printf("	 http://www.nws.noaa.gov/oso/siteloc.shtml\n\n");
-+    printf("	 http://www.nws.noaa.gov/tg/siteloc.php\n\n");
-     printf("\n Thibaut Colar http://www.colar.net/wmapps/\n\n");
- 
- }
diff --git a/debian/patches/renamed-wmfrog.c.patch b/debian/patches/renamed-wmfrog.c.patch
deleted file mode 100644
index 5c4253b..0000000
--- a/debian/patches/renamed-wmfrog.c.patch
+++ /dev/null
@@ -1,1350 +0,0 @@
-Description: Renamed wmFrog.c to wmfrog.c.
- Previously, the binary wmfrog was built from the source file wmFrog.c,
- resulting in a Lintian "source-is-missing" error.  This patch fixes this
- issue by renaming wmFrog.c to wmfrog.c.
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-24
-
---- a/Src/wmFrog.c
-+++ /dev/null
-@@ -1,656 +0,0 @@
--/*
--   Thibaut Colar  http://www.colar.net/      2002/05
--   This is a dockapp wich shows you the weather at a specific location
--   from it's METAR code.
--   If this program blew up your computer it isn't my fault :-)
--   This use a bit of code borrowed from the wmWeather application(originally).
--
--   To build from src needs libxpm-dev, libx11-dev, libext-dev
-- */
--
--
--/*
-- *   Includes
-- */
--#include <signal.h>
--#include <stdio.h>
--#include <math.h>
--#include <string.h>
--#include <unistd.h>
--#include <stdlib.h>
--#include <ctype.h>
--#include <time.h>
--#include <pwd.h>
--#include <X11/X.h>
--#include <X11/xpm.h>
--#include "xutils.h"
--#include "frog.xpm"
--#include "frog.xbm"
--
--
--
--/*
-- *  Delay between refreshes (in microseconds)
-- */
--#define DEBUG 0
--#define VERSION "0.3.1"
--// 5 mn in seconds
--#define DEFAULT_UPDATEDELAY 300L
--// max wind in KNOTS
--#define MAX_WIND 50
--#define TIME_OFFSET 0
--#define METRIC 0
--
--void ParseCMDLine(int argc, char *argv[]);
--void ButtonPressEvent(XButtonEvent *);
--void KeyPressEvent(XKeyEvent *);
--char *StringToUpper(char *);
--char *mystrsep(char **stringp, char *delim);
--char *GetTempDir(char *suffix);
--void UpdateData();
--void Repaint();
--
--struct WeatherStruct {
--    int intensity;
--    char* precip;
--    char* desc;
--    char* obsc;
--    char* misc;
--    char* coverage;
--    int temp;
--    int dew;
--    float humidity;
--    int hour;
--    int min;
--    int wind;
--    int gust;
--    int dir;
--} weather;
--
--char StationID[10];
--char Label[20];
--int Metric = METRIC;
--int NeedsUpdate = 1;
--int maxWind = MAX_WIND;
--int timeOffset = TIME_OFFSET;
--long UpdateDelay;
--char* folder;
--int needsUpdate = 1;
--
--/*
-- *   main
-- */
--int main(int argc, char *argv[]) {
--    XEvent event;
--    Display *dis;
--
--    dis = XOpenDisplay((char *) 0);
--
--    /*
--     *  Parse any command line arguments.
--     */
--    ParseCMDLine(argc, argv);
--
--    folder = GetTempDir(".wmapps");
--
--    initXwindow(argc, argv);
--
--    openXwindow(argc, argv, frog_xpm, frog_bits, frog_width,
--            frog_height, "#181818", "#79bdbf", "#ff0000", "#ffbf50", "#c5a6ff");
--
--    XSelectInput(dis, win, ExposureMask);
--
--    // Update the data now .... which calls itself back every x seconds (UpdateDelay) using an alarm
--    UpdateData();
--
--    while (1) {
--        while (XPending(display)) {
--            XNextEvent(display, &event);
--            switch (event.type) {
--                case Expose:
--                    RedrawWindow();
--                    break;
--            }
--        }
--        // check for events 2x seconds to take it easy on cpu
--        usleep(500000);
--    }
--}
--
--void Repaint() {
--    int i, y, q;
--    char chr;
--
--    /*
--     * Clear window.
--     */
--    copyXPMArea(0, 64, 56, 56, 4, 4);
--
--    //clouds
--    if (strcmp(weather.coverage, "FEW") == 0) {
--        copyXPMArea(0, 183, 56, 15, 4, 4);
--    }
--    if (strcmp(weather.coverage, "SCT") == 0) {
--        copyXPMArea(56, 183, 56, 15, 4, 4);
--    }
--    if (strcmp(weather.coverage, "BKN") == 0) {
--        copyXPMArea(112, 183, 56, 15, 4, 4);
--    }
--    if (strcmp(weather.coverage, "OVC") == 0 || strcmp(weather.coverage, "VV") == 0) {
--        copyXPMArea(168, 183, 56, 15, 4, 4);
--    }
--
--    //obstruction
--    if (strcmp(weather.obsc, "") != 0) { //fog
--        if (strcmp(weather.desc, "BL") == 0)
--            copyXPMArea(56, 90, 56, 26, 4, 34);
--        else if (strcmp(weather.desc, "FZ") == 0)
--            copyXPMArea(112, 90, 56, 26, 4, 34);
--        else
--            copyXPMArea(168, 64, 56, 26, 4, 34);
--    }
--
--    //precipitation
--    if (strcmp(weather.precip, "DZ") == 0) {
--        copyXPMArea(112, 120, 56, 15, 4, 18);
--    }
--    if (strcmp(weather.precip, "RA") == 0) {
--        if (weather.intensity == 0)
--            copyXPMArea(56, 150, 56, 15, 4, 18);
--        if (weather.intensity < 0)
--            copyXPMArea(0, 150, 56, 15, 4, 18);
--        if (weather.intensity > 0)
--            copyXPMArea(112, 150, 56, 15, 4, 18);
--    }
--
--    if (strcmp(weather.precip, "SN") == 0 || strcmp(weather.precip, "SG") == 0) {
--        if (weather.intensity == 0)
--            copyXPMArea(56, 135, 56, 15, 4, 18);
--        if (weather.intensity > 0)
--            copyXPMArea(112, 135, 56, 15, 4, 18);
--        if (weather.intensity < 0)
--            copyXPMArea(0, 135, 56, 15, 4, 18);
--    }
--
--    if (strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0) {
--        if (weather.intensity == 0)
--            copyXPMArea(56, 166, 56, 16, 4, 18);
--        if (weather.intensity > 0)
--            copyXPMArea(112, 166, 56, 16, 4, 18);
--        if (weather.intensity < 0)
--            copyXPMArea(0, 166, 56, 16, 4, 18);
--    }
--
--    //descriptor
--    if (strcmp(weather.desc, "BL") == 0 && strcmp(weather.obsc, "") == 0) {
--        copyXPMArea(56, 64, 56, 26, 4, 34);
--    }
--    if (strcmp(weather.desc, "FZ") == 0 && strcmp(weather.obsc, "") == 0) {
--        copyXPMArea(112, 64, 56, 26, 4, 34);
--    }
--    if (strcmp(weather.desc, "TS") == 0) {
--        if (strcmp(weather.precip, "") != 0)
--            copyXPMArea(164, 150, 56, 15, 4, 18);
--        else
--            copyXPMArea(56, 120, 56, 15, 4, 18);
--    }
--
--    //special
--    if (strcmp(weather.misc, "") != 0) {
--        copyXPMArea(168, 90, 56, 26, 4, 34);
--        copyXPMArea(0, 120, 56, 15, 4, 18);
--        copyXPMArea(168, 183, 56, 16, 4, 4);
--
--    }
--
--    //writtings:
--
--    //clearing:
--    copyXPMArea(170, 20, 25, 17, 29, 44);
--    copyXPMArea(220, 0, 3, 60, 4, 4);
--    copyXPMArea(220, 0, 3, 60, 57, 4);
--    copyXPMArea(220, 0, 3, 60, 4, 4);
--
--    //humidity
--    y = (weather.humidity * 58) / 100;
--    copyXPMArea(60, 0, 1, y, 4, 60 - y);
--    copyXPMArea(60, 0, 1, y, 5, 60 - y);
--
--    //wind & gust
--
--    y = (weather.gust * 58) / maxWind;
--    copyXPMArea(62, 0, 1, y, 58, 60 - y);
--    copyXPMArea(62, 0, 1, y, 59, 60 - y);
--    y = (weather.wind * 58) / maxWind;
--    copyXPMArea(61, 0, 1, y, 58, 60 - y);
--    copyXPMArea(61, 0, 1, y, 59, 60 - y);
--
--    //station name
--    for (i = 0; i != 4; i++) {
--        chr = (int) Label[i] - 65;
--        copyXPMArea(chr * 5 + 89, 0, 5, 6, 31 + (i * 5), 45);
--    }
--
--    //time
--    i = weather.hour / 10;
--    copyXPMArea(89 + (i * 5), 7, 5, 6, 30, 53);
--    i = weather.hour - ((weather.hour / 10)*10);
--    copyXPMArea(89 + (i * 5), 7, 5, 6, 35, 53);
--    copyXPMArea(89 + (52), 7, 1, 6, 41, 53);
--    i = weather.min / 10;
--    copyXPMArea(89 + (i * 5), 7, 5, 6, 43, 53);
--    i = weather.min - ((weather.min / 10)*10);
--    copyXPMArea(89 + (i * 5), 7, 5, 6, 48, 53);
--
--
--    //temp
--
--    q = 10;
--    copyXPMArea(136, 30, 17, 9, q - 1, 22);
--    if (weather.temp < 0) {
--        copyXPMArea(90, 30, 3, 7, q, 23);
--        q += 5;
--    }
--    /*if(temp>100)
--      {
--      copyXPMArea(96, 20, 5, 7, q, 23);
--      q+=6;
--      }
--     */
--    copyXPMArea(136, 30, 17, 9, (q - 1), 22);
--
--    i = weather.temp;
--    if (i < 0)
--        i = -i;
--    if (i / 100 > 0) {
--        copyXPMArea(96, 20, 5, 7, q, 23);
--        q += 6;
--        i -= 100;
--    }
--    if ((i == 0 && q > 10) || i / 10 > 0 || q > 10) {
--        copyXPMArea(90 + 6 * (i / 10), 20, 5, 7, q, 23);
--        q += 6;
--    }
--
--    copyXPMArea(90 + 6 * (i - ((i / 10)*10)), 20, 5, 7, q, 23);
--    q += 5;
--    copyXPMArea(95, 29, 5, 7, q, 23);
--
--    // wind weather.dir
--    if ((weather.dir >= 0 && weather.dir <= 22) || (weather.dir <= 360 && weather.dir > 337))
--        copyXPMArea(0, 198, 7, 7, 48, 6);
--    if (weather.dir > 22 && weather.dir <= 67)
--        copyXPMArea(42, 198, 7, 7, 48, 6);
--    if (weather.dir > 67 && weather.dir <= 112)
--        copyXPMArea(14, 198, 7, 7, 48, 6);
--    if (weather.dir > 112 && weather.dir <= 157)
--        copyXPMArea(28, 198, 7, 7, 48, 6);
--    if (weather.dir > 157 && weather.dir <= 202)
--        copyXPMArea(7, 198, 7, 7, 48, 6);
--    if (weather.dir > 202 && weather.dir <= 247)
--        copyXPMArea(35, 198, 7, 7, 48, 6);
--    if (weather.dir > 247 && weather.dir <= 292)
--        copyXPMArea(21, 198, 7, 7, 48, 6);
--    if (weather.dir > 292 && weather.dir <= 337)
--        copyXPMArea(49, 198, 7, 7, 48, 6);
--
--    /*
--     * Make changes visible
--     */
--    RedrawWindow();
--}
--
--/*
-- *   ParseCMDLine()
-- */
--void ParseCMDLine(int argc, char *argv[]) {
--
--    int i;
--    void print_usage();
--
--    StationID[0] = '\0';
--    UpdateDelay = DEFAULT_UPDATEDELAY;
--    for (i = 1; i < argc; i++) {
--
--        if ((!strcmp(argv[i], "-metric")) || (!strcmp(argv[i], "-m"))) {
--            Metric = 1;
--        } else if (!strcmp(argv[i], "-w")) {
--            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
--
--                fprintf(stderr, "You must give a max wind value  with the -w option.\n");
--                print_usage();
--                exit(-1);
--            } else if (sscanf(argv[i + 1], "%d", &maxWind) != 1) {
--                fprintf(stderr, "Don't understand the max wind value have entered (%s).\n", argv[i + 1]);
--                print_usage();
--                exit(-1);
--            }
--        } else if (!strcmp(argv[i], "-o")) {
--            if ((i + 1 >= argc)) {
--                fprintf(stderr, "You must give a time offset value  with the -t option.\n");
--                print_usage();
--                exit(-1);
--            } else if (sscanf(argv[i + 1], "%d", &timeOffset) != 1) {
--                fprintf(stderr, "Don't understand the time offset value have entered (%s).\n", argv[i + 1]);
--                print_usage();
--                exit(-1);
--            }
--
--
--        } else if (!strcmp(argv[i], "-tmp")) {
--            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
--                fprintf(stderr, "-tmp option invalid.\n");
--                print_usage();
--                exit(-1);
--            }
--            strcpy(folder, argv[++i]);
--
--
--        } else if ((!strcmp(argv[i], "-station")) || (!strcmp(argv[i], "-s"))) {
--            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
--                fprintf(stderr, "No METAR station ID found\n");
--                print_usage();
--                exit(-1);
--            }
--            strcpy(StationID, StringToUpper(argv[++i]));
--            strcpy(Label, StationID);
--        } else if (!strcmp(argv[i], "-delay")) {
--            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
--
--                fprintf(stderr, "You must give a time with the -delay option.\n");
--                print_usage();
--                exit(-1);
--            } else if (sscanf(argv[i + 1], "%ld", &UpdateDelay) != 1) {
--
--                fprintf(stderr, "Don't understand the delay time you have entered (%s).\n", argv[i + 1]);
--                print_usage();
--                exit(-1);
--            }
--            /*
--             *  Convert Time to seconds
--             */
--            UpdateDelay *= 60;
--            ++i;
--        } else if (!strcmp(argv[i], "-l")) {
--            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
--                fprintf(stderr, "You must give a station label name.\n");
--                print_usage();
--                exit(-1);
--            }
--            strcpy(Label, StringToUpper(argv[++i]));
--        }
--    }
--
--    if (StationID[0] == '\0') {
--        fprintf(stderr, "\nYou must specify a METAR station code\n\n");
--        print_usage();
--        exit(1);
--    }
--}
--
--void print_usage() {
--
--    printf("\nwmfrog version: %s\n", VERSION);
--    printf("\nusage: wmfrog -s <StationID> [-h] [-w <max wind>] [-t <time offset>] [-tmp <temp folder>] [-l <label>]\n");
--    printf("                   [-m] [-delay <Time in Minutes>]\n\n");
--    printf("\n\t-station <METAR StationID>\n");
--    printf("\t-s       <METAR StationID>\tThe 4-character METAR Station ID.\n\n");
--    printf("\t-metric\n");
--    printf("\t-m\t\t\t\tDisplay Temperature in metric unit: (Celcius) \n\n");
--    printf("\t-delay <Time in Minutes>\tOverride time (in minutes) between updates\n");
--    printf("\t\t\t\t\tdefault is %ld minutes. \n\n", DEFAULT_UPDATEDELAY / 60);
--
--    printf("\t-w\t\t\t\tSet the maximum wind in KNOTS (for percentage of max / scaling.)\n");
--    printf("\t\t\t\t\tdefault is %d minutes). (Times are approximate.)\n\n", MAX_WIND);
--    printf("\t-o\t\t\t\tTime offset of location from UTC (7 for calif in summer) \n\n");
--    printf("\t-tmp\t\t\t\tSet the temporary folder (default is: %s) \n\n", folder);
--    printf("\t-l\t\t\t\tSet a label to replace the station ID \n\n");
--
--    printf("\n\nTo find out more about the METAR/TAF system, look at:\n");
--    printf("	 http://www.nws.noaa.gov/oso/oso1/oso12/metar.htm \n\n");
--    printf("To find your city Metar code go to  NOAA's ""Meteorological Station Information\nLookup"" page at:\n\n");
--    printf("	 http://www.nws.noaa.gov/oso/siteloc.shtml\n\n");
--    printf("\n Thibaut Colar http://www.colar.net/wmapps/\n\n");
--
--}
--
--/*
-- *  Compute the Julian Day number for the given date.
-- *  Julian Date is the number of days since noon of Jan 1 4713 B.C.
-- */
--double jd(ny, nm, nd, UT)
--int ny, nm, nd;
--double UT;
--{
--    double A, B, C, D, JD, day;
--
--    day = nd + UT / 24.0;
--
--    if ((nm == 1) || (nm == 2)) {
--        ny = ny - 1;
--        nm = nm + 12;
--    }
--
--    if (((double) ny + nm / 12.0 + day / 365.25) >= (1582.0 + 10.0 / 12.0 + 15.0 / 365.25)) {
--        A = ((int) (ny / 100.0));
--        B = 2.0 - A + (int) (A / 4.0);
--    } else {
--        B = 0.0;
--    }
--    if (ny < 0.0) {
--        C = (int) ((365.25 * (double) ny) - 0.75);
--    } else {
--        C = (int) (365.25 * (double) ny);
--    }
--
--    D = (int) (30.6001 * (double) (nm + 1));
--
--
--    JD = B + C + D + day + 1720994.5;
--    return (JD);
--
--}
--
--// Will be called at regular interval to update the weather data (alarm)
--
--void UpdateData() {
--    char command[1024], Line[512], FileName[128];
--    int ign;
--    char* igns;
--    igns = (char*) malloc(512);
--    FILE *fp;
--    char* weatherStr;
--    char* cloudsStr;
--    char* tmp1 = NULL;
--    char* tmp2 = NULL;
--    int keepgoing = 0;
--    int weatherFound = 0;
--    int cloudsFound = 0;
--    char* wtr;
--    char* clds;
--    int i, z;
--    weatherStr = (char*) malloc(512);
--    cloudsStr = (char*) malloc(512);
--
--    /*
--     *  Check the Current Conditions file every (approx.) several seconds.
--     */
--    weather.intensity = 0;
--    weather.desc = "";
--    weather.precip = "";
--    weather.obsc = "";
--    weather.misc = "";
--    weather.coverage = "";
--    weather.dir = -1;
--    weather.temp = 0;
--    weather.dew = 0;
--    weather.humidity = 0;
--    weather.hour = 0;
--    weather.min = 0;
--    weather.wind = 0;
--    weather.gust = 0;
--    /*
--     *  Execute Perl script to grab the Latest METAR Report
--     */
--    snprintf(command, 1024, "/usr/lib/wmfrog/weather.pl %s %s", StationID, folder);
--    //printf("Retrieveing data\n");
--    ign = system(command);
--    snprintf(FileName, 128, "%s/%s", folder, StationID);
--    //fprintf(stderr,"%s\n\n",FileName);
--
--    if ((fp = fopen(FileName, "r")) != NULL) {
--        ign = fscanf(fp, "Hour:%d", &weather.hour);
--        igns = fgets(Line, 512, fp); //h
--        ign = fscanf(fp, "Minute:%d", &weather.min);
--        igns = fgets(Line, 512, fp); //mn
--        igns = fgets(igns, 512, fp); //station . ignored
--        ign = fscanf(fp, "WindDir:%d", &weather.dir);
--        igns = fgets(Line, 512, fp); //dir
--        ign = fscanf(fp, "WindSpeed:%d", &weather.wind);
--        igns = fgets(Line, 512, fp); //wind
--        ign = fscanf(fp, "WindGust:%d", &weather.gust);
--        igns = fgets(Line, 512, fp); //gust
--        igns = fgets(weatherStr, 512, fp); //weather
--        weatherFound = (*igns != '\0');
--        igns = fgets(cloudsStr, 512, fp); //clouds
--        cloudsFound = (*igns != '\0');
--        ign = fscanf(fp, "Temp:%d", &weather.temp);
--        igns = fgets(Line, 512, fp); //temp
--        ign = fscanf(fp, "Dew:%d", &weather.dew);
--        igns = fgets(Line, 512, fp); //dew
--
--        if (DEBUG) {
--            printf("hr: %d\n", weather.hour);
--            printf("mn: %d\n", weather.min);
--            printf("wd: %d\n", weather.dir);
--            printf("ws: %d\n", weather.wind);
--            printf("wg: %d\n", weather.gust);
--            printf("temp: %d\n", weather.temp);
--            printf("dew: %d\n", weather.dew);
--            printf("w: %s\n", weatherStr);
--            printf("c: %s\n", cloudsStr);
--        }
--
--        fclose(fp);
--
--        if (weatherFound) {
--            wtr = strchr(weatherStr, ':') + 1; // get the part after "Weather:"
--            if (DEBUG) printf("weatherLine: %s\n", wtr);
--            do {
--                tmp1 = mystrsep(&wtr, ";");
--                if (tmp1 && strlen(tmp1) > 2) {
--                    if (DEBUG) printf("tmp1: %s\n", tmp1);
--                    tmp2 = mystrsep(&tmp1, ",");
--
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        if (strcmp("-", tmp2) == 0) {
--                            weather.intensity = -1;
--                        } else if (strcmp("+", tmp2) == 0) {
--                            weather.intensity = +1;
--                        }
--                    }
--                    tmp2 = mystrsep(&tmp1, ",");
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        weather.desc = tmp2;
--                    }
--                    tmp2 = mystrsep(&tmp1, ",");
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        weather.precip = tmp2;
--                    }
--                    tmp2 = mystrsep(&tmp1, ",");
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        weather.obsc = tmp2;
--                    }
--                    tmp2 = mystrsep(&tmp1, ",");
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        weather.misc = tmp2;
--                    }
--                } else {
--                    keepgoing = 0;
--                }
--                if (DEBUG) printf("Intensity: %d \n", weather.intensity);
--            } while (keepgoing);
--        }
--
--
--        if (cloudsFound) {
--            clds = strchr(cloudsStr, ':') + 1; // get the part after "Clouds:"
--            if (DEBUG) printf("cloudsLine: %s\n", clds);
--            do {
--                tmp1 = mystrsep(&clds, ";");
--                if (DEBUG) printf("tmp1: %s\n", tmp1);
--                if (tmp1 && strlen(tmp1) > 2) {
--                    tmp2 = mystrsep(&tmp1, ",");
--
--                    if (tmp2 && strcmp(tmp2, "") != 0) {
--                        weather.coverage = tmp2;
--                    }
--                }
--                if (DEBUG) printf("Coverage: |%s|\n", weather.coverage);
--            } while (tmp1);
--        }
--        weather.humidity = ((112.0 - 0.1 * weather.temp + weather.dew) / (112.0 + 0.9 * weather.temp));
--        z = weather.humidity;
--        for (i = 0; i != 8; i++)
--            weather.humidity *= z;
--        weather.humidity *= 100;
--        if (weather.humidity > 100)
--            weather.humidity = 100;
--        if (weather.humidity < 0)
--            weather.humidity = 0;
--
--        weather.hour = weather.hour + timeOffset;
--        if (weather.hour < 0)
--            weather.hour = 24 + weather.hour;
--        if (weather.hour > 24)
--            weather.hour = weather.hour - 24;
--
--        if (!Metric)
--            weather.temp = (weather.temp * 9) / 5 + 32;
--    }
--
--    // set next alarm
--    signal(SIGALRM, UpdateData);
--    /* Set an alarm to go off in a little while. */
--    alarm(UpdateDelay);
--
--    Repaint();
--}
--
--char *GetTempDir(char *suffix) {
--    uid_t id;
--    struct passwd *userEntry;
--    static char userHome[128];
--
--    id = getuid();
--    userEntry = getpwuid(id);
--    snprintf(userHome, 128, "%s/%s", userEntry->pw_dir, suffix);
--    return userHome;
--}
--
--char *StringToUpper(char *String) {
--
--    int i;
--
--    for (i = 0; i < strlen(String); i++)
--        String[i] = toupper(String[i]);
--
--    return String;
--}
--
--char *mystrsep(char **stringp, char *delim) {
--    char *start = *stringp;
--    char *cp;
--    char ch;
--    if (start == NULL)
--        return NULL;
--    for (cp = start; (ch = *cp) != 0; cp++) {
--        if (strchr(delim, ch)) {
--            *cp++ = 0;
--            *stringp = cp;
--            return start;
--        }
--    }
--    *stringp = NULL;
--    return start;
--}
---- /dev/null
-+++ b/Src/wmfrog.c
-@@ -0,0 +1,656 @@
-+/*
-+   Thibaut Colar  http://www.colar.net/      2002/05
-+   This is a dockapp wich shows you the weather at a specific location
-+   from it's METAR code.
-+   If this program blew up your computer it isn't my fault :-)
-+   This use a bit of code borrowed from the wmWeather application(originally).
-+
-+   To build from src needs libxpm-dev, libx11-dev, libext-dev
-+ */
-+
-+
-+/*
-+ *   Includes
-+ */
-+#include <signal.h>
-+#include <stdio.h>
-+#include <math.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <stdlib.h>
-+#include <ctype.h>
-+#include <time.h>
-+#include <pwd.h>
-+#include <X11/X.h>
-+#include <X11/xpm.h>
-+#include "xutils.h"
-+#include "frog.xpm"
-+#include "frog.xbm"
-+
-+
-+
-+/*
-+ *  Delay between refreshes (in microseconds)
-+ */
-+#define DEBUG 0
-+#define VERSION "0.3.1"
-+// 5 mn in seconds
-+#define DEFAULT_UPDATEDELAY 300L
-+// max wind in KNOTS
-+#define MAX_WIND 50
-+#define TIME_OFFSET 0
-+#define METRIC 0
-+
-+void ParseCMDLine(int argc, char *argv[]);
-+void ButtonPressEvent(XButtonEvent *);
-+void KeyPressEvent(XKeyEvent *);
-+char *StringToUpper(char *);
-+char *mystrsep(char **stringp, char *delim);
-+char *GetTempDir(char *suffix);
-+void UpdateData();
-+void Repaint();
-+
-+struct WeatherStruct {
-+    int intensity;
-+    char* precip;
-+    char* desc;
-+    char* obsc;
-+    char* misc;
-+    char* coverage;
-+    int temp;
-+    int dew;
-+    float humidity;
-+    int hour;
-+    int min;
-+    int wind;
-+    int gust;
-+    int dir;
-+} weather;
-+
-+char StationID[10];
-+char Label[20];
-+int Metric = METRIC;
-+int NeedsUpdate = 1;
-+int maxWind = MAX_WIND;
-+int timeOffset = TIME_OFFSET;
-+long UpdateDelay;
-+char* folder;
-+int needsUpdate = 1;
-+
-+/*
-+ *   main
-+ */
-+int main(int argc, char *argv[]) {
-+    XEvent event;
-+    Display *dis;
-+
-+    dis = XOpenDisplay((char *) 0);
-+
-+    /*
-+     *  Parse any command line arguments.
-+     */
-+    ParseCMDLine(argc, argv);
-+
-+    folder = GetTempDir(".wmapps");
-+
-+    initXwindow(argc, argv);
-+
-+    openXwindow(argc, argv, frog_xpm, frog_bits, frog_width,
-+            frog_height, "#181818", "#79bdbf", "#ff0000", "#ffbf50", "#c5a6ff");
-+
-+    XSelectInput(dis, win, ExposureMask);
-+
-+    // Update the data now .... which calls itself back every x seconds (UpdateDelay) using an alarm
-+    UpdateData();
-+
-+    while (1) {
-+        while (XPending(display)) {
-+            XNextEvent(display, &event);
-+            switch (event.type) {
-+                case Expose:
-+                    RedrawWindow();
-+                    break;
-+            }
-+        }
-+        // check for events 2x seconds to take it easy on cpu
-+        usleep(500000);
-+    }
-+}
-+
-+void Repaint() {
-+    int i, y, q;
-+    char chr;
-+
-+    /*
-+     * Clear window.
-+     */
-+    copyXPMArea(0, 64, 56, 56, 4, 4);
-+
-+    //clouds
-+    if (strcmp(weather.coverage, "FEW") == 0) {
-+        copyXPMArea(0, 183, 56, 15, 4, 4);
-+    }
-+    if (strcmp(weather.coverage, "SCT") == 0) {
-+        copyXPMArea(56, 183, 56, 15, 4, 4);
-+    }
-+    if (strcmp(weather.coverage, "BKN") == 0) {
-+        copyXPMArea(112, 183, 56, 15, 4, 4);
-+    }
-+    if (strcmp(weather.coverage, "OVC") == 0 || strcmp(weather.coverage, "VV") == 0) {
-+        copyXPMArea(168, 183, 56, 15, 4, 4);
-+    }
-+
-+    //obstruction
-+    if (strcmp(weather.obsc, "") != 0) { //fog
-+        if (strcmp(weather.desc, "BL") == 0)
-+            copyXPMArea(56, 90, 56, 26, 4, 34);
-+        else if (strcmp(weather.desc, "FZ") == 0)
-+            copyXPMArea(112, 90, 56, 26, 4, 34);
-+        else
-+            copyXPMArea(168, 64, 56, 26, 4, 34);
-+    }
-+
-+    //precipitation
-+    if (strcmp(weather.precip, "DZ") == 0) {
-+        copyXPMArea(112, 120, 56, 15, 4, 18);
-+    }
-+    if (strcmp(weather.precip, "RA") == 0) {
-+        if (weather.intensity == 0)
-+            copyXPMArea(56, 150, 56, 15, 4, 18);
-+        if (weather.intensity < 0)
-+            copyXPMArea(0, 150, 56, 15, 4, 18);
-+        if (weather.intensity > 0)
-+            copyXPMArea(112, 150, 56, 15, 4, 18);
-+    }
-+
-+    if (strcmp(weather.precip, "SN") == 0 || strcmp(weather.precip, "SG") == 0) {
-+        if (weather.intensity == 0)
-+            copyXPMArea(56, 135, 56, 15, 4, 18);
-+        if (weather.intensity > 0)
-+            copyXPMArea(112, 135, 56, 15, 4, 18);
-+        if (weather.intensity < 0)
-+            copyXPMArea(0, 135, 56, 15, 4, 18);
-+    }
-+
-+    if (strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0 || strcmp(weather.precip, "IC") == 0) {
-+        if (weather.intensity == 0)
-+            copyXPMArea(56, 166, 56, 16, 4, 18);
-+        if (weather.intensity > 0)
-+            copyXPMArea(112, 166, 56, 16, 4, 18);
-+        if (weather.intensity < 0)
-+            copyXPMArea(0, 166, 56, 16, 4, 18);
-+    }
-+
-+    //descriptor
-+    if (strcmp(weather.desc, "BL") == 0 && strcmp(weather.obsc, "") == 0) {
-+        copyXPMArea(56, 64, 56, 26, 4, 34);
-+    }
-+    if (strcmp(weather.desc, "FZ") == 0 && strcmp(weather.obsc, "") == 0) {
-+        copyXPMArea(112, 64, 56, 26, 4, 34);
-+    }
-+    if (strcmp(weather.desc, "TS") == 0) {
-+        if (strcmp(weather.precip, "") != 0)
-+            copyXPMArea(164, 150, 56, 15, 4, 18);
-+        else
-+            copyXPMArea(56, 120, 56, 15, 4, 18);
-+    }
-+
-+    //special
-+    if (strcmp(weather.misc, "") != 0) {
-+        copyXPMArea(168, 90, 56, 26, 4, 34);
-+        copyXPMArea(0, 120, 56, 15, 4, 18);
-+        copyXPMArea(168, 183, 56, 16, 4, 4);
-+
-+    }
-+
-+    //writtings:
-+
-+    //clearing:
-+    copyXPMArea(170, 20, 25, 17, 29, 44);
-+    copyXPMArea(220, 0, 3, 60, 4, 4);
-+    copyXPMArea(220, 0, 3, 60, 57, 4);
-+    copyXPMArea(220, 0, 3, 60, 4, 4);
-+
-+    //humidity
-+    y = (weather.humidity * 58) / 100;
-+    copyXPMArea(60, 0, 1, y, 4, 60 - y);
-+    copyXPMArea(60, 0, 1, y, 5, 60 - y);
-+
-+    //wind & gust
-+
-+    y = (weather.gust * 58) / maxWind;
-+    copyXPMArea(62, 0, 1, y, 58, 60 - y);
-+    copyXPMArea(62, 0, 1, y, 59, 60 - y);
-+    y = (weather.wind * 58) / maxWind;
-+    copyXPMArea(61, 0, 1, y, 58, 60 - y);
-+    copyXPMArea(61, 0, 1, y, 59, 60 - y);
-+
-+    //station name
-+    for (i = 0; i != 4; i++) {
-+        chr = (int) Label[i] - 65;
-+        copyXPMArea(chr * 5 + 89, 0, 5, 6, 31 + (i * 5), 45);
-+    }
-+
-+    //time
-+    i = weather.hour / 10;
-+    copyXPMArea(89 + (i * 5), 7, 5, 6, 30, 53);
-+    i = weather.hour - ((weather.hour / 10)*10);
-+    copyXPMArea(89 + (i * 5), 7, 5, 6, 35, 53);
-+    copyXPMArea(89 + (52), 7, 1, 6, 41, 53);
-+    i = weather.min / 10;
-+    copyXPMArea(89 + (i * 5), 7, 5, 6, 43, 53);
-+    i = weather.min - ((weather.min / 10)*10);
-+    copyXPMArea(89 + (i * 5), 7, 5, 6, 48, 53);
-+
-+
-+    //temp
-+
-+    q = 10;
-+    copyXPMArea(136, 30, 17, 9, q - 1, 22);
-+    if (weather.temp < 0) {
-+        copyXPMArea(90, 30, 3, 7, q, 23);
-+        q += 5;
-+    }
-+    /*if(temp>100)
-+      {
-+      copyXPMArea(96, 20, 5, 7, q, 23);
-+      q+=6;
-+      }
-+     */
-+    copyXPMArea(136, 30, 17, 9, (q - 1), 22);
-+
-+    i = weather.temp;
-+    if (i < 0)
-+        i = -i;
-+    if (i / 100 > 0) {
-+        copyXPMArea(96, 20, 5, 7, q, 23);
-+        q += 6;
-+        i -= 100;
-+    }
-+    if ((i == 0 && q > 10) || i / 10 > 0 || q > 10) {
-+        copyXPMArea(90 + 6 * (i / 10), 20, 5, 7, q, 23);
-+        q += 6;
-+    }
-+
-+    copyXPMArea(90 + 6 * (i - ((i / 10)*10)), 20, 5, 7, q, 23);
-+    q += 5;
-+    copyXPMArea(95, 29, 5, 7, q, 23);
-+
-+    // wind weather.dir
-+    if ((weather.dir >= 0 && weather.dir <= 22) || (weather.dir <= 360 && weather.dir > 337))
-+        copyXPMArea(0, 198, 7, 7, 48, 6);
-+    if (weather.dir > 22 && weather.dir <= 67)
-+        copyXPMArea(42, 198, 7, 7, 48, 6);
-+    if (weather.dir > 67 && weather.dir <= 112)
-+        copyXPMArea(14, 198, 7, 7, 48, 6);
-+    if (weather.dir > 112 && weather.dir <= 157)
-+        copyXPMArea(28, 198, 7, 7, 48, 6);
-+    if (weather.dir > 157 && weather.dir <= 202)
-+        copyXPMArea(7, 198, 7, 7, 48, 6);
-+    if (weather.dir > 202 && weather.dir <= 247)
-+        copyXPMArea(35, 198, 7, 7, 48, 6);
-+    if (weather.dir > 247 && weather.dir <= 292)
-+        copyXPMArea(21, 198, 7, 7, 48, 6);
-+    if (weather.dir > 292 && weather.dir <= 337)
-+        copyXPMArea(49, 198, 7, 7, 48, 6);
-+
-+    /*
-+     * Make changes visible
-+     */
-+    RedrawWindow();
-+}
-+
-+/*
-+ *   ParseCMDLine()
-+ */
-+void ParseCMDLine(int argc, char *argv[]) {
-+
-+    int i;
-+    void print_usage();
-+
-+    StationID[0] = '\0';
-+    UpdateDelay = DEFAULT_UPDATEDELAY;
-+    for (i = 1; i < argc; i++) {
-+
-+        if ((!strcmp(argv[i], "-metric")) || (!strcmp(argv[i], "-m"))) {
-+            Metric = 1;
-+        } else if (!strcmp(argv[i], "-w")) {
-+            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
-+
-+                fprintf(stderr, "You must give a max wind value  with the -w option.\n");
-+                print_usage();
-+                exit(-1);
-+            } else if (sscanf(argv[i + 1], "%d", &maxWind) != 1) {
-+                fprintf(stderr, "Don't understand the max wind value have entered (%s).\n", argv[i + 1]);
-+                print_usage();
-+                exit(-1);
-+            }
-+        } else if (!strcmp(argv[i], "-o")) {
-+            if ((i + 1 >= argc)) {
-+                fprintf(stderr, "You must give a time offset value  with the -t option.\n");
-+                print_usage();
-+                exit(-1);
-+            } else if (sscanf(argv[i + 1], "%d", &timeOffset) != 1) {
-+                fprintf(stderr, "Don't understand the time offset value have entered (%s).\n", argv[i + 1]);
-+                print_usage();
-+                exit(-1);
-+            }
-+
-+
-+        } else if (!strcmp(argv[i], "-tmp")) {
-+            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
-+                fprintf(stderr, "-tmp option invalid.\n");
-+                print_usage();
-+                exit(-1);
-+            }
-+            strcpy(folder, argv[++i]);
-+
-+
-+        } else if ((!strcmp(argv[i], "-station")) || (!strcmp(argv[i], "-s"))) {
-+            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
-+                fprintf(stderr, "No METAR station ID found\n");
-+                print_usage();
-+                exit(-1);
-+            }
-+            strcpy(StationID, StringToUpper(argv[++i]));
-+            strcpy(Label, StationID);
-+        } else if (!strcmp(argv[i], "-delay")) {
-+            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
-+
-+                fprintf(stderr, "You must give a time with the -delay option.\n");
-+                print_usage();
-+                exit(-1);
-+            } else if (sscanf(argv[i + 1], "%ld", &UpdateDelay) != 1) {
-+
-+                fprintf(stderr, "Don't understand the delay time you have entered (%s).\n", argv[i + 1]);
-+                print_usage();
-+                exit(-1);
-+            }
-+            /*
-+             *  Convert Time to seconds
-+             */
-+            UpdateDelay *= 60;
-+            ++i;
-+        } else if (!strcmp(argv[i], "-l")) {
-+            if ((i + 1 >= argc) || (argv[i + 1][0] == '-')) {
-+                fprintf(stderr, "You must give a station label name.\n");
-+                print_usage();
-+                exit(-1);
-+            }
-+            strcpy(Label, StringToUpper(argv[++i]));
-+        }
-+    }
-+
-+    if (StationID[0] == '\0') {
-+        fprintf(stderr, "\nYou must specify a METAR station code\n\n");
-+        print_usage();
-+        exit(1);
-+    }
-+}
-+
-+void print_usage() {
-+
-+    printf("\nwmfrog version: %s\n", VERSION);
-+    printf("\nusage: wmfrog -s <StationID> [-h] [-w <max wind>] [-t <time offset>] [-tmp <temp folder>] [-l <label>]\n");
-+    printf("                   [-m] [-delay <Time in Minutes>]\n\n");
-+    printf("\n\t-station <METAR StationID>\n");
-+    printf("\t-s       <METAR StationID>\tThe 4-character METAR Station ID.\n\n");
-+    printf("\t-metric\n");
-+    printf("\t-m\t\t\t\tDisplay Temperature in metric unit: (Celcius) \n\n");
-+    printf("\t-delay <Time in Minutes>\tOverride time (in minutes) between updates\n");
-+    printf("\t\t\t\t\tdefault is %ld minutes. \n\n", DEFAULT_UPDATEDELAY / 60);
-+
-+    printf("\t-w\t\t\t\tSet the maximum wind in KNOTS (for percentage of max / scaling.)\n");
-+    printf("\t\t\t\t\tdefault is %d minutes). (Times are approximate.)\n\n", MAX_WIND);
-+    printf("\t-o\t\t\t\tTime offset of location from UTC (7 for calif in summer) \n\n");
-+    printf("\t-tmp\t\t\t\tSet the temporary folder (default is: %s) \n\n", folder);
-+    printf("\t-l\t\t\t\tSet a label to replace the station ID \n\n");
-+
-+    printf("\n\nTo find out more about the METAR/TAF system, look at:\n");
-+    printf("	 http://www.nws.noaa.gov/oso/oso1/oso12/metar.htm \n\n");
-+    printf("To find your city Metar code go to  NOAA's ""Meteorological Station Information\nLookup"" page at:\n\n");
-+    printf("	 http://www.nws.noaa.gov/oso/siteloc.shtml\n\n");
-+    printf("\n Thibaut Colar http://www.colar.net/wmapps/\n\n");
-+
-+}
-+
-+/*
-+ *  Compute the Julian Day number for the given date.
-+ *  Julian Date is the number of days since noon of Jan 1 4713 B.C.
-+ */
-+double jd(ny, nm, nd, UT)
-+int ny, nm, nd;
-+double UT;
-+{
-+    double A, B, C, D, JD, day;
-+
-+    day = nd + UT / 24.0;
-+
-+    if ((nm == 1) || (nm == 2)) {
-+        ny = ny - 1;
-+        nm = nm + 12;
-+    }
-+
-+    if (((double) ny + nm / 12.0 + day / 365.25) >= (1582.0 + 10.0 / 12.0 + 15.0 / 365.25)) {
-+        A = ((int) (ny / 100.0));
-+        B = 2.0 - A + (int) (A / 4.0);
-+    } else {
-+        B = 0.0;
-+    }
-+    if (ny < 0.0) {
-+        C = (int) ((365.25 * (double) ny) - 0.75);
-+    } else {
-+        C = (int) (365.25 * (double) ny);
-+    }
-+
-+    D = (int) (30.6001 * (double) (nm + 1));
-+
-+
-+    JD = B + C + D + day + 1720994.5;
-+    return (JD);
-+
-+}
-+
-+// Will be called at regular interval to update the weather data (alarm)
-+
-+void UpdateData() {
-+    char command[1024], Line[512], FileName[128];
-+    int ign;
-+    char* igns;
-+    igns = (char*) malloc(512);
-+    FILE *fp;
-+    char* weatherStr;
-+    char* cloudsStr;
-+    char* tmp1 = NULL;
-+    char* tmp2 = NULL;
-+    int keepgoing = 0;
-+    int weatherFound = 0;
-+    int cloudsFound = 0;
-+    char* wtr;
-+    char* clds;
-+    int i, z;
-+    weatherStr = (char*) malloc(512);
-+    cloudsStr = (char*) malloc(512);
-+
-+    /*
-+     *  Check the Current Conditions file every (approx.) several seconds.
-+     */
-+    weather.intensity = 0;
-+    weather.desc = "";
-+    weather.precip = "";
-+    weather.obsc = "";
-+    weather.misc = "";
-+    weather.coverage = "";
-+    weather.dir = -1;
-+    weather.temp = 0;
-+    weather.dew = 0;
-+    weather.humidity = 0;
-+    weather.hour = 0;
-+    weather.min = 0;
-+    weather.wind = 0;
-+    weather.gust = 0;
-+    /*
-+     *  Execute Perl script to grab the Latest METAR Report
-+     */
-+    snprintf(command, 1024, "/usr/lib/wmfrog/weather.pl %s %s", StationID, folder);
-+    //printf("Retrieveing data\n");
-+    ign = system(command);
-+    snprintf(FileName, 128, "%s/%s", folder, StationID);
-+    //fprintf(stderr,"%s\n\n",FileName);
-+
-+    if ((fp = fopen(FileName, "r")) != NULL) {
-+        ign = fscanf(fp, "Hour:%d", &weather.hour);
-+        igns = fgets(Line, 512, fp); //h
-+        ign = fscanf(fp, "Minute:%d", &weather.min);
-+        igns = fgets(Line, 512, fp); //mn
-+        igns = fgets(igns, 512, fp); //station . ignored
-+        ign = fscanf(fp, "WindDir:%d", &weather.dir);
-+        igns = fgets(Line, 512, fp); //dir
-+        ign = fscanf(fp, "WindSpeed:%d", &weather.wind);
-+        igns = fgets(Line, 512, fp); //wind
-+        ign = fscanf(fp, "WindGust:%d", &weather.gust);
-+        igns = fgets(Line, 512, fp); //gust
-+        igns = fgets(weatherStr, 512, fp); //weather
-+        weatherFound = (*igns != '\0');
-+        igns = fgets(cloudsStr, 512, fp); //clouds
-+        cloudsFound = (*igns != '\0');
-+        ign = fscanf(fp, "Temp:%d", &weather.temp);
-+        igns = fgets(Line, 512, fp); //temp
-+        ign = fscanf(fp, "Dew:%d", &weather.dew);
-+        igns = fgets(Line, 512, fp); //dew
-+
-+        if (DEBUG) {
-+            printf("hr: %d\n", weather.hour);
-+            printf("mn: %d\n", weather.min);
-+            printf("wd: %d\n", weather.dir);
-+            printf("ws: %d\n", weather.wind);
-+            printf("wg: %d\n", weather.gust);
-+            printf("temp: %d\n", weather.temp);
-+            printf("dew: %d\n", weather.dew);
-+            printf("w: %s\n", weatherStr);
-+            printf("c: %s\n", cloudsStr);
-+        }
-+
-+        fclose(fp);
-+
-+        if (weatherFound) {
-+            wtr = strchr(weatherStr, ':') + 1; // get the part after "Weather:"
-+            if (DEBUG) printf("weatherLine: %s\n", wtr);
-+            do {
-+                tmp1 = mystrsep(&wtr, ";");
-+                if (tmp1 && strlen(tmp1) > 2) {
-+                    if (DEBUG) printf("tmp1: %s\n", tmp1);
-+                    tmp2 = mystrsep(&tmp1, ",");
-+
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        if (strcmp("-", tmp2) == 0) {
-+                            weather.intensity = -1;
-+                        } else if (strcmp("+", tmp2) == 0) {
-+                            weather.intensity = +1;
-+                        }
-+                    }
-+                    tmp2 = mystrsep(&tmp1, ",");
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        weather.desc = tmp2;
-+                    }
-+                    tmp2 = mystrsep(&tmp1, ",");
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        weather.precip = tmp2;
-+                    }
-+                    tmp2 = mystrsep(&tmp1, ",");
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        weather.obsc = tmp2;
-+                    }
-+                    tmp2 = mystrsep(&tmp1, ",");
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        weather.misc = tmp2;
-+                    }
-+                } else {
-+                    keepgoing = 0;
-+                }
-+                if (DEBUG) printf("Intensity: %d \n", weather.intensity);
-+            } while (keepgoing);
-+        }
-+
-+
-+        if (cloudsFound) {
-+            clds = strchr(cloudsStr, ':') + 1; // get the part after "Clouds:"
-+            if (DEBUG) printf("cloudsLine: %s\n", clds);
-+            do {
-+                tmp1 = mystrsep(&clds, ";");
-+                if (DEBUG) printf("tmp1: %s\n", tmp1);
-+                if (tmp1 && strlen(tmp1) > 2) {
-+                    tmp2 = mystrsep(&tmp1, ",");
-+
-+                    if (tmp2 && strcmp(tmp2, "") != 0) {
-+                        weather.coverage = tmp2;
-+                    }
-+                }
-+                if (DEBUG) printf("Coverage: |%s|\n", weather.coverage);
-+            } while (tmp1);
-+        }
-+        weather.humidity = ((112.0 - 0.1 * weather.temp + weather.dew) / (112.0 + 0.9 * weather.temp));
-+        z = weather.humidity;
-+        for (i = 0; i != 8; i++)
-+            weather.humidity *= z;
-+        weather.humidity *= 100;
-+        if (weather.humidity > 100)
-+            weather.humidity = 100;
-+        if (weather.humidity < 0)
-+            weather.humidity = 0;
-+
-+        weather.hour = weather.hour + timeOffset;
-+        if (weather.hour < 0)
-+            weather.hour = 24 + weather.hour;
-+        if (weather.hour > 24)
-+            weather.hour = weather.hour - 24;
-+
-+        if (!Metric)
-+            weather.temp = (weather.temp * 9) / 5 + 32;
-+    }
-+
-+    // set next alarm
-+    signal(SIGALRM, UpdateData);
-+    /* Set an alarm to go off in a little while. */
-+    alarm(UpdateDelay);
-+
-+    Repaint();
-+}
-+
-+char *GetTempDir(char *suffix) {
-+    uid_t id;
-+    struct passwd *userEntry;
-+    static char userHome[128];
-+
-+    id = getuid();
-+    userEntry = getpwuid(id);
-+    snprintf(userHome, 128, "%s/%s", userEntry->pw_dir, suffix);
-+    return userHome;
-+}
-+
-+char *StringToUpper(char *String) {
-+
-+    int i;
-+
-+    for (i = 0; i < strlen(String); i++)
-+        String[i] = toupper(String[i]);
-+
-+    return String;
-+}
-+
-+char *mystrsep(char **stringp, char *delim) {
-+    char *start = *stringp;
-+    char *cp;
-+    char ch;
-+    if (start == NULL)
-+        return NULL;
-+    for (cp = start; (ch = *cp) != 0; cp++) {
-+        if (strchr(delim, ch)) {
-+            *cp++ = 0;
-+            *stringp = cp;
-+            return start;
-+        }
-+    }
-+    *stringp = NULL;
-+    return start;
-+}
---- a/Src/Makefile
-+++ b/Src/Makefile
-@@ -8,7 +8,7 @@
- # LIBS   = -lXpm -lX11 -lXext -lsocket
- PREFIX=/usr
- 
--OBJS   = wmFrog.o \
-+OBJS   = wmfrog.o \
-          xutils.o
- 
- 
-@@ -16,10 +16,10 @@
- 	$(CC) $(CFLAGS) -D$(shell echo `uname -s`) -c $< -o $*.o $(INCDIR)
- 
- 
--all:	wmFrog.o wmFrog 
-+all:	wmfrog.o wmfrog 
- 
--wmFrog.o: frog.xpm frog.xbm
--wmFrog:	$(OBJS) 
-+wmfrog.o: frog.xpm frog.xbm
-+wmfrog:	$(OBJS) 
- 	$(CC) $(CFLAGS) $(SYSTEM) -o wmfrog $^ $(INCDIR) $(LIBDIR) $(LIBS)
- install:
- 		mkdir -p "$(DESTDIR)$(PREFIX)/bin"
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 860b069..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,6 +0,0 @@
-20-weather.pl.patch
-30-wmfrog.c-no-output.patch
-renamed-wmfrog.c.patch
-new-station-lookup-url.patch
-weather.pl-new-line-skip.patch
-fix_weather.pl_typos.patch
diff --git a/debian/patches/weather.pl-new-line-skip.patch b/debian/patches/weather.pl-new-line-skip.patch
deleted file mode 100644
index 81f86bb..0000000
--- a/debian/patches/weather.pl-new-line-skip.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: New line skip in weather.pl.
- Previously, there were 12 lines between the "START BODY OF TEXT HERE" comment
- and the time in the html file downloaded from weather.noaa.gov for processing
- weather information.  Now, however, the number of lines has increased to 21,
- and weather.pl was not able to correctly parse the weather information.
- .
- This patch fixes this issue.
-Author: Doug Torrance <dtorrance at monmouthcollege.edu>
-Last-Update: 2014-08-24
-
---- a/Src/weather.pl
-+++ b/Src/weather.pl
-@@ -79,7 +79,7 @@
- 
-     $i = 0;
- 
--    while ( $i != 12  and  not eof DATA )
-+    while ( $i != 21  and  not eof DATA )
-     {
- 	$line = <DATA>;
- 	$i++;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmfrog.git



More information about the Pkg-wmaker-commits mailing list