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

CVS commit cvs w toxygen.net
Nie, 6 Maj 2007, 10:38:03 CEST


Module name:	ekg2
Changes by:	peres	2007-05-06 10:38:01

Modified files:
	drafts.c jogger.c

Log message:
- 'snippets' posted with formats now have '...' inside, only when needed,
- checking for deprecated 'miniblog' key,
- checking for both miniblog&techblog entries,
- checking trackback URL.

Index: drafts.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/drafts.c,v
diff -d -u -r1.2 -r1.3
--- drafts.c	6 May 2007 00:06:45 -0000	1.2
+++ drafts.c	6 May 2007 08:38:01 -0000	1.3
@@ -31,14 +31,16 @@
 #include <ekg/xmalloc.h>
 
 	/* XXX, iconvize */
+	/* 10 char-long don't use ':', because they're already on limit (longer ones are discarded) */
 const char *jogger_header_keys[] = {
 	"tytul:",	"temat:",	"subject:",	"tytuł:",		NULL,
-	"kategoria:",	"category:",	"kategorie:",	"categories",		NULL,
 	"tag:",									NULL,
 	"poziom:",	"level:",						NULL,
-	"trackback:",								NULL, /* 5 - XXX check URI? */
+	"kategoria:",	"category:",	"kategorie:",	"categories",		NULL, /* 4 */
+	"trackback:",								NULL, /* 5 */
 	"tidy",									NULL, /* 6 - XXX jhv, 1st */
 	"komentarze",	"comments:",						NULL, /* 7 - XXX jhv, 1&2 */
+	"miniblog:",								NULL, /* 8 - deprecated */
 	NULL
 };
 
@@ -130,9 +132,9 @@
 		const char *end		= xstrchr(s, ')');
 		const char *next	= xstrchr(s, '\n');
 
-		char tmp[12];		/* longest correct key has 10 chars + '(' + \0 */
-		xstrncpy(tmp, s, 11);
-		tmp[11] = 0;
+		char tmp[24];		/* longest correct key has 10 chars + '(' + \0 */
+		xstrncpy(tmp, s, 20);
+		xstrcpy(tmp+20, "..."); /* add ellipsis and \0 */
 		xstrtr(tmp, '\n', 0);
 
 		if (!sep || !end || !next || (sep > end) || (end+1+xstrspn(end+1, " ") != next)) {
@@ -142,7 +144,7 @@
 		} else if ((*(s+1) == ' ') || (*(sep-1) == ' '))
 			print("jogger_warning_wrongkey_spaces", tmp);
 		else {
-			int i = 0;
+			int i = 1;
 			const char **p = (sep-s < 12 ? jogger_header_keys : NULL);
 
 			for (; *p; i++, p++) { /* awaiting second NULL here */
@@ -161,6 +163,17 @@
 
 			if (!p || !*p)
 				print("jogger_warning_wrongkey", tmp);
+			else if (i == 4) {
+				char *values = xstrndup(sep+1, end-sep-1);
+				if (cssfind(values, "techblog", ',', 1) && cssfind(values, "miniblog", ',', 1))
+					print("jogger_warning_miniblog_techblog", tmp);
+				xfree(values);
+			} else if (i == 5) {
+				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 == 8)
+				print("jogger_warning_deprecated_miniblog", tmp);
 		}
 
 		s = next+1;
@@ -168,9 +181,9 @@
 
 	s += xstrspn(s, " \n\r");	/* get on to first real char (again) */
 	if (*s == '(') {
-		char tmp[11];
+		char tmp[14];
 		xstrncpy(tmp, s, 10);
-		tmp[10] = 0;
+		xstrcpy(tmp+10, "...");
 		xstrtr(tmp, '\n', 0);
 		print("jogger_warning_mislocated_header", tmp);
 	}

Index: jogger.c
===================================================================
RCS file: /home/cvs/ekg2/plugins/jogger/jogger.c,v
diff -d -u -r1.14 -r1.15
--- jogger.c	6 May 2007 00:06:45 -0000	1.14
+++ jogger.c	6 May 2007 08:38:01 -0000	1.15
@@ -228,11 +228,14 @@
 	format_add("jogger_cantread", _("%! Unable to read entry file!"), 1);
 	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: %c%1%n..."), 1);
-	format_add("jogger_warning_wrongkey", _("%> %|* Header contains unknown/wrong key: %c%1%n..."), 1);
-	format_add("jogger_warning_wrongkey_spaces", _("%> %|* Key in header mustn't be followed or preceeded by spaces: %c%1%n..."), 1);
-	format_add("jogger_warning_duplicated_header", _("%> %|* Duplicated header found: %c%1%n..."), 1);
-	format_add("jogger_warning_mislocated_header", _("%> %|* Mislocated header (?): %c%1%n..."), 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_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_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);
 #endif
 	return 0;


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