[ekg2-commit] ekg2: drafts.c (HEAD) jogger.c (HEAD) [peres]

CVS commit cvs w toxygen.net
Nie, 6 Maj 2007, 11:16:35 CEST


Module name:	ekg2
Changes by:	peres	2007-05-06 11:16:33

Modified files:
	drafts.c jogger.c

Log message:
Checking values.

Index: drafts.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/drafts.c,v
diff -d -u -r1.3 -r1.4
--- drafts.c	6 May 2007 08:38:01 -0000	1.3
+++ drafts.c	6 May 2007 09:16:33 -0000	1.4
@@ -17,9 +17,10 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include <unistd.h>
 
-#include <sys/mman.h>		/* mmap */
+#include <sys/mman.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -38,18 +39,17 @@
 	"poziom:",	"level:",						NULL,
 	"kategoria:",	"category:",	"kategorie:",	"categories",		NULL, /* 4 */
 	"trackback:",								NULL, /* 5 */
-	"tidy",									NULL, /* 6 - XXX jhv, 1st */
-	"komentarze",	"comments:",						NULL, /* 7 - XXX jhv, 1&2 */
+	"tidy",									NULL, /* 6 */
+	"komentarze",	"comments:",						NULL, /* 7 */
 	"miniblog:",								NULL, /* 8 - deprecated */
 	NULL
 };
 
 const char *jogger_header_values[] = {
 	"off",		"no",		"nie",		"wylacz",	"wyłącz",
-	"on",		"yes",		"tak",		"wlacz",	"włącz",
-	"0",		"1",							NULL,
+	"on",		"yes",		"tak",		"wlacz",	"włącz",	NULL,
 
-	"jogger",	"2",							NULL,
+	"jogger",									NULL,
 	NULL
 };
 
@@ -142,7 +142,7 @@
 			if (!next)
 				s = entry+fs;
 		} else if ((*(s+1) == ' ') || (*(sep-1) == ' '))
-			print("jogger_warning_wrongkey_spaces", tmp);
+			print("jogger_warning_wrong_key_spaces", tmp);
 		else {
 			int i = 1;
 			const char **p = (sep-s < 12 ? jogger_header_keys : NULL);
@@ -162,7 +162,7 @@
 			}
 
 			if (!p || !*p)
-				print("jogger_warning_wrongkey", tmp);
+				print("jogger_warning_wrong_key", tmp);
 			else if (i == 4) {
 				char *values = xstrndup(sep+1, end-sep-1);
 				if (cssfind(values, "techblog", ',', 1) && cssfind(values, "miniblog", ',', 1))
@@ -172,6 +172,35 @@
 				const char *first = sep+1+xstrcspn(sep+1, " ");
 				if (xstrncmp(first, "http://", 7) && xstrncmp(first, "https://", 8)) /* XXX: https trackbacks? */
 					print("jogger_warning_malformed_url", tmp);
+			} else if (i == 6 || i == 7) {
+				const int jmax = i-5;
+				int j = 1;
+				char *myval = xstrndup(sep+1, end-sep-1);
+				const char **q = jogger_header_values;
+
+				for (; *q && j <= jmax; j++, q++) { /* second NULL or jmax */
+					for (; *q; q++) { /* first NULL */
+						if (!xstrcasecmp(myval, *q))
+							break;
+					}
+					if (*q)
+						break;
+				}
+
+				if (!*q || (j > jmax)) {
+					char *endval;
+					int n = strtol(myval, &endval, 10);
+
+					if (n == 0 && endval == myval) {
+						if (*myval == ' ' || *(myval+xstrlen(myval)-1) == ' ')
+							print("jogger_warning_wrong_value_spaces", tmp);
+						else
+							print("jogger_warning_wrong_value", tmp);
+					}
+					if (n > jmax)
+						print("jogger_warning_wrong_value", tmp);
+				}
+				xfree(myval);
 			} else if (i == 8)
 				print("jogger_warning_deprecated_miniblog", tmp);
 		}

Index: jogger.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/jogger.c,v
diff -d -u -r1.15 -r1.16
--- jogger.c	6 May 2007 08:38:01 -0000	1.15
+++ jogger.c	6 May 2007 09:16:33 -0000	1.16
@@ -229,11 +229,13 @@
 	format_add("jogger_emptyfile", _("%! File is empty!"), 1);
 	format_add("jogger_warning", _("%> During QA check of the entry, following warnings have been issued:"), 1);
 	format_add("jogger_warning_brokenheader", _("%> %|* Header with broken syntax found at: %c%1%n"), 1);
-	format_add("jogger_warning_wrongkey", _("%> %|* Header contains unknown/wrong key at: %c%1%n"), 1);
-	format_add("jogger_warning_wrongkey_spaces", _("%> %|* Key in header mustn't be followed or preceeded by spaces at: %c%1%n"), 1);
+	format_add("jogger_warning_wrong_key", _("%> %|* Header contains unknown/wrong key at: %c%1%n"), 1);
+	format_add("jogger_warning_wrong_key_spaces", _("%> %|* Key in header mustn't be followed or preceeded by spaces at: %c%1%n"), 1);
 	format_add("jogger_warning_deprecated_miniblog", _("%> %|* Key %Tminiblog%n is deprecated in favor of such category at: %c%1%n"), 1);
 	format_add("jogger_warning_miniblog_techblog", _("%> %|* Miniblog entry will be posted to Techblog at: %c%1%n"), 1);
 	format_add("jogger_warning_malformed_url", _("%> %|* Malformed URL found at: %c%1%n"), 1);
+	format_add("jogger_warning_wrong_value", _("%> %|* Incorrect value found at: %c%1%n"), 1);
+	format_add("jogger_warning_wrong_value_spaces", _("%> %|* Incorrent value found (try to remove leading&trailing spaces) at: %c%1%n"), 1);
 	format_add("jogger_warning_duplicated_header", _("%> %|* Duplicated header found at: %c%1%n"), 1);
 	format_add("jogger_warning_mislocated_header", _("%> %|* Mislocated header (?) at: %c%1%n"), 1);
 	format_add("jogger_warning_noexcerpt", _("%> %|* Entry text size exceeds 4096 bytes, but no <EXCERPT> tag has been found. It will be probably cut by Jogger near: ...%c%1%n..."), 1);


Więcej informacji o liście dyskusyjnej ekg2-commit