ports/150233: conky 1.8 broken (sysutils/conky)

Nikos Ntarmos ntarmos at cs.uoi.gr
Mon Oct 4 17:50:04 UTC 2010


The following reply was made to PR ports/150233; it has been noted by GNATS.

From: Nikos Ntarmos <ntarmos at cs.uoi.gr>
To: bug-followup at FreeBSD.ORG
Cc:  
Subject: Re: ports/150233: conky 1.8 broken (sysutils/conky)
Date: Mon, 4 Oct 2010 20:40:19 +0300

 --C7zPtVaVf+AK4Oqc
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Managed to find a 64-bit host and installed FBSD/amd64 in a vm, and
 *still* can't reproduce the crash... :-\ I did catch a couple of minor
 bugs though (updated shar attached).
 
 The quest continues...
 
 \n\n
 
 --C7zPtVaVf+AK4Oqc
 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 at 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 at 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	2010-03-25 22:27:32.000000000 +0200=0AX+=
 ++ src/conky.c	2010-06-22 00:38:09.000000000 +0300=0AX@@ -166,9 +166,7 @@=
 =0AX #ifdef IOSTATS=0AX int top_io;=0AX #endif=0AX-#ifdef __linux__=0AX int=
  top_running;=0AX-#endif=0AX int output_methods;=0AX static int extra_newli=
 ne;=0AX enum x_initialiser_state x_initialised =3D NO;=0AX@@ -269,9 +267,6 =
 @@=0AX #ifdef IMLIB2=0AX 		   "  * Imlib2\n"=0AX #endif /* IMLIB2 */=0AX-#i=
 fdef MIXER_IS_ALSA=0AX-		   "  * ALSA mixer support\n"=0AX-#endif /* MIXER_=
 IS_ALSA */=0AX #ifdef APCUPSD=0AX 		   "  * apcupsd\n"=0AX #endif /* APCUPS=
 D */=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 f=
 ile '%s'", f);=0AX 	}=0AX 	return ret;=0AX }=0AX@@ -512,6 +507,7 @@=0AX 	ch=
 ar *ps, *pe;=0AX 	int special_index =3D 0; /* specials index */=0AX =0AX+	i=
 f(! 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 					*spc=
  =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 +2060,11 @@=0AX 			OBJ(xmms2_percent) {=0AX 	=
 			snprintf(p, p_max_size, "%2.0f", cur->xmms2.progress * 100);=0AX 			}=0A=
 X+#ifdef X11=0AX 			OBJ(xmms2_bar) {=0AX 				new_bar(obj, p, p_max_size, (i=
 nt) (cur->xmms2.progress * 255.0f));=0AX 			}=0AX+#endif /* X11 */=0AX 			O=
 BJ(xmms2_playlist) {=0AX 				snprintf(p, p_max_size, "%s", cur->xmms2.playl=
 ist);=0AX 			}=0AX@@ -2140,6 +2140,7 @@=0AX 				snprintf(p, p_max_size, "%s=
 ",=0AX 					cur->audacious.items[AUDACIOUS_MAIN_VOLUME]);=0AX 			}=0AX+#ifd=
 ef X11=0AX 			OBJ(audacious_bar) {=0AX 				double progress;=0AX =0AX@@ -214=
 8,6 +2149,7 @@=0AX 					atof(cur->audacious.items[AUDACIOUS_LENGTH_SECONDS]=
 );=0AX 				new_bar(obj, p, p_max_size, (int) (progress * 255.0f));=0AX 			}=
 =0AX+#endif /* X11 */=0AX #endif /* AUDACIOUS */=0AX =0AX #ifdef BMPX=0AX@@=
  -2173,7 +2175,6 @@=0AX 			/* we have four different types of top (top, top=
 _mem,=0AX 			 * top_time and top_io). To avoid having almost-same code four=
 =0AX 			 * times, we have this special handler. */=0AX-#ifdef __linux__=0AX=
  			break;=0AX 			case OBJ_top:=0AX 			case OBJ_top_mem:=0AX@@ -2182,7 +218=
 3,6 @@=0AX 			case OBJ_top_io:=0AX #endif=0AX 				print_top(obj, p, p_max_s=
 ize);=0AX-#endif /* __linux__ */=0AX 			OBJ(tail) {=0AX 				print_tailhead(=
 "tail", obj, p, p_max_size);=0AX 			}=0AX@@ -2375,13 +2375,7 @@=0AX #ifdef =
 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_exec=
 p && obj->type !=3D OBJ_execpi=0AX-#ifdef HAVE_LUA=0AX-					&& obj->type !=
 =3D OBJ_lua && obj->type !=3D OBJ_lua_parse=0AX-#endif /* HAVE_LUA */=0AX-	=
 				) {=0AX-				substitute_newlines(p, a - 2);=0AX-			}=0AX+			substitute_n=
 ewlines(p, a - 2);=0AX 			p +=3D a;=0AX 			p_max_size -=3D a;=0AX 			(*p) =
 =3D 0;=0AX@@ -3119,36 +3113,49 @@=0AX 						if (seconds !=3D 0) {=0AX 					=
 		timeunits =3D seconds / 86400; seconds %=3D 86400;=0AX 							if (timeuni=
 ts > 0) {=0AX-								asprintf(&tmp_day_str, "%dd", timeunits);=0AX+							=
 	if (asprintf(&tmp_day_str, "%dd", timeunits) < 0) {=0AX+									tmp_day_s=
 tr =3D 0;=0AX+								}=0AX 							} else {=0AX 								tmp_day_str =3D str=
 dup("");=0AX 							}=0AX 							timeunits =3D seconds / 3600; seconds %=3D=
  3600;=0AX 							if (timeunits > 0) {=0AX-								asprintf(&tmp_hour_str, =
 "%dh", timeunits);=0AX+								if (asprintf(&tmp_hour_str, "%dh", timeunits=
 ) < 0) {=0AX+									tmp_day_str =3D 0;=0AX+								}=0AX 							} else {=
 =0AX 								tmp_hour_str =3D strdup("");=0AX 							}=0AX 							timeunits=
  =3D seconds / 60; seconds %=3D 60;=0AX 							if (timeunits > 0) {=0AX-			=
 					asprintf(&tmp_min_str, "%dm", timeunits);=0AX+								if (asprintf(&tm=
 p_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, "%ds"=
 , 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 +3981,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 +4036,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 +4110,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 +4219,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 +4269,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@@ -4518,13 +4538,13 @@=0AX 		int=
  a =3D string_to_alignment(value);=0AX =0AX 		if (a <=3D 0) {=0AX-			if(set=
 byconffile =3D=3D true) {=0AX+			if(setbyconffile =3D=3D 1) {=0AX 				CONF_=
 ERR;=0AX 			} else NORM_ERR("'%s' is not a alignment setting", value);=0AX =
 		} else {=0AX 			*ltext_alignment =3D a;=0AX 		}=0AX-	} else if(setbyconff=
 ile =3D=3D true) {=0AX+	} else if(setbyconffile =3D=3D 1) {=0AX 		CONF_ERR;=
 =0AX 	}=0AX }=0AX@@ -4552,15 +4572,12 @@=0AX =0AX #ifdef X11=0AX 		CONF2("o=
 ut_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-					output_methods &=3D TO_X;=0A=
 X-				} else {=0AX-					output_methods &=3D ~TO_X;=0AX-					x_initialised =
 =3D NEVER;=0AX-				}=0AX+			if (string_to_bool(value)) {=0AX+				output_met=
 hods &=3D TO_X;=0AX+			} else {=0AX+				clean_up_x11();=0AX+				output_meth=
 ods &=3D ~TO_X;=0AX+				x_initialised =3D NEVER;=0AX 			}=0AX 		}=0AX 		CON=
 F("display") {=0AX@@ -4573,7 +4590,7 @@=0AX 			}=0AX 		}=0AX 		CONF("alignm=
 ent") {=0AX-			setalignment(&text_alignment, window.type, value, f, line, t=
 rue);=0AX+			setalignment(&text_alignment, window.type, value, f, line, 1);=
 =0AX 		}=0AX 		CONF("background") {=0AX 			fork_to_background =3D string_to=
 _bool(value);=0AX@@ -4609,7 +4626,7 @@=0AX 		CONF("border_width") {=0AX 			=
 if (value) {=0AX 				window.border_width =3D strtol(value, 0, 0);=0AX-				i=
 f (window.border_width < 0) window.border_width =3D 0;=0AX+				if (window.b=
 order_width < 1) window.border_width =3D 1;=0AX 			} else {=0AX 				CONF_ER=
 R;=0AX 			}=0AX@@ -5670,7 +5687,7 @@=0AX #endif=0AX =0AX #if defined(__Free=
 BSD__) || defined(__FreeBSD_kernel__)=0AX-	if ((kd =3D kvm_open("/dev/null"=
 , "/dev/null", "/dev/null", O_RDONLY,=0AX+	if ((kd =3D kvm_open(NULL, "/dev=
 /null", "/dev/null", O_RDONLY,=0AX 			"kvm_open")) =3D=3D NULL) {=0AX 		CRI=
 T_ERR(NULL, NULL, "cannot read kvm");=0AX 	}=0AX@@ -5696,7 +5713,7 @@=0AX 	=
 			set_first_font(optarg);=0AX 				break;=0AX 			case 'a':=0AX-				setalign=
 ment(&text_alignment, window.type, optarg, NULL, 0, false);=0AX+				setalig=
 nment(&text_alignment, window.type, optarg, NULL, 0, 0);=0AX 				break;=0AX=
  =0AX #ifdef OWN_WINDOW=0AX@@ -5895,7 +5912,9 @@=0AX 				current_config =3D=
  strndup(optarg, max_user_text);=0AX 				break;=0AX 			case 'q':=0AX-				fr=
 eopen("/dev/null", "w", stderr);=0AX+				if (!freopen("/dev/null", "w", std=
 err)) {=0AX+					NORM_ERR("unable to redirect stderr to /dev/null");=0AX+		=
 		}=0AX 				break;=0AX 			case 'h':=0AX 				print_help(argv[0]);=0AX@@ -592=
 9,7 +5948,13 @@=0AX #endif /* XOAP */=0AX =0AX #ifdef HAVE_SYS_INOTIFY_H=0A=
 X-	inotify_fd =3D inotify_init1(IN_NONBLOCK);=0AX+	inotify_fd =3D inotify_i=
 nit();=0AX+	if(inotify_fd !=3D -1) {=0AX+		int fl;=0AX+=0AX+		fl =3D fcntl(=
 inotify_fd, F_GETFL);=0AX+		fcntl(inotify_fd, F_SETFL, fl | O_NONBLOCK);=0A=
 X+	}=0AX #endif /* HAVE_SYS_INOTIFY_H */=0AX =0AX 	initialisation(argc, arg=
 v);=0Ac59c590f71d1b0c018c091af48aee345=0Aecho x - conky/files/patch-src-mix=
 er.c=0Ased 's/^X//' >conky/files/patch-src-mixer.c << '34de5c2a761905d37e86=
 baba46208622'=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 #en=
 dif /* MIXER_IS_ALSA */=0AX+#define mixer_to_255(i, x) x * 2.55=0AX =0AX vo=
 id parse_mixer_arg(struct text_object *obj, const char *arg)=0AX {=0A34de5c=
 2a761905d37e86baba46208622=0Aecho x - conky/files/patch-configure=0Ased 's/=
 ^X//' >conky/files/patch-configure << '498e2a3501cfe7ff2362b87148767ae4'=0A=
 X--- configure.orig=0AX+++ configure=0AX@@ -11233,12 +11233,12 @@=0AX      =
    pkg_cv_Audacious_CFLAGS=3D"$Audacious_CFLAGS"=0AX     else=0AX         i=
 f test -n "$PKG_CONFIG" && \=0AX-    { { $as_echo "$as_me:${as_lineno-$LINE=
 NO}: \$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_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 audclien=
 t dbus-glib-1 glib-2.0 gobject-2.0") 2>&5=0AX   ac_status=3D$?=0AX   $as_ec=
 ho "$as_me:${as_lineno-$LINENO}: \$? =3D $ac_status" >&5=0AX   test $ac_sta=
 tus =3D 0; }; then=0AX-  pkg_cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "a=
 udacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0" 2>/dev/null`=0AX+  pk=
 g_cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "audacious >=3D 1.4.0 audclie=
 nt 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 at 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 at am__objects_18 =3D=
  $(am__objects_17)=0AX am__objects_19 =3D conky-openbsd.$(OBJEXT)=0AX @BUIL=
 D_OPENBSD_TRUE at 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	2010-03-25 22:27:32.000000000 +0200=0AX+++ src/core.c	2010-06-22 =
 01:40:31.000000000 +0300=0AX@@ -171,8 +171,6 @@=0AX 			NORM_ERR("acpiacadap=
 ter: arg is only used on linux");=0AX #endif=0AX 		}=0AX-		if(! obj->data.o=
 paque)=0AX-			obj->data.opaque =3D strdup("AC");=0AX #endif /* !__OpenBSD__=
  */=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, "BAT0")=
 ;=0AX@@ -372,18 +371,18 @@=0AX 		scan_loadgraph_arg(obj, arg);=0AX #endif /=
 * X11 */=0AX 	END OBJ(diskio, &update_diskio)=0AX-		parse_diskio_arg(obj, a=
 rg);=0AX+		parse_diskio_arg(obj, dev_name(arg));=0AX 	END OBJ(diskio_read, =
 &update_diskio)=0AX-		parse_diskio_arg(obj, arg);=0AX+		parse_diskio_arg(ob=
 j, dev_name(arg));=0AX 	END OBJ(diskio_write, &update_diskio)=0AX-		parse_d=
 iskio_arg(obj, arg);=0AX+		parse_diskio_arg(obj, dev_name(arg));=0AX #ifdef=
  X11=0AX 	END OBJ(diskiograph, &update_diskio)=0AX-		parse_diskiograph_arg(=
 obj, arg);=0AX+		parse_diskiograph_arg(obj, dev_name(arg));=0AX 	END OBJ(di=
 skiograph_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_diskio=
 graph_arg(obj, dev_name(arg));=0AX #endif /* X11 */=0AX 	END OBJ(color, 0)=
 =0AX #ifdef X11=0AX@@ -542,6 +541,13 @@=0AX 		parse_platform_sensor(obj, ar=
 g);=0AX 	END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")=0AX 		parse_hwmon_=
 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 __lin=
 ux__=0AX+	END OBJ(addrs, &update_net_stats)=0AX+		parse_net_stat_arg(obj, a=
 rg, free_at_crash);=0AX+#endif /* __linux__ */=0AX 	END=0AX 	/* we have fou=
 r different types of top (top, top_mem, top_time and top_io). To=0AX 	 * av=
 oid having almost-same code four times, we have this special=0AX@@ -552,12 =
 +558,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-		parse_ne=
 t_stat_arg(obj, arg, free_at_crash);=0AX-#endif /* __linux__ */=0AX-	END OB=
 J_ARG(tail, 0, "tail needs arguments")=0AX+	} else=0AX+		OBJ_ARG(tail, 0, "=
 tail needs arguments")=0AX 		init_tailhead("tail", arg, obj, free_at_crash)=
 ;=0AX 	END OBJ_ARG(head, 0, "head needs arguments")=0AX 		init_tailhead("he=
 ad", arg, obj, free_at_crash);=0AX@@ -966,8 +968,10 @@=0AX 	END OBJ(xmms2_s=
 ize, &update_xmms2)=0AX 	END OBJ(xmms2_status, &update_xmms2)=0AX 	END OBJ(=
 xmms2_percent, &update_xmms2)=0AX+#ifdef X11=0AX 	END OBJ(xmms2_bar, &updat=
 e_xmms2)=0AX 		scan_bar(obj, arg);=0AX+#endif=0AX 	END OBJ(xmms2_smart, &up=
 date_xmms2)=0AX 	END OBJ(xmms2_playlist, &update_xmms2)=0AX 	END OBJ(xmms2_=
 timesplayed, &update_xmms2)=0AX@@ -993,9 +997,11 @@=0AX 	END OBJ(audacious_=
 playlist_length, &update_audacious)=0AX 	END OBJ(audacious_playlist_positio=
 n, &update_audacious)=0AX 	END OBJ(audacious_main_volume, &update_audacious=
 )=0AX+#ifdef X11=0AX 	END OBJ(audacious_bar, &update_audacious)=0AX 		scan_=
 bar(obj, arg);=0AX #endif=0AX+#endif=0AX #ifdef BMPX=0AX 	END OBJ(bmpx_titl=
 e, &update_bmpx)=0AX 		memset(&(info.bmpx), 0, sizeof(struct bmpx_s));=0AX@=
 @ -1327,7 +1333,7 @@=0AX 			strfold(p, 1);=0AX 		} else if (*p =3D=3D '#') =
 {=0AX 			char c;=0AX-			if (remove_comment(p, &c) && p > orig_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' wi=
 th p */=0AX 				p--;=0AX 			}=0A00e630dd0ae98e36949f27098228d476=0Aecho x -=
  conky/files/patch-src-freebsd.c=0Ased 's/^X//' >conky/files/patch-src-free=
 bsd.c << '11452bf3b469397e88fdf71c8331e2fa'=0AX--- src/freebsd.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 **cpu, struct proces=
 s **mem);=0AX+proc_find_top(struct process **cpu, struct process **mem, str=
 uct process **time);=0AX =0AX static short cpu_setup =3D 0;=0AX =0AX@@ -286=
 ,40 +290,38 @@ void update_running_processes(void)=0AX 	info.run_procs =3D =
 cnt;=0AX }=0AX =0AX-struct cpu_load_struct {=0AX-	unsigned long load[5];=0A=
 X-};=0AX-=0AX-struct cpu_load_struct fresh =3D { {0, 0, 0, 0, 0} };=0AX-lon=
 g 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 to get a CPU coun=
 t, but as we fulfill only=0AX-	 * info.cpu_usage[0], it's better to report =
 there's only one CPU.=0AX-	 * It should fix some bugs (e.g. cpugraph) */=0A=
 X-#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.nc=
 pu\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) * sizeof(float));=0AX =
 	if (info.cpu_usage =3D=3D NULL) {=0AX 		CRIT_ERR(NULL, NULL, "malloc");=0A=
 X 	}=0AX }=0AX =0AX-/* XXX: SMP support */=0AX-void update_cpu_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 sizeof(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;=0AX+	extern vo=
 id* global_cpu;=0AX =0AX 	/* add check for !info.cpu_usage since that mem i=
 s freed on a SIGUSR1 */=0AX 	if ((cpu_setup =3D=3D 0) || (!info.cpu_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_time, &cp_len, NU=
 LL, 0) < 0) {=0AX-		fprintf(stderr, "Cannot get kern.cp_time");=0AX+	if (!g=
 lobal_cpu) {=0AX+		malloc_cpu_size =3D (info.cpu_count + 1) * sizeof(struct=
  cpu_info);=0AX+		cpu =3D malloc(malloc_cpu_size);=0AX+		memset(cpu, 0, mal=
 loc_cpu_size);=0AX+		global_cpu =3D cpu;=0AX 	}=0AX =0AX-	fresh.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-	fres=
 h.load[4] =3D cp_time[CP_IDLE];=0AX+	/* cpu[0] is overall stats, get it fro=
 m separate sysctl */=0AX+	cp_len =3D CPUSTATES * sizeof(long);=0AX+	cp_time=
  =3D malloc(cp_len);=0AX =0AX-	used =3D fresh.load[0] + fresh.load[1] + fre=
 sh.load[2];=0AX-	total =3D fresh.load[0] + fresh.load[1] + fresh.load[2] + =
 fresh.load[3];=0AX+	if (sysctlbyname("kern.cp_time", cp_time, &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) {=0AX-		info.cpu_usage=
 [0] =3D ((double) (used - oldused)) /=0AX-			(double) (total - oldtotal);=
 =0AX+	used =3D total - cp_time[CP_IDLE];=0AX+=0AX+	if ((total - cpu[0].oldt=
 otal) !=3D 0) {=0AX+		info.cpu_usage[0] =3D ((double) (used - cpu[0].olduse=
 d)) /=0AX+		(double) (total - cpu[0].oldtotal);=0AX 	} else {=0AX 		info.cp=
 u_usage[0] =3D 0;=0AX 	}=0AX =0AX-	oldused =3D used;=0AX-	oldtotal =3D tota=
 l;=0AX+	cpu[0].oldused =3D used;=0AX+	cpu[0].oldtotal =3D total;=0AX+=0AX+	=
 free(cp_time);=0AX+=0AX+	/* per-core stats */=0AX+	cp_len =3D CPUSTATES * s=
 izeof(long) * info.cpu_count;=0AX+	cp_time =3D malloc(cp_len);=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_le=
 n, NULL, 0) < 0 && errno !=3D ENOMEM) {=0AX+		fprintf(stderr, "Cannot get k=
 ern.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+			t=
 otal +=3D cp_time[i*CPUSTATES + j];=0AX+=0AX+		used =3D total - cp_time[i*C=
 PUSTATES + CP_IDLE];=0AX+=0AX+		if ((total - cpu[i+1].oldtotal) !=3D 0) {=
 =0AX+			info.cpu_usage[i+1] =3D ((double) (used - cpu[i+1].oldused)) /=0AX+=
 			(double) (total - cpu[i+1].oldtotal);=0AX+		} else {=0AX+			info.cpu_usa=
 ge[i+1] =3D 0;=0AX+		}=0AX+=0AX+		cpu[i+1].oldused =3D used;=0AX+		cpu[i+1]=
 =2Eoldtotal =3D total;=0AX+	}=0AX+=0AX+	free(cp_time);=0AX }=0AX =0AX void =
 update_load_average(void)=0AX@@ -540,7 +588,7 @@ char get_freq(char *p_clie=
 nt_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_to=
 p(info.cpu, info.memu, info.time);=0AX }=0AX =0AX #if 0=0AX@@ -676,8 +726,1=
 5 @@ 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 __attribute__((gnu_inlin=
 e)) inline void=0AX-proc_find_top(struct process **cpu, struct process **me=
 m)=0AX+proc_find_top(struct process **cpu, struct process **mem, struct pro=
 cess **time)=0AX {=0AX 	struct kinfo_proc *p;=0AX 	int n_processes;=0AX@@ -=
 701,6 +758,9 @@ proc_find_top(struct process **cpu, struct process **mem)=
 =0AX 			processes[j].amount =3D 100.0 * p[i].ki_pctcpu / FSCALE;=0AX 			pro=
 cesses[j].vsize =3D p[i].ki_size;=0AX 			processes[j].rss =3D (p[i].ki_rssi=
 ze * getpagesize());=0AX+			/* ki_runtime is in microseconds, total_cpu_tim=
 e in centiseconds.=0AX+			 * Therefore we divide by 10000. */=0AX+			proces=
 ses[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 proce=
 ss **mem)=0AX 		struct process *tmp, *ttmp;=0AX =0AX 		tmp =3D malloc(sizeo=
 f(struct process));=0AX-		tmp->pid =3D processes[i].pid;=0AX-		tmp->amount =
 =3D processes[i].amount;=0AX+		memcpy(tmp, &processes[i], sizeof(struct pro=
 cess));=0AX 		tmp->name =3D strndup(processes[i].name, text_buffer_size);=
 =0AX-		tmp->rss =3D processes[i].rss;=0AX-		tmp->vsize =3D processes[i].vsi=
 ze;=0AX =0AX 		ttmp =3D mem[i];=0AX 		mem[i] =3D tmp;=0AX@@ -729,11 +786,8 =
 @@ proc_find_top(struct process **cpu, struct process **mem)=0AX 		struct p=
 rocess *tmp, *ttmp;=0AX =0AX 		tmp =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, text_buffer_size);=0AX-		tmp->rss =3D proces=
 ses[i].rss;=0AX-		tmp->vsize =3D processes[i].vsize;=0AX =0AX 		ttmp =3D cp=
 u[i];=0AX 		cpu[i] =3D tmp;=0AX@@ -743,6 +797,22 @@ proc_find_top(struct pr=
 ocess **cpu, struct process **mem)=0AX 		}=0AX 	}=0AX =0AX+	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, &processes[i], sizeof=
 (struct process));=0AX+		tmp->name =3D strndup(processes[i].name, text_buff=
 er_size);=0AX+=0AX+		ttmp =3D time[i];=0AX+		time[i] =3D tmp;=0AX+		if (ttm=
 p !=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 @@ int get_entropy_p=
 oolsize(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 ad=
 vanced, highly configurable system monitor for X=0AX=0AXWWW:	http://conky.s=
 ourceforge.net/=0A1dc47ddbf5208b510dd9392ba07bd8c1=0Aecho x - conky/distinf=
 o=0Ased 's/^X//' >conky/distinfo << 'ca22fce68ddee350633d14dc535474a0'=0AXM=
 D5 (conky-1.8.0.tar.bz2) =3D 494cbaf1108cfdb977fc80454d9b13e2=0AXSHA256 (co=
 nky-1.8.0.tar.bz2) =3D badb3824a9655eee90281939df8bdb3ca95cf8bab03269b3b377=
 5bfea2ed0a51=0AXSIZE (conky-1.8.0.tar.bz2) =3D 610545=0Aca22fce68ddee350633=
 d14dc535474a0=0Aexit=0A=0A
 --C7zPtVaVf+AK4Oqc--



More information about the freebsd-ports-bugs mailing list