4 * Copyright (c) 2006-2012 Pacman Development Team <pacman-dev@archlinux.org>
5 * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
27 #include <alpm_list.h>
30 #include <libintl.h> /* here so it doesn't need to be included elsewhere */
31 /* define _() as shortcut for gettext() */
32 #define _(str) gettext(str)
33 #define _n(str1, str2, ct) ngettext(str1, str2, ct)
36 #define _n(str1, str2, ct) (ct == 1 ? str1 : str2)
39 /* update speed for the fill_progress based functions */
40 #define UPDATE_SPEED_SEC 0.2f
42 typedef struct _pm_target_t
{
48 void trans_init_error(void);
49 int trans_init(alpm_transflag_t flags
, int check_valid
);
50 int trans_release(void);
52 int check_syncdbs(size_t need_repos
, int check_valid
);
53 unsigned short getcols(void);
54 int rmrf(const char *path
);
55 const char *mbasename(const char *path
);
56 char *mdirname(const char *path
);
57 void indentprint(const char *str
, size_t indent
);
58 char *strtrim(char *str
);
59 char *strreplace(const char *str
, const char *needle
, const char *replace
);
60 alpm_list_t
*strsplit(const char *str
, const char splitchar
);
61 void string_display(const char *title
, const char *string
);
62 double humanize_size(off_t bytes
, const char target_unit
, int precision
,
64 int table_display(const char *title
, const alpm_list_t
*header
, const alpm_list_t
*rows
);
65 void list_display(const char *title
, const alpm_list_t
*list
);
66 void list_display_linebreak(const char *title
, const alpm_list_t
*list
);
67 void signature_display(const char *title
, alpm_siglist_t
*siglist
);
68 void display_targets(void);
69 int str_cmp(const void *s1
, const void *s2
);
70 void display_new_optdepends(alpm_pkg_t
*oldpkg
, alpm_pkg_t
*newpkg
);
71 void display_optdepends(alpm_pkg_t
*pkg
);
72 void print_packages(const alpm_list_t
*packages
);
73 void select_display(const alpm_list_t
*pkglist
);
74 int select_question(int count
);
75 int multiselect_question(char *array
, int count
);
76 int yesno(char *fmt
, ...);
77 int noyes(char *fmt
, ...);
79 int pm_printf(alpm_loglevel_t level
, const char *format
, ...) __attribute__((format(printf
,2,3)));
80 int pm_asprintf(char **string
, const char *format
, ...);
81 int pm_vfprintf(FILE *stream
, alpm_loglevel_t level
, const char *format
, va_list args
) __attribute__((format(printf
,3,0)));
82 int pm_vasprintf(char **string
, alpm_loglevel_t level
, const char *format
, va_list args
) __attribute__((format(printf
,3,0)));
85 char *strndup(const char *s
, size_t n
);
88 #endif /* _PM_UTIL_H */
90 /* vim: set ts=2 sw=2 noet: */