]> git.pld-linux.org Git - packages/br.git/commitdiff
6ef0e0a676d4ff63e0043e639568801d br-accept-cmdline.patch
authorhunter <hunter@pld-linux.org>
Thu, 2 Jan 2003 01:21:17 +0000 (01:21 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
a11826334de33059a0894dcc63880049  br.c
095229028b82631664116631e5caf93a  br.tar.gz

Changed files:
    br-accept-cmdline.patch -> 1.1
    br.c -> 1.1

br-accept-cmdline.patch [new file with mode: 0644]
br.c [new file with mode: 0644]

diff --git a/br-accept-cmdline.patch b/br-accept-cmdline.patch
new file mode 100644 (file)
index 0000000..06a0d87
--- /dev/null
@@ -0,0 +1,59 @@
+--- /home/users/hunter/rpm/SOURCES/br.c        Mon Jan 24 00:00:00 2000
++++ br.c       Wed Jan  1 23:04:39 2003
+@@ -100,7 +100,7 @@
+-int main()
++int main(int argc, char* argv[])
+ {
+   /* Start
+@@ -110,10 +110,13 @@
+   /* --------------------------------------------------------------------
+      Eingabe des heutigen Datums [enter todays date]
+      -------------------------------------------------------------------- */
++
++if (argc != 2) {
+   (void) printf("\nDate     [<RETURN> for Systemdate] (DD.MM.YYYY) : ");
+   INPUT(dtmp);
++}
+   if (strlen(dtmp) != 10)
+   {                                /* get TODAY's date */
+     now = time((time_t *) NULL);
+@@ -140,13 +143,20 @@
+   if (t_yy % 4 == 0)
+     MONATSTAG[1]=29;
++
+   /* --------------------------------------------------------------------
+      Eingabe des Geburtstages  [enter the birthdate]
+      -------------------------------------------------------------------- */
++if (argc != 2) {
++
+   (void) printf("Birthday [<RETURN> for 04.12.1965] (DD.MM.YYYY) : ");
+   INPUT(dtmp);
++} else {
++              strncpy(dtmp, argv[1], 10);
++}
++  
+   if (strlen(dtmp) != 10)
+     (void) strcpy(dtmp,"04.12.1965");
+@@ -235,9 +245,9 @@
+        -------------------------------------------------------------------- */
+     if (!DRUCKER)
+     {
+-      (void) printf("Biorhythm    %02d.%02d.%04d\n",th,mh,jh);
+-      (void) printf("Physical:    %d%%\n",phys);
+-      (void) printf("Emotional:   %d%%\n",emot);
++      (void) printf("Biorhythm    %02d.%02d.%04d\t",th,mh,jh);
++      (void) printf("Physical:    %d%%\t",phys);
++      (void) printf("Emotional:   %d%%\t",emot);
+       (void) printf("Mental:      %d%%\n\n",geist);
+     }
+     else
diff --git a/br.c b/br.c
new file mode 100644 (file)
index 0000000..0da275b
--- /dev/null
+++ b/br.c
@@ -0,0 +1,501 @@
+/* --------------------------------------------------------------------
+ Biorhythmus (c) by Frank Kaefer 1987-2000 V5.0
+ History:
+     V1.0  ZX-80 Basic (ZX-80 with 16 kB RAM)
+     V2.0  TRS-80 Basic (Video Genie)
+     V2.1  C-64 Basic
+     V2.2  OS-9 Basic (OS-9/68000 on Atari ST)
+     V3.0  GW-Basic
+     V3.0a VMS-Basic             (brennan@cchs.su.edu.au 02-Feb-1994)
+     V4.0  C-language conversion (brennan@cchs.su.edu.au 04-Feb-1994)
+     V5.0  Y2K and leapyear problem fixed (fkk)
+*/
+
+/*
+  Compilation:
+        SunOS 5.X and
+        SunOS 4.X     % cc  br br.c -lm
+                 or   % gcc br br.c -lm
+
+        VMS 5.5-2     $ cc/Standard=PORTABLE/Object=br.obj br.c
+                 or   $ gcc/Warning/Standard=PORTABLE/Object=br.obj br.c
+
+                (ld)  $ LINK br,Sys$Input:/OPTION
+                      Sys$Share:VaxCrtl.exe/Share
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+
+#ifdef VMS
+#include <ssdef.h>
+#define SUCCESS  SS$_NORMAL
+#define ERROR    SS$_BADPARAM
+#else
+#define SUCCESS  0
+#define ERROR    1
+#endif
+
+#define YES (1 == 1)
+#define NO  (1 == 0)
+
+#ifndef PI
+#define PI 3.14159265358979323846
+#endif
+
+#define PRINTFILE "biorythm.txt"
+#define MAXBUF 20
+#define MAXSTRING 1000
+#define MAXGRAPH 51
+
+time_t now;
+static struct tm *presenttime;
+int t_dd,t_mm,t_yy;
+
+FILE *fd;
+
+int DRUCKER;                        /* PRINTER */
+
+char dtmp[MAXBUF];
+char ausgabe[MAXBUF];
+char ausgabeart[MAXBUF];        /* which type of display */
+char Cktage[MAXBUF];
+
+int t,m,j;
+int th,mh,jh;
+int tg,mg,jg;
+int ta,tah,tag,gtag,tage;
+int phys,emot,geist;
+int p,e,g;
+
+int ktage;
+int pl,cl,z;
+
+char graph[MAXGRAPH];
+
+/* define the 'clone' routines of the BASIC functions/gosubs from original */
+void INPUT();
+char *LEFT();
+char *MID();
+char *RIGHT();
+void Vergangene_Tage();
+void Kopf();
+
+/* --------------------------------------------------------------------
+   Daten aus den Datazeilen lesen [read data from data lines (aka BASIC)]
+   -------------------------------------------------------------------- */
+static char *WOCHENTAG[] =
+{
+  "Sunday","Monday","Tuesday","Wednesday","Thursday",
+    "Friday","Saturday"
+  };
+
+/* static */ int MONATSTAG[12] =
+{
+  31,28,31,30,31,30,31,31,30,31,30,31
+  };
+
+
+
+int main()
+{
+
+  /* Start
+     -------------------------------------------------------------------- */
+  (void) printf("\nBiorhythm (c) 1987-2000 V5.0\n");
+
+  /* --------------------------------------------------------------------
+     Eingabe des heutigen Datums [enter todays date]
+     -------------------------------------------------------------------- */
+  (void) printf("\nDate     [<RETURN> for Systemdate] (DD.MM.YYYY) : ");
+
+  INPUT(dtmp);
+
+  if (strlen(dtmp) != 10)
+  {                                /* get TODAY's date */
+    now = time((time_t *) NULL);
+    presenttime = localtime(&now);
+    t_dd = presenttime->tm_mday;
+    t_mm = presenttime->tm_mon + 1;
+    t_yy = presenttime->tm_year;
+    /* if (90 < t_yy && t_yy < 100) */
+    /*   t_yy += 1900;              */  /* correct for century */
+    /* if (t_yy < 90)               */
+    /*   t_yy += 2000;              */
+    t_yy += 1900;        /* localtime years = years since 1900 */
+    (void) sprintf(dtmp,"%02d.%02d.%04d",t_dd,t_mm,t_yy);
+  }
+
+  t = atoi(LEFT(dtmp,2));
+  m = atoi(MID(dtmp,4,2));
+  j = atoi(RIGHT(dtmp,7));
+  th = t;
+  mh = m;
+  jh = j;
+
+  /* leapyear ? */
+  if (t_yy % 4 == 0)
+    MONATSTAG[1]=29;
+
+  /* --------------------------------------------------------------------
+     Eingabe des Geburtstages  [enter the birthdate]
+     -------------------------------------------------------------------- */
+  (void) printf("Birthday [<RETURN> for 04.12.1965] (DD.MM.YYYY) : ");
+
+  INPUT(dtmp);
+
+  if (strlen(dtmp) != 10)
+    (void) strcpy(dtmp,"04.12.1965");
+
+  t = atoi(LEFT(dtmp,2));
+  m = atoi(MID(dtmp,4,2));
+  j = atoi(RIGHT(dtmp,7));
+  tg = t;
+  mg = m;
+  jg = j;
+
+  Vergangene_Tage();                /*  GOSUB 1170  */
+
+  ta -= ((double) (ta / 7)) * 7;
+  gtag = ta;
+
+  /* --------------------------------------------------------------------
+     Abfrage, ob und wo Kurve oder Tageswerte ausgegeben werden sollen
+     [ask if they want the curve or the day values and where to display it]
+     -------------------------------------------------------------------- */
+  (void) printf("\nOutput to screen or printer [<RETURN> for Screen] (s/p) ");
+
+  INPUT(ausgabe);
+
+  if (ausgabe[0] == 'p' || ausgabe[0] == 'P')
+    DRUCKER = YES;
+  else
+    DRUCKER = NO;
+
+  if (DRUCKER)
+  {
+    fd = fopen(PRINTFILE,"w");
+    if (!fd)
+    {
+      perror(PRINTFILE);
+      (void) exit(ERROR);
+    }
+  }
+
+  (void) printf("Values for today or Graph   [<RETURN> for Graph]  (v/g) ");
+
+  INPUT(ausgabeart);
+
+  if (ausgabeart[0] == 'v' || ausgabeart[0] == 'V')
+  {
+    /* --------------------------------------------------------------------
+       Berechnung der vergangenen Tage  [calc the past days]
+       -------------------------------------------------------------------- */
+    j = jg;
+    m = mg;
+    t = tg;
+
+    Vergangene_Tage();                /*  GOSUB 1170  */
+
+    tag = ta;
+    j = jh;
+    m = mh;
+    t = th;
+
+    Vergangene_Tage();                /*  GOSUB 1170  */
+
+    tah = ta;
+    tage = tah - tag;
+
+    Kopf();                        /* GOSUB 2110 */
+    if (!DRUCKER)
+    {
+      (void) printf("\nThe birthday %02d.%02d.%04d is a %s\n",tg,mg,jg,WOCHENTAG[gtag]);
+      (void) printf("Age in days: %d\n",tage);
+    }
+    else
+    {
+      (void) fprintf(fd,"\nThe birthday %02d.%02d.%04d is a %s\n",tg,mg,jg,WOCHENTAG[gtag]);
+      (void) fprintf(fd,"Age in days: %d\n",tage);
+    }
+
+    /* --------------------------------------------------------------------
+       Berechnung der drei Werte fuer das angegebene Datum
+       [calculate the 3 values for the given date]
+       -------------------------------------------------------------------- */
+    phys = 50 * (1 + sin((double) (((double) tage / 23) - (tage / 23)) * 360 * PI / 180));
+    emot = 50 * (1 + sin((double) (((double) tage / 28) - (tage / 28)) * 360 * PI / 180));
+    geist = 50 * (1 + sin((double) (((double) tage / 33) - (tage / 33)) * 360 * PI / 180));
+
+    /* --------------------------------------------------------------------
+       Ausgabe der Werte [display the values]
+       -------------------------------------------------------------------- */
+    if (!DRUCKER)
+    {
+      (void) printf("Biorhythm    %02d.%02d.%04d\n",th,mh,jh);
+      (void) printf("Physical:    %d%%\n",phys);
+      (void) printf("Emotional:   %d%%\n",emot);
+      (void) printf("Mental:      %d%%\n\n",geist);
+    }
+    else
+    {
+      (void) fprintf(fd,"Biorhythm    %02d.%02d.%04d\n",th,mh,jh);
+      (void) fprintf(fd,"Physical:    %d%%\n",phys);
+      (void) fprintf(fd,"Emotional:   %d%%\n",emot);
+      (void) fprintf(fd,"Mental:      %d%%\n\n",geist);
+    }
+  }
+  else
+  {
+    /* --------------------------------------------------------------------
+       Ausgabe einer Kurve  [display the curves]
+       -------------------------------------------------------------------- */
+    (void) printf("\nGraph for how many days : ");
+
+    INPUT(Cktage);
+    ktage = atoi(Cktage);
+    ktage -= 1;
+
+    /* --------------------------------------------------------------------
+       Berechnung der vergangenen Tage  [calc the past days]
+       -------------------------------------------------------------------- */
+    j = jg;
+    m = mg;
+    t = tg;
+    Vergangene_Tage();                /*  GOSUB 1170 */
+
+    tag = ta;
+    j = jh;
+    m = mh;
+    t = th;
+    Vergangene_Tage();                /*  GOSUB 1170 */
+
+    tah = ta;
+    tage = tah - tag;
+    Kopf();                        /* heading *//* GOSUB 2110 */
+
+
+    if (!DRUCKER)
+    {
+      (void) printf("\nThe birthday %02d.%02d.%04d is a %s\n",tg,mg,jg,WOCHENTAG[gtag]);
+      (void) printf("Age in days: %d\n",tage);
+      (void) printf("\n               P=Physical, E=Emotional, M=Mental\n");
+      (void) printf("\n               bad condition");
+
+      (void) printf("                         good condition\n");
+    }
+    else
+    {
+      (void) fprintf(fd,"\nThe birthday %02d.%02d.%04d is a %s\n",tg,mg,jg,WOCHENTAG[gtag]);
+      (void) fprintf(fd,"Age in days: %d\n",tage);
+      (void) fprintf(fd,"\n               P=Physical, E=Emotional, M=Mental\n");
+      (void) fprintf(fd,"\n               bad condition");
+      (void) fprintf(fd,"                         good condition\n");
+    }
+
+    /* --------------------------------------------------------------------
+       Schleife fuer die Ausgabe der Kurve
+       [loop for the display of the curves]
+       -------------------------------------------------------------------- */
+
+    for (z = tage; z <= (tage + ktage); z++)
+    {
+      phys = 50 * (1 + sin((double) (((double) z / 23) - (z / 23)) * 360 * PI / 180));
+      emot = 50 * (1 + sin((double) (((double) z / 28) - (z / 28)) * 360 * PI / 180));
+      geist = 50 * (1 + sin((double) (((double) z / 33) - (z / 33)) * 360 * PI / 180));
+
+      /* --------------------------------------------------------------------
+         Ausgabe der Werte als Kurve [display the values as a curve]
+         ------------------------------------------------------------------ */
+      if (!DRUCKER)
+      {
+        (void) printf("%02d %02d %04d",th,mh,jh);
+        (void) printf("     ");
+      }
+      else
+      {
+        (void) fprintf(fd,"%02d %02d %04d",th,mh,jh);
+        (void) fprintf(fd,"     ");
+      }
+      phys = ((double) ((double) phys / 2) + .5);
+      emot = ((double) ((double) emot / 2) + .5);
+      geist = ((double) ((double) geist / 2) + .5);
+      p = phys + 1;
+      e = emot + 1;
+      g = geist + 1;
+
+      /* ------------------------------------------------------------------ */
+
+      for (cl = 0; cl <= MAXGRAPH; cl++)
+      {
+        graph[cl] = '.';
+      }
+
+      graph[p] = 'P';
+      graph[e] = 'E';
+      graph[g] = 'M';
+      graph[MAXGRAPH / 2] = '|';
+
+      for (pl = 0; pl <= MAXGRAPH; pl++)
+      {
+        if (!DRUCKER)
+          (void) printf("%c",graph[pl]);
+        else
+          (void) fprintf(fd,"%c",graph[pl]);
+      }
+
+      if (!DRUCKER)
+        (void) printf("\n");
+      else
+        (void) fprintf(fd,"\n");
+
+      /* ------------------------------------------------------------------ */
+      th += 1;
+      if (th > MONATSTAG[mh - 1])
+      {
+        mh += 1;
+        th = 1;
+      }
+      if (mh > 12)
+      {
+        jh += 1;
+        mh = 1;
+        /* leapyear ? */
+        if (jh % 4 == 0)
+          MONATSTAG[1]=29;
+        else
+          MONATSTAG[1]=28;
+      }
+    }                                /* next Z */
+  }
+  if (!DRUCKER)
+    (void) printf("\n");
+  else
+    (void) fclose(fd);
+
+  return (SUCCESS);                /* END */
+}
+
+
+
+void Kopf()                        /* heading */
+{
+  /* 2110 subroutine */
+  /* --------------------------------------------------------------------
+     Kopf BIORHYTHMUS
+     ------------------------------------------------------------------ */
+  if (DRUCKER)
+  {
+    (void) fprintf(fd,"\n");
+    (void) fprintf(fd,"                                BIORHYTHM\n");
+    (void) fprintf(fd,"                                =========\n");
+    (void) fprintf(fd,"\n                       (c) 1987-2000 by Frank Kaefer\n");
+  }
+  else
+  {
+    (void) printf("\n");
+    (void) printf("                                BIORHYTHM\n");
+    (void) printf("                                =========\n");
+    (void) printf("\n                       (c) 1987-2000 by Frank Kaefer\n");
+  }
+
+  return;
+
+}
+
+
+void Vergangene_Tage()
+{
+  /* 1170 subroutine */
+  /* --------------------------------------------------------------------
+     Unterprogramm zur Berechnung der vergangenen Tage
+     [subroutine to calculate the past days]
+     -------------------------------------------------------------------- */
+  ta = 0;
+  if (m <= 2)
+  {
+    ta = (double) (m - 1) * 31;
+  }
+  else
+  {
+    if ((j % 4 == 0 && j % 100 != 0) || j % 400 == 0)
+      ta = 1;
+    else
+      ta = 0;
+    ta += ((double) (306 * m - 324) / 10);
+  }
+  ta += (double) (j - 1) * 365 + ((j - 1) / 4);
+  ta -= (double) ((j - 1) / 100) - (double) ((j - 1) / 400);
+  ta += t;
+
+  return;
+}
+
+/* clone the BASIC functions LEFT$, MID$, RIGHT$ */
+
+char *LEFT(source,numchars)
+  char source[];
+  int numchars;
+{
+  char result[MAXSTRING];
+  int i;
+
+  if (numchars > strlen(source))
+    return (source);
+
+  for (i = 0; i < numchars; i++)
+    result[i] = source[i];
+
+  result[i] = '\0';
+  return (result);
+}
+
+char *MID(source,startpos,numchars)
+  char source[];
+  int startpos,numchars;
+{
+  char result[MAXSTRING];
+  int i,j;
+
+  if ((startpos + numchars) > strlen(source))
+    return (source);
+
+  for (i = startpos - 1,j = 0; i < (startpos + numchars) - 1; i++,j++)
+    result[j] = source[i];
+
+  result[j] = '\0';
+  return (result);
+}
+
+char *RIGHT(source,startpos)
+  char source[];
+  int startpos;
+{
+  char result[MAXSTRING];
+  int i,j;
+
+  if (startpos > strlen(source))
+    return (source);
+
+  for (i = startpos - 1,j = 0; i < strlen(source); i++,j++)
+    result[j] = source[i];
+
+  result[j] = '\0';
+  return (result);
+}
+
+void INPUT(var)
+  char var[];
+{
+  int c;
+  int i;
+
+  for (i = 0; (c = getchar()) != EOF && c != '\n'; i++)
+    var[i] = c;
+
+  var[i + 1] = '\0';
+  return;
+}
This page took 0.0961379999999999 seconds and 4 git commands to generate.