From 673bde39328f58ea2be21470fd488b06f283476b Mon Sep 17 00:00:00 2001 From: Ali Gholami Rudi Date: Thu, 30 Jun 2011 22:32:03 +0430 Subject: [PATCH] sort: replace sort_draw() with sort_level() --- mailx.c | 11 +++++++---- sort.c | 16 ++-------------- sort.h | 2 +- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/mailx.c b/mailx.c index 43fe3e4..3f2c75d 100644 --- a/mailx.c +++ b/mailx.c @@ -299,8 +299,9 @@ static void cmd_head(char *pre, char *arg) for (i = beg; i < end; i++) { struct mail *mail = sort->mails[i]; char fmt[MAXLINE]; - char *o, *s = fmt; + char *s = fmt; int col; + int indent; *s++ = i == cur ? '>' : ' '; *s++ = mail->stat & STAT_DEL ? 'D' : ' '; *s++ = stat_char(mail); @@ -312,9 +313,11 @@ static void cmd_head(char *pre, char *arg) *s++ = ' '; *s++ = ' '; col = 3 + DIGITS + 2 + 16 + 2; - o = s; - s = sort_draw(sort, i, s, WIDTH - col); - col += s - o; + indent = sort_level(sort, i) * 2; + while (indent-- && col < WIDTH) { + col++; + *s++ = ' '; + } s = put_hdr(mail, "Subject:", WIDTH - col, s); *s++ = '\n'; write(STDOUT_FILENO, fmt, s - fmt); diff --git a/sort.c b/sort.c index 8332b9f..32ce0e6 100644 --- a/sort.c +++ b/sort.c @@ -150,23 +150,11 @@ void sort_free(struct sort *sort) free(sort); } -static int thread_depth(struct thread *msg) +int sort_level(struct sort *sort, int id) { + struct thread *msg = sort->sorted[id]; int i = 0; while ((msg = msg->parent)) i++; return i; } - -char *sort_draw(struct sort *sort, int id, char *s, int len) -{ - struct thread *msg = sort->sorted[id]; - int depth = thread_depth(msg); - char *d = s + len; - int i; - for (i = 0; i < depth && s < d; i++) { - *s++ = ' '; - *s++ = ' '; - } - return s; -} diff --git a/sort.h b/sort.h index f7abb36..05aade6 100644 --- a/sort.h +++ b/sort.h @@ -24,5 +24,5 @@ struct sort { struct sort *sort_alloc(struct mbox *mbox, int kind); void sort_free(struct sort *sort); -char *sort_draw(struct sort *sort, int msg, char *buf, int len); +int sort_level(struct sort *sort, int msg); void sort_inc(struct sort *sort); -- 2.11.4.GIT