summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-09-20 10:09:17 -0500
committerDan McGee <dan@archlinux.org>2008-10-12 21:28:05 -0500
commitce3d70aa99ab86d49756d1858580750f2f13dd9e (patch)
treeb767396c004dccfeb3dad9977959f45f25bc21b9
parentf9be2334f7b01ba30235500cb12d4ed61fff564b (diff)
Reduce number of calls to getcols()
Every call to getcols() results in two ioctl() calls, which we really didn't need as changing the number of columns in mid-print would be pretty crazy. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--src/pacman/util.c11
-rw-r--r--src/pacman/util.h6
2 files changed, 9 insertions, 8 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c
index c31714e4..8cfa675a 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -59,7 +59,7 @@ int trans_init(pmtranstype_t type, pmtransflag_t flags)
return(0);
}
-int trans_release()
+int trans_release(void)
{
if(alpm_trans_release() == -1) {
pm_fprintf(stderr, PM_LOG_ERROR, _("failed to release transaction (%s)\n"),
@@ -69,7 +69,7 @@ int trans_release()
return(0);
}
-int needs_transaction()
+int needs_transaction(void)
{
if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) {
if((config->op == PM_OP_SYNC && !config->op_s_sync &&
@@ -85,7 +85,7 @@ int needs_transaction()
}
/* gets the current screen column width */
-int getcols()
+int getcols(void)
{
if(!isatty(1)) {
/* We will default to 80 columns if we're not a tty
@@ -252,7 +252,7 @@ void indentprint(const char *str, int indent)
{
wchar_t *wcstr;
const wchar_t *p;
- int len, cidx;
+ int len, cidx, cols;
if(!str) {
return;
@@ -267,6 +267,7 @@ void indentprint(const char *str, int indent)
if(!p) {
return;
}
+ cols = getcols();
while(*p) {
if(*p == L' ') {
@@ -283,7 +284,7 @@ void indentprint(const char *str, int indent)
while(q < next) {
len += wcwidth(*q++);
}
- if(len > (getcols() - cidx - 1)) {
+ if(len > (cols - cidx - 1)) {
/* wrap to a newline and reindent */
fprintf(stdout, "\n%-*s", indent, "");
cidx = indent;
diff --git a/src/pacman/util.h b/src/pacman/util.h
index f94f0aed..5eeec8d2 100644
--- a/src/pacman/util.h
+++ b/src/pacman/util.h
@@ -37,9 +37,9 @@
#define UPDATE_SPEED_SEC 0.2f
int trans_init(pmtranstype_t type, pmtransflag_t flags);
-int trans_release();
-int needs_transaction();
-int getcols();
+int trans_release(void);
+int needs_transaction(void);
+int getcols(void);
int makepath(const char *path);
int rmrf(const char *path);
char *mbasename(const char *path);