Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Sep 2010 08:10:08 GMT
From:      Nikos Ntarmos <ntarmos@cs.uoi.gr>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/150233: conky 1.8 broken (sysutils/conky)
Message-ID:  <201009220810.o8M8A8cu090084@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/150233; it has been noted by GNATS.

From: Nikos Ntarmos <ntarmos@cs.uoi.gr>
To: bug-followup@FreeBSD.ORG
Cc:  
Subject: Re: ports/150233: conky 1.8 broken (sysutils/conky)
Date: Wed, 22 Sep 2010 10:40:52 +0300

 --1yeeQ81UyVL57Vl7
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 I've yet to find a 64-bit box to examine what's wrong with conky. For
 the time being, I'm backing out some of the patches incorporated in the
 previous version and attaching a shar archive of the new port. I can
 at least testify that this version works for me on FreeBSD/i386.
 
 \n\n
 
 --1yeeQ81UyVL57Vl7
 Content-Type: application/x-shar
 Content-Disposition: attachment; filename="conky.shar"
 Content-Transfer-Encoding: quoted-printable
 
 # This is a shell archive.  Save it in a file, remove anything before=0A# t=
 his line, and then unpack it by entering "sh file".  Note, it may=0A# creat=
 e directories; files and directories will be owned by you and=0A# have defa=
 ult permissions.=0A#=0A# This archive contains:=0A#=0A#	conky=0A#	conky/Mak=
 efile=0A#	conky/files=0A#	conky/files/patch-src-conky.c=0A#	conky/files/pat=
 ch-src-mixer.c=0A#	conky/files/patch-configure=0A#	conky/files/patch-src-co=
 mmon.c=0A#	conky/files/patch-src-i8k.c=0A#	conky/files/patch-src-diskio.c=
 =0A#	conky/files/patch-src-conky.h=0A#	conky/files/patch-src-mail.c=0A#	con=
 ky/files/patch-src-bmpx.c=0A#	conky/files/patch-src-top.c=0A#	conky/files/p=
 atch-src-logging.h=0A#	conky/files/patch-src-bmpx.h=0A#	conky/files/patch-s=
 rc-rss.c=0A#	conky/files/patch-lua-cairo.pkg=0A#	conky/files/patch-src-Make=
 file.in=0A#	conky/files/patch-src-core.c=0A#	conky/files/patch-src-freebsd.=
 c=0A#	conky/pkg-descr=0A#	conky/distinfo=0A#=0Aecho c - conky=0Amkdir -p co=
 nky > /dev/null 2>&1=0Aecho x - conky/Makefile=0Ased 's/^X//' >conky/Makefi=
 le << 'c6f03d61758ca6e484be3d23647891ea'=0AX# New ports collection makefile=
  for:	conky=0AX# Date created:				2005-08-27=0AX# Whom:					Roman Bogorodsk=
 iy <novel@FreeBSD.org>=0AX#=0AX# $FreeBSD: ports/sysutils/conky/Makefile,v =
 1.51 2010/01/28 01:59:34 amdmi3 Exp $=0AX#=0AX=0AXPORTNAME=3D	conky=0AXPORT=
 VERSION=3D	1.8.0=0AXPORTREVISION=3D	1=0AXCATEGORIES=3D	sysutils=0AXMASTER_S=
 ITES=3D	SF=0AX=0AXMAINTAINER=3D	ntarmos@cs.uoi.gr=0AXCOMMENT=3D	An advanced=
 , highly configurable system monitor for X=0AX=0AXCONFLICTS?=3D	conky-aweso=
 me-[0-9]*=0AXSLAVEDIRS=3D	sysutils/conky-awesome=0AX=0AXUSE_ICONV=3D	yes=0A=
 XUSE_BZIP2=3D	yes=0AXGNU_CONFIGURE=3D	yes=0AXUSE_XORG?=3D	x11 xext xdamage=
 =0AXUSE_GNOME?=3D	pkgconfig=0AXUSE_ICONV=3D	yes=0AXUSE_GMAKE=3D	yes=0AXCONF=
 IGURE_ARGS+=3D	--disable-portmon \=0AX			--disable-hddtemp=0AXCONFIGURE_ENV=
 +=3D	CPPFLAGS=3D"${CPPFLAGS} -I${LOCALBASE}/include" \=0AX		LDFLAGS=3D"${LD=
 FLAGS} -L${LOCALBASE}/lib"=0AX=0AXMAN1=3D		conky.1=0AXPLIST_FILES=3D	bin/co=
 nky=0AXPORTEXAMPLES=3D	conkyrc.sample=0AXPORTDOCS=3D	README AUTHORS ChangeL=
 og TODO NEWS \=0AX		docs.html variables.html config_settings.html=0AX=0AXOP=
 TIONS+=3D	APCUPSD "Enable APCUPSD support" Off \=0AX		AUDACIOUS "Enable Aud=
 acious support" Off \=0AX		BMPX "Enable BMPX support" Off \=0AX		MPD "Enabl=
 e MPD support" Off \=0AX		NCURSES "Enable ncurses support" Off \=0AX		RSS "=
 Enable RSS support" Off \=0AX		METAR "Enable METAR Weather support" Off \=
 =0AX		XOAP "Enable XOAP Weather support" Off \=0AX		XMMS2 "Enable XMMS2 sup=
 port" Off=0AX=0AX.if !empty(USE_XORG)=0AXOPTIONS+=3D	DOUBLE_BUFFER "Enable =
 double buffering" On \=0AX		IMLIB2 "Enable Imlib2 support" Off \=0AX		LUA "=
 Enable Lua support" Off \=0AX		LUA_CAIRO "Enable Lua-Cairo binding (impl. L=
 ua)" Off \=0AX		LUA_IMLIB2 "Enable Lua-Imlib2 binding (impl. Lua/Imlib2)" O=
 ff \=0AX		XFT "Enable Xft support" Off=0AX.else=0AXOPTIONS+=3D	LUA "Enable =
 Lua support" Off=0AX.endif=0AX=0AX.include <bsd.port.pre.mk>=0AX=0AX.if emp=
 ty(USE_XORG)=0AXWITHOUT_DOUBLE_BUFFER=3D	On=0AXCONFIGURE_ARGS+=3D	--disable=
 -x11 --disable-own-window=0AX.undef WITH_IMLIB2=0AX.undef WITH_LUA_CAIRO=0A=
 X.undef WITH_LUA_IMLIB2=0AX.undef WITH_XFT=0AX.endif=0AX=0AX.if defined(WIT=
 H_APCUPSD)=0AXRUN_DEPENDS+=3D		${LOCALBASE}/sbin/apcupsd:${PORTSDIR}/sysuti=
 ls/apcupsd=0AXCONFIGURE_ARGS+=3D	--enable-apcupsd=0AX.else=0AXCONFIGURE_ARG=
 S+=3D	--disable-apcupsd=0AX.endif=0AX=0AX.if defined(WITH_AUDACIOUS)=0AXLIB=
 _DEPENDS+=3D		audclient.2:${PORTSDIR}/multimedia/audacious=0AXCONFIGURE_ARG=
 S+=3D	--enable-audacious=0AX.else=0AXCONFIGURE_ARGS+=3D	--disable-audacious=
 =0AX.endif=0AX=0AX.if defined(WITH_BMPX)=0AXBUILD_DEPENDS+=3D		beep-media-p=
 layer-2:${PORTSDIR}/multimedia/bmpx=0AXRUN_DEPENDS+=3D		beep-media-player-2=
 :${PORTSDIR}/multimedia/bmpx=0AXLIB_DEPENDS+=3D		dbus-1.3:${PORTSDIR}/devel=
 /dbus=0AXCONFIGURE_ARGS+=3D	--enable-bmpx=0AX.else=0AXCONFIGURE_ARGS+=3D	--=
 disable-bmpx=0AX.endif=0AX=0AX.if defined(WITH_LUA) || defined(WITH_LUA_CAI=
 RO) || defined(WITH_LUA_IMLIB2)=0AXUSE_LUA=3D		5.1+=0AXCONFIGURE_ARGS+=3D	-=
 -enable-lua=0AX.else=0AXCONFIGURE_ARGS+=3D	--disable-lua=0AX.endif=0AX=0AX.=
 if defined(WITH_LUA_CAIRO)=0AXLIB_DEPENDS+=3D		cairo.2:${PORTSDIR}/graphics=
 /cairo=0AXBUILD_DEPENDS+=3D		tolua++-5.1:${PORTSDIR}/lang/tolua++=0AXRUN_DE=
 PENDS+=3D		tolua++-5.1:${PORTSDIR}/lang/tolua++=0AXCONFIGURE_ARGS+=3D	--ena=
 ble-lua-cairo=0AX.endif=0AX=0AX.if defined(WITH_IMLIB2) || defined(WITH_LUA=
 _IMLIB2)=0AXLIB_DEPENDS+=3D		Imlib2.5:${PORTSDIR}/graphics/imlib2=0AXCONFIG=
 URE_ARGS+=3D	--enable-imlib2=0AX.else=0AXCONFIGURE_ARGS+=3D	--disable-imlib=
 2=0AX.endif=0AX=0AX.if defined(WITH_LUA_IMLIB2)=0AXBUILD_DEPENDS+=3D		tolua=
 ++-5.1:${PORTSDIR}/lang/tolua++=0AXRUN_DEPENDS+=3D		tolua++-5.1:${PORTSDIR}=
 /lang/tolua++=0AXCONFIGURE_ARGS+=3D	--enable-lua-imlib2=0AX.endif=0AX=0AX.i=
 f defined(WITH_NCURSES)=0AXCONFIGURE_ARGS+=3D	--enable-ncurses=0AX.else=0AX=
 CONFIGURE_ARGS+=3D	--disable-ncurses=0AX.endif=0AX=0AX.if defined(WITH_XFT)=
 =0AXLIB_DEPENDS+=3D		Xft.2:${PORTSDIR}/x11-fonts/libXft=0AXCONFIGURE_ARGS+=
 =3D	--enable-xft=0AX.else=0AXCONFIGURE_ARGS+=3D	--disable-xft=0AX.endif=0AX=
 =0AX.if defined(WITHOUT_MPD)=0AXCONFIGURE_ARGS+=3D	--disable-mpd=0AX.endif=
 =0AX=0AX.if defined(WITH_RSS)=0AXLIB_DEPENDS+=3D		curl.6:${PORTSDIR}/ftp/cu=
 rl \=0AX			xml2.5:${PORTSDIR}/textproc/libxml2=0AXCONFIGURE_ARGS+=3D	--enab=
 le-rss=0AXUSE_GNOME+=3D		glib20=0AX.endif=0AX=0AX.if defined(WITH_METAR)=0A=
 XLIB_DEPENDS+=3D		curl.6:${PORTSDIR}/ftp/curl=0AXCONFIGURE_ARGS+=3D	--enabl=
 e-weather-metar=0AX.endif=0AX=0AX.if defined(WITH_XOAP)=0AXLIB_DEPENDS+=3D	=
 	curl.6:${PORTSDIR}/ftp/curl \=0AX			xml2.5:${PORTSDIR}/textproc/libxml2=0A=
 XCONFIGURE_ARGS+=3D	--enable-weather-xoap=0AX.endif=0AX=0AX.if defined(WITH=
 _XMMS2)=0AXLIB_DEPENDS+=3D		xmmsclient.5:${PORTSDIR}/audio/xmms2=0AXCONFIGU=
 RE_ARGS+=3D	--enable-xmms2=0AX.else=0AXCONFIGURE_ARGS+=3D	--disable-xmms2=
 =0AX.endif=0AX=0AX.if defined(WITHOUT_DOUBLE_BUFFER)=0AXCONFIGURE_ARGS+=3D	=
 --disable-double-buffer=0AX.endif=0AX=0AXpost-patch:=0AX	@${REINPLACE_CMD} =
 -e 's,lua5\.1,lua-5.1,g' \=0AX		${WRKSRC}/configure=0AX	@${REINPLACE_CMD} -=
 e 's,imlib_context_disconnect_display();,,g' \=0AX		${WRKSRC}/src/imlib2.c=
 =0AX=0AXdo-install:=0AX	${INSTALL_PROGRAM} ${WRKSRC}/src/conky ${PREFIX}/bi=
 n=0AX	${INSTALL_MAN} ${WRKSRC}/doc/conky.1 ${PREFIX}/man/man1=0AX=0AXpost-i=
 nstall:=0AX.if !defined(NOPORTEXAMPLES)=0AX	@${MKDIR} ${EXAMPLESDIR}=0AX.	i=
 f !empty(USE_XORG)=0AX	@${INSTALL_DATA} ${WRKSRC}/data/conky.conf ${EXAMPLE=
 SDIR}/conkyrc.sample=0AX.	else=0AX	@${INSTALL_DATA} ${WRKSRC}/data/conky_no=
 _x11.conf ${EXAMPLESDIR}/conkyrc.sample=0AX.	endif=0AX.endif=0AX=0AX.if !de=
 fined(NOPORTDOCS)=0AX	@${MKDIR} ${DOCSDIR}=0AX.for i in README AUTHORS Chan=
 geLog TODO NEWS=0AX	${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}=0AX.endfor=0A=
 X.for i in docs.html variables.html config_settings.html=0AX	${INSTALL_DATA=
 } ${WRKSRC}/doc/${i} ${DOCSDIR}=0AX.endfor=0AX.endif=0AX=0AX.include <bsd.p=
 ort.post.mk>=0Ac6f03d61758ca6e484be3d23647891ea=0Aecho c - conky/files=0Amk=
 dir -p conky/files > /dev/null 2>&1=0Aecho x - conky/files/patch-src-conky.=
 c=0Ased 's/^X//' >conky/files/patch-src-conky.c << 'c59c590f71d1b0c018c091a=
 f48aee345'=0AX--- src/conky.c.orig=0AX+++ src/conky.c=0AX@@ -166,9 +166,7 @=
 @=0AX #ifdef IOSTATS=0AX int top_io;=0AX #endif=0AX-#ifdef __linux__=0AX in=
 t top_running;=0AX-#endif=0AX int output_methods;=0AX static int extra_newl=
 ine;=0AX enum x_initialiser_state x_initialised =3D NO;=0AX@@ -269,9 +267,6=
  @@=0AX #ifdef IMLIB2=0AX 		   "  * Imlib2\n"=0AX #endif /* IMLIB2 */=0AX-#=
 ifdef MIXER_IS_ALSA=0AX-		   "  * ALSA mixer support\n"=0AX-#endif /* MIXER=
 _IS_ALSA */=0AX #ifdef APCUPSD=0AX 		   "  * apcupsd\n"=0AX #endif /* APCUP=
 SD */=0AX@@ -463,7 +458,7 @@=0AX 		}=0AX 		fclose(where);=0AX 	} else {=0AX=
 -		NORM_ERR("Could not open the file");=0AX+		NORM_ERR("Could not open the =
 file '%s'", f);=0AX 	}=0AX 	return ret;=0AX }=0AX@@ -512,6 +507,7 @@=0AX 	c=
 har *ps, *pe;=0AX 	int special_index =3D 0; /* specials index */=0AX =0AX+	=
 if(! b) return;=0AX 	for (ps =3D b, pe =3D b; *pe; pe++) {=0AX 		if (*pe =
 =3D=3D '\n') {=0AX 			*pe =3D '\0';=0AX@@ -765,6 +761,8 @@=0AX 	buff_in[0] =
 =3D 0;=0AX #endif /* HAVE_ICONV */=0AX =0AX+	if(! p) return;=0AX+=0AX 	p[0]=
  =3D 0;=0AX 	obj =3D root.next;=0AX 	while (obj && p_max_size > 0) {=0AX@@ =
 -1330,7 +1328,7 @@=0AX 					DO_JUMP;=0AX 				} else if (spc) {=0AX 					*sp=
 c =3D '\0';=0AX-					if (check_contains(obj->data.s, spc + 1))=0AX+					if =
 (!check_contains(obj->data.s, spc + 1))=0AX 						DO_JUMP;=0AX 					*spc =
 =3D ' ';=0AX 				}=0AX@@ -2062,9 +2069,11 @@=0AX 			OBJ(xmms2_percent) {=0A=
 X 				snprintf(p, p_max_size, "%2.0f", cur->xmms2.progress * 100);=0AX 			}=
 =0AX+#ifdef X11=0AX 			OBJ(xmms2_bar) {=0AX 				new_bar(obj, p, p_max_size,=
  (int) (cur->xmms2.progress * 255.0f));=0AX 			}=0AX+#endif /* X11 */=0AX 	=
 		OBJ(xmms2_playlist) {=0AX 				snprintf(p, p_max_size, "%s", cur->xmms2.pl=
 aylist);=0AX 			}=0AX@@ -2140,6 +2149,7 @@=0AX 				snprintf(p, p_max_size, =
 "%s",=0AX 					cur->audacious.items[AUDACIOUS_MAIN_VOLUME]);=0AX 			}=0AX+#=
 ifdef X11=0AX 			OBJ(audacious_bar) {=0AX 				double progress;=0AX =0AX@@ -=
 2148,6 +2158,7 @@=0AX 					atof(cur->audacious.items[AUDACIOUS_LENGTH_SECON=
 DS]);=0AX 				new_bar(obj, p, p_max_size, (int) (progress * 255.0f));=0AX 	=
 		}=0AX+#endif /* X11 */=0AX #endif /* AUDACIOUS */=0AX =0AX #ifdef BMPX=0A=
 X@@ -2173,7 +2184,6 @@=0AX 			/* we have four different types of top (top, =
 top_mem,=0AX 			 * top_time and top_io). To avoid having almost-same code f=
 our=0AX 			 * times, we have this special handler. */=0AX-#ifdef __linux__=
 =0AX 			break;=0AX 			case OBJ_top:=0AX 			case OBJ_top_mem:=0AX@@ -2182,7 =
 +2192,6 @@=0AX 			case OBJ_top_io:=0AX #endif=0AX 				print_top(obj, p, p_m=
 ax_size);=0AX-#endif /* __linux__ */=0AX 			OBJ(tail) {=0AX 				print_tailh=
 ead("tail", obj, p, p_max_size);=0AX 			}=0AX@@ -2375,13 +2384,7 @@=0AX #if=
 def HAVE_ICONV=0AX 			iconv_convert(&a, buff_in, p, p_max_size);=0AX #endif=
  /* HAVE_ICONV */=0AX-			if (obj->type !=3D OBJ_text && obj->type !=3D OBJ_=
 execp && obj->type !=3D OBJ_execpi=0AX-#ifdef HAVE_LUA=0AX-					&& obj->typ=
 e !=3D OBJ_lua && obj->type !=3D OBJ_lua_parse=0AX-#endif /* HAVE_LUA */=0A=
 X-					) {=0AX-				substitute_newlines(p, a - 2);=0AX-			}=0AX+			substitut=
 e_newlines(p, a - 2);=0AX 			p +=3D a;=0AX 			p_max_size -=3D a;=0AX 			(*p=
 ) =3D 0;=0AX@@ -3119,36 +3122,49 @@=0AX 						if (seconds !=3D 0) {=0AX 			=
 				timeunits =3D seconds / 86400; seconds %=3D 86400;=0AX 							if (timeu=
 nits > 0) {=0AX-								asprintf(&tmp_day_str, "%dd", timeunits);=0AX+					=
 			if (asprintf(&tmp_day_str, "%dd", timeunits) < 0) {=0AX+									tmp_day=
 _str =3D 0;=0AX+								}=0AX 							} else {=0AX 								tmp_day_str =3D s=
 trdup("");=0AX 							}=0AX 							timeunits =3D seconds / 3600; seconds %=
 =3D 3600;=0AX 							if (timeunits > 0) {=0AX-								asprintf(&tmp_hour_st=
 r, "%dh", timeunits);=0AX+								if (asprintf(&tmp_hour_str, "%dh", timeun=
 its) < 0) {=0AX+									tmp_day_str =3D 0;=0AX+								}=0AX 							} else=
  {=0AX 								tmp_hour_str =3D strdup("");=0AX 							}=0AX 							timeuni=
 ts =3D seconds / 60; seconds %=3D 60;=0AX 							if (timeunits > 0) {=0AX-	=
 							asprintf(&tmp_min_str, "%dm", timeunits);=0AX+								if (asprintf(&=
 tmp_min_str, "%dm", timeunits) < 0) {=0AX+									tmp_min_str =3D 0;=0AX+	=
 							}=0AX 							} else {=0AX 								tmp_min_str =3D strdup("");=0AX 		=
 					}=0AX 							if (seconds > 0) {=0AX-								asprintf(&tmp_sec_str, "%d=
 s", seconds);=0AX+								if (asprintf(&tmp_sec_str, "%ds", seconds) < 0) {=
 =0AX+									tmp_sec_str =3D 0;=0AX+								}=0AX 							} else {=0AX 				=
 				tmp_sec_str =3D strdup("");=0AX 							}=0AX-							asprintf(&tmp_str, =
 "%s%s%s%s", tmp_day_str, tmp_hour_str, tmp_min_str, tmp_sec_str);=0AX-					=
 		free(tmp_day_str); free(tmp_hour_str); free(tmp_min_str); free(tmp_sec_st=
 r);=0AX+							if (asprintf(&tmp_str, "%s%s%s%s", tmp_day_str,=0AX+								=
 		tmp_hour_str, tmp_min_str, tmp_sec_str) < 0) {=0AX+								tmp_str =3D 0;=
 =0AX+							}=0AX+#define FREE(a) if ((a)) free((a));=0AX+							FREE(tmp_d=
 ay_str); FREE(tmp_hour_str); FREE(tmp_min_str); FREE(tmp_sec_str);=0AX 				=
 		} else {=0AX-							asprintf(&tmp_str, "Range not possible"); // should n=
 ever happen, but better safe then sorry=0AX+							tmp_str =3D strdup("Rang=
 e not possible"); /* should never happen, but better safe then sorry */=0AX=
  						}=0AX 						cur_x +=3D (w / 2) - (font_ascent() * (strlen(tmp_str) /=
  2));=0AX 						cur_y +=3D font_h / 2;=0AX 						draw_string(tmp_str);=0AX-=
 						free(tmp_str);=0AX+						FREE(tmp_str);=0AX+#undef FREE=0AX 						cur=
 _x =3D tmp_x;=0AX 						cur_y =3D tmp_y;=0AX 					}=0AX@@ -3974,11 +3990,39=
  @@=0AX 	initialisation(argc_copy, argv_copy);=0AX }=0AX =0AX-void clean_up=
 (void *memtofree1, void* memtofree2)=0AX-{=0AX-	int i;=0AX+#ifdef X11=0AX+v=
 oid clean_up_x11() {=0AX+	if(window_created =3D=3D 1) {=0AX+		XClearArea(di=
 splay, window.window, text_start_x - window.border_inner_margin - window.bo=
 rder_outer_margin - window.border_width,=0AX+			text_start_y - window.borde=
 r_inner_margin - window.border_outer_margin - window.border_width,=0AX+			t=
 ext_width + window.border_inner_margin * 2 + window.border_outer_margin * 2=
  + window.border_width * 2,=0AX+			text_height + window.border_inner_margin=
  * 2 + window.border_outer_margin * 2 + window.border_width * 2, 0);=0AX+	}=
 =0AX+	destroy_window();=0AX+	free_fonts();=0AX+	fonts =3D NULL;=0AX+	if(x11=
 _stuff.region) {=0AX+		XDestroyRegion(x11_stuff.region);=0AX+		x11_stuff.re=
 gion =3D NULL;=0AX+	}=0AX+	if(display) {=0AX+		XCloseDisplay(display);=0AX+=
 		display =3D NULL;=0AX+	}=0AX+	if(info.x11.desktop.all_names) {=0AX+		free=
 (info.x11.desktop.all_names);=0AX+		info.x11.desktop.all_names =3D NULL;=0A=
 X+	}=0AX+	if (info.x11.desktop.name) {=0AX+		free(info.x11.desktop.name);=
 =0AX+		info.x11.desktop.name =3D NULL;=0AX+	}=0AX+	x_initialised =3D NO;=0A=
 X+}=0AX+#endif=0AX =0AX-	free_update_callbacks();=0AX+void clean_up_without=
 _threads(void *memtofree1, void* memtofree2) {=0AX+	int i;=0AX =0AX #ifdef =
 NCURSES=0AX 	if(output_methods & TO_NCURSES) {=0AX@@ -4001,29 +4045,7 @@=0A=
 X 	}=0AX #ifdef X11=0AX 	if (x_initialised =3D=3D YES) {=0AX-		if(window_cr=
 eated =3D=3D 1) {=0AX-			XClearArea(display, window.window, text_start_x - =
 window.border_inner_margin - window.border_outer_margin - window.border_wid=
 th,=0AX-				text_start_y - window.border_inner_margin - window.border_outer=
 _margin - window.border_width,=0AX-				text_width + window.border_inner_mar=
 gin * 2 + window.border_outer_margin * 2 + window.border_width * 2,=0AX-			=
 	text_height + window.border_inner_margin * 2 + window.border_outer_margin =
 * 2 + window.border_width * 2, 0);=0AX-		}=0AX-		destroy_window();=0AX-		fr=
 ee_fonts();=0AX-		if(x11_stuff.region) {=0AX-			XDestroyRegion(x11_stuff.re=
 gion);=0AX-			x11_stuff.region =3D NULL;=0AX-		}=0AX-		XCloseDisplay(displa=
 y);=0AX-		display =3D NULL;=0AX-		if(info.x11.desktop.all_names) {=0AX-			f=
 ree(info.x11.desktop.all_names);=0AX-			info.x11.desktop.all_names =3D NULL=
 ;=0AX-		}=0AX-		if (info.x11.desktop.name) {=0AX-			free(info.x11.desktop.n=
 ame);=0AX-			info.x11.desktop.name =3D NULL;=0AX-		}=0AX-		x_initialised =
 =3D NO;=0AX+		clean_up_x11();=0AX 	}else{=0AX 		free(fonts);	//in set_defau=
 lt_configurations a font is set but not loaded=0AX 		font_count =3D -1;=0AX=
 @@ -4097,6 +4119,12 @@=0AX 	}=0AX }=0AX =0AX+void clean_up(void *memtofree1=
 , void* memtofree2)=0AX+{=0AX+	free_update_callbacks();=0AX+	clean_up_witho=
 ut_threads(memtofree1, memtofree2);=0AX+}=0AX+=0AX static int string_to_boo=
 l(const char *s)=0AX {=0AX 	if (!s) {=0AX@@ -4200,9 +4228,7 @@=0AX #ifdef I=
 OSTATS=0AX 	top_io =3D 0;=0AX #endif=0AX-#ifdef __linux__=0AX 	top_running =
 =3D 0;=0AX-#endif=0AX #ifdef MPD=0AX 	mpd_env_host =3D getenv("MPD_HOST");=
 =0AX 	mpd_env_port =3D getenv("MPD_PORT");=0AX@@ -4252,6 +4278,9 @@=0AX 	ou=
 tput_methods =3D TO_STDOUT;=0AX #endif=0AX #ifdef X11=0AX+#ifdef BUILD_XFT=
 =0AX+	use_xft =3D 0;=0AX+#endif=0AX 	show_graph_scale =3D 0;=0AX 	show_grap=
 h_range =3D 0;=0AX 	draw_shades =3D 1;=0AX@@ -4552,15 +4581,12 @@=0AX =0AX =
 #ifdef X11=0AX 		CONF2("out_to_x") {=0AX-			/* don't listen if X is already=
  initialised or=0AX-			 * if we already know we don't want it */=0AX-			if(=
 x_initialised !=3D YES) {=0AX-				if (string_to_bool(value)) {=0AX-					out=
 put_methods &=3D TO_X;=0AX-				} else {=0AX-					output_methods &=3D ~TO_X;=
 =0AX-					x_initialised =3D NEVER;=0AX-				}=0AX+			if (string_to_bool(valu=
 e)) {=0AX+				output_methods &=3D TO_X;=0AX+			} else {=0AX+				clean_up_x1=
 1();=0AX+				output_methods &=3D ~TO_X;=0AX+				x_initialised =3D NEVER;=0A=
 X 			}=0AX 		}=0AX 		CONF("display") {=0AX@@ -4573,7 +4599,7 @@=0AX 			}=0A=
 X 		}=0AX 		CONF("alignment") {=0AX-			setalignment(&text_alignment, window=
 =2Etype, value, f, line, true);=0AX+			setalignment(&text_alignment, window=
 =2Etype, value, f, line, 1);=0AX 		}=0AX 		CONF("background") {=0AX 			fork=
 _to_background =3D string_to_bool(value);=0AX@@ -4609,7 +4635,7 @@=0AX 		CO=
 NF("border_width") {=0AX 			if (value) {=0AX 				window.border_width =3D st=
 rtol(value, 0, 0);=0AX-				if (window.border_width < 0) window.border_width=
  =3D 0;=0AX+				if (window.border_width < 1) window.border_width =3D 1;=0AX=
  			} else {=0AX 				CONF_ERR;=0AX 			}=0AX@@ -5696,7 +5722,7 @@=0AX 				se=
 t_first_font(optarg);=0AX 				break;=0AX 			case 'a':=0AX-				setalignment(=
 &text_alignment, window.type, optarg, NULL, 0, false);=0AX+				setalignment=
 (&text_alignment, window.type, optarg, NULL, 0, 0);=0AX 				break;=0AX =0AX=
  #ifdef OWN_WINDOW=0AX@@ -5895,7 +5921,9 @@=0AX 				current_config =3D strn=
 dup(optarg, max_user_text);=0AX 				break;=0AX 			case 'q':=0AX-				freopen=
 ("/dev/null", "w", stderr);=0AX+				if (!freopen("/dev/null", "w", stderr))=
  {=0AX+					NORM_ERR("unable to redirect stderr to /dev/null");=0AX+				}=
 =0AX 				break;=0AX 			case 'h':=0AX 				print_help(argv[0]);=0AX@@ -5929,7=
  +5957,13 @@=0AX #endif /* XOAP */=0AX =0AX #ifdef HAVE_SYS_INOTIFY_H=0AX-	=
 inotify_fd =3D inotify_init1(IN_NONBLOCK);=0AX+	inotify_fd =3D inotify_init=
 ();=0AX+	if(inotify_fd !=3D -1) {=0AX+		int fl;=0AX+=0AX+		fl =3D fcntl(ino=
 tify_fd, F_GETFL);=0AX+		fcntl(inotify_fd, F_SETFL, fl | O_NONBLOCK);=0AX+	=
 }=0AX #endif /* HAVE_SYS_INOTIFY_H */=0AX =0AX 	initialisation(argc, argv);=
 =0Ac59c590f71d1b0c018c091af48aee345=0Aecho x - conky/files/patch-src-mixer.=
 c=0Ased 's/^X//' >conky/files/patch-src-mixer.c << '34de5c2a761905d37e86bab=
 a46208622'=0AX--- src/mixer.c.orig=0AX+++ src/mixer.c=0AX@@ -281,6 +281,7 @=
 @ int mixer_is_mute(int i)=0AX =0AX #define mixer_to_255(i, x) x=0AX #endif=
  /* MIXER_IS_ALSA */=0AX+#define mixer_to_255(i, x) x * 2.55=0AX =0AX void =
 parse_mixer_arg(struct text_object *obj, const char *arg)=0AX {=0A34de5c2a7=
 61905d37e86baba46208622=0Aecho x - conky/files/patch-configure=0Ased 's/^X/=
 /' >conky/files/patch-configure << '498e2a3501cfe7ff2362b87148767ae4'=0AX--=
 - configure.orig=0AX+++ configure=0AX@@ -11233,12 +11233,12 @@=0AX         =
 pkg_cv_Audacious_CFLAGS=3D"$Audacious_CFLAGS"=0AX     else=0AX         if t=
 est -n "$PKG_CONFIG" && \=0AX-    { { $as_echo "$as_me:${as_lineno-$LINENO}=
 : \$PKG_CONFIG --exists --print-errors \"audacious >=3D 1.4.0 dbus-glib-1 g=
 lib-2.0 gobject-2.0\""; } >&5=0AX-  ($PKG_CONFIG --exists --print-errors "a=
 udacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0") 2>&5=0AX+    { { $as=
 _echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"=
 audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0\""; } >&5=
 =0AX+  ($PKG_CONFIG --exists --print-errors "audacious >=3D 1.4.0 audclient=
  dbus-glib-1 glib-2.0 gobject-2.0") 2>&5=0AX   ac_status=3D$?=0AX   $as_ech=
 o "$as_me:${as_lineno-$LINENO}: \$? =3D $ac_status" >&5=0AX   test $ac_stat=
 us =3D 0; }; then=0AX-  pkg_cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "au=
 dacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0" 2>/dev/null`=0AX+  pkg=
 _cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "audacious >=3D 1.4.0 audclien=
 t dbus-glib-1 glib-2.0 gobject-2.0" 2>/dev/null`=0AX else=0AX   pkg_failed=
 =3Dyes=0AX fi=0AX@@ -11251,12 +11251,12 @@=0AX         pkg_cv_Audacious_LIB=
 S=3D"$Audacious_LIBS"=0AX     else=0AX         if test -n "$PKG_CONFIG" && =
 \=0AX-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists =
 --print-errors \"audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0\""; =
 } >&5=0AX-  ($PKG_CONFIG --exists --print-errors "audacious >=3D 1.4.0 dbus=
 -glib-1 glib-2.0 gobject-2.0") 2>&5=0AX+    { { $as_echo "$as_me:${as_linen=
 o-$LINENO}: \$PKG_CONFIG --exists --print-errors \"audacious >=3D 1.4.0 aud=
 client dbus-glib-1 glib-2.0 gobject-2.0\""; } >&5=0AX+  ($PKG_CONFIG --exis=
 ts --print-errors "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobj=
 ect-2.0") 2>&5=0AX   ac_status=3D$?=0AX   $as_echo "$as_me:${as_lineno-$LIN=
 ENO}: \$? =3D $ac_status" >&5=0AX   test $ac_status =3D 0; }; then=0AX-  pk=
 g_cv_Audacious_LIBS=3D`$PKG_CONFIG --libs "audacious >=3D 1.4.0 dbus-glib-1=
  glib-2.0 gobject-2.0" 2>/dev/null`=0AX+  pkg_cv_Audacious_LIBS=3D`$PKG_CON=
 FIG --libs "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0=
 " 2>/dev/null`=0AX else=0AX   pkg_failed=3Dyes=0AX fi=0AX@@ -11275,14 +1127=
 5,14 @@=0AX         _pkg_short_errors_supported=3Dno=0AX fi=0AX         if =
 test $_pkg_short_errors_supported =3D yes; then=0AX-	        Audacious_PKG_=
 ERRORS=3D`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "aud=
 acious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0"`=0AX+	        Audacious=
 _PKG_ERRORS=3D`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors=
  "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0"`=0AX    =
      else=0AX-	        Audacious_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdo=
 ut --print-errors "audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0"`=
 =0AX+	        Audacious_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdout --prin=
 t-errors "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0"`=
 =0AX         fi=0AX 	# Put the nasty error message in config.log where it b=
 elongs=0AX 	echo "$Audacious_PKG_ERRORS" >&5=0AX =0AX-	as_fn_error "Package=
  requirements (audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0) were =
 not met:=0AX+	as_fn_error "Package requirements (audacious >=3D 1.4.0 audcl=
 ient dbus-glib-1 glib-2.0 gobject-2.0) were not met:=0AX =0AX $Audacious_PK=
 G_ERRORS=0AX =0AX@@ -11645,7 +11645,7 @@=0AX =0AX =0AX if test x$want_apcup=
 sd =3D xyes; then=0AX-  if test x"$uname" !=3D xLinux; then=0AX+  if test x=
 "$uname" !=3D xLinux -a x"$uname" !=3D xFreeBSD; then=0AX       { $as_echo =
 "$as_me:${as_lineno-$LINENO}: apcupsd not supported on $uname... disabling"=
  >&5=0AX $as_echo "$as_me: apcupsd not supported on $uname... disabling" >&=
 6;}=0AX       want_apcupsd=3D"not supported on $uname"=0AX@@ -11675,7 +1167=
 5,7 @@=0AX =0AX =0AX if test x$want_iostats =3D xyes; then=0AX-  if test x"=
 $uname" !=3D xLinux; then=0AX+  if test x"$uname" !=3D xLinux -a x"$uname" =
 !=3D xFreeBSD; then=0AX       { $as_echo "$as_me:${as_lineno-$LINENO}: iost=
 ats not supported on $uname... disabling" >&5=0AX $as_echo "$as_me: iostats=
  not supported on $uname... disabling" >&6;}=0AX       want_iostats=3D"not =
 supported on $uname"=0AX@@ -15950,11 +15950,6 @@=0AX fi=0AX =0AX fi=0AX-if =
 test x$want_alsa =3D xyes; then=0AX-=0AX-$as_echo "#define MIXER_IS_ALSA 1"=
  >>confdefs.h=0AX-=0AX-fi=0AX =0AX for ac_header in signal.h unistd.h sys/u=
 tsname.h sys/stat.h linux/soundcard.h alsa/asoundlib.h dirent.h mcheck.h \=
 =0AX       sys/statfs.h sys/param.h pthread.h semaphore.h assert.h errno.h =
 time.h=0AX@@ -18905,6 +18900,7 @@=0AX   ALSA mixer:       $want_alsa=0AX   =
 apcupsd:          $want_apcupsd=0AX   I/O stats:        $want_iostats=0AX+ =
  ncurses:          $want_ncurses=0AX =0AX  * Lua ($want_lua) bindings:=0AX =
   Cairo:            $want_lua_cairo=0A498e2a3501cfe7ff2362b87148767ae4=0Aec=
 ho x - conky/files/patch-src-common.c=0Ased 's/^X//' >conky/files/patch-src=
 -common.c << '24cdd30e7953ea41310801eca05f1374'=0AX--- src/common.c.orig=0A=
 X+++ src/common.c=0AX@@ -411,8 +417,14 @@ void update_stuff(void)=0AX 	}=0A=
 X 	/* need to synchronise here, otherwise locking is needed (as data=0AX 	 =
 * would be printed with some update callbacks still running) */=0AX-	for (u=
 c =3D update_cb_head.next; uc; uc =3D uc->next)=0AX+	for (uc =3D update_cb_=
 head.next; uc; uc =3D uc->next) {=0AX 		sem_wait(&uc->end_wait);=0AX+		if(u=
 c =3D=3D uc->next) {=0AX+			pthread_join(uc->thread, NULL);=0AX+			free(uc)=
 ;=0AX+			exit(EXIT_FAILURE);=0AX+		}=0AX+	}=0AX =0AX 	/* XXX: move the foll=
 owing into the update_meminfo() functions? */=0AX 	if (no_buffers) {=0A24cd=
 d30e7953ea41310801eca05f1374=0Aecho x - conky/files/patch-src-i8k.c=0Ased '=
 s/^X//' >conky/files/patch-src-i8k.c << '03f7f438b524e17aa11f6534db01c938'=
 =0AX--- src/i8k.c.orig=0AX+++ src/i8k.c=0AX@@ -61,8 +61,12 @@ void update_i=
 8k(void)=0AX 		i8k_procbuf =3D (char *) malloc(128 * sizeof(char));=0AX 	}=
 =0AX 	if ((fp =3D fopen(PROC_I8K, "r")) =3D=3D NULL) {=0AX-		CRIT_ERR(NULL,=
  NULL, "/proc/i8k doesn't exist! use insmod to make sure the kernel "=0AX+	=
 	free(i8k_procbuf);=0AX+		i8k_procbuf =3D NULL;=0AX+		NORM_ERR("/proc/i8k d=
 oesn't exist! use insmod to make sure the kernel "=0AX 			"driver is loaded=
 =2E..");=0AX+		clean_up_without_threads(NULL, NULL);=0AX+		free(current_mai=
 l_spool);=0AX 	}=0AX =0AX 	memset(&i8k_procbuf[0], 0, 128);=0A03f7f438b524e=
 17aa11f6534db01c938=0Aecho x - conky/files/patch-src-diskio.c=0Ased 's/^X//=
 ' >conky/files/patch-src-diskio.c << '4cdfd9587647cda26c3e5aa9031719fa'=0AX=
 --- src/diskio.c.orig=0AX+++ src/diskio.c=0AX@@ -76,12 +76,6 @@ struct disk=
 io_stat *prepare_diskio_stat(const char *s)=0AX 	if (!s)=0AX 		return &stat=
 s;=0AX =0AX-#if defined(__FreeBSD__)=0AX-	if (strncmp(s, "/dev/", 5) =3D=3D=
  0) {=0AX-		// supplied a /dev/device arg, so cut off the /dev part=0AX-		s=
 trncpy(device_name, s + 5, text_buffer_size);=0AX-	} else=0AX-#endif=0AX 	s=
 trncpy(device_name, s, text_buffer_size);=0AX =0AX 	snprintf(stat_name, tex=
 t_buffer_size, "/dev/%s", device_name);=0A4cdfd9587647cda26c3e5aa9031719fa=
 =0Aecho x - conky/files/patch-src-conky.h=0Ased 's/^X//' >conky/files/patch=
 -src-conky.h << 'af61214ebb1a9bd0a4b9cfc894797f31'=0AX--- src/conky.h.orig=
 =0AX+++ src/conky.h=0AX@@ -296,9 +296,7 @@ extern int top_cpu, top_mem, top=
 _time;=0AX #ifdef IOSTATS=0AX extern int top_io;=0AX #endif=0AX-#ifdef __li=
 nux__=0AX extern int top_running;=0AX-#endif=0AX =0AX /* defined in conky.c=
 , needed by top.c */=0AX extern int cpu_separate;=0Aaf61214ebb1a9bd0a4b9cfc=
 894797f31=0Aecho x - conky/files/patch-src-mail.c=0Ased 's/^X//' >conky/fil=
 es/patch-src-mail.c << '08f1d225e95a511dc39755093b1c6f93'=0AX--- src/mail.c=
 =2Eorig=0AX+++ src/mail.c=0AX@@ -61,6 +61,8 @@=0AX #define POP3_TYPE 1=0AX =
 #define IMAP_TYPE 2=0AX =0AX+#define MAXFOLDERSIZE 128=0AX+=0AX struct mail=
 _s {			// for imap and pop3=0AX 	unsigned long unseen;=0AX 	unsigned long m=
 essages;=0AX@@ -74,7 +76,7 @@ struct mail_s {			// for imap and pop3=0AX 	c=
 har user[128];=0AX 	char pass[128];=0AX 	char command[1024];=0AX-	char fold=
 er[128];=0AX+	char folder[MAXFOLDERSIZE];=0AX 	timed_thread *p_timed_thread=
 ;=0AX 	char secure;=0AX };=0AX@@ -465,17 +467,20 @@ struct mail_s *parse_ma=
 il_args(char type, const char *arg)=0AX 	if (type =3D=3D IMAP_TYPE) {=0AX 	=
 	tmp =3D strstr(arg, "-f ");=0AX 		if (tmp) {=0AX-			int len =3D 1024;=0AX+=
 			int len =3D MAXFOLDERSIZE-1;=0AX 			tmp +=3D 3;=0AX 			if (tmp[0] =3D=3D=
  '\'') {=0AX 				len =3D strstr(tmp + 1, "'") - tmp - 1;=0AX-				if (len > =
 1024) {=0AX-					len =3D 1024;=0AX+				if (len > MAXFOLDERSIZE-1) {=0AX+			=
 		len =3D MAXFOLDERSIZE-1;=0AX 				}=0AX+				tmp++;=0AX 			}=0AX-			strncpy=
 (mail->folder, tmp + 1, len);=0AX+			strncpy(mail->folder, tmp, len);=0AX+	=
 		mail->folder[len-1] =3D 0;=0AX 		} else {=0AX-			strncpy(mail->folder, "I=
 NBOX", 128);	// default imap inbox=0AX+			strncpy(mail->folder, "INBOX", MA=
 XFOLDERSIZE-1);	// default imap inbox=0AX+			mail->folder[MAXFOLDERSIZE-1] =
 =3D 0;=0AX 		}=0AX 	}=0AX 	tmp =3D strstr(arg, "-e ");=0A08f1d225e95a511dc3=
 9755093b1c6f93=0Aecho x - conky/files/patch-src-bmpx.c=0Ased 's/^X//' >conk=
 y/files/patch-src-bmpx.c << '7009353d4142186daa1a0cda0c310e52'=0AX--- src/b=
 mpx.c.orig=0AX+++ src/bmpx.c=0AX@@ -42,7 +42,7 @@=0AX static int connected =
 =3D 0;=0AX static char *unknown =3D "unknown";=0AX =0AX-void fail(GError *e=
 rror);=0AX+void fail(GError *error, struct information *);=0AX =0AX void up=
 date_bmpx()=0AX {=0AX@@ -58,15 +58,15 @@=0AX 		bus =3D dbus_g_bus_get(DBUS_=
 BUS_SESSION, &error);=0AX 		if (bus =3D=3D NULL) {=0AX 			NORM_ERR("BMPx er=
 ror 1: %s\n", error->message);=0AX-			fail(error);=0AX+			fail(error, curre=
 nt_info);=0AX 			return;=0AX 		}=0AX =0AX 		remote_object =3D dbus_g_proxy_=
 new_for_name(bus, BMP_DBUS_SERVICE,=0AX-				BMP_DBUS_PATH, BMP_DBUS_INTERFA=
 CE);=0AX+				BMP_DBUS_PATH__BMP, BMP_DBUS_INTERFACE__BMP);=0AX 		if (!remot=
 e_object) {=0AX 			NORM_ERR("BMPx error 2: %s\n", error->message);=0AX-			f=
 ail(error);=0AX+			fail(error, current_info);=0AX 			return;=0AX 		}=0AX =
 =0AX@@ -78,7 +78,7 @@=0AX 					G_TYPE_INVALID, G_TYPE_INT, &current_track, =
 G_TYPE_INVALID)) {=0AX 		} else {=0AX 			NORM_ERR("BMPx error 3: %s\n", err=
 or->message);=0AX-			fail(error);=0AX+			fail(error, current_info);=0AX 			=
 return;=0AX 		}=0AX =0AX@@ -112,17 +112,17 @@=0AX 				g_value_get_string(g_=
 hash_table_lookup(metadata, "location"));=0AX 		} else {=0AX 			NORM_ERR("B=
 MPx error 4: %s\n", error->message);=0AX-			fail(error);=0AX+			fail(error,=
  current_info);=0AX 			return;=0AX 		}=0AX =0AX 		g_hash_table_destroy(meta=
 data);=0AX 	} else {=0AX-		fail(error);=0AX+		fail(error, current_info);=0A=
 X 	}=0AX }=0AX =0AX-void fail(GError *error)=0AX+void fail(GError *error, s=
 truct information *current_info)=0AX {=0AX 	if (error) {=0AX 		g_error_free=
 (error);=0A7009353d4142186daa1a0cda0c310e52=0Aecho x - conky/files/patch-sr=
 c-top.c=0Ased 's/^X//' >conky/files/patch-src-top.c << '5a1c07c8f27bb5fa50c=
 9d078a689ba56'=0AX--- src/top.c.orig=0AX+++ src/top.c=0AX@@ -880,16 +880,22=
  @@ int parse_top_args(const char *s, const char *arg, struct text_object *=
 obj)=0AX #else /* IOSTATS */=0AX 			NORM_ERR("must be one of: name, cpu, pi=
 d, mem, time, mem_res, mem_vsize");=0AX #endif /* IOSTATS */=0AX+			free(td=
 ->s);=0AX+			free(obj->data.opaque);=0AX 			return 0;=0AX 		}=0AX 		if (n <=
  1 || n > 10) {=0AX 			NORM_ERR("invalid num arg for top. Must be between 1=
  and 10.");=0AX+			free(td->s);=0AX+			free(obj->data.opaque);=0AX 			retur=
 n 0;=0AX 		} else {=0AX 			td->num =3D n - 1;=0AX 		}=0AX 	} else {=0AX 		N=
 ORM_ERR("invalid argument count for top");=0AX+		free(td->s);=0AX+		free(ob=
 j->data.opaque);=0AX 		return 0;=0AX 	}=0AX 	return 1;=0A5a1c07c8f27bb5fa50=
 c9d078a689ba56=0Aecho x - conky/files/patch-src-logging.h=0Ased 's/^X//' >c=
 onky/files/patch-src-logging.h << 'd71a60d6818a8d7f78b196674f4e0c11'=0AX---=
  src/logging.h.orig=0AX+++ src/logging.h=0AX@@ -30,6 +30,7 @@=0AX #include =
 "mail.h"=0AX =0AX void clean_up(void *memtofree1, void* memtofree2);=0AX+vo=
 id clean_up_without_threads(void *memtofree1, void* memtofree2);=0AX =0AX #=
 ifndef _LOGGING_H=0AX #define _LOGGING_H=0AX@@ -44,6 +45,9 @@ void clean_up=
 (void *memtofree1, void* memtofree2);=0AX #define CRIT_ERR(memtofree1, memt=
 ofree2, ...) \=0AX 	{ NORM_ERR(__VA_ARGS__); clean_up(memtofree1, memtofree=
 2); free(current_mail_spool); exit(EXIT_FAILURE); }=0AX =0AX+#define THREAD=
 _CRIT_ERR(memtofree1, memtofree2, ...) \=0AX+	{ NORM_ERR(__VA_ARGS__); clea=
 n_up_without_threads(memtofree1, memtofree2); free(current_mail_spool); ret=
 urn; }=0AX+=0AX /* debugging output */=0AX extern int global_debug_level;=
 =0AX #define __DBGP(level, ...) \=0Ad71a60d6818a8d7f78b196674f4e0c11=0Aecho=
  x - conky/files/patch-src-bmpx.h=0Ased 's/^X//' >conky/files/patch-src-bmp=
 x.h << '7aa331d858358f3f577dc4fd46751684'=0AX--- src/bmpx.h.orig=0AX+++ src=
 /bmpx.h=0AX@@ -0,0 +1,39 @@=0AX+/* -*- mode: c; c-basic-offset: 4; tab-widt=
 h: 4; indent-tabs-mode: t -*-=0AX+ * vim: ts=3D4 sw=3D4 noet ai cindent syn=
 tax=3Dc=0AX+ *=0AX+ * Conky, a system monitor, based on torsmo=0AX+ *=0AX+ =
 * Please see COPYING for details=0AX+ *=0AX+ * Copyright (c) 2005-2009 Bren=
 den Matthews, Philip Kovacs, et. al.=0AX+ *	(see AUTHORS)=0AX+ * All rights=
  reserved.=0AX+ *=0AX+ * This program is free software: you can redistribut=
 e it and/or modify=0AX+ * it under the terms of the GNU General Public Lice=
 nse as published by=0AX+ * the Free Software Foundation, either version 3 o=
 f the License, or=0AX+ * (at your option) any later version.=0AX+ *=0AX+ * =
 This program is distributed in the hope that it will be useful,=0AX+ * but =
 WITHOUT ANY WARRANTY; without even the implied warranty of=0AX+ * MERCHANTA=
 BILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the=0AX+ * GNU General Pub=
 lic License for more details.=0AX+ * You should have received a copy of the=
  GNU General Public License=0AX+ * along with this program.  If not, see <h=
 ttp://www.gnu.org/licenses/>.=0AX+ *=0AX+ */=0AX+=0AX+#ifndef BMPX_H_=0AX+#=
 define BMPX_H_=0AX+=0AX+void update_bmpx(void);=0AX+struct bmpx_s {=0AX+	ch=
 ar *title;=0AX+	char *artist;=0AX+	char *album;=0AX+	char *uri;=0AX+	int bi=
 trate;=0AX+	int track;=0AX+};=0AX+=0AX+#endif /*BMPX_H_*/=0A7aa331d858358f3=
 f577dc4fd46751684=0Aecho x - conky/files/patch-src-rss.c=0Ased 's/^X//' >co=
 nky/files/patch-src-rss.c << '76c8c57d8c780d81a228c4b723b5d1cb'=0AX--- src/=
 rss.c.orig=0AX+++ src/rss.c=0AX@@ -67,7 +67,7 @@ static void rss_process_in=
 fo(char *p, int p_max_size, char *uri, char *action, i=0AX 		curloc->result=
  =3D malloc(sizeof(PRSS));=0AX 		memset(curloc->result, 0, sizeof(PRSS));=
 =0AX 		curloc->process_function =3D &prss_parse_data;=0AX-		ccurl_init_thre=
 ad(curloc, interval);=0AX+		ccurl_init_thread(curloc, interval * 60);=0AX 	=
 	if (!curloc->p_timed_thread) {=0AX 			NORM_ERR("error setting up RSS threa=
 d");=0AX 		}=0A76c8c57d8c780d81a228c4b723b5d1cb=0Aecho x - conky/files/patc=
 h-lua-cairo.pkg=0Ased 's/^X//' >conky/files/patch-lua-cairo.pkg << 'b690010=
 cd703ed9c276c87f5b62a0618'=0AX--- lua/cairo.pkg.orig=0AX+++ lua/cairo.pkg=
 =0AX@@ -4,6 +4,7 @@=0AX $#include <cairo-xlib.h>=0AX $#include <X11/Xlib.h>=
 =0AX $#include "libcairo-helper.h"=0AX+$#define tolua_outside=0AX /*=0AX  *=
  This code was mostly copied from cairo.h and cairo-xlib.h with comments=0A=
 X  * removed.  The licence noticed below is present for the sake of clarity=
 =2E=0Ab690010cd703ed9c276c87f5b62a0618=0Aecho x - conky/files/patch-src-Mak=
 efile.in=0Ased 's/^X//' >conky/files/patch-src-Makefile.in << '5c21d9aa16f5=
 dcf2797cb5497615f523'=0AX--- src/Makefile.in.orig=0AX+++ src/Makefile.in=0A=
 X@@ -141,7 +141,7 @@=0AX am__objects_15 =3D conky-linux.$(OBJEXT) conky-top=
 =2E$(OBJEXT) \=0AX 	conky-users.$(OBJEXT) conky-sony.$(OBJEXT) conky-i8k.$(=
 OBJEXT)=0AX @BUILD_LINUX_TRUE@am__objects_16 =3D $(am__objects_15)=0AX-am__=
 objects_17 =3D conky-freebsd.$(OBJEXT)=0AX+am__objects_17 =3D conky-freebsd=
 =2E$(OBJEXT) conky-top.$(OBJEXT)=0AX @BUILD_FREEBSD_TRUE@am__objects_18 =3D=
  $(am__objects_17)=0AX am__objects_19 =3D conky-openbsd.$(OBJEXT)=0AX @BUIL=
 D_OPENBSD_TRUE@am__objects_20 =3D $(am__objects_19)=0A5c21d9aa16f5dcf2797cb=
 5497615f523=0Aecho x - conky/files/patch-src-core.c=0Ased 's/^X//' >conky/f=
 iles/patch-src-core.c << '00e630dd0ae98e36949f27098228d476'=0AX--- src/core=
 =2Ec.orig=0AX+++ src/core.c=0AX@@ -171,8 +171,6 @@=0AX 			NORM_ERR("acpiaca=
 dapter: arg is only used on linux");=0AX #endif=0AX 		}=0AX-		if(! obj->dat=
 a.opaque)=0AX-			obj->data.opaque =3D strdup("AC");=0AX #endif /* !__OpenBS=
 D__ */=0AX 	END OBJ(freq, 0)=0AX 		get_cpu_count();=0AX@@ -279,8 +277,9 @@=
 =0AX 		obj->data.s =3D strndup(bat, text_buffer_size);=0AX 	END OBJ(battery=
 _bar, 0)=0AX 		char bat[64];=0AX-		if (arg) {=0AX-			arg =3D scan_bar(obj, =
 arg);=0AX+=0AX+		arg =3D scan_bar(obj, arg);=0AX+		if (arg && strlen(arg)>0=
 ) {=0AX 			sscanf(arg, "%63s", bat);=0AX 		} else {=0AX 			strcpy(bat, "BAT=
 0");=0AX@@ -372,18 +372,18 @@=0AX 		scan_loadgraph_arg(obj, arg);=0AX #endi=
 f /* X11 */=0AX 	END OBJ(diskio, &update_diskio)=0AX-		parse_diskio_arg(obj=
 , arg);=0AX+		parse_diskio_arg(obj, dev_name(arg));=0AX 	END OBJ(diskio_rea=
 d, &update_diskio)=0AX-		parse_diskio_arg(obj, arg);=0AX+		parse_diskio_arg=
 (obj, dev_name(arg));=0AX 	END OBJ(diskio_write, &update_diskio)=0AX-		pars=
 e_diskio_arg(obj, arg);=0AX+		parse_diskio_arg(obj, dev_name(arg));=0AX #if=
 def X11=0AX 	END OBJ(diskiograph, &update_diskio)=0AX-		parse_diskiograph_a=
 rg(obj, arg);=0AX+		parse_diskiograph_arg(obj, dev_name(arg));=0AX 	END OBJ=
 (diskiograph_read, &update_diskio)=0AX-		parse_diskiograph_arg(obj, arg);=
 =0AX+		parse_diskiograph_arg(obj, dev_name(arg));=0AX 	END OBJ(diskiograph_=
 write, &update_diskio)=0AX-		parse_diskiograph_arg(obj, arg);=0AX+		parse_d=
 iskiograph_arg(obj, dev_name(arg));=0AX #endif /* X11 */=0AX 	END OBJ(color=
 , 0)=0AX #ifdef X11=0AX@@ -542,6 +542,13 @@=0AX 		parse_platform_sensor(obj=
 , arg);=0AX 	END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")=0AX 		parse_hw=
 mon_sensor(obj, arg);=0AX+#endif /* __linux__ */=0AX+	END OBJ(addr, &update=
 _net_stats)=0AX+		parse_net_stat_arg(obj, arg, free_at_crash);=0AX+#ifdef _=
 _linux__=0AX+	END OBJ(addrs, &update_net_stats)=0AX+		parse_net_stat_arg(ob=
 j, arg, free_at_crash);=0AX+#endif /* __linux__ */=0AX 	END=0AX 	/* we have=
  four different types of top (top, top_mem, top_time and top_io). To=0AX 	 =
 * avoid having almost-same code four times, we have this special=0AX@@ -552=
 ,12 +559,8 @@=0AX 		if (!parse_top_args(s, arg, obj)) {=0AX 			return NULL;=
 =0AX 		}=0AX-	} else OBJ(addr, &update_net_stats)=0AX-		parse_net_stat_arg(=
 obj, arg, free_at_crash);=0AX-	END OBJ(addrs, &update_net_stats)=0AX-		pars=
 e_net_stat_arg(obj, arg, free_at_crash);=0AX-#endif /* __linux__ */=0AX-	EN=
 D OBJ_ARG(tail, 0, "tail needs arguments")=0AX+	} else=0AX+		OBJ_ARG(tail, =
 0, "tail needs arguments")=0AX 		init_tailhead("tail", arg, obj, free_at_cr=
 ash);=0AX 	END OBJ_ARG(head, 0, "head needs arguments")=0AX 		init_tailhead=
 ("head", arg, obj, free_at_crash);=0AX@@ -786,9 +789,9 @@=0AX 		obj->sub =
 =3D malloc(sizeof(struct text_object));=0AX 		extract_variable_text_interna=
 l(obj->sub, arg);=0AX 	END OBJ(processes, &update_total_processes)=0AX-#ifd=
 ef __linux__=0AX 	END OBJ(running_processes, &update_top)=0AX 		top_running=
  =3D 1;=0AX+#ifdef __linux__=0AX 	END OBJ(threads, &update_threads)=0AX 	EN=
 D OBJ(running_threads, &update_stat)=0AX #else=0AX@@ -966,8 +969,10 @@=0AX =
 	END OBJ(xmms2_size, &update_xmms2)=0AX 	END OBJ(xmms2_status, &update_xmms=
 2)=0AX 	END OBJ(xmms2_percent, &update_xmms2)=0AX+#ifdef X11=0AX 	END OBJ(x=
 mms2_bar, &update_xmms2)=0AX 		scan_bar(obj, arg);=0AX+#endif=0AX 	END OBJ(=
 xmms2_smart, &update_xmms2)=0AX 	END OBJ(xmms2_playlist, &update_xmms2)=0AX=
  	END OBJ(xmms2_timesplayed, &update_xmms2)=0AX@@ -993,9 +998,11 @@=0AX 	EN=
 D OBJ(audacious_playlist_length, &update_audacious)=0AX 	END OBJ(audacious_=
 playlist_position, &update_audacious)=0AX 	END OBJ(audacious_main_volume, &=
 update_audacious)=0AX+#ifdef X11=0AX 	END OBJ(audacious_bar, &update_audaci=
 ous)=0AX 		scan_bar(obj, arg);=0AX #endif=0AX+#endif=0AX #ifdef BMPX=0AX 	E=
 ND OBJ(bmpx_title, &update_bmpx)=0AX 		memset(&(info.bmpx), 0, sizeof(struc=
 t bmpx_s));=0AX@@ -1327,7 +1334,7 @@=0AX 			strfold(p, 1);=0AX 		} else if =
 (*p =3D=3D '#') {=0AX 			char c;=0AX-			if (remove_comment(p, &c) && p > or=
 ig_p && c =3D=3D '\n') {=0AX+			if (remove_comment(p, &c) && p >=3D orig_p =
 && c =3D=3D '\n') {=0AX 				/* if remove_comment removed a newline, we need=
  to 'back up' with p */=0AX 				p--;=0AX 			}=0A00e630dd0ae98e36949f2709822=
 8d476=0Aecho x - conky/files/patch-src-freebsd.c=0Ased 's/^X//' >conky/file=
 s/patch-src-freebsd.c << '11452bf3b469397e88fdf71c8331e2fa'=0AX--- src/free=
 bsd.c.orig=0AX+++ src/freebsd.c=0AX@@ -67,7 +67,7 @@=0AX #endif=0AX =0AX __=
 attribute__((gnu_inline)) inline void=0AX-proc_find_top(struct process **cp=
 u, struct process **mem);=0AX+proc_find_top(struct process **cpu, struct pr=
 ocess **mem, struct process **time);=0AX =0AX static short cpu_setup =3D 0;=
 =0AX =0AX@@ -286,40 +290,38 @@ void update_running_processes(void)=0AX 	inf=
 o.run_procs =3D cnt;=0AX }=0AX =0AX-struct cpu_load_struct {=0AX-	unsigned =
 long load[5];=0AX-};=0AX-=0AX-struct cpu_load_struct fresh =3D { {0, 0, 0, =
 0, 0} };=0AX-long cpu_used, oldtotal, oldused;=0AX-=0AX void get_cpu_count(=
 void)=0AX {=0AX-	/* int cpu_count =3D 0; */=0AX+	int cpu_count =3D 0;=0AX+	=
 size_t cpu_count_len =3D sizeof(cpu_count);=0AX =0AX-	/* XXX: FreeBSD doesn=
 't allow to get per CPU load stats on SMP machines.=0AX-	 * It's possible t=
 o get a CPU count, but as we fulfill only=0AX-	 * info.cpu_usage[0], it's b=
 etter to report there's only one CPU.=0AX-	 * It should fix some bugs (e.g.=
  cpugraph) */=0AX-#if 0=0AX 	if (GETSYSCTL("hw.ncpu", cpu_count) =3D=3D 0) =
 {=0AX 		info.cpu_count =3D cpu_count;=0AX+	} else {=0AX+		fprintf(stderr, "=
 Cannot get hw.ncpu\n");=0AX+		info.cpu_count =3D 0;=0AX 	}=0AX-#endif=0AX-	=
 info.cpu_count =3D 1;=0AX =0AX-	info.cpu_usage =3D malloc(info.cpu_count * =
 sizeof(float));=0AX+	info.cpu_usage =3D malloc((info.cpu_count + 1) * sizeo=
 f(float));=0AX 	if (info.cpu_usage =3D=3D NULL) {=0AX 		CRIT_ERR(NULL, NULL=
 , "malloc");=0AX 	}=0AX }=0AX =0AX-/* XXX: SMP support */=0AX-void update_c=
 pu_usage(void)=0AX+struct cpu_info {=0AX+	long oldtotal;=0AX+	long oldused;=
 =0AX+};=0AX+=0AX+void update_cpu_usage(void)=0AX {=0AX+	int i, j =3D 0;=0AX=
  	long used, total;=0AX-	long cp_time[CPUSTATES];=0AX-	size_t cp_len =3D si=
 zeof(cp_time);=0AX+	long *cp_time =3D NULL;=0AX+	size_t cp_len;=0AX+	static=
  struct cpu_info *cpu =3D NULL;=0AX+	unsigned int malloc_cpu_size =3D 0;=0A=
 X+	extern void* global_cpu;=0AX =0AX 	/* add check for !info.cpu_usage sinc=
 e that mem is freed on a SIGUSR1 */=0AX 	if ((cpu_setup =3D=3D 0) || (!info=
 =2Ecpu_usage)) {=0AX@@ -327,28 +332,68 @@ void update_cpu_usage(void)=0AX 	=
 	cpu_setup =3D 1;=0AX 	}=0AX =0AX-	if (sysctlbyname("kern.cp_time", &cp_tim=
 e, &cp_len, NULL, 0) < 0) {=0AX-		fprintf(stderr, "Cannot get kern.cp_time"=
 );=0AX+	if (!global_cpu) {=0AX+		malloc_cpu_size =3D (info.cpu_count + 1) *=
  sizeof(struct cpu_info);=0AX+		cpu =3D malloc(malloc_cpu_size);=0AX+		mems=
 et(cpu, 0, malloc_cpu_size);=0AX+		global_cpu =3D cpu;=0AX 	}=0AX =0AX-	fre=
 sh.load[0] =3D cp_time[CP_USER];=0AX-	fresh.load[1] =3D cp_time[CP_NICE];=
 =0AX-	fresh.load[2] =3D cp_time[CP_SYS];=0AX-	fresh.load[3] =3D cp_time[CP_=
 IDLE];=0AX-	fresh.load[4] =3D cp_time[CP_IDLE];=0AX+	/* cpu[0] is overall s=
 tats, get it from separate sysctl */=0AX+	cp_len =3D CPUSTATES * sizeof(lon=
 g);=0AX+	cp_time =3D malloc(cp_len);=0AX =0AX-	used =3D fresh.load[0] + fre=
 sh.load[1] + fresh.load[2];=0AX-	total =3D fresh.load[0] + fresh.load[1] + =
 fresh.load[2] + fresh.load[3];=0AX+	if (sysctlbyname("kern.cp_time", cp_tim=
 e, &cp_len, NULL, 0) < 0) {=0AX+		fprintf(stderr, "Cannot get kern.cp_time\=
 n");=0AX+	}=0AX+=0AX+	total =3D 0;=0AX+	for (j =3D 0; j < CPUSTATES; j++)=
 =0AX+		total +=3D cp_time[j];=0AX =0AX-	if ((total - oldtotal) !=3D 0) {=0A=
 X-		info.cpu_usage[0] =3D ((double) (used - oldused)) /=0AX-			(double) (to=
 tal - oldtotal);=0AX+	used =3D total - cp_time[CP_IDLE];=0AX+=0AX+	if ((tot=
 al - cpu[0].oldtotal) !=3D 0) {=0AX+		info.cpu_usage[0] =3D ((double) (used=
  - cpu[0].oldused)) /=0AX+		(double) (total - cpu[0].oldtotal);=0AX 	} else=
  {=0AX 		info.cpu_usage[0] =3D 0;=0AX 	}=0AX =0AX-	oldused =3D used;=0AX-	o=
 ldtotal =3D total;=0AX+	cpu[0].oldused =3D used;=0AX+	cpu[0].oldtotal =3D t=
 otal;=0AX+=0AX+	free(cp_time);=0AX+=0AX+	/* per-core stats */=0AX+	cp_len =
 =3D CPUSTATES * sizeof(long) * info.cpu_count;=0AX+	cp_time =3D malloc(cp_l=
 en);=0AX+=0AX+	/* on e.g. i386 SMP we may have more values than actual cpus=
 ; this will just drop extra values */=0AX+	if (sysctlbyname("kern.cp_times"=
 , cp_time, &cp_len, NULL, 0) < 0 && errno !=3D ENOMEM) {=0AX+		fprintf(stde=
 rr, "Cannot get kern.cp_times\n");=0AX+	}=0AX+=0AX+	for (i =3D 0; i < info.=
 cpu_count; i++)=0AX+	{=0AX+		total =3D 0;=0AX+		for (j =3D 0; j < CPUSTATES=
 ; j++)=0AX+			total +=3D cp_time[i*CPUSTATES + j];=0AX+=0AX+		used =3D tota=
 l - cp_time[i*CPUSTATES + CP_IDLE];=0AX+=0AX+		if ((total - cpu[i+1].oldtot=
 al) !=3D 0) {=0AX+			info.cpu_usage[i+1] =3D ((double) (used - cpu[i+1].old=
 used)) /=0AX+			(double) (total - cpu[i+1].oldtotal);=0AX+		} else {=0AX+		=
 	info.cpu_usage[i+1] =3D 0;=0AX+		}=0AX+=0AX+		cpu[i+1].oldused =3D used;=
 =0AX+		cpu[i+1].oldtotal =3D total;=0AX+	}=0AX+=0AX+	free(cp_time);=0AX }=
 =0AX =0AX void update_load_average(void)=0AX@@ -540,7 +588,7 @@ char get_fr=
 eq(char *p_client_buffer, size_t client_buffer_size, const char *p_fo=0AX =
 =0AX void update_top(void)=0AX {=0AX-	proc_find_top(info.cpu, info.memu);=
 =0AX+	proc_find_top(info.cpu, info.memu, info.time);=0AX }=0AX =0AX #if 0=
 =0AX@@ -676,8 +726,15 @@ int comparemem(const void *a, const void *b)=0AX 	=
 }=0AX }=0AX =0AX+int comparetime(const void *va, const void *vb)=0AX+{=0AX+=
 	struct process *a =3D (struct process *)va, *b =3D (struct process *)vb;=
 =0AX+=0AX+	return b->total_cpu_time - a->total_cpu_time;=0AX+}=0AX+=0AX __a=
 ttribute__((gnu_inline)) inline void=0AX-proc_find_top(struct process **cpu=
 , struct process **mem)=0AX+proc_find_top(struct process **cpu, struct proc=
 ess **mem, struct process **time)=0AX {=0AX 	struct kinfo_proc *p;=0AX 	int=
  n_processes;=0AX@@ -701,6 +758,9 @@ proc_find_top(struct process **cpu, st=
 ruct process **mem)=0AX 			processes[j].amount =3D 100.0 * p[i].ki_pctcpu /=
  FSCALE;=0AX 			processes[j].vsize =3D p[i].ki_size;=0AX 			processes[j].rs=
 s =3D (p[i].ki_rssize * getpagesize());=0AX+			/* ki_runtime is in microsec=
 onds, total_cpu_time in centiseconds.=0AX+			 * Therefore we divide by 1000=
 0. */=0AX+			processes[j].total_cpu_time =3D p[i].ki_runtime / 10000;=0AX 	=
 		j++;=0AX 		}=0AX 	}=0AX@@ -710,11 +770,8 @@ proc_find_top(struct process =
 **cpu, struct process **mem)=0AX 		struct process *tmp, *ttmp;=0AX =0AX 		t=
 mp =3D malloc(sizeof(struct process));=0AX-		tmp->pid =3D processes[i].pid;=
 =0AX-		tmp->amount =3D processes[i].amount;=0AX+		memcpy(tmp, &processes[i]=
 , sizeof(struct process));=0AX 		tmp->name =3D strndup(processes[i].name, t=
 ext_buffer_size);=0AX-		tmp->rss =3D processes[i].rss;=0AX-		tmp->vsize =3D=
  processes[i].vsize;=0AX =0AX 		ttmp =3D mem[i];=0AX 		mem[i] =3D tmp;=0AX@=
 @ -729,11 +786,8 @@ proc_find_top(struct process **cpu, struct process **me=
 m)=0AX 		struct process *tmp, *ttmp;=0AX =0AX 		tmp =3D malloc(sizeof(struc=
 t process));=0AX-		tmp->pid =3D processes[i].pid;=0AX-		tmp->amount =3D pro=
 cesses[i].amount;=0AX+		memcpy(tmp, &processes[i], sizeof(struct process));=
 =0AX 		tmp->name =3D strndup(processes[i].name, text_buffer_size);=0AX-		tm=
 p->rss =3D processes[i].rss;=0AX-		tmp->vsize =3D processes[i].vsize;=0AX =
 =0AX 		ttmp =3D cpu[i];=0AX 		cpu[i] =3D tmp;=0AX@@ -743,6 +797,22 @@ proc_=
 find_top(struct process **cpu, struct process **mem)=0AX 		}=0AX 	}=0AX =0A=
 X+	qsort(processes, j - 1, sizeof(struct process), comparetime);=0AX+	for (=
 i =3D 0; i < 10 && i < n_processes; i++) {=0AX+		struct process *tmp, *ttmp=
 ;=0AX+=0AX+		tmp =3D malloc(sizeof(struct process));=0AX+		memcpy(tmp, &pro=
 cesses[i], sizeof(struct process));=0AX+		tmp->name =3D strndup(processes[i=
 ].name, text_buffer_size);=0AX+=0AX+		ttmp =3D time[i];=0AX+		time[i] =3D t=
 mp;=0AX+		if (ttmp !=3D NULL) {=0AX+			free(ttmp->name);=0AX+			free(ttmp);=
 =0AX+		}=0AX+	}=0AX+=0AX #if defined(FREEBSD_DEBUG)=0AX 	printf("=3D=3D=3D=
 =3D=3D\nmem\n");=0AX 	for (i =3D 0; i < 10; i++) {=0AX@@ -916,8 +986,3 @@ i=
 nt get_entropy_poolsize(unsigned int *val)=0AX 	(void)val;=0AX 	return 1;=
 =0AX }=0AX-=0AX-/* empty stub so conky links */=0AX-void free_all_processes=
 (void)=0AX-{=0AX-}=0A11452bf3b469397e88fdf71c8331e2fa=0Aecho x - conky/pkg-=
 descr=0Ased 's/^X//' >conky/pkg-descr << '1dc47ddbf5208b510dd9392ba07bd8c1'=
 =0AXConky is an advanced, highly configurable system monitor for X=0AX=0AXW=
 WW:	http://conky.sourceforge.net/=0A1dc47ddbf5208b510dd9392ba07bd8c1=0Aecho=
  x - conky/distinfo=0Ased 's/^X//' >conky/distinfo << 'ca22fce68ddee350633d=
 14dc535474a0'=0AXMD5 (conky-1.8.0.tar.bz2) =3D 494cbaf1108cfdb977fc80454d9b=
 13e2=0AXSHA256 (conky-1.8.0.tar.bz2) =3D badb3824a9655eee90281939df8bdb3ca9=
 5cf8bab03269b3b3775bfea2ed0a51=0AXSIZE (conky-1.8.0.tar.bz2) =3D 610545=0Ac=
 a22fce68ddee350633d14dc535474a0=0Aexit=0A=0A
 --1yeeQ81UyVL57Vl7--



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