Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Oct 2020 21:10:46 +0000 (UTC)
From:      =?UTF-8?Q?Stefan_E=c3=9fer?= <se@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r553563 - head/deskutils/calendar/files
Message-ID:  <202010282110.09SLAkkr037318@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: se
Date: Wed Oct 28 21:10:46 2020
New Revision: 553563
URL: https://svnweb.freebsd.org/changeset/ports/553563

Log:
  Upgrade to FreeBSD base SVN version r367108
  
  This version add support for nested conditionals, #ifdef and #else.

Modified:
  head/deskutils/calendar/files/patch-io.c

Modified: head/deskutils/calendar/files/patch-io.c
==============================================================================
--- head/deskutils/calendar/files/patch-io.c	Wed Oct 28 21:07:18 2020	(r553562)
+++ head/deskutils/calendar/files/patch-io.c	Wed Oct 28 21:10:46 2020	(r553563)
@@ -1,20 +1,112 @@
---- io.c.orig	2020-10-18 03:01:26 UTC
+--- io.c.orig	2020-10-28 20:58:10 UTC
 +++ io.c
-@@ -42,7 +42,7 @@ static char sccsid[] = "@(#)calendar.c  8.3 (Berkeley)
- #endif
+@@ -134,18 +134,66 @@ cal_fopen(const char *file)
+ }
  
- #include <sys/cdefs.h>
--__FBSDID("$FreeBSD$");
-+__FBSDID("$FreeBSD: head/usr.bin/calendar/io.c 366962 2020-10-23 09:22:23Z se $");
+ static int
+-token(char *line, FILE *out, bool *skip)
++token(char *line, FILE *out, int *skip)
+ {
+ 	char *walk, c, a;
  
- #include <sys/param.h>
- #include <sys/stat.h>
-@@ -71,7 +71,7 @@ enum {
- };
+ 	if (strncmp(line, "endif", 5) == 0) {
+-		*skip = false;
++		if (*skip > 0)
++			--*skip;
+ 		return (T_OK);
+ 	}
  
- const char *calendarFile = "calendar";	/* default calendar file */
--static const char *calendarHomes[] = {".calendar", _PATH_INCLUDE}; /* HOME */
-+static const char *calendarHomes[] = {".calendar", _PATH_INCLUDE_LOCAL, _PATH_INCLUDE}; /* HOME */
- static const char *calendarNoMail = "nomail";/* don't sent mail if file exist */
+-	if (*skip)
++	if (strncmp(line, "ifdef", 5) == 0) {
++		walk = line + 5;
++		trimlr(&walk);
++
++		if (*walk == '\0') {
++			warnx("Expecting arguments after #ifdef");
++			return (T_ERR);
++		}
++
++		if (*skip != 0 || definitions == NULL || sl_find(definitions, walk) == NULL)
++			++*skip;
++
+ 		return (T_OK);
++	}
  
- static char path[MAXPATHLEN];
++	if (strncmp(line, "ifndef", 6) == 0) {
++		walk = line + 6;
++		trimlr(&walk);
++
++		if (*walk == '\0') {
++			warnx("Expecting arguments after #ifndef");
++			return (T_ERR);
++		}
++
++		if (*skip != 0 || (definitions != NULL && sl_find(definitions, walk) != NULL))
++			++*skip;
++
++		return (T_OK);
++	}
++
++	if (strncmp(line, "else", 4) == 0) {
++		walk = line + 4;
++		trimlr(&walk);
++
++		if (*walk != '\0') {
++			warnx("Expecting no arguments after #else");
++			return (T_ERR);
++		}
++
++		if (*skip == 0)
++			*skip = 1;
++		else if (*skip == 1)
++			*skip = 0;
++
++		return (T_OK);
++	}
++
++	if (*skip != 0)
++		return (T_OK);
++
+ 	if (strncmp(line, "include", 7) == 0) {
+ 		walk = line + 7;
+ 
+@@ -206,21 +254,6 @@ token(char *line, FILE *out, bool *skip)
+ 		return (T_OK);
+ 	}
+ 
+-	if (strncmp(line, "ifndef", 6) == 0) {
+-		walk = line + 6;
+-		trimlr(&walk);
+-
+-		if (*walk == '\0') {
+-			warnx("Expecting arguments after #ifndef");
+-			return (T_ERR);
+-		}
+-
+-		if (definitions != NULL && sl_find(definitions, walk) != NULL)
+-			*skip = true;
+-
+-		return (T_OK);
+-	}
+-
+ 	return (T_PROCESS);
+ 
+ }
+@@ -248,7 +281,7 @@ cal_parse(FILE *in, FILE *out)
+ 	int month[MAXCOUNT];
+ 	int day[MAXCOUNT];
+ 	int year[MAXCOUNT];
+-	bool skip = false;
++	int skip = 0;
+ 	char dbuf[80];
+ 	char *pp, p;
+ 	struct tm tm;
+@@ -278,7 +311,7 @@ cal_parse(FILE *in, FILE *out)
+ 			}
+ 		}
+ 
+-		if (skip)
++		if (skip != 0)
+ 			continue;
+ 
+ 		buf = line;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010282110.09SLAkkr037318>