Improve advice for sync ops when db.lck is present
[pacman-ng.git] / src / pacman / util.h
blob6a26b086d62179c01a5b22623a8a4ee230c44b34
1 /*
2 * util.h
4 * Copyright (c) 2006-2011 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/>.
20 #ifndef _PM_UTIL_H
21 #define _PM_UTIL_H
23 #include <stdlib.h>
24 #include <stdarg.h>
25 #include <string.h>
27 #include <alpm_list.h>
29 #ifdef ENABLE_NLS
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)
34 #else
35 #define _(str) str
36 #define _n(str1, str2, ct) (ct == 1 ? str1 : str2)
37 #endif
39 /* update speed for the fill_progress based functions */
40 #define UPDATE_SPEED_SEC 0.2f
42 void trans_init_error(void);
43 int trans_init(alpm_transflag_t flags, int check_valid);
44 int trans_release(void);
45 int needs_root(void);
46 int check_syncdbs(size_t need_repos, int check_valid);
47 int getcols(void);
48 int rmrf(const char *path);
49 const char *mbasename(const char *path);
50 char *mdirname(const char *path);
51 void indentprint(const char *str, int indent);
52 char *strtoupper(char *str);
53 char *strtrim(char *str);
54 char *strreplace(const char *str, const char *needle, const char *replace);
55 alpm_list_t *strsplit(const char *str, const char splitchar);
56 void string_display(const char *title, const char *string);
57 double humanize_size(off_t bytes, const char target_unit, const char **label);
58 int table_display(const char *title, const alpm_list_t *header, const alpm_list_t *rows);
59 void list_display(const char *title, const alpm_list_t *list);
60 void list_display_linebreak(const char *title, const alpm_list_t *list);
61 void signature_display(const char *title, alpm_siglist_t *siglist);
62 void display_targets(const alpm_list_t *pkgs, int install);
63 int str_cmp(const void *s1, const void *s2);
64 void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg);
65 void display_optdepends(alpm_pkg_t *pkg);
66 void print_packages(const alpm_list_t *packages);
67 void select_display(const alpm_list_t *pkglist);
68 int select_question(int count);
69 int multiselect_question(char *array, int count);
70 int yesno(char *fmt, ...);
71 int noyes(char *fmt, ...);
72 int pm_printf(alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
73 int pm_fprintf(FILE *stream, alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,3,4)));
74 int pm_asprintf(char **string, const char *format, ...);
75 int pm_vfprintf(FILE *stream, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
76 int pm_vasprintf(char **string, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
78 #ifndef HAVE_STRNDUP
79 char *strndup(const char *s, size_t n);
80 #endif
82 #endif /* _PM_UTIL_H */
84 /* vim: set ts=2 sw=2 noet: */