Klaus Schmidinger wrote:
On 06/17/07 18:16, Anssi Hannula wrote:
Klaus Schmidinger wrote:
VDR developer version 1.5.4 is now available - Now using 'fontconfig' to determine which fonts to use (thanks to Anssi Hannula
  for code and hints on how to do this).
+         char *s = (char *)FcNameUnparse(fontset->fonts[i]);
+         if (s) {
+            // Strip i18n stuff:
+            char *p = strchr(s, ',');
+            if (p)
+               *p = 0;
Dropping everything after ',' seems correct, but AFAICS it should be processed separately for the family name and style.

Currently, AFAICS,
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
becomes
DejaVu Sans
while I think it should become
DejaVu Sans:style=Condensed Oblique

Looks like I don't have any font here that has a comma in its name,
so I hope I got this right.

Can you please verify the attached patch?

I don't really use VDR 1.5 yet, but I tried to run the attached test program. However, it segfaults in *p = 0. I also tested the previous implementation quoted above, and it segfaults similarly.

--
Anssi Hannula
#include <string.h>
#include <stdio.h>

int main() {
	char *s = "DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique";
	
	if (s) {
		char *c = strchr(s, ':');
		if (c) {
			char *p = strchr(c+1 , ',');
			if (p)
				*p = 0;
		}
		char *p = strchr(s, ',');
		if (p) {
			if (c)
				memmove(p, c, strlen(c) + 1);
			else
				*p = 0;
		}
		printf("%s\n", s);
	}
}


_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to