diff options
| author | Stelios Koroneos <skoroneos@digital-opsis.com> | 2007-04-19 17:31:28 +0000 |
|---|---|---|
| committer | Stelios Koroneos <skoroneos@digital-opsis.com> | 2007-04-19 17:31:28 +0000 |
| commit | f6c39b9872812a941c26e7dfa5ea1a5e4369d1bb (patch) | |
| tree | 010af6cb3ff72ffcfaaa0a0bdd67b1fe3a9f086d | |
| parent | a79ff721887dca0119f7f06d992d6a8c9fff5cf6 (diff) | |
| parent | ebebd8cae02bbee0cc44866157866bf60e630c6e (diff) | |
merge of '60583f10638bed4ae577443e95e8245aaacfcd6f'
and 'cd73470b889bd3b1b6d2641d31c7a69701abcf46'
| -rw-r--r-- | classes/base.bbclass | 4 | ||||
| -rw-r--r-- | conf/machine/mtx-3a.conf | 2 | ||||
| -rw-r--r-- | packages/avahi/avahi_0.6.18.bb | 10 | ||||
| -rw-r--r-- | packages/gpgme/gpgme_1.1.4.bb | 22 | ||||
| -rw-r--r-- | packages/images/nylon-image-base.bb | 8 | ||||
| -rw-r--r-- | packages/libgpg-error/libgpg-error-1.4/.mtn2git_empty | 0 | ||||
| -rw-r--r-- | packages/libgpg-error/libgpg-error-1.4/pkgconfig.patch | 54 | ||||
| -rw-r--r-- | packages/libgpg-error/libgpg-error_1.4.bb | 29 | ||||
| -rw-r--r-- | packages/linux/mx31ads-kernel_2.6.19rc6.bb | 3 | ||||
| -rw-r--r-- | packages/mutt/mutt-1.5.15/.mtn2git_empty | 0 | ||||
| -rw-r--r-- | packages/mutt/mutt-1.5.15/makedoc.patch | 26 | ||||
| -rw-r--r-- | packages/mutt/mutt-1.5.15/patch-1.5.15.sidebar.20070408.txt | 1347 | ||||
| -rw-r--r-- | packages/mutt/mutt_1.5.15.bb | 27 | ||||
| -rw-r--r-- | packages/quilt/quilt_0.45.bb | 1 | ||||
| -rw-r--r-- | packages/tasks/task-base.bb | 3 |
15 files changed, 1526 insertions, 10 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index d78bd3cec3..1dd3a488b3 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -41,7 +41,7 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): # md5 and sha256 should be valid now if not os.path.exists(localpath): - bb.note("The locapath does not exist '%s'" % localpath) + bb.note("The localpath does not exist '%s'" % localpath) raise Exception("The path does not exist '%s'" % localpath) @@ -483,7 +483,7 @@ python base_do_fetch() { # Check each URI for url in src_uri.split(): - localpath = bb.fetch.localpath(url,localdata) + localpath = bb.data.expand(bb.fetch.localpath(url, localdata), localdata) (type,host,path,_,_,_) = bb.decodeurl(url) uri = "%s://%s%s" % (type,host,path) try: diff --git a/conf/machine/mtx-3a.conf b/conf/machine/mtx-3a.conf index bda68acd12..6f963d164e 100644 --- a/conf/machine/mtx-3a.conf +++ b/conf/machine/mtx-3a.conf @@ -3,7 +3,7 @@ #@DESCRIPTION: Machine configuration for the mtx-3a TARGET_ARCH = "arm" -IPKG_ARCHS = "all arm ${MACHINE}" +#PACKAGE_ARCHS = "all arm ${MACHINE}" PREFERRED_PROVIDER_virtual/kernel = "linux-mtx-3a" EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 -n" TARGET_CC_ARCH = "-march=armv5te" diff --git a/packages/avahi/avahi_0.6.18.bb b/packages/avahi/avahi_0.6.18.bb new file mode 100644 index 0000000000..d8cc891800 --- /dev/null +++ b/packages/avahi/avahi_0.6.18.bb @@ -0,0 +1,10 @@ +require avahi.inc +PR="r1" + +DEPENDS =+ "gtk+ libglade" + +PACKAGES =+ "libavahi-ui" +FILES_libavahi-ui = "${libdir}/libavahi-ui.so.*" + +EXTRA_OECONF = "--with-distro=debian --disable-gdbm --disable-mono --disable-monodoc --disable-qt3 --disable-qt4 --disable-python" + diff --git a/packages/gpgme/gpgme_1.1.4.bb b/packages/gpgme/gpgme_1.1.4.bb new file mode 100644 index 0000000000..d78cc88cef --- /dev/null +++ b/packages/gpgme/gpgme_1.1.4.bb @@ -0,0 +1,22 @@ +LICENSE = "GPL" +SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-${PV}.tar.bz2" +PR = "r1" + +DEPENDS = "libgpg-error pth libassuan" + +EXTRA_OECONF = "--with-pth=${STAGING_DIR}/${HOST_SYS} --without-pth-test --with-gpg=${bindir}/gpg --without-gpgsm" + +inherit autotools binconfig + +do_stage() { + autotools_stage_includes + + install -d ${STAGING_LIBDIR} + oe_libinstall -C gpgme -so libgpgme ${STAGING_LIBDIR} + oe_libinstall -C gpgme -so libgpgme-pth ${STAGING_LIBDIR} + oe_libinstall -C gpgme -so libgpgme-pthread ${STAGING_LIBDIR} + + install -d ${STAGING_DATADIR}/aclocal + install -m 0644 gpgme/gpgme.m4 ${STAGING_DATADIR}/aclocal/ +} + diff --git a/packages/images/nylon-image-base.bb b/packages/images/nylon-image-base.bb index 2c45d40bb6..8cd71194b4 100644 --- a/packages/images/nylon-image-base.bb +++ b/packages/images/nylon-image-base.bb @@ -1,6 +1,6 @@ -inherit image_ipk -inherit nylon_image -LICENSE = MIT +inherit image +inherit nylon-image +LICENSE = "MIT" export IMAGE_BASENAME = "nylon-base" @@ -22,7 +22,7 @@ RDEPENDS_append_mtx-2 = " modutils modutils-initscripts modutils-depmod modutils RDEPENDS_append_mtx-3 = " module-init-tools udev" RDEPENDS_append_mtx-3a = " module-init-tools" -export IPKG_INSTALL = "${RDEPENDS}" +export PACKAGE_INSTALL = "${RDEPENDS}" IMAGE_LINGUAS = "" diff --git a/packages/libgpg-error/libgpg-error-1.4/.mtn2git_empty b/packages/libgpg-error/libgpg-error-1.4/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libgpg-error/libgpg-error-1.4/.mtn2git_empty diff --git a/packages/libgpg-error/libgpg-error-1.4/pkgconfig.patch b/packages/libgpg-error/libgpg-error-1.4/pkgconfig.patch new file mode 100644 index 0000000000..f367f1ccc2 --- /dev/null +++ b/packages/libgpg-error/libgpg-error-1.4/pkgconfig.patch @@ -0,0 +1,54 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +Index: libgpg-error-1.3/configure.ac +=================================================================== +--- libgpg-error-1.3.orig/configure.ac ++++ libgpg-error-1.3/configure.ac +@@ -117,6 +117,7 @@ GPG_ERROR_CONFIG_CFLAGS="" + AC_SUBST(GPG_ERROR_CONFIG_LIBS) + AC_SUBST(GPG_ERROR_CONFIG_CFLAGS) + AC_CONFIG_FILES([src/gpg-error-config], [chmod +x src/gpg-error-config]) ++AC_CONFIG_FILES([src/gpg-error.pc]) + + + # Special defines for certain platforms +Index: libgpg-error-1.3/src/Makefile.am +=================================================================== +--- libgpg-error-1.3.orig/src/Makefile.am ++++ libgpg-error-1.3/src/Makefile.am +@@ -28,6 +28,8 @@ include_HEADERS = gpg-error.h + bin_SCRIPTS = gpg-error-config + m4datadir = $(datadir)/aclocal + m4data_DATA = gpg-error.m4 ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = gpg-error.pc + + + EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \ +@@ -35,7 +37,7 @@ EXTRA_DIST = mkstrtable.awk err-sources. + mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \ + mkheader.awk gpg-error.h.in \ + err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 \ +- gpg-error.def versioninfo.rc.in ++ gpg-error.def versioninfo.rc.in gpg-error.pc.in + + BUILT_SOURCES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \ + err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h +Index: libgpg-error-1.3/src/gpg-error.pc.in +=================================================================== +--- /dev/null ++++ libgpg-error-1.3/src/gpg-error.pc.in +@@ -0,0 +1,10 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: gpg-error ++Description: a library that defines common error values for all GnuPG components ++Version: @VERSION@ ++Libs: -L{libdir} -lgpg-error ++Cflags: -I${includedir} diff --git a/packages/libgpg-error/libgpg-error_1.4.bb b/packages/libgpg-error/libgpg-error_1.4.bb new file mode 100644 index 0000000000..e520a23ae0 --- /dev/null +++ b/packages/libgpg-error/libgpg-error_1.4.bb @@ -0,0 +1,29 @@ +PR = "r1" +DESCRIPTION = "GPG-Error library" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPL LGPL FDL" + +SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.gz \ + file://pkgconfig.patch;patch=1" + +# move libgpg-error-config into -dev package +FILES_${PN} = "${libdir}/lib*.so.*" +FILES_${PN}-dev += "${bindir}/*" + +inherit autotools binconfig pkgconfig + +do_stage() { + oe_libinstall -a -so -C src libgpg-error ${STAGING_LIBDIR} + install -d ${STAGING_BINDIR_CROSS}/ + install -m 0755 src/gpg-error-config ${STAGING_BINDIR_CROSS}/ + + install -d ${STAGING_INCDIR}/ + for X in gpg-error.h + do + install -m 0644 ${S}/src/$X ${STAGING_INCDIR}/$X + done + + install -d ${STAGING_DATADIR}/aclocal + install -m 0644 src/gpg-error.m4 ${STAGING_DATADIR}/aclocal/ +} diff --git a/packages/linux/mx31ads-kernel_2.6.19rc6.bb b/packages/linux/mx31ads-kernel_2.6.19rc6.bb index 88726073c2..b6ba6a65cd 100644 --- a/packages/linux/mx31ads-kernel_2.6.19rc6.bb +++ b/packages/linux/mx31ads-kernel_2.6.19rc6.bb @@ -16,7 +16,6 @@ COMPATIBLE_HOST = 'arm.*-linux' COMPATIBLE_MACHINE = "mx31ads" inherit kernel -inherit package ARCH = "arm" KERNEL_IMAGETYPE = "zImage" @@ -55,3 +54,5 @@ do_deploy() { do_deploy[dirs] = "${S}" addtask deploy before do_build after do_compile + +KERNEL_RELEASE = "2.6.19-rc6" diff --git a/packages/mutt/mutt-1.5.15/.mtn2git_empty b/packages/mutt/mutt-1.5.15/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mutt/mutt-1.5.15/.mtn2git_empty diff --git a/packages/mutt/mutt-1.5.15/makedoc.patch b/packages/mutt/mutt-1.5.15/makedoc.patch new file mode 100644 index 0000000000..275c325769 --- /dev/null +++ b/packages/mutt/mutt-1.5.15/makedoc.patch @@ -0,0 +1,26 @@ +Index: mutt-1.5.15/makedoc.c +=================================================================== +--- mutt-1.5.15.orig/makedoc.c 2007-04-01 22:58:56.000000000 +0100 ++++ mutt-1.5.15/makedoc.c 2007-04-19 09:33:17.000000000 +0100 +@@ -49,7 +49,7 @@ + #ifndef HAVE_STRERROR + #ifndef STDC_HEADERS + extern int sys_nerr; +-extern char *sys_errlist[]; ++extern __const char *__const sys_errlist[]; + #endif + + #define strerror(x) ((x) > 0 && (x) < sys_nerr) ? sys_errlist[(x)] : 0 +Index: mutt-1.5.15/Makefile.am +=================================================================== +--- mutt-1.5.15.orig/Makefile.am 2007-04-19 09:33:30.000000000 +0100 ++++ mutt-1.5.15/Makefile.am 2007-04-19 09:33:54.000000000 +0100 +@@ -49,6 +49,8 @@ + # @rm -rf makedoc + # $(HOST_CC) $(AM_CFLAGS) $(LDFLAGS) $(makedoc_LDFLAGS) $(makedoc_OBJECTS) $(makedoc_LDADD) -o makedoc + ++makedoc : $(makedoc_SOURCES) ++ + DEFS=-DPKGDATADIR=\"$(pkgdatadir)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ + -DBINDIR=\"$(bindir)\" -DMUTTLOCALEDIR=\"$(datadir)/locale\" \ + -DHAVE_CONFIG_H=1 diff --git a/packages/mutt/mutt-1.5.15/patch-1.5.15.sidebar.20070408.txt b/packages/mutt/mutt-1.5.15/patch-1.5.15.sidebar.20070408.txt new file mode 100644 index 0000000000..a2f7810ad8 --- /dev/null +++ b/packages/mutt/mutt-1.5.15/patch-1.5.15.sidebar.20070408.txt @@ -0,0 +1,1347 @@ +Index: mutt-1.5.15/buffy.c +=================================================================== +--- mutt-1.5.15.orig/buffy.c 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/buffy.c 2007-04-18 09:28:14.000000000 +0100 +@@ -259,7 +259,7 @@ + char path[_POSIX_PATH_MAX]; + struct stat contex_sb; + time_t t; +- ++ CONTEXT *ctx; + #ifdef USE_IMAP + /* update postponed count as well, on force */ + if (force) +@@ -297,6 +297,8 @@ + + for (tmp = Incoming; tmp; tmp = tmp->next) + { ++ if ( tmp->new == 1 ) ++ tmp->has_new = 1; + #ifdef USE_IMAP + if (tmp->magic != M_IMAP) + #endif +@@ -354,48 +356,108 @@ + case M_MBOX: + case M_MMDF: + +- if (STAT_CHECK) ++ { ++ if (STAT_CHECK || tmp->msgcount == 0) + { +- BuffyCount++; +- tmp->new = 1; ++ BUFFY b = *tmp; ++ int msgcount = 0; ++ int msg_unread = 0; ++ /* parse the mailbox, to see how much mail there is */ ++ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); ++ if(ctx) ++ { ++ msgcount = ctx->msgcount; ++ msg_unread = ctx->unread; ++ mx_close_mailbox(ctx, 0); ++ } ++ *tmp = b; ++ tmp->msgcount = msgcount; ++ tmp->msg_unread = msg_unread; ++ if(STAT_CHECK) { ++ tmp->has_new = tmp->new = 1; ++ BuffyCount++; ++ } + } + else if (option(OPTCHECKMBOXSIZE)) + { + /* some other program has deleted mail from the folder */ + tmp->size = (long) sb.st_size; + } +- if (tmp->newly_created && +- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) +- tmp->newly_created = 0; +- +- break; ++ if (tmp->newly_created && ++ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime)) ++ tmp->newly_created = 0; ++ } ++ break; + + case M_MAILDIR: + ++ /* count new message */ + snprintf (path, sizeof (path), "%s/new", tmp->path); + if ((dirp = opendir (path)) == NULL) + { + tmp->magic = 0; + break; + } ++ tmp->msgcount = 0; ++ tmp->msg_unread = 0; + while ((de = readdir (dirp)) != NULL) + { + char *p; + if (*de->d_name != '.' && + (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) + { +- /* one new and undeleted message is enough */ +- BuffyCount++; +- tmp->new = 1; +- break; ++ tmp->has_new = tmp->new = 1; ++ tmp->msgcount++; ++ tmp->msg_unread++; ++ } ++ } ++ if(tmp->msg_unread) ++ BuffyCount++; ++ ++ closedir (dirp); ++ ++ /* ++ * count read messages (for folderlist (sidebar) we also need to count ++ * messages in cur so that we the total number of messages ++ */ ++ snprintf (path, sizeof (path), "%s/cur", tmp->path); ++ if ((dirp = opendir (path)) == NULL) ++ { ++ tmp->magic = 0; ++ break; ++ } ++ while ((de = readdir (dirp)) != NULL) ++ { ++ char *p; ++ if (*de->d_name != '.' && ++ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T'))) ++ { ++ tmp->msgcount++; + } + } + closedir (dirp); + break; + + case M_MH: +- if ((tmp->new = mh_buffy (tmp->path)) > 0) +- BuffyCount++; ++ { ++ DIR *dp; ++ struct dirent *de; ++ if ((tmp->new = mh_buffy (tmp->path)) > 0) ++ BuffyCount++; ++ ++ if ((dp = opendir (path)) == NULL) ++ break; ++ tmp->msgcount = 0; ++ while ((de = readdir (dp))) ++ { ++ if (mh_valid_message (de->d_name)) ++ { ++ tmp->msgcount++; ++ tmp->has_new = tmp->new = 1; ++ } ++ } ++ closedir (dp); ++ } + break; + } + } +Index: mutt-1.5.15/buffy.h +=================================================================== +--- mutt-1.5.15.orig/buffy.h 2007-04-01 22:58:55.000000000 +0100 ++++ mutt-1.5.15/buffy.h 2007-04-18 09:28:14.000000000 +0100 +@@ -25,7 +25,11 @@ + char *path; + long size; + struct buffy_t *next; ++ struct buffy_t *prev; + short new; /* mailbox has new mail */ ++ short has_new; /* set it new if new and not read */ ++ int msgcount; /* total number of messages */ ++ int msg_unread; /* number of unread messages */ + short notified; /* user has been notified */ + short magic; /* mailbox type */ + short newly_created; /* mbox or mmdf just popped into existence */ +Index: mutt-1.5.15/color.c +=================================================================== +--- mutt-1.5.15.orig/color.c 2007-04-01 22:58:55.000000000 +0100 ++++ mutt-1.5.15/color.c 2007-04-18 09:28:14.000000000 +0100 +@@ -93,6 +93,7 @@ + { "bold", MT_COLOR_BOLD }, + { "underline", MT_COLOR_UNDERLINE }, + { "index", MT_COLOR_INDEX }, ++ { "sidebar_new", MT_COLOR_NEW }, + { NULL, 0 } + }; + +Index: mutt-1.5.15/compose.c +=================================================================== +--- mutt-1.5.15.orig/compose.c 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/compose.c 2007-04-18 09:32:54.000000000 +0100 +@@ -80,7 +80,7 @@ + + #define HDR_XOFFSET 14 + #define TITLE_FMT "%14s" /* Used for Prompts, which are ASCII */ +-#define W (COLS - HDR_XOFFSET) ++#define W (COLS - HDR_XOFFSET - SidebarWidth) + + static char *Prompts[] = + { +@@ -146,16 +146,16 @@ + if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME)) + { + if (!msg->security) +- mvaddstr (HDR_CRYPT, 0, " Security: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " Security: "); + else if (msg->security & APPLICATION_SMIME) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); + else if (msg->security & APPLICATION_PGP) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); + } + else if ((WithCrypto & APPLICATION_SMIME)) +- mvaddstr (HDR_CRYPT, 0, " S/MIME: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: "); + else if ((WithCrypto & APPLICATION_PGP)) +- mvaddstr (HDR_CRYPT, 0, " PGP: "); ++ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: "); + else + return; + +@@ -179,7 +179,7 @@ + } + clrtoeol (); + +- move (HDR_CRYPTINFO, 0); ++ move (HDR_CRYPTINFO, SidebarWidth); + clrtoeol (); + if ((WithCrypto & APPLICATION_PGP) + && msg->security & APPLICATION_PGP && msg->security & SIGN) +@@ -195,7 +195,7 @@ + && (msg->security & ENCRYPT) + && SmimeCryptAlg + && *SmimeCryptAlg) { +- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "), ++ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "), + NONULL(SmimeCryptAlg)); + off = 20; + } +@@ -209,7 +209,7 @@ + int c; + char *t; + +- mvaddstr (HDR_MIX, 0, " Mix: "); ++ mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); + + if (!chain) + { +@@ -224,7 +224,7 @@ + if (t && t[0] == '0' && t[1] == '\0') + t = "<random>"; + +- if (c + mutt_strlen (t) + 2 >= COLS) ++ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth) + break; + + addstr (NONULL(t)); +@@ -276,7 +276,7 @@ + + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), addr, 1); +- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]); ++ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]); + mutt_paddstr (W, buf); + } + +@@ -294,21 +294,21 @@ + } + else + { +- mvprintw (HDR_TO, 0, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]); ++ mvprintw (HDR_TO, SidebarWidth, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]); + mutt_paddstr (W, NONULL (msg->env->newsgroups)); +- mvprintw (HDR_CC, 0, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]); ++ mvprintw (HDR_CC, SidebarWidth, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]); + mutt_paddstr (W, NONULL (msg->env->followup_to)); + if (option (OPTXCOMMENTTO)) + { +- mvprintw (HDR_BCC, 0, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]); ++ mvprintw (HDR_BCC, SidebarWidth, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]); + mutt_paddstr (W, NONULL (msg->env->x_comment_to)); + } + } + #endif +- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); ++ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]); + mutt_paddstr (W, NONULL (msg->env->subject)); + draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to); +- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]); ++ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]); + mutt_paddstr (W, fcc); + + if (WithCrypto) +@@ -319,7 +319,7 @@ + #endif + + SETCOLOR (MT_COLOR_STATUS); +- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments")); ++ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments")); + BKGDSET (MT_COLOR_STATUS); + clrtoeol (); + +@@ -357,7 +357,7 @@ + /* redraw the expanded list so the user can see the result */ + buf[0] = 0; + rfc822_write_address (buf, sizeof (buf), *addr, 1); +- move (line, HDR_XOFFSET); ++ move (line, HDR_XOFFSET+SidebarWidth); + mutt_paddstr (W, buf); + + return 0; +@@ -687,7 +687,7 @@ + if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) + { + mutt_str_replace (&msg->env->subject, buf); +- move (HDR_SUBJECT, HDR_XOFFSET); ++ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth); + clrtoeol (); + if (msg->env->subject) + mutt_paddstr (W, msg->env->subject); +@@ -704,7 +704,7 @@ + { + strfcpy (fcc, buf, _POSIX_PATH_MAX); + mutt_pretty_mailbox (fcc); +- move (HDR_FCC, HDR_XOFFSET); ++ move (HDR_FCC, HDR_XOFFSET + SidebarWidth); + mutt_paddstr (W, fcc); + fccSet = 1; + } +Index: mutt-1.5.15/curs_main.c +=================================================================== +--- mutt-1.5.15.orig/curs_main.c 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/curs_main.c 2007-04-18 09:28:14.000000000 +0100 +@@ -30,6 +30,7 @@ + #include "sort.h" + #include "buffy.h" + #include "mx.h" ++#include "sidebar.h" + + #ifdef USE_POP + #include "pop.h" +@@ -555,8 +556,13 @@ + menu->redraw |= REDRAW_STATUS; + if (do_buffy_notify) + { +- if (mutt_buffy_notify () && option (OPTBEEPNEW)) +- beep (); ++ if (mutt_buffy_notify ()) ++ { ++ menu->redraw |= REDRAW_FULL; ++ if (option (OPTBEEPNEW)) ++ beep (); ++ } ++ + } + else + do_buffy_notify = 1; +@@ -568,6 +574,7 @@ + if (menu->redraw & REDRAW_FULL) + { + menu_redraw_full (menu); ++ draw_sidebar(menu->menu); + mutt_show_error (); + } + +@@ -590,10 +597,13 @@ + + if (menu->redraw & REDRAW_STATUS) + { ++ DrawFullLine = 1; + menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); ++ DrawFullLine = 0; + CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2); + SETCOLOR (MT_COLOR_STATUS); + BKGDSET (MT_COLOR_STATUS); ++ set_buffystats(Context); + mutt_paddstr (COLS, buf); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); +@@ -607,7 +617,7 @@ + menu->oldcurrent = -1; + + if (option (OPTARROWCURSOR)) +- move (menu->current - menu->top + menu->offset, 2); ++ move (menu->current - menu->top + menu->offset, SidebarWidth + 2); + else if (option (OPTBRAILLEFRIENDLY)) + move (menu->current - menu->top + menu->offset, 0); + else +@@ -1214,6 +1224,7 @@ + menu->redraw = REDRAW_FULL; + break; + ++ case OP_SIDEBAR_OPEN: + case OP_MAIN_CHANGE_FOLDER: + case OP_MAIN_CHANGE_FOLDER_READONLY: + #ifdef USE_NNTP +@@ -1254,7 +1265,11 @@ + #endif + mutt_buffy (buf, sizeof (buf)); + +- if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) ++ if ( op == OP_SIDEBAR_OPEN ) { ++ if(!CurBuffy) ++ break; ++ strncpy( buf, CurBuffy->path, sizeof(buf) ); ++ } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) + { + if (menu->menu == MENU_PAGER) + { +@@ -1279,6 +1294,7 @@ + else + #endif + mutt_expand_path (buf, sizeof (buf)); ++ set_curbuffy(buf); + if (mx_get_magic (buf) <= 0) + { + mutt_error (_("%s is not a mailbox."), buf); +@@ -2424,6 +2440,12 @@ + mutt_what_key(); + break; + ++ case OP_SIDEBAR_SCROLL_UP: ++ case OP_SIDEBAR_SCROLL_DOWN: ++ case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_PREV: ++ scroll_sidebar(op, menu->menu); ++ break; + default: + if (menu->menu == MENU_MAIN) + km_error_key (MENU_MAIN); +Index: mutt-1.5.15/flags.c +=================================================================== +--- mutt-1.5.15.orig/flags.c 2007-04-01 22:58:55.000000000 +0100 ++++ mutt-1.5.15/flags.c 2007-04-18 09:28:14.000000000 +0100 +@@ -22,8 +22,10 @@ + + #include "mutt.h" + #include "mutt_curses.h" ++#include "mutt_menu.h" + #include "sort.h" + #include "mx.h" ++#include "sidebar.h" + + #ifdef USE_IMAP + #include "imap_private.h" +@@ -251,6 +253,7 @@ + */ + if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged)) + h->searched = 0; ++ draw_sidebar(0); + } + + void mutt_tag_set_flag (int flag, int bf) +Index: mutt-1.5.15/functions.h +=================================================================== +--- mutt-1.5.15.orig/functions.h 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/functions.h 2007-04-18 09:28:14.000000000 +0100 +@@ -186,6 +186,11 @@ + { "decrypt-save", OP_DECRYPT_SAVE, NULL }, + + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +@@ -293,6 +298,11 @@ + { "decrypt-save", OP_DECRYPT_SAVE, NULL }, + + ++ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, ++ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, + { NULL, 0, NULL } + }; + +Index: mutt-1.5.15/globals.h +=================================================================== +--- mutt-1.5.15.orig/globals.h 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/globals.h 2007-04-18 09:28:14.000000000 +0100 +@@ -126,6 +126,7 @@ + WHERE char *SendCharset; + WHERE char *Sendmail; + WHERE char *Shell; ++WHERE char *SidebarDelim; + WHERE char *Signature; + WHERE char *SimpleSearch; + #if USE_SMTP +@@ -222,6 +223,9 @@ + WHERE short ScoreThresholdRead; + WHERE short ScoreThresholdFlag; + ++WHERE struct buffy_t *CurBuffy INITVAL(0); ++WHERE short DrawFullLine INITVAL(0); ++WHERE short SidebarWidth; + #ifdef USE_IMAP + WHERE short ImapKeepalive; + #endif +Index: mutt-1.5.15/init.h +=================================================================== +--- mutt-1.5.15.orig/init.h 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/init.h 2007-04-18 09:28:14.000000000 +0100 +@@ -1614,6 +1614,22 @@ + ** If ``no'', never attempt to verify cryptographic signatures. + ** (Crypto only) + */ ++ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, ++ /* ++ ** .pp ++ ** This specifies the delimiter between the sidebar (if visible) and ++ ** other screens. ++ */ ++ { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 }, ++ /* ++ ** .pp ++ ** This specifies whether or not to show sidebar (left-side list of folders). ++ */ ++ { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 }, ++ /* ++ ** .pp ++ ** The width of the sidebar. ++ */ + { "smime_is_default", DT_BOOL, R_NONE, OPTSMIMEISDEFAULT, 0}, + /* + ** .pp +Index: mutt-1.5.15/mailbox.h +=================================================================== +--- mutt-1.5.15.orig/mailbox.h 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/mailbox.h 2007-04-18 09:28:14.000000000 +0100 +@@ -27,6 +27,7 @@ + #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses + * safe_fopen() for mbox-style folders. + */ ++#define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */ + + /* mx_open_new_message() */ + #define M_ADD_FROM 1 /* add a From_ line */ +Index: mutt-1.5.15/Makefile.am +=================================================================== +--- mutt-1.5.15.orig/Makefile.am 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/Makefile.am 2007-04-18 09:28:14.000000000 +0100 +@@ -29,7 +29,8 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h ++ url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h \ ++ sidebar.c + + mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ + $(INTLLIBS) $(LIBICONV) $(GPGME_LIBS) +Index: mutt-1.5.15/Makefile.in +=================================================================== +--- mutt-1.5.15.orig/Makefile.in 2007-04-18 09:28:14.000000000 +0100 ++++ mutt-1.5.15/Makefile.in 2007-04-18 09:28:14.000000000 +0100 +@@ -91,7 +91,8 @@ + thread.$(OBJEXT) charset.$(OBJEXT) history.$(OBJEXT) \ + lib.$(OBJEXT) muttlib.$(OBJEXT) editmsg.$(OBJEXT) \ + mbyte.$(OBJEXT) url.$(OBJEXT) ascii.$(OBJEXT) \ +- mutt_idna.$(OBJEXT) crypt-mod.$(OBJEXT) ++ mutt_idna.$(OBJEXT) crypt-mod.$(OBJEXT) \ ++ sidebar.$(OBJEXT) + mutt_OBJECTS = $(am_mutt_OBJECTS) + am__DEPENDENCIES_1 = + am_mutt_dotlock_OBJECTS = mutt_dotlock.$(OBJEXT) +@@ -312,7 +313,8 @@ + score.c send.c sendlib.c signal.c sort.c \ + status.c system.c thread.c charset.c history.c lib.c \ + muttlib.c editmsg.c mbyte.c \ +- url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h ++ url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h \ ++ sidebar.c + + mutt_LDADD = @MUTT_LIB_OBJECTS@ @LIBOBJS@ $(LIBIMAP) $(MUTTLIBS) \ + $(INTLLIBS) $(LIBICONV) $(GPGME_LIBS) +@@ -348,7 +350,7 @@ + makedoc.c makedoc-defs.h stamp-doc-rc README.SSL smime.h \ + muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ + ChangeLog ChangeLog.old mkchangelog.sh cvslog2changelog.pl mutt_idna.h \ +- snprintf.c regex.c crypt-gpgme.h hcachever.sh ++ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh + + EXTRA_SCRIPTS = smime_keys + mutt_dotlock_SOURCES = mutt_dotlock.c +Index: mutt-1.5.15/mbox.c +=================================================================== +--- mutt-1.5.15.orig/mbox.c 2007-04-01 22:58:56.000000000 +0100 ++++ mutt-1.5.15/mbox.c 2007-04-18 09:28:14.000000000 +0100 +@@ -100,6 +100,7 @@ + mutt_perror (ctx->path); + return (-1); + } ++ ctx->atime = sb.st_atime; + ctx->mtime = sb.st_mtime; + ctx->size = sb.st_size; + +@@ -251,6 +252,7 @@ + + ctx->size = sb.st_size; + ctx->mtime = sb.st_mtime; ++ ctx->atime = sb.st_atime; + + #ifdef NFS_ATTRIBUTE_HACK + if (sb.st_mtime > sb.st_atime) +Index: mutt-1.5.15/menu.c +=================================================================== +--- mutt-1.5.15.orig/menu.c 2007-04-01 22:58:56.000000000 +0100 ++++ mutt-1.5.15/menu.c 2007-04-18 09:28:14.000000000 +0100 +@@ -24,6 +24,7 @@ + #include "mutt_curses.h" + #include "mutt_menu.h" + #include "mbyte.h" ++#include "sidebar.h" + + #ifdef USE_IMAP + #include "imap.h" +@@ -158,7 +159,7 @@ + { + char *scratch = safe_strdup (s); + int shift = option (OPTARROWCURSOR) ? 3 : 0; +- int cols = COLS - shift; ++ int cols = COLS - shift - SidebarWidth; + + mutt_format_string (s, n, cols, cols, 0, ' ', scratch, mutt_strlen (scratch), 1); + s[n - 1] = 0; +@@ -209,6 +210,7 @@ + char buf[STRING]; + int i; + ++ draw_sidebar(1); + for (i = menu->top; i < menu->top + menu->pagelen; i++) + { + if (i < menu->max) +@@ -219,7 +221,7 @@ + if (option (OPTARROWCURSOR)) + { + attrset (menu->color (i)); +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + + if (i == menu->current) + { +@@ -248,14 +250,14 @@ + BKGDSET (MT_COLOR_INDICATOR); + } + +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + } + } + else +- CLEARLINE (i - menu->top + menu->offset); ++ CLEARLINE_WIN (i - menu->top + menu->offset); + } + menu->redraw = 0; + } +@@ -270,7 +272,7 @@ + return; + } + +- move (menu->oldcurrent + menu->offset - menu->top, 0); ++ move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth); + SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); + +@@ -285,13 +287,13 @@ + clrtoeol (); + menu_make_entry (buf, sizeof (buf), menu, menu->old |
